FIDO2 API を使用すると、Android アプリで、ユーザーを認証する目的で、実証済みの強力な公開鍵ベースの認証情報を作成して使用できます。この API は、BLE、NFC、USB ローミング認証システム(セキュリティ キー)の使用をサポートするプラットフォーム WebAuthn クライアントの実装と、指紋または画面ロックを使用して認証できるプラットフォーム認証システムを提供します。
Integration
FIDO2 API のエントリ ポイントは Fido2ApiClient です。
API は次の 2 つのオペレーションをサポートしています。
登録と署名の両方にユーザー操作が必要です。
API の使用方法を示すサンプル アプリは、https://github.com/android/identity-samples/tree/main/Fido2 にあります。
ウェブサイトとの相互運用
ユーザーがウェブサイトと Android アプリで認証情報をシームレスに共有することは簡単です。これを行うには、デジタル アセット リンクを利用します。関連付けを行うには、ウェブサイトでデジタル アセット リンクの JSON ファイルをホストし、アプリのマニフェストにデジタル アセット リンクのファイルへのリンクを追加します。
たとえば、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 アプリリンクのドキュメントをご覧ください。
手順 2: Android アプリで assetlinks.json
にリンクする
Android アプリで、マニフェスト ファイルの <application>
の下に次の行を追加します。
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
手順 3. strings.xml ファイルに asset_statements
文字列リソースを追加する
asset_statements
文字列は、読み込む assetlinks.json
ファイルを指定する JSON オブジェクトです。文字列で使用するアポストロフィや引用符はエスケープする必要があります。例:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>
アプリとウェブサイトを関連付ける方法について詳しくは、Android での Smart Lock for Passwords のドキュメントをご覧ください。