FIDO2 API 允许 Android 应用创建和使用经过验证且基于公钥的强大凭据,以验证用户身份。该 API 提供 WebAuthn 客户端实现(支持使用 BLE、NFC 和 USB 漫游身份验证器(安全密钥))以及平台身份验证器(允许用户使用指纹或屏幕锁定进行身份验证)。
集成
FIDO2 API 入口点是 Fido2ApiClient。
该 API 支持两种操作:
注册和签名都需要用户互动。
可在 https://github.com/android/identity-samples/tree/main/Fido2 处找到一个演示 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
提供。
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 上的 SmartLock for Passwords 文档。