यह पेज अपने-आप अनुवादित किया गया है। मूल अंग्रेज़ी संस्करण पढ़ें यहाँ.
| दृष्टिकोण | अडॉप्शन | पासकी बनाएँ | पासकी का उपयोग करें | पासकी प्रबंधित करें | तकनीकी जटिलता | OAuth सपोर्ट |
|---|---|---|---|---|---|---|
| नेटिव इम्प्लीमेंटेशन | 🟢🟢🟢 | उच्च अडॉप्शन, बेहतरीन UX, सीमलेस बायोमेट्रिक | तुरंत, साइलेंट ऑथेंटिकेशन | पूर्ण नेटिव नियंत्रण | मध्यम-उच्च | अलग फ्लो की आवश्यकता |
| सिस्टम WebView | 🟢🟢 | अच्छा अडॉप्शन, ब्राउज़र जैसा अनुभव | मानक ब्राउज़र UX, शेयर्ड कीचेन | ब्राउज़र-आधारित प्रबंधन | कम | बेहतरीन |
| एम्बेडेड WebView | 🟢 | कम अडॉप्शन, अधिक सेटअप की आवश्यकता | नेटिव सपोर्ट iOS और Android (WebKit 1.12.1+), कोई Conditional UI नहीं | सीमित नियंत्रण | मध्यम-उच्च | लागू नहीं |
नोट: सिस्टम और एम्बेडेड WebView को अक्सर संयोजित किया जाता है जहां सिस्टम WebView लॉगिन (स्वचालित क्रेडेंशियल शेयरिंग के साथ) संभालता है, फिर एम्बेडेड WebView सेटिंग्स में पासकी प्रबंधन प्रस्तुत करता है।
मुख्य निर्णय कारक:
आधुनिक मोबाइल प्लेटफ़ॉर्म आपके नेटिव ऐप में पासकी को एकीकृत करने के लिए तीन अलग-अलग दृष्टिकोण प्रदान करते हैं, जिनमें से प्रत्येक में उपयोगकर्ता अनुभव, तकनीकी जटिलता और OAuth संगतता के लिए अलग-अलग ट्रेड-ऑफ़ हैं:
नेटिव इम्प्लीमेंटेशन: प्लेटफ़ॉर्म API (iOS AuthenticationServices, Android Credential Manager) का उपयोग करके सीधे अपने ऐप में पासकी फ्लो बनाएँ। सीमलेस बायोमेट्रिक ऑथेंटिकेशन के साथ बेहतरीन उपयोगकर्ता अनुभव प्रदान करता है, लेकिन इसके लिए मध्यम से उच्च तकनीकी कार्यान्वयन प्रयास की आवश्यकता होती है।
सिस्टम WebView: ऑथेंटिकेशन को संभालने के लिए प्लेटफ़ॉर्म के ब्राउज़र घटक (iOS ASWebAuthenticationSession / SFSafariViewController, Android Chrome Custom Tabs) का उपयोग करें। OAuth-आधारित लॉगिन फ्लो के लिए बेहतरीन और सिस्टम ब्राउज़र के साथ क्रेडेंशियल साझा करता है।
एम्बेडेड WebView: नेटिव ऐप स्केलेटन के साथ वेब ऑथेंटिकेशन का पुन: उपयोग करने के लिए अपने ऐप के भीतर एक अनुकूलन योग्य वेब व्यू (iOS WKWebView, Android WebView) एम्बेड करें। URL बार के बिना एक नेटिव जैसा रूप और वेब व्यू UI पर पूर्ण नियंत्रण प्रदान करता है। पासकी कार्यक्षमता को सक्षम करने के लिए अतिरिक्त सेटअप की आवश्यकता होती है जिसमें अनुमतियाँ और एंटाइटेलमेंट (iOS), और AndroidX WebKit 1.12.1+ (Android) के साथ WebView कॉन्फ़िगरेशन शामिल है।
सही विकल्प आपके ऐप के ऑथेंटिकेशन आर्किटेक्चर पर निर्भर करता है, चाहे आप OAuth प्रदाताओं का उपयोग करते हों, आपको UI पर कितना नियंत्रण चाहिए और क्या आप नेटिव-फर्स्ट बना रहे हैं या वेब घटकों का पुन: उपयोग कर रहे हैं।
एक नेटिव पासकी इम्प्लीमेंटेशन इष्टतम उपयोगकर्ता अनुभव प्रदान करता है, जिसमें प्लेटफ़ॉर्म-विशिष्ट API का उपयोग करके आपके ऐप के UI में सीधे ऑथेंटिकेशन फ्लो बनाए जाते हैं। उपयोगकर्ता प्लेटफ़ॉर्म-नेटिव संवादों, सीमलेस बायोमेट्रिक सत्यापन और सबसे तेज़ संभव लॉगिन समय से लाभान्वित होते हैं।
नेटिव इम्प्लीमेंटेशन कब चुनें:
preferImmediatelyAvailableCredentials का उपयोग कर सकते हैं, जिससे पहचानकर्ता
प्रविष्टि की आवश्यकता के बिना सबसे तेज़ लॉगिन अनुभव मिलता हैमुख्य लाभ: preferImmediatelyAvailableCredentials()
नेटिव इम्प्लीमेंटेशन एक
स्वचालित पासकी ओवरले
बनाने के लिए preferImmediatelyAvailableCredentials() का लाभ उठा सकते हैं जो पासकी उपलब्ध
होने पर ऐप शुरू होने पर तुरंत दिखाई देता है। यह यूजरनेमलेस फ्लो सबसे तेज़ संभव लॉगिन अनुभव
प्रदान करता है-उपयोगकर्ता पहले पहचानकर्ता दर्ज किए बिना अपनी पासकी तुरंत देखते हैं। यह
क्षमता विशेष रूप से नेटिव इम्प्लीमेंटेशन के लिए है और WebView वेरिएंट में उपलब्ध नहीं
है।
नीचे दिया गया आरेख स्पष्ट करता है कि कैसे नेटिव ऑथेंटिकेशन WebView के Conditional UI दृष्टिकोण की तुलना में तेज़ उपयोगकर्ता यात्रा प्रदान करता है:
नेटिव का स्वचालित ओवरले उच्च पासकी उपयोग दरों के साथ बेहतर UX प्रदान करता है क्योंकि ऑथेंटिकेशन ऐप लॉन्च होने पर तुरंत शुरू होता है, जबकि WebView कार्यान्वयन के लिए उपयोगकर्ताओं को पहले इनपुट फ़ील्ड के साथ बातचीत करने की आवश्यकता होती है।
तकनीकी आवश्यकताएँ अवलोकन:
नेटिव पासकी एकीकरण के लिए आपके ऐप और वेब डोमेन के बीच क्रिप्टोग्राफ़िक विश्वास की आवश्यकता होती है। इसके बिना, OS सभी WebAuthn ऑपरेशनों को अस्वीकार कर देगा। मुख्य आवश्यकताएँ:
/.well-known/ पर होस्ट की गई ऐप-डोमेन एसोसिएशन फ़ाइलेंप्रमुख लाभ: आपकी वेबसाइट पर बनाई गई पासकी आपके ऐप में मूल रूप से काम करती हैं और इसके विपरीत।
iOS पर मूल रूप से पासकी लागू करने में Apple का AuthenticationServices फ्रेमवर्क शामिल है, जो WebAuthn ऑपरेशनों के लिए एक API प्रदान करता है:
मुख्य घटक:
ASAuthorizationController: ऑथेंटिकेशन फ्लो का प्रबंधन करता हैASAuthorizationPlatformPublicKeyCredentialProvider: पासकी अनुरोध बनाता हैडेवलपमेंट टिप्स
?mode=developer जोड़ेंAndroid का नेटिव पासकी इम्प्लीमेंटेशन Credential Manager API (या बैकवर्ड संगतता के लिए पुराना FIDO2 API) का उपयोग करता है:
Enterprise Passkey व्हाइटपेपर. passkey कार्यक्रमों के लिए व्यावहारिक मार्गदर्शन, रोलआउट पैटर्न और KPIs।
मुख्य घटक:
CredentialManager: सभी क्रेडेंशियल ऑपरेशनों के लिए केंद्रीय APICreatePublicKeyCredentialRequest: पासकी पंजीकरण के लिएGetCredentialRequest: पासकी ऑथेंटिकेशन के लिएनोट: Android में वर्तमान में नेटिव ऐप्स में iOS के Conditional UI कीबोर्ड सुझावों का अभाव है (हालाँकि Conditional UI वेब ऐप्स में काम करता है)
पासकी को मूल रूप से लागू करने में महत्वपूर्ण चुनौतियाँ हैं और सीखे गए सबक हैं: OS स्तर पर एकीकृत करने से विभिन्न उपकरणों और OS संस्करणों में समस्याएँ सामने आ सकती हैं।
जबकि आप कच्चे प्लेटफ़ॉर्म API का उपयोग करके पासकी लागू कर सकते हैं, उद्देश्य-निर्मित SDK WebAuthn जटिलता, एज मामलों को संभालकर और बिल्ट-इन टेलीमेट्री प्रदान करके विकास में काफी तेजी लाते हैं। SDK यूनिट परीक्षण के लिए मॉकेबल इंटरफेस भी प्रदान करते हैं (महत्वपूर्ण क्योंकि आप सिमुलेटर में बायोमेट्रिक्स का परीक्षण नहीं कर सकते)।
अनुशंसा: नेटिव इम्प्लीमेंटेशन के लिए, हम Corbado SDKs (iOS Swift Passkey SDK, Android Kotlin Passkey SDK) का उपयोग करने की अनुशंसा करते हैं जो उत्पादन तैनाती के माध्यम से खोजे गए कई एज मामलों को संभालते हैं, अतिरिक्त टेलीमेट्री और परीक्षण प्रदान करते हैं।
Igor Gjorgjioski
Head of Digital Channels & Platform Enablement, VicRoads
We hit 80% mobile passkey activation across 5M+ users without replacing our IDP.
See how VicRoads scaled passkeys to 5M+ users — alongside their existing IDP.
Read the case studyसिस्टम WebViews आपके ऐप के भीतर ऑथेंटिकेशन को संभालने के लिए प्लेटफ़ॉर्म के नेटिव ब्राउज़र घटक का उपयोग करते हैं। पूरी तरह से नेटिव इम्प्लीमेंटेशन के विपरीत, सिस्टम WebViews वास्तविक सिस्टम ब्राउज़र (iOS पर Safari, Android पर Chrome) का उपयोग करके वेब सामग्री प्रदर्शित करते हैं, शेयर्ड कुकीज़, सहेजे गए क्रेडेंशियल्स और परिचित ब्राउज़र सुरक्षा संकेतकों को बनाए रखते हैं।
सिस्टम WebView कब चुनें:
मुख्य लाभ:
प्लेटफ़ॉर्म घटक:
ASWebAuthenticationSession (ऑथेंटिकेशन फ्लो के लिए अनुशंसित) या
SFSafariViewController (सामान्य ब्राउज़िंग)Google और GitHub जैसी प्रमुख कंपनियों ने मौजूदा वेब ऑथेंटिकेशन पेजों पर WebView ओवरले के माध्यम से अपने मोबाइल ऐप में पासकी लॉगिन जोड़ने के लिए इस दृष्टिकोण को अपनाया। यह तब अच्छी तरह से काम करता है जब पूरी तरह से नेटिव ऑथेंटिकेशन पुनर्निर्माण तुरंत संभव नहीं होता है।
iOS ऑथेंटिकेशन के लिए दो प्राथमिक सिस्टम WebView घटक प्रदान करता है:
ASWebAuthenticationSession (ऑथेंटिकेशन के लिए अनुशंसित):
SFSafariViewController (सामान्य ब्राउज़िंग):
| सुविधा | ASWebAuthenticationSession | SFSafariViewController |
|---|---|---|
| प्राथमिक उपयोग केस | ऑथेंटिकेशन फ्लो | सामान्य वेब ब्राउज़िंग |
| OAuth/OIDC | बेहतरीन | अच्छा |
| पासकी सपोर्ट | हाँ | हाँ |
| अनुकूलन | सीमित | न्यूनतम |
यदि आपका ऐप OAuth-आधारित लॉगिन का उपयोग करता है, तो ASWebAuthenticationSession
अनुशंसित विकल्प है क्योंकि यह विशेष रूप से ऑथेंटिकेशन परिदृश्यों के लिए डिज़ाइन किया गया
है और सुरक्षा और उपयोगकर्ता अनुभव का सर्वोत्तम संतुलन प्रदान करता है।
Chrome Custom Tabs (CCT) आपके ऐप के भीतर क्रोम-संचालित ऑथेंटिकेशन अनुभव प्रदान करते हैं:
मुख्य विशेषताएं:
OAuth एकीकरण: Chrome Custom Tabs iOS ASWebAuthenticationSession के Android समकक्ष हैं, जो संग्रहीत पासकीज़ तक पहुंच बनाए रखते हुए उत्कृष्ट OAuth समर्थन प्रदान करते हैं।
Live demo में passkeys आज़माएं.
एम्बेडेड WebViews आपके ऐप के भीतर वेब सामग्री रेंडरिंग पर पूर्ण नियंत्रण प्रदान करते हैं, जिससे URL बार के बिना कुकीज़, सत्र और नेविगेशन में सीधे हेरफेर की अनुमति मिलती है। हालाँकि, यह नियंत्रण पासकी कार्यक्षमता को सक्षम करने के लिए अतिरिक्त तकनीकी आवश्यकताओं के साथ आता है।
एम्बेडेड WebView कब चुनें:
महत्वपूर्ण संदर्भ:
कई ऐप हाइब्रिड दृष्टिकोण का उपयोग करते हैं: सिस्टम WebView प्रारंभिक OAuth ऑथेंटिकेशन (जहाँ पासकी मूल रूप से काम करती हैं) को संभालता है, फिर सेटिंग्स में पासकी को प्रबंधित करने के लिए पोस्ट-ऑथेंटिकेशन के लिए एम्बेडेड WebView पर स्विच करें। चुनौतियां तब उत्पन्न होती हैं जब एम्बेडेड WebViews के भीतर सीधे पासकी का उपयोग करने का प्रयास किया जाता है।
तकनीकी आवश्यकताएँ:
एम्बेडेड WebViews को सिस्टम WebViews की तुलना में अतिरिक्त सेटअप की आवश्यकता होती है:
प्लेटफ़ॉर्म घटक:
WKWebViewandroid.webkit.WebViewट्रेड-ऑफ़:
WebViews के माध्यम से पासकी लागू करते समय, सिस्टम WebViews और एम्बेडेड WebViews के बीच के अंतर को समझना महत्वपूर्ण है। ऊपर बताए गए तीन दृष्टिकोण (नेटिव इम्प्लीमेंटेशन, सिस्टम WebView, और एम्बेडेड WebView) प्रत्येक अलग-अलग उपयोग के मामलों की सेवा करते हैं।
iOS पर, आपके पास इन-ऐप वेब सामग्री प्रदर्शित करने के लिए कई विकल्प हैं:
Android पर, मुख्य विकल्प हैं:
android.webkit.WebView) है, जो अनिवार्य रूप से
एक मिनी ब्राउज़र है जिसे आपकी गतिविधियों में एम्बेड किया जा सकता है। यह अत्यधिक अनुकूलन
योग्य है लेकिन आपके ऐप की प्रक्रिया में चलता है।निम्नलिखित अनुभागों में, हम iOS और Android के लिए इन WebView प्रकारों में थोड़ा गहराई से उतरेंगे, और चर्चा करेंगे कि पासकी ऑथेंटिकेशन फ्लो के लिए कौन सा सबसे उपयुक्त हो सकता है।
Latest news के लिए हमारे Passkeys Substack को subscribe करें.
Apple का प्लेटफ़ॉर्म ऊपर सूचीबद्ध तीन WebView विकल्प प्रदान करता है। आपकी पसंद इस बात को प्रभावित करेगी कि ऐप के अंदर पासकी का कितनी आसानी से उपयोग किया जा सकता है:
iOS में विभिन्न WebView व्यवहार के परीक्षण के लिए, हम ऐप WebView - WKWebView and UIWebView rendering की अनुशंसा करते हैं।
WKWebView iOS के लिए एक बहुमुखी WebView घटक है। डेवलपर्स UI और व्यवहार पर उच्च स्तर के नियंत्रण के साथ वेब सामग्री रेंडर करने के लिए एक WKWebView एम्बेड कर सकते हैं। WKWebView Safari के समान रेंडरिंग इंजन का उपयोग करता है, इसलिए यह बहुत ही प्रदर्शनकारी है और आधुनिक वेब सुविधाओं का समर्थन करता है। सिद्धांत रूप में, यदि सही तरीके से कॉन्फ़िगर किया गया है तो WKWebView WebAuthn (और इस प्रकार पासकी) को संभाल सकता है, लेकिन ध्यान दें कि सुरक्षा के लिए कुछ उन्नत ब्राउज़र सुविधाएँ प्रतिबंधित हो सकती हैं। ध्यान रखने वाली एक बात यह है कि WKWebView डिफ़ॉल्ट रूप से Mobile Safari के साथ कुकीज़ या कीचेन डेटा साझा नहीं करता है। उपयोगकर्ताओं को नए सिरे से लॉग इन करना पड़ सकता है क्योंकि उनका WebView सत्र Safari के सत्र से अलग है। इसके अलावा, क्योंकि WKWebView सामग्री को ऐप द्वारा पूरी तरह से अनुकूलित किया जा सकता है, उपयोगकर्ता को एड्रेस बार या Safari UI दिखाई नहीं देता है - जो ब्रांडिंग के लिए बहुत अच्छा है, लेकिन इसका मतलब है कि उपयोगकर्ता के पास पृष्ठ की वैधता (एंटी-फ़िशिंग के लिए एक चिंता) को सत्यापित करने के लिए कम संकेत हैं। कुछ ऐप्स ने स्क्रिप्ट इंजेक्ट करने या सामग्री बदलने के लिए WKWebView का दुरुपयोग भी किया है (उदा. TikTok को उनके इन-ऐप ब्राउज़र के माध्यम से ट्रैकिंग JS इंजेक्ट करने के लिए नोट किया गया था), इसलिए WKWebView का सुरक्षित, उपयोगकर्ता-भरोसेमंद तरीके से उपयोग करने के लिए सावधान रहना चाहिए।
SFSafariViewController एक इन-ऐप Safari अनुभव प्रदान करता है। जब आप SFSafariViewController के साथ एक URL खोलते हैं, तो यह लगभग इसे वास्तविक Safari ब्राउज़र में खोलने जैसा है, सिवाय इसके कि उपयोगकर्ता आपके ऐप के UI के भीतर रहता है। पासकी के लिए लाभ महत्वपूर्ण है: क्योंकि यह अनिवार्य रूप से Safari है, उपयोगकर्ता का iCloud Keychain और सहेजी गई पासकी सुलभ हैं। ध्यान दें कि कुकीज़ iOS 11+ पर साझा नहीं की जाती हैं। इसका मतलब है कि यदि उपयोगकर्ता के पास पहले से ही आपकी साइट के लिए पासकी है, तो Safari इसे ढूंढ सकता है और आसान लॉगिन के लिए Conditional UI स्वत: पूर्ण भी प्रदर्शित कर सकता है। SFSafariViewController कम अनुकूलन योग्य है (आप इसके टूलबार को ज्यादा नहीं बदल सकते हैं), लेकिन यह स्वचालित रूप से बहुत सारी सुरक्षा और गोपनीयता सुविधाओं को संभालता है। HTTPS के लिए पैडलॉक आइकन के साथ URL बार दिखाया गया है, जो उपयोगकर्ताओं को विश्वास दिलाता है कि वे सही डोमेन पर हैं। सामान्य तौर पर, SFSafariViewController को एक कच्चे WKWebView की तुलना में अधिक सुरक्षित माना जाता है और इसे लागू करना आसान है (Apple इसे ड्रॉप-इन के रूप में प्रदान करता है)। मुख्य ट्रेड-ऑफ़ यह है कि आप लुक और फील पर कुछ नियंत्रण का त्याग करते हैं। एक ऑथेंटिकेशन फ्लो के लिए, वह आमतौर पर स्वीकार्य है। यहाँ प्राथमिकता सुरक्षा और लॉगिन में आसानी है, जिसमें SFSafariViewController Safari के संदर्भ का उपयोग करके उत्कृष्ट है।
| WKWebView | SFSafariViewController | |
|---|---|---|
| उपयोगकर्ता अनुभव | - नेटिव फीलिंग: उपयोगकर्ताओं को लग सकता है कि वेब सामग्री ऐप का एक नेटिव हिस्सा है क्योंकि डेवलपर्स ऐप के डिज़ाइन से मेल खाने के लिए रूप और अनुभव को अनुकूलित कर सकते हैं। - ऑटोफिल: Safari से डेटा के साथ ऑटोफिल संभव है | - सीमलेस: उपयोगकर्ता की Safari सेटिंग्स का उपयोग करके नेटिव ऐप और ब्राउज़र के बीच लगातार वेब ब्राउज़िंग सुनिश्चित करते हुए सीमलेस उपयोगकर्ता अनुभव। |
| डेवलपर अनुभव | - अत्यधिक अनुकूलन योग्य: व्यापक अनुकूलन और कॉन्फ़िगरेशन उपलब्ध - लचीला: वेब सामग्री के साथ बातचीत करने के लिए कई API | - मध्यम अनुकूलन योग्य: WKWebView की तुलना में सीमित अनुकूलन विकल्प, - सरल: WKWebView की तुलना में लागू करने में सरल |
| प्रदर्शन | - काफी धीमा: कार्यान्वयन और वेब सामग्री के आधार पर, लोडिंग गति को अनुकूलित किया जा सकता है, लेकिन कस्टम सुविधाओं और इंटरैक्शन के अतिरिक्त प्रसंस्करण के कारण SFSafariViewController की तुलना में अभी भी धीमा हो सकता है। | - काफी तेज़: आमतौर पर बेहतर प्रदर्शन प्रदान करता है क्योंकि यह Safari इंजन का लाभ उठाता है, जो गति और दक्षता के लिए अनुकूलित है, वेब पेजों के लिए तेज़ लोडिंग समय प्रदान करता है। |
| विश्वास और मान्यता | - URL प्रदर्शन आवश्यक नहीं: WKWebView अक्सर URL नहीं दिखाता है, जिससे उपयोगकर्ताओं के लिए वेबपेज को सत्यापित करना कठिन हो जाता है। दुर्भावनापूर्ण ऐप्स के लिए इस व्यवहार की नकल करने और क्रेडेंशियल्स को फ़िश करने की संभावना। | - ब्राउज़र जैसा अनुभव: Safari का उपयोग करके वेब पेज रेंडर करता है, "ब्राउज़र जैसा" अनुभव प्रदान करता है। उपयोगकर्ता URL देख सकते हैं और Safari की ऑटो-फिल सुविधाओं तक पहुंच सकते हैं, संभावित रूप से परिचित इंटरफ़ेस के कारण अधिक विश्वास पैदा कर सकते हैं। |
| अलगाव | - अलग: कुकीज़ और सत्र Safari से अलग होते हैं; उपयोगकर्ता स्वचालित रूप से WKWebView में लॉग इन नहीं होंगे। | - अलग: कुकीज़ और सत्र Safari से अलग होते हैं; उपयोगकर्ता स्वचालित रूप से SFSafariViewController में भी लॉग इन नहीं होंगे। |
| भेद्यताएं | - सुरक्षित: Apple की ऐप सैंडबॉक्सिंग के कारण स्वाभाविक रूप से सुरक्षित, लेकिन व्यवहार और सुरक्षा ऐप के कार्यान्वयन पर निर्भर करते हैं। यदि सही ढंग से लागू नहीं किया गया तो संभावित भेद्यताएं। | - अधिक सुरक्षित: एंटी-फ़िशिंग और दुर्भावनापूर्ण वेबसाइट चेतावनियों सहित Safari की अंतर्निहित सुरक्षा सुविधाओं से लाभान्वित होता है। आमतौर पर इन सुविधाओं और Safari के साथ उपयोगकर्ता की परिचितता के कारण WKWebView की तुलना में वेब सामग्री प्रदर्शित करने के लिए अधिक सुरक्षित माना जाता है। |
| अन्य | - सुविधाएँ उपलब्ध नहीं: सुरक्षा चिंताओं और एप्लिकेशन संदर्भ में चलने वाले WKWebView के कारण कुछ ब्राउज़र सुविधाएँ (उदा., WebAuthn) पूरी तरह से सुलभ नहीं हो सकती हैं। - JavaScript इंजेक्शन: कुछ ऐप, उदा. TikTok अपने इन-ऐप WKWebView में ट्रैकिंग JavaScript इंजेक्ट करते हैं, या उपयोगकर्ता नियंत्रक को प्रतिबंधित करते हैं (उदा. Facebook) - गोपनीयता संबंधी समस्याएं: गोपनीयता के संबंध में अधिक सामुदायिक प्रतिक्रिया | - कोई JavaScript इंजेक्शन नहीं: ऐप से JavaScript के निष्पादन की अनुमति नहीं देता है, सुरक्षा और गोपनीयता को बढ़ाता है। इसके अलावा यह JavaScript अलर्ट या पुष्टिकरण का समर्थन नहीं करता है, संभावित रूप से कुछ वेब पेजों पर उपयोगकर्ता अनुभव को प्रभावित करता है। - रीडर मोड: लेखों के साफ, पढ़ने में आसान संस्करण के लिए एक रीडर मोड प्रदान करता है। |
SFAuthenticationSession / ASWebAuthenticationSession – ये क्लास (बाद वाला नया स्विफ्ट-अनुकूल नाम है) विशेष रूप से OAuth या OpenID Connect जैसे लॉगिन फ्लो के लिए बनाए गए हैं। जब आपको वेब पेज (शायद किसी बाहरी IdP) के माध्यम से उपयोगकर्ता को ऑथेंटिकेट करने की आवश्यकता होती है, तो ये सत्र iOS पर अनुशंसित विकल्प हैं। वे SFSafariViewController के समान हैं क्योंकि वे हुड के तहत Safari ब्राउज़र का उपयोग करते हैं और Safari के साथ कुकीज़/स्टोरेज साझा करते हैं। मुख्य अंतर यह है कि SFAuthenticationSession हमेशा उपयोगकर्ता को संकेत देगा कि ऐप वेबपेज (उपयोगकर्ता जागरूकता के लिए) का उपयोग करके ऑथेंटिकेट करना चाहता है और यह स्वचालित रूप से उपयोगकर्ता के मौजूदा Safari सत्र का उपयोग करेगा यदि उपलब्ध हो।
लाभ एक निर्बाध SSO अनुभव है - यदि उपयोगकर्ता पहले से ही Safari में प्रदाता में लॉग इन है, तो यह सत्र किसी अन्य लॉगिन से बचने के लिए उस कुकी का उपयोग कर सकता है। पासकी के लिए, यह महत्वपूर्ण है क्योंकि इसका मतलब है कि Safari/iCloud Keychain में संग्रहीत किसी भी पासकी क्रेडेंशियल का यहां भी उपयोग किया जा सकता है। Apple का आधिकारिक मार्गदर्शन किसी भी चीज़ के लिए ASWebAuthenticationSession का उपयोग करना है जो लॉगिन फ्लो जैसा दिखता है। फायदे बढ़ी हुई गोपनीयता हैं (आपका ऐप कभी भी क्रेडेंशियल या कुकीज़ नहीं देखता है, Safari इसे संभालता है) और बिल्ट-इन SSO समर्थन। नुकसान यह है कि यह ऑथ फ्लो तक सीमित है (आप इसका उपयोग अपने ऐप में केवल मनमानी वेब सामग्री रेंडर करने के लिए नहीं करेंगे)। संक्षेप में, यदि आप iOS पर एक WebView दृष्टिकोण चुनते हैं, तो ASWebAuthenticationSession आमतौर पर पासकी लागू करने के लिए सबसे अच्छा विकल्प है क्योंकि यह सुरक्षित है, Safari के साथ स्थिति साझा करता है और ऑथेंटिकेशन के लिए उद्देश्य-निर्मित है।
देखें कि वास्तव में कितने लोग passkeys इस्तेमाल करते हैं.
Android पर, WebView का निर्णय क्लासिक WebView और Chrome Custom Tabs के बीच है:
Android में विभिन्न WebView व्यवहार के परीक्षण के लिए, हम ऐप WebView vs Chrome Custom Tabs की अनुशंसा करते हैं।
Android WebView (android.webkit.WebView) एक घटक है जो आपको अपनी गतिविधि लेआउट में वेब पेज एम्बेड करने देता है। यह WKWebView के समान है जिसमें यह आपको पूर्ण नियंत्रण देता है: आप नेविगेशन को रोक सकते हैं, JavaScript इंजेक्ट कर सकते हैं, UI को अनुकूलित कर सकते हैं, आदि। यह आपके ऐप की प्रक्रिया के भीतर भी चलता है। पासकी के लिए WebView का उपयोग करने का अर्थ है कि आपका ऐप आपका वेब लॉगिन पेज लोड करता है, और वह पेज WebAuthn पासकी समारोह शुरू कर सकता है। आधुनिक Android WebView WebAuthn का समर्थन करता है (बशर्ते डिवाइस का WebView कार्यान्वयन Android System WebView या Chrome घटक के माध्यम से अद्यतित हो)। एक प्रमुख विचार: डिफ़ॉल्ट रूप से, एक Android WebView उपयोगकर्ता के Chrome ब्राउज़र के साथ कुकीज़ या संग्रहीत क्रेडेंशियल साझा नहीं करता है। इसलिए WebView में बनाई गई या उपयोग की जाने वाली कोई भी पासकी Chrome को ज्ञात नहीं हो सकती है, और इसके विपरीत। यह अलगाव सुरक्षा के लिए अच्छा हो सकता है (आपका ऐप ब्राउज़र कुकीज़ नहीं पढ़ सकता है), लेकिन यह उपयोगकर्ताओं को फिर से लॉग इन करने के लिए बाध्य कर सकता है यदि उन्होंने पहले ही Chrome में ऑथेंटिकेट कर लिया है। एक और मुद्दा विश्वास का है। एक सादा WebView URL या SSL लॉक आइकन नहीं दिखाता है, इसलिए उपयोगकर्ताओं को पूरी तरह से आपके ऐप पर भरोसा करना होगा कि उन्हें फ़िश न करें। संभावित फ़िशिंग जोखिमों के कारण Google ने Google OAuth साइन-इन के लिए WebView के उपयोग को भी मना कर दिया है। प्रदर्शन के लिहाज से, WebViews ठीक हैं, लेकिन वे उपयोगकर्ता के डिफ़ॉल्ट ब्राउज़र का उपयोग करने की तुलना में धीमे या अधिक मेमोरी-गहन हो सकते हैं, खासकर यदि भारी पृष्ठ लोड कर रहे हों।
Chrome Custom Tabs (CCT) एक हाइब्रिड दृष्टिकोण है। वे आपके ऐप को क्रोम-रेंडर किया गया पेज खोलने की अनुमति देते हैं जो ऐसा लगता है कि यह आपके ऐप का हिस्सा है। आप टूलबार के रंग को अनुकूलित कर सकते हैं, ऐप लोगो जोड़ सकते हैं, आदि, लेकिन सामग्री एक अलग प्रक्रिया में Chrome द्वारा रेंडर की जाती है। पासकी के लिए, CCT के कई लाभ हैं: वे Chrome ब्राउज़र के साथ उपयोगकर्ता की कुकीज़ और क्रेडेंशियल साझा करते हैं, जिसका अर्थ है कि यदि उपयोगकर्ता के पास Chrome (Google Password Manager) के माध्यम से सहेजी गई पासकी है, तो कस्टम टैब उस तक पहुंच सकता है। उपयोगकर्ता वास्तविक URL और सुरक्षा संकेतक भी देखेगा, जो विश्वास पैदा करता है। प्रदर्शन अक्सर बेहतर होता है - तेज़ लोडिंग के लिए Chrome को पृष्ठभूमि में "वार्म अप" किया जा सकता है। और महत्वपूर्ण बात यह है कि सुरक्षा मजबूत है: क्योंकि यह अनिवार्य रूप से Chrome ऐप है, Google सुरक्षित ब्राउज़िंग जैसी चीजें सत्र की रक्षा करती हैं, और आपका ऐप पेज में मनमानी स्क्रिप्ट इंजेक्ट नहीं कर सकता है (कुछ हमलों को रोकना)।
नुकसान यह है कि इसके लिए उपयोगकर्ता को Chrome (या एक समर्थित ब्राउज़र) स्थापित और अप-टू-डेट होना आवश्यक है। अधिकांश Android उपयोगकर्ता करते हैं, लेकिन कुछ क्षेत्रों में कुछ उपकरणों पर, यह एक समस्या हो सकती है। कुल मिलाकर, यदि आप Android पर एक एम्बेडेड वेब दृष्टिकोण के साथ जाते हैं, तो पासकी फ्लो के लिए Chrome Custom Tabs की अनुशंसा की जाती है, क्योंकि वे एकीकरण और सुरक्षा का अच्छा संतुलन प्रदान करते हैं। वास्तव में, वे कई मायनों में iOS के SFSafariViewController/ASWebAuthSession के अनुरूप हैं - ऑथ के लिए डिफ़ॉल्ट ब्राउज़र का लाभ उठाना।
(एक तरफ: Apple के WKWebView बनाम SFSafariViewController और Android के WebView बनाम CCT में कई समानताएँ हैं। दोनों Safari VC और Chrome Tabs ब्राउज़र स्थिति साझा करते हैं और बेहतर सुरक्षा प्रदान करते हैं, जबकि WKWebView/Android WebView अधिक नियंत्रण देते हैं लेकिन वेब सामग्री को अलग करते हैं। पासकी के लिए, स्थिति साझा करना (कुकीज़, क्रेडेंशियल स्टोर) आमतौर पर वांछनीय है ताकि पासकी को आसानी से एक्सेस किया जा सके और बनाया जा सके।)
| सुविधा | WebView | Chrome Custom Tab |
|---|---|---|
| उपयोगकर्ता अनुभव | - लचीलापन: वेब सामग्री के साथ बातचीत करने और उपयोगकर्ता इंटरैक्शन प्रबंधित करने के लिए API का एक समृद्ध सेट प्रदान करता है, जिसमें JavaScript संवादों और अनुमति अनुरोधों को संभालना शामिल है। - निरंतरता: एक सुसंगत UX प्रबंधित करना, विशेष रूप से विविध वेब सामग्री के साथ, चुनौतीपूर्ण हो सकता है। | - ब्राउज़र सुविधाएँ: डेटा सेवर जैसी सुविधाएँ साझा करता है और सभी उपकरणों में AutoComplete सिंक्रनाइज़ करता है। - बैक बटन: एकीकृत बैक बटन के साथ उपयोगकर्ताओं को आसानी से ऐप पर लौटने की अनुमति देता है। - निर्भरता: Chrome ऐप पर निर्भर करता है, जो सभी उपयोगकर्ता उपकरणों पर उपलब्ध या अपडेट नहीं हो सकता है - ब्राउज़र पर रीडायरेक्ट करें: कुछ कार्यात्मकताएँ उपयोगकर्ताओं को Chrome ऐप पर रीडायरेक्ट कर सकती हैं, जिससे उपयोगकर्ता अनुभव बाधित हो सकता है। - आंशिक कस्टम टैब: Chrome Custom Tab के लिए स्क्रीन के केवल एक हिस्से का उपयोग किया जा सकता है जबकि शेष नेटिव ऐप दिखाता है - साइड-शीट: लैंडस्केप मोड में और बड़ी स्क्रीन वाले उपकरणों पर, Chrome Custom Tab केवल स्क्रीन के एक तरफ प्रदर्शित होता है, जबकि शेष स्क्रीन नेटिव ऐप दिखाती है |
| डेवलपर अनुभव | - अत्यधिक अनुकूलन योग्य: व्यापक अनुकूलन विकल्प/आवश्यकताएं प्रदान करता है। - इंटरैक्टिविटी: वेब सामग्री के साथ बातचीत करने और उपयोगकर्ता इंटरैक्शन प्रबंधित करने के लिए कई API प्रदान करता है। | - अनुकूलन योग्य: टूलबार रंग, एक्शन बटन, बॉटम टूलबार, कस्टम मेनू आइटम और इन/आउट एनिमेशन के अनुकूलन की अनुमति देता है। - कॉलबैक: बाहरी नेविगेशन पर एप्लिकेशन को कॉलबैक प्रदान करता है। - सुरक्षा सुविधाएँ: आउट-ऑफ़-द-बॉक्स सुविधाएँ प्रदान करता है, अनुरोधों, अनुमति अनुदानों या कुकी स्टोर को प्रबंधित करने की आवश्यकता को समाप्त करता है। |
| प्रदर्शन | - औसत प्रदर्शन: Chrome Custom Tabs (CCT) के प्रदर्शन के समान स्तर की पेशकश नहीं कर सकता है | - प्री-वार्मिंग: पृष्ठ लोड समय बढ़ाने के लिए पृष्ठभूमि में ब्राउज़र का प्री-वार्मिंग और URL की सट्टा लोडिंग शामिल है। - प्राथमिकता: कस्टम टैब लॉन्च करने वाले ऐप्स को इसके उपयोग के दौरान इसके महत्व को "अग्रभूमि" स्तर तक बढ़ाकर बेदखल होने से रोकता है। |
| विश्वास और मान्यता | - URL और SSL दृश्यमान नहीं: URL और SSL जानकारी WebView में स्वाभाविक रूप से दिखाई नहीं देती है। जब तक ऐप डेवलपर इन सुविधाओं को लागू नहीं करता, तब तक उपयोगकर्ताओं को पता नहीं चलेगा कि वे सही वेबसाइट पर हैं या फ़िशिंग साइट पर। | - URL और SSL दृश्यमान: पृष्ठ रेंडर करने के लिए वास्तविक Chrome ब्राउज़र का उपयोग करता है। उपयोगकर्ता URL और SSL प्रमाणपत्र देख सकते हैं (यह दर्शाते हुए कि क्या कनेक्शन सुरक्षित है)। यह उपयोगकर्ताओं को विश्वास प्रदान कर सकता है कि वे किसी फ़िशिंग साइट पर नहीं हैं। |
| अलगाव | - ऐप की प्रक्रिया के भीतर चलता है: यदि किसी ऐप में कोई भेद्यता है जो दुर्भावनापूर्ण कोड निष्पादन की अनुमति देती है, तो एक जोखिम है कि WebView से समझौता किया जा सकता है। हालाँकि, WebView अपडेट भी प्राप्त करता है, लेकिन इसका व्यवहार और सुरक्षा इसका उपयोग करने वाले ऐप पर अधिक निर्भर हो सकती है। - कोई कुकी / सत्र साझाकरण नहीं: डिवाइस के मुख्य ब्राउज़र के साथ कुकीज़ या सत्र साझा नहीं करता है, अलगाव की पेशकश करता है लेकिन संभवतः उपयोगकर्ताओं को फिर से लॉग इन करने की आवश्यकता होती है। | - Chrome की प्रक्रिया के भीतर चलता है: Chrome का हिस्सा होने के नाते, कस्टम टैब एक ही प्रक्रिया में चलते हैं और Chrome के समान सुरक्षा अपडेट और सुविधाएँ रखते हैं। - शेयर्ड कुकी जार और अनुमतियाँ मॉडल: यह सुनिश्चित करता है कि उपयोगकर्ताओं को साइटों में फिर से साइन इन नहीं करना पड़े या अनुमतियाँ फिर से नहीं देनी पड़े। - Chrome सेटिंग्स और प्राथमिकताएँ: Chrome की सेटिंग्स और प्राथमिकताओं का उपयोग करता है। |
| भेद्यताएं | - क्रेडेंशियल्स चुराने के लिए कॉलबैक: संभावित भेद्यताओं में शामिल है कि कभी-कभी JavaScript की आवश्यकता होती है जो अन्य ऐप्स के लिए दुर्भावनापूर्ण कोड चलाने का द्वार खोलती है, जैसे कॉलबैक पंजीकृत करना जो उपयोगकर्ता नाम और पासवर्ड को रोकने का प्रयास करते हैं। - फ़िशिंग: इसके अतिरिक्त, एक दुर्भावनापूर्ण ऐप एक और वेब पेज खोल सकता है जो फ़िशिंग प्रयास में लिंक फ्लो की नकल करता है। | - Google सुरक्षित ब्राउज़िंग: उपयोगकर्ता और डिवाइस दोनों को खतरनाक साइटों से बचाने के लिए Google की सुरक्षित ब्राउज़िंग का उपयोग करता है। - सुरक्षित ब्राउज़र सजावट: यह सुनिश्चित करता है कि उपयोगकर्ता हमेशा सटीक URL देखे जिसके साथ वे बातचीत कर रहे हैं और वेबसाइट की प्रमाणपत्र जानकारी देख सकता है, जिससे फ़िशिंग का जोखिम कम हो जाता है। इसके अलावा, कस्टम टैब JavaScript इंजेक्शन की अनुमति नहीं देते हैं। |
| अन्य | - Google ने Google खातों में लॉगिन करने वाले उपयोगकर्ताओं के लिए WebViews पर प्रतिबंध लगा दिया है |
चाहे आप कोई भी कार्यान्वयन दृष्टिकोण चुनें, पासकी कार्यक्षमता को सक्षम करने के लिए कुछ तकनीकी आवश्यकताएं पूरी की जानी चाहिए। यह अनुभाग प्रसिद्ध एसोसिएशन फ़ाइलों, iOS एंटाइटेलमेंट और Android WebView कॉन्फ़िगरेशन को कॉन्फ़िगर करने पर व्यापक मार्गदर्शन प्रदान करता है।
प्रबंधित उपकरणों पर ध्यान दें: प्रबंधित उपकरणों पर पासकी व्यवहार महत्वपूर्ण रूप से बदल जाता है जहाँ मोबाइल डिवाइस प्रबंधन (MDM) नीतियाँ क्रेडेंशियल स्टोरेज को नियंत्रित करती हैं। प्रबंधित उपकरणों पर पासकी के परीक्षण के लिए, प्रबंधित iOS और Android उपकरणों पर पासकीज़ देखें।
नेटिव और एम्बेडेड WebView फ्लो को आपके ऐप और वेब डोमेन के बीच क्रिप्टोग्राफ़िक विश्वास स्थापित करने के लिए एसोसिएशन फ़ाइलों की आवश्यकता होती है। सिस्टम WebView (ASWebAuthenticationSession) और Chrome Custom Tabs को ऐप-टू-साइट एसोसिएशन की आवश्यकता नहीं होती है।
AASA फ़ाइल आपके iOS ऐप और आपके वेब डोमेन के बीच संबंध स्थापित करती है, जिससे पासकी दोनों प्लेटफ़ॉर्म पर काम कर सकती है।
फ़ाइल स्थान: https://yourdomain.com/.well-known/apple-app-site-association
कॉन्फ़िगरेशन आवश्यकताएँ:
/.well-known/apple-app-site-association पर होस्ट करेंapplication/json.well-known पथ पर कोई रीडायरेक्ट नहींउदाहरण AASA फ़ाइल:
{ "webcredentials": { "apps": ["TEAMID123.com.example.app"] } }
AASA कैशिंग और परीक्षण:
Apple एक CDN का उपयोग करके AASA फ़ाइलों (24-48 घंटे तक) को आक्रामक रूप से कैश करता है, जो विकास और परीक्षण को निराश कर सकता है। विकास के दौरान कैशिंग को बायपास करने के लिए:
?mode=developer जोड़ें⚠️ महत्वपूर्ण: उत्पादन रिलीज़ में ?mode=developer का उपयोग न करें। यह पैरामीटर केवल
विकास के लिए है-उत्पादन में इसका उपयोग करने से iOS को आपकी AASA फ़ाइल का ठीक से पता लगाने
से रोका जा सकेगा, जिससे पासकी कार्यक्षमता टूट जाएगी।
सत्यापन: अपने कॉन्फ़िगरेशन को सत्यापित करने के लिए Apple's AASA Validator का उपयोग करें।
Android आपके ऐप और वेबसाइट के बीच संबंध को सत्यापित करने के लिए Digital Asset Links का उपयोग करता है।
फ़ाइल स्थान: https://yourdomain.com/.well-known/assetlinks.json
कॉन्फ़िगरेशन आवश्यकताएँ:
/.well-known/assetlinks.json पर होस्ट करेंapplication/jsonउदाहरण assetlinks.json फ़ाइल:
[ { "relation": [ "delegate_permission/common.handle_all_urls", "delegate_permission/common.get_login_creds" ], "target": { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": [ "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99" ] } } ]
सत्यापन: अपना कॉन्फ़िगरेशन बनाने और सत्यापित करने के लिए Google's Digital Asset Links Generator का उपयोग करें।
पासकी कार्यक्षमता तक पहुँचने के लिए iOS ऐप्स को उचित एंटाइटेलमेंट की आवश्यकता होती है। आपके कार्यान्वयन दृष्टिकोण के आधार पर आवश्यकताएं थोड़ी भिन्न होती हैं।
एंटाइटेलमेंट फ़ाइल (अक्सर Flutter ऐप्स में
Runner.entitlements या नेटिव iOS प्रोजेक्ट्स में YourApp.entitlements नामित) Apple के
सिस्टम द्वारा दी गई विशेष अनुमतियों और क्षमताओं को परिभाषित करती है। पासकी के लिए, यह
फ़ाइल Associated Domains को कॉन्फ़िगर करती है।
फ़ाइल स्थान: आमतौर पर ios/Runner/Runner.entitlements पर आपके Xcode प्रोजेक्ट में
नेटिव इम्प्लीमेंटेशन और एम्बेडेड WebView को आपके ऐप को आपके वेब डोमेन से जोड़ने के लिए Associated Domains क्षमता की आवश्यकता होती है। सिस्टम WebView (ASWebAuthenticationSession) को इसकी आवश्यकता नहीं है क्योंकि यह Safari संदर्भ में चलता है।
Xcode में सेटअप:
webcredentials: उपसर्ग के साथ अपना डोमेन जोड़ेंउदाहरण कॉन्फ़िगरेशन:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.developer.associated-domains</key> <array> <string>webcredentials:yourdomain.com</string> <string>webcredentials:subdomain.yourdomain.com</string> </array> </dict> </plist>
| दृष्टिकोण | Associated Domains आवश्यक | अतिरिक्त कॉन्फ़िगरेशन |
|---|---|---|
| नेटिव इम्प्लीमेंटेशन | हाँ | समर्पित कार्यान्वयन |
| सिस्टम WebView | आवश्यक नहीं | डिफ़ॉल्ट वेब सेटअप काम करता है |
| एम्बेडेड WebView | हाँ | AndroidX WebKit 1.12.1+ कॉन्फ़िगरेशन की आवश्यकता है |
एकाधिक डोमेन: यदि आपके ऐप को कई डोमेन के साथ काम करने की आवश्यकता है तो आपको Related Origin Requests (ROR) की आवश्यकता हो सकती है।
Android एम्बेडेड WebViews दो अलग-अलग दृष्टिकोणों के माध्यम से पासकी का समर्थन करते हैं: नया WebKit-आधारित दृष्टिकोण (अनुभाग 5.3.1) और पुराना JavaScript ब्रिज दृष्टिकोण (अनुभाग 5.3.2)। सिस्टम WebView (Chrome Custom Tabs) को किसी कॉन्फ़िगरेशन की आवश्यकता नहीं है-क्रेडेंशियल स्वचालित रूप से काम करते हैं।
Android दोनों कार्यान्वयन दृष्टिकोणों को प्रदर्शित करते हुए आधिकारिक WebView पासकी नमूने प्रदान करता है।
नेटिव पासकी हैंडलिंग के साथ आधुनिक WebKit एकीकरण। यह दृष्टिकोण कस्टम ब्रिज कोड की आवश्यकता के बिना नेटिव WebAuthn समर्थन प्रदान करता है।
आधिकारिक नमूना: Webkit WebView MainActivity
आवश्यकताएँ:
कार्यान्वयन:
import androidx.webkit.WebSettingsCompat import androidx.webkit.WebViewFeature // Check if Web Authentication is supported if (WebViewFeature.isFeatureSupported(WebViewFeature.WEB_AUTHENTICATION)) { // Enable Web Authentication WebSettingsCompat.setWebAuthenticationSupport( webView.settings, WebSettingsCompat.WEB_AUTHENTICATION_SUPPORT_FOR_APP ) // Enable JavaScript webView.settings.javaScriptEnabled = true }
मुख्य बिंदु:
WebViewFeature.WEB_AUTHENTICATION की जांच
करेंmediation:"conditional" (इनपुट फ़ील्ड में पासकी
ऑटोफिल) एम्बेडेड WebView में काम नहीं करता हैसंस्करण नोट्स:
AndroidX WebKit 1.12.0 से पहले, एम्बेडेड WebView में नेटिव WebAuthn समर्थन मौजूद नहीं था। यह पुराना दृष्टिकोण बिना नेटिव WebView WebAuthn समर्थन वाले उपकरणों के लिए पासकी को संभालने के लिए वेब-टू-नेटिव ब्रिज का उपयोग करता है।
आधिकारिक नमूने:
कब उपयोग करें: पुराने Android संस्करणों या विरासत WebView कार्यान्वयन वाले उपकरणों का समर्थन करना।
टीमों को या तो करना पड़ा:
विस्तृत कार्यान्वयन के लिए, Android's Credential Manager WebView Integration guide देखें। हालाँकि, हम आधुनिक ऐप्स के लिए नेटिव WebKit 1.12.1+ दृष्टिकोण का उपयोग करने की दृढ़ता से अनुशंसा करते हैं।
अनुशंसा: AndroidX WebKit 1.12.1+ के साथ नेटिव WebAuthn समर्थन का उपयोग करें। यदि रनटाइम पर अनुपलब्ध है, तो Chrome Custom Tabs पर वापस आएं जो साझा क्रेडेंशियल्स के साथ उत्कृष्ट पासकी समर्थन प्रदान करता है।
नेटिव ऐप्स में पासकी लागू करते समय, आपको अपने ऐप और वेब डोमेन के बीच विश्वास स्थापित करने की आवश्यकता होती है। यह अनुभाग कवर करता है कि सिंगल डोमेन, एकाधिक संबंधित डोमेन (ROR) को कैसे संभालना है और यह कैसे सत्यापित करना है कि आपकी प्रसिद्ध एसोसिएशन फ़ाइलें ठीक से कॉन्फ़िगर की गई हैं।
एकल डोमेन (उदा. kayak.com) का उपयोग करने वाले ऐप्स के लिए, आपको आवश्यकता है:
webcredentials:kayak.com के साथ कॉन्फ़िगर किया गया Associated Domains एंटाइटेलमेंटRelated Origins (ROR) एक WebAuthn
सुविधा है जो पासकी के एक सेट को कई संबंधित डोमेन (उदा. kayak.com, kayak.de,
kayak.co.uk) में काम करने की अनुमति देती है।
ROR संबंधित उत्पत्ति को परिभाषित
करने के लिए प्रत्येक साइट पर /.well-known/webauthn एंडपॉइंट का उपयोग करता है, न कि AASA
या assetlinks फ़ाइलें।
मुख्य बिंदु:
/.well-known/webauthn होस्ट करता हैकॉन्फ़िगरेशन उदाहरण:
यदि आपका ऐप kayak.com और kayak.de के साथ काम करता है, तो दोनों डोमेन को चाहिए:
लाइव होने से पहले, सत्यापित करें कि आपकी प्रसिद्ध फ़ाइलें ठीक से कॉन्फ़िगर और सुलभ हैं। Apple और Google फ़ाइल उपलब्धता की जांच करने के लिए CDN-आधारित परीक्षण URL प्रदान करते हैं:
| डोमेन | Apple AASA Verification | Google Digital Asset Links Verification |
|---|---|---|
| kayak.com | Test AASA file जाँचें कि क्या Apple CDN आपकी फ़ाइल ला सकता है | Test assetlinks.json सत्यापित करें कि Google आपके एसेट लिंक तक पहुंच सकता है |
| kayak.de | Test AASA file जाँचें कि क्या Apple CDN आपकी फ़ाइल ला सकता है | Test assetlinks.json सत्यापित करें कि Google आपके एसेट लिंक तक पहुंच सकता है |
इन परीक्षण URL का उपयोग करना:
?nocache=1 पैरामीटर ताज़ा पुनर्प्राप्ति को बाध्य करता है, CDN कैश को दरकिनार
करता हैkayak.com या kayak.de को बदलेंपरीक्षण गोचा: सुनिश्चित करें कि सभी डोमेन में ठीक से कॉन्फ़िगर की गई प्रसिद्ध फ़ाइलें हैं। किसी भी डोमेन पर एक गायब या गलत कॉन्फ़िगर की गई फ़ाइल उस डोमेन के लिए पासकी कार्यक्षमता को तोड़ सकती है।
अधिक जानकारी: नेटिव ऐप्स में WebAuthn Relying Party ID
सही कार्यान्वयन दृष्टिकोण चुनना आपके ऐप के ऑथेंटिकेशन आर्किटेक्चर, OAuth आवश्यकताओं और सत्र नियंत्रण की आवश्यकता पर निर्भर करता है। आगे बढ़ने का सबसे अच्छा मार्ग निर्धारित करने के लिए इस निर्णय ट्री का उपयोग करें।
निम्नलिखित फ़्लोचार्ट आपके ऐप की आवश्यकताओं के आधार पर सही कार्यान्वयन दृष्टिकोण का चयन करने में आपका मार्गदर्शन करता है:
प्रत्येक पथ के लिए त्वरित संदर्भ:
यहाँ बताया गया है कि प्रत्येक दृष्टिकोण प्रमुख आयामों में कैसा प्रदर्शन करता है:
| दृष्टिकोण | पासकी बनाएँ | पासकी का उपयोग करें | पासकी प्रबंधित करें | तकनीकी जटिलता | OAuth सपोर्ट | सेटअप समय |
|---|---|---|---|---|---|---|
| नेटिव इम्प्लीमेंटेशन | उच्च अडॉप्शन सीमलेस बायोमेट्रिक, बेहतरीन UX | तुरंत, साइलेंटpreferImmediatelyAvailableCredentials ऐप शुरू होने पर स्वचालित ओवरले सक्षम करता है | पूर्ण नेटिव नियंत्रण ऐप सेटिंग्स के साथ एकीकृत करें | मध्यम-उच्च प्लेटफ़ॉर्म-विशिष्ट API | अलग OAuth फ्लो कार्यान्वयन की आवश्यकता है | सप्ताहों से महीनों |
| सिस्टम WebView | अच्छा अडॉप्शन ब्राउज़र जैसा अनुभव, परिचित | मानक ब्राउज़र UX इनपुट फ़ील्ड में Conditional UI, शेयर्ड कीचेन | ब्राउज़र-आधारित उपयोगकर्ता ब्राउज़र के माध्यम से प्रबंधित करते हैं | कम न्यूनतम नेटिव कोड | बेहतरीन OAuth के लिए उद्देश्य-निर्मित | दिनों से सप्ताहों |
| एम्बेडेड WebView | कम अडॉप्शन कॉन्फ़िगरेशन की आवश्यकता है | नेटिव WebAuthn सपोर्ट WebKit 1.12.1+, कोई Conditional UI नहीं | सीमित नियंत्रण कोई नेटिव एकीकरण नहीं | मध्यम-उच्च WebView कॉन्फ़िगरेशन + अनुमतियाँ | कॉन्फ़िगरेशन की आवश्यकता है | 1-2 सप्ताह |
आयाम स्पष्टीकरण:
अनुशंसित: सिस्टम WebView
यदि आपका ऐप OAuth2, OIDC या सोशल लॉगिन प्रदाताओं (Google, GitHub, Microsoft, आदि) के माध्यम से ऑथेंटिकेट करता है, तो सिस्टम WebView इष्टतम विकल्प है:
ASWebAuthenticationSession OAuth फ्लो के लिए उद्देश्य-निर्मित हैउदाहरण: Travel ऐप्स जैसे kayak.com और kayak.de ऑथेंटिकेशन के लिए OAuth का उपयोग करते हैं। सिस्टम WebView उन्हें अपने वेब ऑथेंटिकेशन पेजों के माध्यम से पासकी समर्थन जोड़ते हुए अपने मौजूदा OAuth बुनियादी ढांचे को बनाए रखने की अनुमति देता है।
अनुशंसित: हाइब्रिड दृष्टिकोण
प्रारंभिक OAuth ऑथेंटिकेशन के लिए सिस्टम WebView का उपयोग करें, फिर पोस्ट-ऑथ सत्रों के लिए एम्बेडेड WebView का:
कब उपयोग करें: ऐसे ऐप्स जो OAuth के माध्यम से ऑथेंटिकेट करते हैं लेकिन फिर ऑथेंटिकेटेड वेब सामग्री प्रदर्शित करने की आवश्यकता होती है जहाँ प्रत्यक्ष सत्र हेरफेर की आवश्यकता होती है।
अनुशंसित: नेटिव इम्प्लीमेंटेशन
शुरू से बना रहे हैं या नेटिव स्क्रीन हैं? पूरी तरह से नेटिव जाएं:
preferImmediatelyAvailableCredentials का उपयोग करें - जो विशेष
रूप से नेटिव इम्प्लीमेंटेशन के लिए है और उच्चतम रूपांतरण दरें प्रदान करता हैनए ऐप्स के लिए: पहले दिन से नेटिव लॉगिन बनाने की दृढ़ता से अनुशंसा करते हैं। आपको इष्टतम UX के लिए सेट करता है और भविष्य के WebView-से-नेटिव माइग्रेशन से बचाता है।
अनुशंसित: चरणबद्ध माइग्रेशन
निम्नलिखित आरेख वृद्धिशील माइग्रेशन पथ दिखाता है:
प्रत्येक चरण पिछले पर बनता है, मौजूदा उपयोगकर्ताओं को बाधित किए बिना वृद्धिशील सुधारों की अनुमति देता है।
| आवश्यकता | नेटिव | सिस्टम WebView | एम्बेडेड WebView |
|---|---|---|---|
| प्रसिद्ध फ़ाइलें (AASA/assetlinks) | आवश्यक | आवश्यक नहीं | आवश्यक |
| iOS Associated Domains | आवश्यक | आवश्यक नहीं | आवश्यक |
| Android WebKit Library | लागू नहीं | आवश्यक नहीं | आवश्यक (1.12.1+) |
| Relying Party ID | डोमेन से मेल खाना चाहिए | डोमेन से मेल खाना चाहिए | डोमेन से मेल खाना चाहिए |
विस्तृत कॉन्फ़िगरेशन निर्देशों के लिए अनुभाग 5 देखें।
नेटिव ऐप्स में पासकी के परीक्षण के लिए एक संरचित, बहु-स्तरीय दृष्टिकोण की आवश्यकता होती है। परीक्षण पिरामिड का पालन करें: यूनिट टेस्ट (पृथक तर्क), इंटीग्रेशन टेस्ट (सिमुलेटर/एमुलेटर पर WebAuthn समारोह) और सिस्टम टेस्ट (भौतिक उपकरणों पर एंड-टू-एंड)।
आवश्यक परीक्षण श्रेणियां:
स्वचालन रणनीतियों, प्लेटफ़ॉर्म-विशिष्ट गोचा और एक पूर्ण प्री-फ़्लाइट चेकलिस्ट सहित व्यापक परीक्षण मार्गदर्शन के लिए, हमारी समर्पित मार्गदर्शिका देखें: नेटिव iOS और Android ऐप्स में पासकी फ्लो का परीक्षण।
पारंपरिक लॉगिन (पासवर्ड, OAuth) के सफल होने के बाद उपयोगकर्ताओं को पासकी बनाने के लिए प्रेरित करने पर विचार करें। यह क्रमिक रूपांतरण दृष्टिकोण:
उदाहरण: सिस्टम WebView के माध्यम से OAuth लॉगिन के बाद, एक नेटिव प्रॉम्प्ट दिखाएं: "Face ID के साथ तेज़ लॉगिन सक्षम करें?" यदि स्वीकार किया जाता है, तो सिस्टम WebView में लोड किए गए वेब पेज के माध्यम से पासकी बनाएं।
पासकी को कैसे लागू किया जाए यह तय करना - नेटिव इम्प्लीमेंटेशन, सिस्टम WebView या एम्बेडेड WebView के माध्यम से एक महत्वपूर्ण डिज़ाइन विकल्प है जो सुरक्षा, उपयोगकर्ता अनुभव और विकास जटिलता को प्रभावित करता है। कोई एक आकार-फिट-सभी उत्तर नहीं है।
OAuth-आधारित ऐप्स के लिए: सिस्टम WebView (ASWebAuthenticationSession, Chrome Custom Tabs) अनुशंसित प्रारंभिक बिंदु है। यह बेहतरीन OAuth सपोर्ट, न्यूनतम कार्यान्वयन प्रयास और स्वचालित क्रेडेंशियल शेयरिंग प्रदान करता है।
नेटिव-फर्स्ट ऐप्स के लिए: बाद में नेटिव जाने के बजाय जल्द जाएं। एक नेटिव पासकी लॉगिन
preferImmediatelyAvailableCredentials जैसी विशिष्ट क्षमताओं के साथ सबसे सहज UX प्रदान
करता है, जो
ऐप शुरू होने पर स्वचालित पासकी ओवरले
सक्षम करता है-कुछ ऐसा जो WebView कार्यान्वयन प्रदान नहीं कर सकते। iOS और Android अब पासकी
के लिए प्रथम श्रेणी का समर्थन प्रदान करने के साथ, वास्तविक दुनिया की सफलताएं उच्च अडॉप्शन
प्रदर्शित करती हैं। टूलिंग (ओपन-सोर्स SDK और प्लेटफ़ॉर्म लाइब्रेरी सहित) उचित समय सीमा में
नेटिव एकीकरण प्राप्त करने योग्य बनाने के लिए परिपक्व हो गई है। हालांकि आपको डिवाइस प्रबंधन
नीतियों, क्रॉस-डिवाइस सिंक और तृतीय-पक्ष प्रदाताओं के प्रति सचेत रहना चाहिए, इन चुनौतियों
को सावधानीपूर्वक इंजीनियरिंग और परीक्षण के साथ प्रबंधित किया जा सकता है। परिणाम एक ऐप
लॉगिन है जो अपनी आसानी और गति से उपयोगकर्ताओं को प्रसन्न करता है जबकि सुरक्षा में काफी
सुधार करता है।
एम्बेडेड WebView फ्रेम आवश्यकताओं के लिए: एम्बेडेड WebView का आमतौर पर दो वास्तविक दुनिया के परिदृश्यों में उपयोग किया जाता है। पहला, OAuth-आधारित ऐप्स अक्सर प्रारंभिक लॉगिन फ्लो के लिए सिस्टम WebView का उपयोग करते हैं, फिर सेटिंग्स स्क्रीन में पासकी प्रबंधन विकल्प रेंडर करने के लिए एम्बेडेड WebView पर स्विच करते हैं जहाँ सत्र नियंत्रण की आवश्यकता होती है-हालांकि कुछ ऐप दोनों फ्लो के लिए सिस्टम WebView रखकर इसे सरल बनाते हैं। दूसरा, ऐसे ऐप जो पहले से ही पासकी अपनाने से पहले WebView फ्रेम में अपने ऑथेंटिकेशन फ्लो को एम्बेड करते थे, वे स्थिरता के लिए इस पैटर्न को जारी रखते हैं। नेटिव WebAuthn सपोर्ट (AndroidX WebKit 1.12.1+) के साथ एम्बेडेड WebView को कॉन्फ़िगरेशन और सेटअप (अनुमतियाँ, एंटाइटेलमेंट, WebView सेटिंग्स) की आवश्यकता होती है, लेकिन अब कस्टम JavaScript ब्रिज कोड की आवश्यकता नहीं है। ध्यान दें कि एम्बेडेड WebView में Conditional UI समर्थित नहीं है। मौजूदा एम्बेडेड ऑथेंटिकेशन पैटर्न को बनाए रखने या जब आपको पोस्ट-ऑथेंटिकेशन स्क्रीन के लिए सत्र/कुकी नियंत्रण की आवश्यकता हो, तो इस दृष्टिकोण को चुनें।
अंततः, नेटिव ऐप्स में पासकी उपयोगकर्ता सुविधा और सुरक्षा दोनों में एक बड़ी छलांग का प्रतिनिधित्व करती है। चाहे नेटिव, सिस्टम WebView, या एम्बेडेड WebView के माध्यम से लागू किया गया हो, वे आपके उपयोगकर्ताओं के लिए फ़िशिंग जोखिम और पासवर्ड प्रबंधन के बोझ को समाप्त करते हैं। VicRoads के नेटिव ऐप पासकी इंटीग्रेशन जैसे वास्तविक दुनिया के कार्यान्वयन यह प्रदर्शित करते हैं कि नेटिव-फर्स्ट दृष्टिकोण उच्चतम उपयोगकर्ता अडॉप्शन और संतुष्टि प्रदान करते हैं जब स्वचालित पासकी ओवरले जैसी सुविधाओं के साथ ठीक से निष्पादित किया जाता है। उपयोगकर्ता के अनुकूल ऑथेंटिकेशन के लिए सर्वोत्तम प्रथाओं का पालन करते हुए और आपके ऐप के आर्किटेक्चर से मेल खाने वाले कार्यान्वयन दृष्टिकोण को चुनकर-नए ऐप्स के लिए नेटिव-फर्स्ट, OAuth फ्लो के लिए सिस्टम WebView, या मौजूदा एम्बेडेड पैटर्न के लिए एम्बेडेड WebView-आप पासवर्डलेस, बायोमेट्रिक लॉगिन की पेशकश कर सकते हैं जो वास्तव में पासकी के दृष्टिकोण को साकार करते हैं: सभी के लिए सरल, सुरक्षित और सुखद ऑथेंटिकेशन।
यदि आपके नेटिव ऐप में पासकी काम नहीं कर रही हैं, तो कार्यान्वयन दृष्टिकोण द्वारा इन सामान्य समस्याओं की जाँच करें:
application/json.well-known पथ पर कोई रीडायरेक्ट नहींhttps://your-domain.com (ऐप:// नहीं)webcredentials:yourdomain.com के साथ Xcode में Associated Domains क्षमता
सक्षम की गईASWebAuthenticationSession (अनुशंसित) या SFSafariViewController का उपयोग
करना?mode=developer के साथ परीक्षण करें (उत्पादन के लिए हटा दें)WebViewFeature.WEB_AUTHENTICATION के लिए रनटाइम फीचर जांचWEB_AUTHENTICATION_SUPPORT_FOR_APP के साथ setWebAuthenticationSupport()
कॉल किया गया"NotAllowedError: The request is not allowed by the user agent or the platform in the current context"
setWebAuthenticationSupport() कॉलकोई पासकी प्रॉम्प्ट प्रकट नहीं होता है
?mode=developer का
उपयोग करें, WebView प्रकार सत्यापित करेंविस्तृत डिबगिंग के लिए, नेटिव ऐप्स में Relying Party IDs पर हमारा लेख देखें।
एक सामान्य नुकसान: प्रतिबंधित पहुंच (IP व्हाइटलिस्टिंग, केवल-VPN) वाले स्टेजिंग वातावरण विफल हो जाएंगे क्योंकि Apple और Google CDN को आपकी एसोसिएशन फ़ाइलें लाने में सक्षम होना चाहिए।
https://app-site-association.cdn-apple.com/a/v1/your-staging-domain.com?nocache=1https://digitalassetlinks.googleapis.com/v1/statements:list/?source.web.site=https://your-staging-domain.com&relation=delegate_permission/common.handle_all_urlsउत्पादन rpID के साथ स्टेजिंग सबडोमेन:
यदि आपका स्टेजिंग वातावरण (उदा., stg.login.example.com) उत्पादन डोमेन का उपयोग rpID
(उदा., example.com) के रूप में करता है, तो AASA लुकअप rpID डोमेन पर होता है, आपके
स्टेजिंग सबडोमेन पर नहीं। इसका मतलब है:
उदाहरण (एक AASA साझा करने वाले कई वातावरण):
{ "webcredentials": { "apps": [ "TEAMID123.com.example.app", "TEAMID123.com.example.app.dev", "TEAMID123.com.example.app.stg", "TEAMID123.com.example.app.pre" ] } }
अनुशंसा: वातावरण के बीच क्रेडेंशियल ओवरलैप से बचने के लिए अपने स्टेजिंग डोमेन से मेल खाने वाली एक अलग स्टेजिंग rpID का उपयोग करें। इसके लिए स्टेजिंग डोमेन पर सार्वजनिक रूप से सुलभ AASA फ़ाइलों की आवश्यकता होती है।
?mode=developer स्पष्टीकरण:
Associated Domains में ?mode=developer पैरामीटर Apple के CDN कैश को बायपास करता है लेकिन
पहुंच आवश्यकता को बायपास नहीं करता है। आपकी AASA फ़ाइल अभी भी डिवाइस से पहुँच योग्य
होनी चाहिए (Apple के CDN के माध्यम से नहीं, बल्कि सीधे)। यह AASA परिवर्तनों पर पुनरावृति
करते समय विकास के दौरान मदद करता है, लेकिन यदि आपका स्टेजिंग सर्वर IP-व्हाइटलिस्टेड है तो
यह मदद नहीं करेगा।
Corbado नेटिव SDK:
प्लेटफ़ॉर्म दस्तावेज़ीकरण:
सत्यापन उपकरण:
Corbado बड़े पैमाने पर consumer authentication चलाने वाली CIAM टीमों के लिए Passkey Intelligence Platform है। हम आपको वह दिखाते हैं जो IDP logs और सामान्य analytics tools नहीं दिखा सकते: कौन-से devices, OS versions, browsers और credential managers passkeys को support करते हैं, क्यों enrollments login में नहीं बदलते, WebAuthn flow कहाँ fail होता है, और कब कोई OS या browser update चुपचाप login को तोड़ देता है — और यह सब Okta, Auth0, Ping, Cognito या आपके in-house IDP को बदले बिना। दो products: Corbado Observe जोड़ता है passkeys और किसी भी अन्य login method के लिए observability। Corbado Connect देता है analytics के साथ built-in managed passkeys (आपके IDP के साथ-साथ)। VicRoads, Corbado के साथ 5M+ users के लिए passkeys चला रहा है (+80% passkey activation)। Passkey विशेषज्ञ से बात करें →
विकल्प आपके ऑथेंटिकेशन आर्किटेक्चर पर निर्भर करता है। यदि आपका ऐप OAuth2 या OIDC का उपयोग करता है, तो सिस्टम WebView (iOS पर ASWebAuthenticationSession या Android पर Chrome Custom Tabs) को न्यूनतम कार्यान्वयन प्रयास की आवश्यकता होती है और कोई एसोसिएशन फ़ाइल सेटअप नहीं होता है। नए नेटिव-फर्स्ट ऐप्स के लिए, नेटिव इम्प्लीमेंटेशन बेहतर UX प्रदान करता है, जबकि एम्बेडेड WebView उन ऐप्स के लिए उपयुक्त है जो पहले से ही एक WebView फ्रेम में ऑथेंटिकेशन एम्बेड करते हैं और लॉगिन के बाद सत्र या कुकी नियंत्रण की आवश्यकता होती है।
SFSafariViewController Safari के इंजन का लाभ उठाता है, SSL संकेतकों के साथ URL बार दिखाता है और फ़िशिंग सुरक्षा प्रदान करता है, जिससे यह ऑथेंटिकेशन फ्लो के लिए अधिक भरोसेमंद हो जाता है। WKWebView अधिक UI अनुकूलन प्रदान करता है लेकिन इसमें Safari से अलग एक अलग कुकी स्टोर है, इसके लिए Associated Domains एंटाइटेलमेंट और पासकी को सक्षम करने के लिए एक AASA फ़ाइल की आवश्यकता होती है, और URL बार प्रदर्शित नहीं करता है, जिससे उपयोगकर्ता विश्वास संकेत कम हो जाते हैं।
Chrome Custom Tabs उपयोगकर्ता के Chrome ब्राउज़र के साथ कुकीज़ और संग्रहीत क्रेडेंशियल साझा करते हैं, जिसका अर्थ है कि Google Password Manager में सहेजी गई पासकी ऑथेंटिकेशन के दौरान सुलभ हैं। मानक Android WebView में एक अलग कुकी स्टोर होता है, URL या SSL संकेतक नहीं दिखाता है, और संभावित फ़िशिंग जोखिमों के कारण Google ने Google खाता साइन-इन के लिए इसे स्पष्ट रूप से प्रतिबंधित कर दिया है।
यदि किसी उपयोगकर्ता के पास सक्रिय प्रदाता के रूप में 1Password जैसा तृतीय-पक्ष क्रेडेंशियल मैनेजर सेट है, तो यह अक्सर पासकी निर्माण और भंडारण को रोक देगा, जो प्लेटफ़ॉर्म के नेटिव क्रेडेंशियल मैनेजर (iCloud Keychain या Google Password Manager) पर प्राथमिकता लेता है। इसका मतलब है कि क्रॉस-डिवाइस सिंक और पासकी प्रबंधन व्यवहार को प्रभावित करते हुए, पासकी प्लेटफ़ॉर्म कीचेन के बजाय तृतीय-पक्ष ऐप में संग्रहीत की जा सकती हैं।
जब MDM नीतियां क्रेडेंशियल सिंकिंग को अक्षम करती हैं, तो पासकी डिवाइस-बाउंड हो जाती हैं और एक प्रतिस्थापन डिवाइस पर रोम नहीं कर सकती हैं, जो सामान्य उपभोक्ता परिदृश्यों के विपरीत है। कॉर्पोरेट वातावरण को लक्षित करने वाले ऐप्स को उन मामलों को संभालने के लिए पासवर्ड या मैजिक लिंक लॉगिन जैसे फ़ॉलबैक ऑथेंटिकेशन तंत्र की योजना बनानी चाहिए जहाँ उपयोगकर्ता को एक नया प्रबंधित डिवाइस प्राप्त होता है।
संबंधित लेख
विषय सूची