適用於Android的FIDO2 API

FIDO2 API允許Android應用程序創建和使用經過驗證的基於公鑰的強大憑據,以對用戶進行身份驗證。該API提供了WebAuthn客戶端實現,該實現支持使用BLE,NFC和USB漫遊身份驗證器(安全密鑰)以及平台身份驗證器,該身份驗證器允許用戶使用其指紋或屏幕鎖進行身份驗證。

一體化

FIDO2 API入口點是Fido2ApiClient

該API支持兩種操作:

  • 當用戶將一個身份驗證者與一個帳戶相關聯時,每個帳戶的每個身份驗證者都完成一次註冊
  • 只要依賴方想驗證用戶身份,就完成簽名

註冊和簽名都需要用戶交互。

可以在https://github.com/android/security-samples/tree/master/Fido中找到演示API使用情況的示例應用程序。

與您的網站的互操作性

允許用戶在您的網站和Android應用程序之間無縫共享憑據很簡單。為此,請利用Digital Asset Links 。您可以通過以下方式聲明關聯:在網站上託管Digital Asset Links JSON文件,然後將指向Digital Asset Link文件的鏈接添加到應用程序的清單中。

例如,如果要將https://example.com與Android應用程序com.example.android相關聯,則需要執行以下3個步驟:

步驟1.在您的域中託管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抓取,並帶有HTTP標頭Content-Type: application/json

在您的Android應用中,將以下行添加到清單文件中的<application>

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

步驟3.將asset_statements字符串資源添加到strings.xml文件

asset_statements字符串是一個JSON對象,用於指定要加載的assetlinks.json文件。您必須對字符串中使用的所有撇號和引號進行轉義。例如:

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

要了解有關將應用程序和網站關聯的更多信息,請閱讀Android文檔上SmartLock for Passwords