适用于 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 相关联,必须执行以下三个步骤:

第 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 提供。

sha256_cert_fingerprints 是应用签名证书的 SHA256 指纹。如需了解详情,请参阅 Android App Links 文档

在 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(密码专用)文档