अपनी एपीआई पासकोड को सुरक्षित रखने के लिए, 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 की ज़रूरत नहीं होती. हालांकि, अगर GMP से कम्यूनिकेट करने वाले सर्वर का इस्तेमाल सार्वजनिक क्लाइंट (जैसे, मोबाइल ऐप्लिकेशन) करते हैं, तो GMP के बजाय 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 टोकन के बिना आने वाले सभी ट्रैफ़िक को अस्वीकार कर देगा.
App Check इंटिग्रेशन को प्लान करते समय ध्यान रखने वाली बातें
इंटिग्रेशन की योजना बनाते समय, इन बातों का ध्यान रखें:
हमारा सुझाव है कि आप Device Check या App Attest का इस्तेमाल करें. ये दोनों, Apple की ओर से तय किए गए कोटे और सीमाओं के दायरे में आते हैं.
आपके पास पुष्टि करने की सेवा देने वाली किसी कंपनी को चुनने का विकल्प होता है. हालांकि, यह इस्तेमाल का एक ऐडवांस उदाहरण है. ज़्यादा जानकारी के लिए, Firebase App Check से जुड़े दस्तावेज़ देखें.
-
आपके ऐप्लिकेशन को शुरू करने पर, उपयोगकर्ताओं को कुछ समय के लिए इंतज़ार करना पड़ सकता है. हालांकि, इसके बाद समय-समय पर होने वाला पुष्टि करने का प्रोसेस बैकग्राउंड में होगा. साथ ही, उपयोगकर्ताओं को अब किसी भी तरह की देरी का सामना नहीं करना पड़ेगा. स्टार्टअप के समय होने वाली लेटेन्सी की सटीक जानकारी, आपके चुने गए पुष्टि करने वाले प्रोवाइडर पर निर्भर करती है.
App Check टोकन के मान्य रहने की अवधि (टाइम टू लिव या टीटीएल) से यह तय होता है कि पुष्टि कितनी बार की जाएगी. इस अवधि को Firebase कंसोल में कॉन्फ़िगर किया जा सकता है. फिर से पुष्टि तब होती है, जब टीटीएल का करीब आधा समय बीत चुका होता है. ज़्यादा जानकारी के लिए, पुष्टि करने की सेवा देने वाली कंपनी के Firebase दस्तावेज़ देखें.
अपने ऐप्लिकेशन को App Check के साथ इंटिग्रेट करना
ज़रूरी शर्तें
- Places SDK के 9.2 या उसके बाद के वर्शन वाला ऐप्लिकेशन इंस्टॉल होना चाहिए.
- ऐप्लिकेशन का बंडल आईडी.
- Apple Member Center में जाकर, सदस्यता सेक्शन में मौजूद टीम आईडी.
- अगर आपको डिवाइस की जांच करने की सुविधा का इस्तेमाल करना है, तो आपके पास निजी कुंजी वाली फ़ाइल और कुंजी का आईडी होना चाहिए.
- यह ज़रूरी है कि आपके पास 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 Attest का इस्तेमाल किया जा रहा है, तो App Attest के लिए Firebase डेवलपर दस्तावेज़ पढ़ें.
AppCheckProviderFactory
को लागू करने के लिए, Firebase App Check के निर्देशों का पालन करें. इसके बाद, इसे अपनी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];
- अगर डिवाइस की जांच करने की सुविधा का इस्तेमाल किया जा रहा है, तो अपने
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 का दस्तावेज़ देखें.