Apple प्लैटफ़ॉर्म पर, App Attest की मदद से App Check का इस्तेमाल शुरू करें

इस पेज पर, Apple के ऐप्लिकेशन में ऐप्लिकेशन की जांच की सुविधा चालू करने का तरीका बताया गया है. इसके लिए, पहले से मौजूद ऐप्लिकेशन प्रमाणित करने की सुविधा का इस्तेमाल किया जा सकता है. ऐप्लिकेशन जांच की सुविधा चालू करने पर, यह पक्का करने में मदद मिलती है कि सिर्फ़ आपका ऐप्लिकेशन ही आपके प्रोजेक्ट के Firebase संसाधनों को ऐक्सेस कर सकता है. इस सुविधा की खास जानकारी देखें.

ऐप्लिकेशन की जांच, ऐप्लिकेशन की पुष्टि का इस्तेमाल करके यह पुष्टि करती है कि Firebase की सेवाओं के लिए अनुरोध, आपके सही ऐप्लिकेशन से ही मिल रहे हैं. ऐप्लिकेशन की जांच करने की सुविधा, फ़िलहाल धोखाधड़ी के जोखिम का विश्लेषण करने के लिए, ऐप्लिकेशन की पुष्टि करने वाली सुविधा का इस्तेमाल नहीं करती.

अगर आपको पसंद के मुताबिक बनाई गई सेवा देने वाली कंपनी के साथ, ऐप्लिकेशन की जांच करने की सुविधा का इस्तेमाल करना है, तो पसंद के मुताबिक ऐप्लिकेशन जांच करने वाली कंपनी लागू करना लेख पढ़ें.

1. अपना Firebase प्रोजेक्ट सेट अप करना

  1. ऐप्लिकेशन प्रमाणित करने की सुविधा का इस्तेमाल करने के लिए, आपको Xcode 12.5 या इसके बाद के वर्शन की ज़रूरत होगी.

  2. अगर आपने अब तक ऐसा नहीं किया है, तो Firebase को अपने Apple प्रोजेक्ट में जोड़ें.

  3. Firebase कंसोल के ऐप्लिकेशन जांच सेक्शन में, ऐप्लिकेशन की जांच करने की सुविधा देने वाली कंपनी के साथ ऐप्लिकेशन जांच की सुविधा का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन रजिस्टर करें.

    आम तौर पर, आपको अपने प्रोजेक्ट के सभी ऐप्लिकेशन रजिस्टर करने होते हैं, क्योंकि एक बार Firebase प्रॉडक्ट के लिए नीति उल्लंघन ठीक करने का तरीका (एनफ़ोर्समेंट) चालू करने के बाद, सिर्फ़ रजिस्टर किए गए ऐप्लिकेशन ही प्रॉडक्ट के बैकएंड संसाधनों को ऐक्सेस कर पाएंगे.

  4. ज़रूरी नहीं: ऐप्लिकेशन रजिस्ट्रेशन की सेटिंग में, सेवा देने वाली कंपनी के जारी किए गए ऐप्लिकेशन चेक टोकन के लिए, पसंद के मुताबिक टाइम-टू-लाइव (टीटीएल) सेट करें. TTL को 30 मिनट से 7 दिन के बीच की किसी भी वैल्यू पर सेट किया जा सकता है. इस वैल्यू को बदलते समय, इन बातों का ध्यान रखें:

    • सुरक्षा: छोटे टीटीएल को ज़्यादा सुरक्षा मिलती है. इसकी वजह यह है कि इससे लीक हुए या इंटरसेप्ट किए गए टोकन का गलत इस्तेमाल कोई हमलावर कर सकता है.
    • परफ़ॉर्मेंस: छोटे TTL का मतलब है कि आपका ऐप्लिकेशन ज़्यादा बार पुष्टि करने की प्रक्रिया करेगा. ऐप्लिकेशन के प्रमाणित करने की प्रक्रिया, नेटवर्क से जुड़े हर अनुरोध पर कार्रवाई करने में इंतज़ार का समय जोड़ देती है. इसलिए, छोटे TTL (टीटीएल) से आपके ऐप्लिकेशन की परफ़ॉर्मेंस पर असर पड़ सकता है.
    • कोटा और लागत: छोटे टीटीएल और बार-बार फिर से पुष्टि करने पर आपका कोटा जल्दी खत्म हो जाता है और पैसे देकर ली जाने वाली सेवाओं के लिए कोटा खत्म हो सकता है. कोटा और सीमाएं देखें.

    ज़्यादातर ऐप्लिकेशन के लिए एक घंटे का डिफ़ॉल्ट TTL सही है. ध्यान दें कि 'ऐप्लिकेशन की जांच' लाइब्रेरी, TTL (टीटीएल) के लिए करीब आधी अवधि में टोकन रीफ़्रेश करती है.

2. अपने ऐप्लिकेशन में, ऐप्लिकेशन की जांच करने की सुविधा वाली लाइब्रेरी जोड़ना

  1. अपने प्रोजेक्ट के Podfile में, App Check के लिए डिपेंडेंसी जोड़ें:

    pod 'FirebaseAppCheck'

    इसके अलावा, Swift Package Manager का इस्तेमाल भी किया जा सकता है.

    यह भी पक्का करें कि आप ऐसे किसी भी दूसरे Firebase SDK टूल के सबसे नए वर्शन का इस्तेमाल कर रहे हों, जिस पर आप निर्भर करते हैं.

  2. pod install चलाएं और बनाई गई .xcworkspace फ़ाइल खोलें.

  3. Xcode में, अपने ऐप्लिकेशन में ऐप्लिकेशन अटेस्ट सुविधा जोड़ें.

  4. अपने प्रोजेक्ट की .entitlements फ़ाइल में, ऐप्लिकेशन अटेस्ट एनवायरमेंट को production पर सेट करें.

3. ऐप्लिकेशन की जांच शुरू करें

किसी भी दूसरे Firebase SDK टूल का इस्तेमाल करने से पहले, आपको ऐप्लिकेशन की जांच शुरू करनी होगी.

सबसे पहले, AppCheckProviderFactory को लागू करने का तरीका लिखें. लागू करने से जुड़ी खास बातें, आपके इस्तेमाल के उदाहरण पर निर्भर करेंगी.

उदाहरण के लिए, अगर आपके पास सिर्फ़ iOS 14 और उसके बाद के वर्शन इस्तेमाल करने वाले उपयोगकर्ता हैं, तो किसी भी समय AppAttestProvider ऑब्जेक्ट बनाए जा सकते हैं:

Swift

ध्यान दें: Firebase का यह प्रॉडक्ट, WatchOS टारगेट पर उपलब्ध नहीं है.

class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

Objective-C

ध्यान दें: Firebase का यह प्रॉडक्ट, WatchOS टारगेट पर उपलब्ध नहीं है.

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  return [[FIRAppAttestProvider alloc] initWithApp:app];
}

@end

इसके अलावा, iOS 14 और उसके बाद के वर्शन पर AppAttestProvider ऑब्जेक्ट बनाए जा सकते हैं. साथ ही, इससे पुराने वर्शन पर DeviceCheckProvider पर वापस जाया जा सकता है:

Swift

ध्यान दें: Firebase का यह प्रॉडक्ट, WatchOS टारगेट पर उपलब्ध नहीं है.

class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    if #available(iOS 14.0, *) {
      return AppAttestProvider(app: app)
    } else {
      return DeviceCheckProvider(app: app)
    }
  }
}

Objective-C

ध्यान दें: Firebase का यह प्रॉडक्ट, WatchOS टारगेट पर उपलब्ध नहीं है.

@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  if (@available(iOS 14.0, *)) {
    return [[FIRAppAttestProvider alloc] initWithApp:app];
  } else {
    return [[FIRDeviceCheckProvider alloc] initWithApp:app];
  }
}

@end

AppCheckProviderFactory क्लास लागू करने के बाद, उसका इस्तेमाल करने के लिए ऐप्लिकेशन की जांच को कॉन्फ़िगर करें:

Swift

ध्यान दें: Firebase का यह प्रॉडक्ट, WatchOS टारगेट पर उपलब्ध नहीं है.

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

Objective-C

ध्यान दें: Firebase का यह प्रॉडक्ट, WatchOS टारगेट पर उपलब्ध नहीं है.

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

अगले चरण

आपके ऐप्लिकेशन में ऐप्लिकेशन की जांच करने वाली लाइब्रेरी इंस्टॉल हो जाने के बाद, उपयोगकर्ताओं को अपडेट किए गए ऐप्लिकेशन उपलब्ध कराना शुरू करें.

अपडेट किया गया क्लाइंट ऐप्लिकेशन, Firebase को किए जाने वाले हर अनुरोध के साथ-साथ ऐप्लिकेशन की जांच वाले टोकन भेजना शुरू कर देगा. हालांकि, Firebase प्रॉडक्ट को टोकन के मान्य होने की तब तक ज़रूरत नहीं होगी, जब तक Firebase कंसोल के 'ऐप्लिकेशन जांच' सेक्शन में नीति उल्लंघन ठीक करने का तरीका (एनफ़ोर्समेंट) चालू नहीं किया जाता.

मेट्रिक की निगरानी करें और नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) को चालू करें

हालांकि, नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) को चालू करने से पहले, आपको यह पक्का कर लेना चाहिए कि ऐसा करने से आपके मौजूदा उपयोगकर्ताओं पर कोई असर नहीं पड़ेगा. दूसरी ओर, अगर आपको अपने ऐप्लिकेशन संसाधनों का संदिग्ध इस्तेमाल दिखाई दे रहा है, तो आप जल्द ही एनफ़ोर्समेंट को चालू करना चाहें.

यह फ़ैसला लेने में मदद पाने के लिए, आप जिन सेवाओं का इस्तेमाल करते हैं उनसे जुड़े ऐप्लिकेशन की जांच की मेट्रिक देख सकते हैं:

ऐप्लिकेशन की जांच लागू करने की सुविधा चालू करें

जब आपको यह समझ में आ जाता है कि ऐप्लिकेशन की जांच किस तरह से आपके उपयोगकर्ताओं पर असर डालेगी, तब आप आगे बढ़ने के लिए तैयार हैं. इसके बाद, ऐप्लिकेशन की जांच के लिए नीति उल्लंघन ठीक करने का तरीका (एनफ़ोर्समेंट) चालू किया जा सकता है:

डीबग एनवायरमेंट में ऐप्लिकेशन की जांच करने की सुविधा का इस्तेमाल करना

अगर, ऐप्लिकेशन की जांच के लिए अपना ऐप्लिकेशन रजिस्टर करने के बाद, आपको अपने ऐप्लिकेशन को ऐसे एनवायरमेंट में चलाना है जिसे आम तौर पर किसी मान्य कैटगरी में न चलाया जाए, जैसे कि डेवलपमेंट के दौरान सिम्युलेटर या लगातार इंटिग्रेशन (सीआई) एनवायरमेंट से, तो अपने ऐप्लिकेशन का डीबग बिल्ड बनाया जा सकता है. यह वर्शन, प्रमाणित करने की सेवा देने वाली कंपनी के बजाय ऐप्लिकेशन जांच डीबग प्रोवाइडर का इस्तेमाल करता है.

Apple के प्लैटफ़ॉर्म पर, डीबग की सेवा देने वाली कंपनी के साथ, ऐप्लिकेशन की जांच करने की सुविधा का इस्तेमाल करना लेख पढ़ें.