Android के लिए Navigation SDK को सुरक्षित करने के लिए, App Check का इस्तेमाल करना
Firebase App Check, Google Maps Platform को आपके ऐप्लिकेशन से किए जाने वाले कॉल को सुरक्षित रखता है. इसके लिए, यह आपके भरोसेमंद ऐप्लिकेशन के अलावा अन्य सोर्स से आने वाले ट्रैफ़िक को ब्लॉक करता है. इसके लिए, पुष्टि करने वाली सेवा देने वाली कंपनी, जैसे कि Play Integrity से ऐप्लिकेशन या डिवाइस की पुष्टि करने का अनुरोध किया जाता है. अपने ऐप्लिकेशन को App Check के साथ इंटिग्रेट करने पर, आपको नुकसान पहुंचाने वाले और बिना अनुमति के किए गए अनुरोधों से सुरक्षा मिलती है. इससे, बिना अनुमति के लगाए गए शुल्क से आपके बिलिंग सिस्टम को सुरक्षित रखने में मदद मिलती है. App Check की मदद से, फ्लीट ऐप्लिकेशन के ईकोसिस्टम में होने वाली रुकावटों की रिपोर्ट रीयल-टाइम में बेहतर तरीके से दी जा सकती है. इससे, आपके ऐप्लिकेशन का इस्तेमाल करने वाले सभी ड्राइवर को फ़ायदा मिलता है. ज़्यादा जानकारी के लिए, रुकावटों की रिपोर्ट देखें.
App Check का इस्तेमाल क्यों करना चाहिए?
App Check, Android के लिए Navigation SDK टूल के दो अलग-अलग हिस्सों को सुरक्षित रखता है: नेविगेशन की मुख्य सुविधा और रुकावटों की रिपोर्टिंग.
नेविगेशन
App Check की मदद से, Android के लिए Navigation SDK टूल के मुख्य अनुरोधों को, नुकसान पहुंचाने वाले या बिना अनुमति वाले सोर्स से ब्लॉक किया जा सकता है. इससे आपको सीधे तौर पर फ़ायदा मिलता है. ऐसा इसलिए, क्योंकि इससे आपके प्रोजेक्ट को बिलिंग से जुड़ी धोखाधड़ी और कोटे के खत्म होने से बचाया जा सकता है.
रुकावटों की शिकायत करना
अगर आपके ऐप्लिकेशन में, गड़बड़ी की जानकारी रीयल-टाइम में देने और वोट करने की सुविधाएं उपलब्ध हैं, तो हमारा सुझाव है कि आप App Check का इस्तेमाल करें. App Check की सुविधा चालू करने से, यह पक्का किया जा सकता है कि आपके ड्राइवर को सबसे सटीक रास्ते की जानकारी मिले. इसमें रीयल-टाइम में मिले सभी सुझावों/राय को ध्यान में रखा जाता है.
रिपोर्टिंग के लिए App Check क्यों ज़रूरी है:
- सड़क बंद होने की जानकारी के लिए, भरोसे का स्तर ऊंचा होना चाहिए: सड़क बंद होने जैसे इवेंट से, सभी ड्राइवर के लिए रास्ते में काफ़ी बदलाव हो सकता है. मैप को संभावित तोड़-फोड़, स्पैम या गलत रिपोर्टिंग से बचाने के लिए, सड़क बंद होने की वजह से होने वाली रुकावटों के लिए Google का मॉडरेशन इंफ़्रास्ट्रक्चर, डिवाइस और ऐप इंटेग्रिटी के मज़बूत सिग्नल पर निर्भर करता है.
- App Check, रिपोर्ट की पुष्टि कैसे करता है: Android के लिए Navigation SDK से भेजी गई उपयोगकर्ता की रिपोर्ट और वोट में App Check टोकन शामिल होता है. Google का बैकएंड इस टोकन का इस्तेमाल करके, सुझाव, राय या शिकायत की पुष्टि करता है. इससे सुझाव, राय या शिकायत पर भरोसा बढ़ता है. साथ ही, लाइव मैप पर इसके असर का आकलन किया जा सकता है.
- App Check को शामिल न करने का असर: मान्य App Check टोकन के बिना सबमिट की गई रिपोर्ट का आकलन, कम भरोसे वाले मॉडल के तहत किया जाता है. साथ ही, इन्हें सिर्फ़ साइलेंट सिग्नल के तौर पर प्रोसेस किया जा सकता है. इसका मतलब है कि उपयोगकर्ता अब भी शिकायत कर सकते हैं और वोट कर सकते हैं. हालांकि, उनकी शिकायतें मैप पर कम दिखेंगी. साथ ही, इनसे अन्य ड्राइवर के रास्तों पर असर नहीं पड़ेगा. इसके अलावा, इन शिकायतों की पुष्टि करना ज़रूरी होगा.
क्या App Check मेरे लिए सही है?
ज़्यादातर मामलों में, App Check का इस्तेमाल करने का सुझाव दिया जाता है. हालांकि, इन मामलों में App Check का इस्तेमाल करने की ज़रूरत नहीं होती या यह काम नहीं करता:
- निजी या एक्सपेरिमेंटल ऐप्लिकेशन: अगर आपका ऐप्लिकेशन सार्वजनिक तौर पर ऐक्सेस नहीं किया जा सकता, तो App Check की ज़रूरत नहीं है.
- छेड़े गए डिवाइस: पुष्टि करने की सेवाएं देने वाली कंपनियां, Navigation SDK for Android को ऐसे डिवाइसों पर चलने से रोकती हैं जिन पर भरोसा नहीं किया जा सकता. जैसे, रूट किए गए या जेलब्रेक किए गए फ़ोन. इन डिवाइसों के लिए, पुष्टि करने की सुविधा देने वाली कस्टम कंपनी को डिप्लॉय करें.
- GMS के बिना काम करने वाले Android डिवाइस: Play Integrity API का इस्तेमाल करने के लिए, Android डिवाइसों पर Google Mobile Services (GMS) काम करना ज़रूरी है. अगर आपको GMS के बिना काम करने वाले Android डिवाइसों के लिए सहायता देनी है, तो कस्टम अटेस्टेशन प्रोवाइडर को डिप्लॉय करें.
लागू करने के चरणों के बारे में खास जानकारी
अपने ऐप्लिकेशन को App Check के साथ इंटिग्रेट करने के लिए, आपको यह तरीका अपनाना होगा:
- अपने ऐप्लिकेशन में Firebase जोड़ें.
- App Check लाइब्रेरी जोड़ें और App Check को चालू करें.
- टोकन की सेवा देने वाली कंपनी जोड़ें. इस चरण में, आपकी पसंद के अटेस्टेशन प्रोवाइडर को डिवाइस या ऐप्लिकेशन की इंटिग्रिटी की पुष्टि करने के लिए कहा जाता है.
- Navigation और App Check API को शुरू करें.
- डीबग करने की सुविधा चालू करें. यह डेवलपमेंट के दौरान या लगातार इंटिग्रेशन (सीआई) एनवायरमेंट में काम आता है.
- नीति उल्लंघन ठीक करने के तरीके को लागू करने से पहले, अपने ऐप्लिकेशन के अनुरोधों पर नज़र रखें. इस तरह, उपयोगकर्ताओं को कोई परेशानी हुए बिना, App Check को आसानी से लागू किया जा सकता है.
App Check इंटिग्रेशन की योजना बनाते समय ध्यान रखने वाली बातें
- अटेस्टेशन की सेवा देने वाली कंपनी के लिए तय किए गए कोटे: हम अटेस्टेशन की सेवा देने वाली जिस कंपनी का सुझाव देते हैं वह है Play Integrity. इसके स्टैंडर्ड एपीआई के इस्तेमाल के लिए, हर दिन कॉल करने की सीमा तय की गई है. कॉल की सीमाओं के बारे में ज़्यादा जानने के लिए, Google Play Integrity के डेवलपर दस्तावेज़ में सेटअप पेज देखें.
- स्टार्टअप में लगने वाला समय: ज़्यादातर मामलों में, ऐप्लिकेशन का सामान्य इस्तेमाल करने के दौरान उपयोगकर्ताओं को स्टार्टअप में लगने वाले समय की वजह से कोई समस्या नहीं आएगी. ऐसा इसलिए, क्योंकि App Check टोकन को डिवाइस पर कैश मेमोरी में सेव किया जाता है. सिस्टम, App Check टोकन को खत्म होने से पहले बैकग्राउंड में अपने-आप रीफ़्रेश करता है, ताकि ऐप्लिकेशन की परफ़ॉर्मेंस बेहतर बनी रहे. हालांकि, अगर कोई मान्य App Check टोकन मौजूद नहीं है, तो आपके ऐप्लिकेशन के उपयोगकर्ताओं को स्टार्टअप में कुछ समय लग सकता है. उदाहरण के लिए, यह समस्या तब होती है, जब कैश मेमोरी में सेव किया गया टोकन खत्म हो जाता है या मौजूद नहीं होता है.
- टोकन टीटीएल: टाइम टू लिव (टीटीएल) से यह तय होता है कि App Check टोकन कितने समय तक मान्य रहेगा. इसके बाद, इसे रीफ़्रेश करना होगा. Firebase कंसोल में जाकर, इस अवधि को 30 मिनट से लेकर सात दिनों तक कॉन्फ़िगर किया जा सकता है. सुरक्षित बेसलाइन के तौर पर, एक घंटे की अवधि का सुझाव दिया जाता है. हालांकि, एसडीके टीटीएल की अवधि के लगभग आधे समय पर, बैकग्राउंड में अपने-आप रीफ़्रेश होने की कोशिश करता है. कंसोल से जुड़े सिलसिलेवार निर्देशों के लिए, Firebase App Check का दस्तावेज़ देखें.
अपने ऐप्लिकेशन को App Check के साथ इंटिग्रेट करना
ज़रूरी शर्तें
- ऐसा ऐप्लिकेशन जिसमें Android के लिए Navigation SDK टूल का 7.9 या उसके बाद का वर्शन इंस्टॉल हो.
- आपके ऐप्लिकेशन का SHA-256 सर्टिफ़िकेट फ़िंगरप्रिंट.
- आपके ऐप्लिकेशन के पैकेज का नाम.
- आपके पास Google Cloud Console में ऐप्लिकेशन का मालिकाना हक होना चाहिए.
- Google Cloud Console में मौजूद आपके ऐप्लिकेशन का प्रोजेक्ट आईडी.
पहला चरण: अपने ऐप्लिकेशन में Firebase जोड़ना
अपने ऐप्लिकेशन में Firebase जोड़ने के लिए, Firebase डेवलपर के दस्तावेज़ में दिए गए निर्देशों का पालन करें. अपनी google-services.json फ़ाइल को अपने प्रोजेक्ट की ऐप्लिकेशन लेवल डायरेक्ट्री में जोड़ें.
दूसरा चरण: App Check लाइब्रेरी जोड़ना और App Check को चालू करना
अपने ऐप्लिकेशन की build.gradle फ़ाइल में, App Check की डिपेंडेंसी जोड़ें:
Groovy (build.gradle)
dependencies { // Import the Firebase BoM implementation platform('com.google.firebase:firebase-bom:34.17.0') // Add the dependency for the App Check library with Play Integrity implementation 'com.google.firebase:firebase-appcheck-playintegrity' }
अपनी ऐप्लिकेशन क्लास या मुख्य गतिविधि में App Check को शुरू करें:
Java
import com.google.firebase.FirebaseApp; import com.google.firebase.appcheck.FirebaseAppCheck; import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory; // Initialize Firebase App FirebaseApp.initializeApp(/* context= */ this); // Initialize App Check FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance());
Kotlin
import com.google.firebase.Firebase import com.google.firebase.appcheck.appCheck import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory import com.google.firebase.initialize // Initialize Firebase App Firebase.initialize(context = this) // Initialize App Check Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), )
तीसरा चरण: टोकन देने वाली कंपनी को जोड़ना
MapsAppCheckTokenProvider इंटरफ़ेस को लागू करें. यह प्रोवाइडर, Firebase App Check से App Check टोकन को एसिंक्रोनस तरीके से फ़ेच करता है. इसके बाद, MapsAppCheckTokenCallback का इस्तेमाल करके, उन्हें Android नेटवर्क स्टैक के लिए Navigation SDK टूल को पास करता है:
Java
import com.google.android.gms.maps.MapsAppCheckTokenCallback; import com.google.android.gms.maps.MapsAppCheckTokenProvider; import com.google.firebase.appcheck.FirebaseAppCheck; public class NavigationTokenProvider implements MapsAppCheckTokenProvider { @Override public void fetchToken(MapsAppCheckTokenCallback callback) { FirebaseAppCheck.getInstance() .getAppCheckToken(false) // forcingRefresh = false .addOnSuccessListener( tokenResult -> { String token = tokenResult.getToken(); callback.onSuccess(token); }) .addOnFailureListener( e -> { callback.onFailure(); }); } }
Kotlin
import com.google.android.gms.maps.MapsAppCheckTokenCallback import com.google.android.gms.maps.MapsAppCheckTokenProvider import com.google.firebase.appcheck.FirebaseAppCheck class NavigationTokenProvider : MapsAppCheckTokenProvider { override fun fetchToken(callback: MapsAppCheckTokenCallback) { FirebaseAppCheck.getInstance() .getAppCheckToken(false) .addOnSuccessListener { tokenResult -> callback.onSuccess(tokenResult.token) } .addOnFailureListener { callback.onFailure() } } }
चौथा चरण: नेविगेशन और App Check API को शुरू करना
Android के लिए Navigation SDK टूल को शुरू करें और MapsApiSettings.setAppCheckTokenProvider() का इस्तेमाल करके, यूनिफ़ाइड टोकन प्रोवाइडर इंस्टेंस रजिस्टर करें:
Java
import com.google.android.gms.maps.MapsApiSettings; // Register your App Check token provider before initializing Navigation SDK for Android MapsApiSettings.setAppCheckTokenProvider(context, new NavigationTokenProvider());
Kotlin
import com.google.android.gms.maps.MapsApiSettings // Register your App Check token provider before initializing Navigation SDK for Android MapsApiSettings.setAppCheckTokenProvider(context, NavigationTokenProvider())
पांचवां चरण: डीबग करने की सुविधा चालू करना (ज़रूरी नहीं)
Android के लिए Navigation SDK टूल पर App Check लागू होने के बाद, आपके ऐप्लिकेशन की ऐसी सुविधाएं सिम्युलेटर या लगातार इंटिग्रेशन (सीआई) एनवायरमेंट में काम नहीं करेंगी जो Android के लिए Navigation SDK टूल पर निर्भर करती हैं. ऐसा इसलिए, क्योंकि ये एनवायरमेंट मान्य डिवाइसों की ज़रूरी शर्तें पूरी नहीं करते. डेवलपमेंट और टेस्टिंग के दौरान इन एनवायरमेंट में अपना ऐप्लिकेशन चलाने के लिए, आपको अपने ऐप्लिकेशन का डीबग बिल्ड बनाना होगा. इसमें प्रोडक्शन अटेस्टेशन प्रोवाइडर के बजाय, App Check डीबग प्रोवाइडर का इस्तेमाल किया जाता है.
- अपने ऐप्लिकेशन की
build.gradleफ़ाइल में, डीबग प्रोवाइडर की डिपेंडेंसी जोड़ें:Groovy (build.gradle)
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug' }
- डीबग बिल्ड में डीबग प्रोवाइडर फ़ैक्ट्री का इस्तेमाल करने के लिए, App Check को कॉन्फ़िगर करें:
Java
import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory; import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory; if (BuildConfig.DEBUG) { firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance() ); } else { firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance() ); }
Kotlin
import com.google.firebase.Firebase import com.google.firebase.appcheck.appCheck import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory if (BuildConfig.DEBUG) { Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), ) } else { Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), ) }
- अपने ऐप्लिकेशन को किसी एम्युलेटर या डीबग डिवाइस पर लॉन्च करें. App Check, आपके logcat आउटपुट में एक लोकल डीबग टोकन प्रिंट करेगा.
- इस डीबग टोकन को कॉपी करें और Firebase कंसोल में रजिस्टर करें. ज़्यादा जानकारी के लिए, Firebase App Check के डीबग प्रोवाइडर से जुड़ा दस्तावेज़ पढ़ें.
छठा चरण: अपने ऐप्लिकेशन के अनुरोधों पर नज़र रखना और नीति उल्लंघन ठीक करने के तरीके तय करना
नीति उल्लंघन ठीक करने का तरीका चालू करने से पहले, ऐप्लिकेशन के अनुरोधों को मॉनिटर करें. इससे यह पक्का किया जा सकेगा कि असली उपयोगकर्ताओं को कोई परेशानी न हो.
- Firebase कंसोल में, App Check की मेट्रिक वाली स्क्रीन पर जाएं. यहां आपको पुष्टि किए गए और पुष्टि नहीं किए गए ट्रैफ़िक का प्रतिशत दिखेगा.
- जब आपको यह पक्का हो जाए कि ज़्यादातर ट्रैफ़िक की पुष्टि हो गई है और असली उपयोगकर्ताओं ने आपके ऐप्लिकेशन के उस वर्शन को अपडेट कर लिया है जिसमें App Check लागू किया गया है, तब इसे लागू करें.
- लागू होने के बाद, App Check ऐसे सभी ट्रैफ़िक को अस्वीकार कर देगा जिसमें मान्य App Check टोकन नहीं होगा.