Android के लिए FIDO2 API

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

एकीकरण

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

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

  • पंजीकरण प्रति खाता प्रति बार एक बार किया जाता है, जब उपयोगकर्ता एक प्रमाणीकरणकर्ता को एक खाते से जोड़ता है।
  • जब भी निर्भर पक्ष किसी उपयोगकर्ता को प्रमाणित करना चाहता है, तो हस्ताक्षर किए जाते हैं।

पंजीकरण और हस्ताक्षर दोनों के लिए उपयोगकर्ता सहभागिता की आवश्यकता होती है।

एपीआई उपयोग को प्रदर्शित करने वाला एक नमूना आवेदन https://github.com/android/security-samples/tree/master/Fido पर पाया जा सकता है।

अपनी वेबसाइट के साथ अंतर

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

उदाहरण के लिए, यदि आप https://example.com को एंड्रॉइड ऐप com.example.android साथ जोड़ना चाहते हैं, तो यहां 3 आवश्यक चरण हैं:

चरण 1। अपने डोमेन पर assetlinks.json होस्ट करें

इस तरह एक JSON फ़ाइल बनाएं और इसे https://example.com/.well-known/assetlinks.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 से क्रॉल करने योग्य है और HTTP हेडर Content-Type: application/json

अपने एंड्रॉइड ऐप में, <application> तहत मैनिफ़ेस्ट फ़ाइल में निम्न पंक्ति जोड़ें:

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

चरण 3. 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 प्रलेखन पर पासवर्ड के लिए स्मार्टलॉक पढ़ें।