एपीआई पासकोड को सुरक्षित करने के लिए, App Check का इस्तेमाल करना
Firebase App Check, Google Maps Platform पर आपके ऐप्लिकेशन से किए जाने वाले कॉल को सुरक्षित करता है. इसके लिए, वह उन सोर्स से आने वाले ट्रैफ़िक को ब्लॉक करता है जो मान्य ऐप्लिकेशन नहीं हैं. यह काम, App Attest जैसे पुष्टि करने वाले किसी सोर्स से मिले टोकन की जांच करके किया जाता है. अपने ऐप्लिकेशन को App Check के साथ इंटिग्रेट करने से, नुकसान पहुंचाने वाले अनुरोधों से सुरक्षा मिलती है. इसलिए, आपको बिना अनुमति के किए गए एपीआई कॉल के लिए शुल्क नहीं देना पड़ता.
क्या App Check मेरे लिए सही है?
ज़्यादातर मामलों में, App Check का इस्तेमाल करने का सुझाव दिया जाता है. हालांकि, इन मामलों में App Check की ज़रूरत नहीं होती या यह काम नहीं करता:
- आपने Places SDK के ओरिजनल वर्शन का इस्तेमाल किया हो. App Check, Places SDK (नया) के साथ ही काम करता है.
- प्राइवेट या एक्सपेरिमेंटल ऐप्लिकेशन. अगर आपका ऐप्लिकेशन सार्वजनिक तौर पर उपलब्ध नहीं है, तो App Check की ज़रूरत नहीं है.
- अगर आपका ऐप्लिकेशन सिर्फ़ सर्वर-टू-सर्वर इस्तेमाल किया जाता है, तो App Check की ज़रूरत नहीं है. हालांकि, अगर जीएमपी से कम्यूनिकेट करने वाले सर्वर का इस्तेमाल सार्वजनिक क्लाइंट (जैसे, मोबाइल ऐप्लिकेशन) करते हैं, तो जीएमपी के बजाय उस सर्वर को सुरक्षित करने के लिए App Check का इस्तेमाल करें.
- App Check के सुझाए गए पुष्टि करने वाले सोर्स, उन डिवाइसों पर काम नहीं करेंगे जिन्हें पुष्टि करने वाले सोर्स ने असुरक्षित या भरोसेमंद नहीं माना है. अगर आपको ऐसे डिवाइसों के लिए सहायता देनी है, तो पुष्टि करने वाली कोई कस्टम सेवा डिप्लॉय की जा सकती है. ज़्यादा जानकारी के लिए, निर्देश देखें.
लागू करने के चरणों की खास जानकारी
अपने ऐप्लिकेशन को App Check के साथ इंटिग्रेट करने के लिए, आपको यह तरीका अपनाना होगा:
- अपने ऐप्लिकेशन में Firebase जोड़ें.
- App Check लाइब्रेरी जोड़ें और उसे लागू करें.
- अपने ऐप्लिकेशन में टोकन देने वाला सोर्स जोड़ें.
- Places और App Check API को लागू करें.
- डीबग करने की सुविधा चालू करें.
- अपने ऐप्लिकेशन के अनुरोधों पर नज़र रखें और लागू करने के बारे में फ़ैसला लें.
App Check के साथ इंटिग्रेट करने के बाद, Firebase कंसोल पर बैकएंड ट्रैफ़िक की मेट्रिक देखी जा सकती हैं. इन मेट्रिक से, अनुरोधों को इस आधार पर बांटा जाता है कि उनके साथ मान्य App Check टोकन है या नहीं. ज़्यादा जानकारी के लिए, Firebase App Check का दस्तावेज़ देखें.
जब आपको पक्का हो जाए कि ज़्यादातर अनुरोध मान्य सोर्स से आ रहे हैं और लोगों ने आपके ऐप्लिकेशन के उस नए वर्शन पर अपडेट कर लिया है जिसमें App Check लागू किया गया है, तब लागू करने की सुविधा चालू की जा सकती है. लागू करने की सुविधा चालू होने के बाद, App Check, मान्य App Check टोकन के बिना आने वाले सभी ट्रैफ़िक को अस्वीकार कर देगा.
App Check को इंटिग्रेट करने की योजना बनाते समय ध्यान रखने वाली बातें
इंटिग्रेशन की योजना बनाते समय, इन बातों का ध्यान रखें:
पुष्टि करने वाले जिन सोर्स का हम सुझाव देते हैं, वे Apple की ओर से तय की गई कोटा और सीमाओं के मुताबिक काम करते हैं. ये सोर्स, Device Check या App Attest हो सकते हैं.
पुष्टि करने वाले किसी कस्टम सोर्स का इस्तेमाल किया जा सकता है. हालांकि, यह एक ऐडवांस इस्तेमाल का उदाहरण है. ज़्यादा जानकारी के लिए, Firebase App Check का दस्तावेज़ देखें.
-
आपके ऐप्लिकेशन के उपयोगकर्ताओं को, उसे शुरू करने में थोड़ी देरी हो सकती है. हालांकि, इसके बाद, समय-समय पर होने वाली पुष्टि की प्रक्रिया बैकग्राउंड में होगी. इसलिए, उपयोगकर्ताओं को अब कोई देरी नहीं होगी. ऐप्लिकेशन शुरू होने में लगने वाला समय, पुष्टि करने वाले चुने गए सोर्स पर निर्भर करता है.
App Check टोकन के मान्य रहने की अवधि (टाइम टू लिव या टीटीएल) से, पुष्टि की प्रक्रिया की फ़्रीक्वेंसी तय होती है. इस अवधि को Firebase कंसोल में कॉन्फ़िगर किया जा सकता है. टीटीएल का करीब आधा समय बीत जाने पर, पुष्टि की प्रक्रिया फिर से होती है. ज़्यादा जानकारी के लिए, पुष्टि करने वाले सोर्स के लिए Firebase के दस्तावेज़ देखें.
अपने ऐप्लिकेशन को App Check के साथ इंटिग्रेट करना
ज़रूरी शर्तें और आवश्यकताएं
- Places SDK का 9.2 या उसके बाद वाला वर्शन इंस्टॉल किया गया हो.
- ऐप्लिकेशन का बंडल आईडी.
- Apple Member Center में, सदस्यता के तहत मौजूद आपका टीम आईडी.
- अगर आपको Device Check का इस्तेमाल करना है, तो आपकी निजी कुंजी वाली फ़ाइल और कुंजी आईडी.
- आपके पास Cloud Console में, ऐप्लिकेशन का मालिकाना हक होना चाहिए.
- आपके पास Cloud Console से, ऐप्लिकेशन का प्रोजेक्ट आईडी होना चाहिए
पहला चरण: अपने ऐप्लिकेशन में Firebase जोड़ना
अपने ऐप्लिकेशन में Firebase जोड़ने के लिए, Firebase के डेवलपर दस्तावेज़ में दिए गए निर्देशों का पालन करें.
अपने ऐप्लिकेशन को रजिस्टर करने पर, आपको कॉन्फ़िगरेशन फ़ाइल, GoogleService-Info.plist मिलेगी. इस फ़ाइल को बिना किसी बदलाव के, अपने ऐप्लिकेशन के रूट लेवल पर जोड़ें.
iOS के लिए Places Swift SDK
import FirebaseCore import FirebaseAppCheck import GooglePlacesSwift
Swift
import FirebaseCore import FirebaseAppCheck import GooglePlaces
Objective-C
@import FirebaseCore; @import FirebaseAppCheck; @import GooglePlaces;
दूसरा चरण: App Check लाइब्रेरी जोड़ना और App Check को लागू करना
Firebase, पुष्टि करने वाले हर डिफ़ॉल्ट सोर्स के लिए निर्देश उपलब्ध कराता है. इन निर्देशों से, आपको Firebase प्रोजेक्ट सेट अप करने और अपने ऐप्लिकेशन में App Check लाइब्रेरी जोड़ने का तरीका पता चलता है. App Check को लागू करने के लिए, दिए गए कोड के सैंपल का पालन करें.
- App Check लाइब्रेरी जोड़ने के लिए, Firebase के निर्देशों का पालन करें:
- App Check को लागू करें.
- अगर App Attest का इस्तेमाल किया जा रहा है, तो App Attest के लिए Firebase के डेवलपर दस्तावेज़ में दिए गए निर्देशों का पालन करें..
Firebase App Check निर्देशों का पालन करके
AppCheckProviderFactoryका कार्यान्वयन बनाएं और इसे अपनीAppDelegateफ़ाइल में जोड़ें.iOS के लिए Places Swift SDK
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory)
Swift
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory)
Objective-C
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory];
- अगर Device Check का इस्तेमाल किया जा रहा है, तो अपनी
AppDelegateमें यह कोड जोड़ें:iOS के लिए Places Swift SDK
AppCheck.setAppCheckProviderFactory(DeviceCheckProviderFactory())
Swift
AppCheck.setAppCheckProviderFactory(DeviceCheckProviderFactory())
Objective-C
[FIRAppCheck setAppCheckProviderFactory:providerFactory];
- अगर App Attest का इस्तेमाल किया जा रहा है, तो App Attest के लिए Firebase के डेवलपर दस्तावेज़ में दिए गए निर्देशों का पालन करें..
तीसरा चरण: टोकन देने वाला सोर्स जोड़ना
अपने ऐप्लिकेशन के रूट लेवल पर, AppCheckTokenProvider नाम की एक फ़ाइल बनाएं. अगर Objective-C का इस्तेमाल किया जा रहा है, तो AppCheckTokenProvider.h और AppCheckTokenProvider.m नाम की दो फ़ाइलें बनाएं.
इसके बाद, इंपोर्ट करने के ये स्टेटमेंट और क्लास की परिभाषा जोड़ें:
iOS के लिए Places Swift SDK
// AppCheckTokenProvider.swift import FirebaseAppCheck import Foundation import GooglePlacesSwift struct TokenProvider: AppCheckTokenProvider { func fetchAppCheckToken() async throws -> String { return try await AppCheck.appCheck().token(forcingRefresh: false).token } }
Swift
// AppCheckTokenProvider.swift import FirebaseAppCheck import Foundation import GooglePlaces class AppCheckTokenProvider: NSObject, GMSPlacesAppCheckTokenProvider { func fetchAppCheckToken() async throws -> String { return try await AppCheck.appCheck().token(forcingRefresh: false).token } }
Objective-C
// AppCheckTokenProvider.h @import Foundation; @import GooglePlaces; @interface AppCheckTokenProvider : NSObject <GMSPlacesAppCheckTokenProvider> @end // AppCheckTokenProvider.m #import "AppCheckTokenProvider.h" @import FirebaseAppCheck; @implementation AppCheckTokenProvider - (void)fetchAppCheckTokenWithCompletion:(nonnull GMSAppCheckTokenCompletion)completion { [[FIRAppCheck appCheck] tokenForcingRefresh:NO completion:^(FIRAppCheckToken *_Nullable token, NSError *_Nullable error) { if (token) { completion(token.token, nil); } else { completion(nil, error); } }]; } @end
चौथा चरण: Places और App Check API को लागू करना
- अपनी
AppDelegateफ़ाइल में, Places API को लागू करें:iOS के लिए Places Swift SDK
PlacesClient.provideAPIKey("YOUR_API_KEY")
Swift
GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
- इसके बाद, App Check API को लागू करें:
iOS के लिए Places Swift SDK
PlacesClient.setAppCheckTokenProvider(AppCheckTokenProvider())
Swift
GMSPlacesClient.setAppCheckTokenProvider(AppCheckTokenProvider())
Objective-C
[GMSPlacesClient setAppCheckTokenProvider:[[AppCheckTokenProvider alloc] init]];
पांचवा चरण: डीबग करने की सुविधा चालू करना (ज़रूरी नहीं)
अगर आपको अपने ऐप्लिकेशन को स्थानीय तौर पर डेवलप और टेस्ट करना है या उसे कंटीन्यूअस इंटिग्रेशन (सीआई) एनवायरमेंट में चलाना है, तो अपने ऐप्लिकेशन का डीबग बिल्ड बनाया जा सकता है. इसमें, मान्य App Check टोकन पाने के लिए, डीबग सीक्रेट का इस्तेमाल किया जाता है. इससे, डीबग बिल्ड में पुष्टि करने वाले असली सोर्स का इस्तेमाल करने से बचा जा सकता है.
सिम्युलेटर या टेस्ट डिवाइस पर अपने ऐप्लिकेशन को टेस्ट करने के लिए:
App Check डीबग प्रोवाइडर फ़ैक्ट्री बनाएं और उसे सेट करें.
इस कोड के सैंपल में, डीबग करने और प्रोडक्शन, दोनों तरह के एनवायरमेंट को हैंडल किया जाता है:iOS के लिए Places Swift SDK
#if targetEnvironment(simulator) let providerFactory = AppCheckDebugProviderFactory() #else let providerFactory = YourAppCheckProviderFactory() #endif
Swift
#if targetEnvironment(simulator) let providerFactory = AppCheckDebugProviderFactory() #else let providerFactory = YourAppCheckProviderFactory() #endif
Objective-C
if (targetEnvironment == simulator){ FIRAppCheckDebugProviderFactory *providerFactory = [[FIRAppCheckDebugProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; } else { YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; }
- अपने Xcode प्रोजेक्ट पर लॉगिंग की सुविधा चालू करें. इसके बाद, ऐप्लिकेशन लॉन्च करें और लॉग में स्थानीय डीबग टोकन ढूंढें.
- इस टोकन को Firebase कंसोल में जोड़ें.
- ज़्यादा जानकारी और निर्देश पाने के लिए, App Check का दस्तावेज़ देखें.
अपने ऐप्लिकेशन को सीआई एनवायरमेंट में चलाने के लिए:
- Firebase कंसोल में डीबग टोकन बनाएं और उसे अपने सीआई सिस्टम के सुरक्षित की स्टोर में जोड़ें.
- Xcode में, अपनी टेस्टिंग स्कीम में एक एनवायरमेंट वैरिएबल जोड़ें. इसका नाम
FIRAAppCheckDebugTokenऔर वैल्यू$(APP_CHECK_DEBUG_TOKEN)(या इसी तरह की कोई वैल्यू) रखें. - अपनी सीआई टेस्ट स्क्रिप्ट में, डीबग टोकन को एनवायरमेंट के तौर पर पास करें
App Check डीबग प्रोवाइडर फ़ैक्ट्री बनाएं और उसे सेट करें.
इस कोड के सैंपल में, डीबग करने और प्रोडक्शन, दोनों तरह के एनवायरमेंट को हैंडल किया जाता है:iOS के लिए Places Swift SDK
#if DEBUG let providerFactory = AppCheckDebugProviderFactory() #else let providerFactory = YourAppCheckProviderFactory() #endif AppCheck.setAppCheckProviderFactory(providerFactory)
Swift
#if DEBUG let providerFactory = AppCheckDebugProviderFactory() #else let providerFactory = YourAppCheckProviderFactory() #endif AppCheck.setAppCheckProviderFactory(providerFactory)
Objective-C
#if DEBUG id<FIRAppCheckProviderFactory> providerFactory = [[FIRAppCheckDebugProviderFactory alloc] init]; #else // DEBUG id<FIRAppCheckProviderFactory> providerFactory = [[YourAppCheckProviderFactory alloc] init]; #endif // DEBUG AppCheck.setAppCheckProviderFactory(providerFactory)
- ज़्यादा जानकारी और निर्देश पाने के लिए, App Check का दस्तावेज़ देखें.
छठा चरण: अपने ऐप्लिकेशन के अनुरोधों पर नज़र रखना और लागू करने के बारे में फ़ैसला लेना
लागू करने की सुविधा शुरू करने से पहले, यह पक्का करें कि आपके ऐप्लिकेशन के मान्य उपयोगकर्ताओं को कोई समस्या न हो. इसके लिए, App Check की मेट्रिक वाली स्क्रीन पर जाएं. यहां आपको यह दिखेगा कि आपके ऐप्लिकेशन के ट्रैफ़िक का कितना प्रतिशत मान्य है, कितना पुराना है या कितना अमान्य है. जब आपको दिखे कि ज़्यादातर ट्रैफ़िक मान्य है, तब लागू करने की सुविधा चालू की जा सकती है.
ज़्यादा जानकारी और निर्देश पाने के लिए, Firebase App Check का दस्तावेज़ देखें.