Android के लिए FIDO2 API

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

इंटिग्रेशन

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

यह एपीआई दो तरह की कार्रवाइयों के साथ काम करता है:

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

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

एपीआई के इस्तेमाल को दिखाने वाला एक सैंपल ऐप्लिकेशन, 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" />

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

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

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

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