FIDO2 API memungkinkan aplikasi Android membuat dan menggunakan kredensial berbasis kunci publik yang kuat dan telah disahkan untuk tujuan mengautentikasi pengguna. API ini menyediakan implementasi Klien WebAuthn, yang mendukung penggunaan pengautentikasi roaming BLE, NFC, dan USB (kunci keamanan) serta pengautentikasi platform, yang memungkinkan pengguna melakukan autentikasi menggunakan sidik jari atau kunci layar.
Integrasi
Titik entri FIDO2 API adalah Fido2ApiClient.
API ini mendukung dua operasi:
- Pendaftaran dilakukan sekali per pengautentikasi per akun, saat pengguna mengaitkan pengautentikasi dengan akun.
- Penandatanganan dilakukan setiap kali pihak tepercaya ingin mengautentikasi pengguna.
Pendaftaran dan penandatanganan memerlukan interaksi pengguna.
Contoh aplikasi yang menunjukkan penggunaan API dapat ditemukan di https://github.com/android/identity-samples/tree/main/Fido2.
Interoperabilitas dengan situs Anda
Sangat mudah bagi pengguna untuk membagikan kredensial dengan lancar di seluruh situs dan aplikasi Android Anda. Untuk melakukannya, manfaatkan Digital Asset Links. Anda dapat mendeklarasikan pengaitan dengan menghosting file JSON Digital Asset Links di situs, dan menambahkan link ke file Digital Asset Link ke manifes aplikasi.
Misalnya, jika Anda ingin mengaitkan https://example.com
dengan com.example.android
aplikasi Android, berikut 3 langkah yang diperlukan:
Langkah 1. Hosting assetlinks.json
di domain Anda
Buat file JSON seperti ini dan hosting di 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"
]
}
}
]
Pastikan URL tersebut dapat di-crawl dari Google dan ditayangkan dengan header HTTP Content-Type: application/json
.
sha256_cert_fingerprints
adalah sidik jari SHA256 dari sertifikat penandatanganan aplikasi Anda.
Temukan detail selengkapnya di dokumentasi Link Aplikasi Android.
Langkah 2: Tautkan ke assetlinks.json
di aplikasi Android
Di aplikasi Android Anda, tambahkan baris berikut ke file manifes di bagian <application>
:
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Langkah 3. Menambahkan resource string asset_statements
ke file strings.xml
String asset_statements
adalah objek JSON yang menentukan file assetlinks.json
untuk dimuat. Anda harus meng-escape apostrof dan tanda kutip yang Anda gunakan dalam
string. Contoh:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>
Untuk mempelajari lebih lanjut cara mengaitkan aplikasi dengan situs Anda, baca dokumentasi SmartLock untuk Sandi di Android.