FIDO2 API 允许 Android 应用创建和使用安全系数高且经过认证的基于公钥的凭据,以便对用户进行身份验证。该 API 提供了一个 WebAuthn 客户端实现,该实现支持使用 BLE、NFC 和 USB 漫游身份验证器(安全密钥)以及平台身份验证器,可让用户使用指纹或屏幕锁定方式进行身份验证。
集成
FIDO2 API 入口点是 Fido2ApiClient。
该 API 支持两种操作:
注册和签名都需要用户互动。
如需演示 API 用法的示例应用,请访问 https://github.com/android/identity-samples/tree/main/Fido2。
与您的网站交互操作
您可以轻松允许用户在网站和 Android 应用之间无缝共享凭据。为此,请使用 Digital Asset Links。如需声明关联,您可以在自己的网站上托管一个 Digital Asset Links JSON 文件,并将指向 Digital Asset Links 文件的链接添加到应用的清单中。
例如,如果您要将 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
。
sha256_cert_fingerprints
是应用签名证书的 SHA256 指纹。如需了解详情,请参阅 Android App Links 文档。
第 2 步:在 Android 应用中链接到“assetlinks.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 上的 Smart Lock(密码专用)文档。