Android के लिए FIDO2 API

FIDO2 API की मदद से, Android ऐप्लिकेशन उपयोगकर्ताओं की पुष्टि करने के लिए, सार्वजनिक कुंजी पर आधारित मज़बूत और पुष्टि किए गए क्रेडेंशियल बना सकते हैं और उनका इस्तेमाल कर सकते हैं. यह एपीआई, WebAuthn क्लाइंट को लागू करने की सुविधा देता है. यह BLE, एनएफ़सी, और यूएसबी रोमिंग ऑथेंटिकेटर (सुरक्षा कुंजियां) के साथ-साथ प्लैटफ़ॉर्म ऑथेंटिकेटर का इस्तेमाल करता है. प्लैटफ़ॉर्म ऑथेंटिकेटर की मदद से, उपयोगकर्ता अपने फ़िंगरप्रिंट या स्क्रीन लॉक का इस्तेमाल करके पुष्टि कर सकता है.

इंटिग्रेशन

FIDO2 API का एंट्री पॉइंट, Fido2ApiClient है.

एपीआई दो तरह के काम करता है:

  • जब उपयोगकर्ता किसी खाते के साथ Authenticator ऐप्लिकेशन को असोसिएट करता है, तो हर खाते के लिए हर Authenticator ऐप्लिकेशन को रजिस्टर करने की ज़रूरत होती है.
  • जब भी भरोसा करने वाला पक्ष किसी उपयोगकर्ता की पुष्टि करना चाहता है, तब हस्ताक्षर किया जाता है.

रजिस्टर करने और साइन इन करने के लिए, उपयोगकर्ता के इंटरैक्शन की ज़रूरत होती है.

एपीआई के इस्तेमाल को दिखाने वाला सैंपल ऐप्लिकेशन, https://github.com/android/identity-samples/tree/main/Fido2 पर देखा जा सकता है.

आपकी वेबसाइट के साथ काम करना

उपयोगकर्ताओं को आपकी वेबसाइट और Android ऐप्लिकेशन पर क्रेडेंशियल आसानी से शेयर करने की अनुमति देना आसान है. ऐसा करने के लिए, डिजिटल ऐसेट लिंक का इस्तेमाल करें. अपनी वेबसाइट पर डिजिटल ऐसेट लिंक की JSON फ़ाइल होस्ट करके और अपने ऐप्लिकेशन के मेनिफ़ेस्ट में डिजिटल ऐसेट लिंक फ़ाइल का लिंक जोड़कर, असोसिएशन का एलान किया जा सकता है.

उदाहरण के लिए, अगर आपको https://example.com को किसी Android ऐप्लिकेशन com.example.android से जोड़ना है, तो यहां दिए गए तीन चरणों का पालन करें:

पहला चरण. अपने डोमेन पर assetlinks.json को होस्ट करना

इस तरह की JSON फ़ाइल बनाएं और इसे https://example.com/.well-known/assetlinks.json पर होस्ट करें.

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "web",
      "site" : "https://example.com"
    }
  },
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "android_app",
      "package_name" : "com.example.android",
      "sha256_cert_fingerprints" : [
         "DE:AD:BE:EF"
      ]
    }
  }
]

पक्का करें कि इसे Google क्रॉल कर सके और इसे एचटीटीपी हेडरContent-Type: application/json के साथ दिखाया जा सके.

sha256_cert_fingerprints, आपके ऐप्लिकेशन के साइनिंग सर्टिफ़िकेट के SHA256 फ़िंगरप्रिंट हैं. ज़्यादा जानकारी के लिए, Android ऐप्लिकेशन के लिंक से जुड़े दस्तावेज़ देखें.

अपने Android ऐप्लिकेशन में, <application> में मौजूद मेनिफ़ेस्ट फ़ाइल में यह लाइन जोड़ें:

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

तीसरा चरण. strings.xml फ़ाइल में asset_statements स्ट्रिंग रिसॉर्स जोड़ना

asset_statements स्ट्रिंग एक JSON ऑब्जेक्ट है, जो लोड करने के लिए assetlinks.json फ़ाइलों के बारे में बताता है. आपको स्ट्रिंग में इस्तेमाल किए गए अपॉस्ट्रफ़ और कोटेशन मार्क को एस्केप करना होगा. उदाहरण के लिए:

<string name="asset_statements" translatable="false">
[{
  \"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>

अपने ऐप्लिकेशन और वेबसाइट को जोड़ने के बारे में ज़्यादा जानने के लिए, Android पर पासवर्ड के लिए स्मार्टलॉक दस्तावेज़ पढ़ें.