API FIDO2 cho phép các ứng dụng Android tạo và sử dụng thông tin xác thực dựa trên khoá công khai mạnh mẽ, đã được chứng thực cho mục đích xác thực người dùng. API cung cấp hoạt động triển khai WebAuthn Client, hỗ trợ sử dụng trình xác thực BLE, NFC và USB chuyển đổi (khoá bảo mật) cũng như trình xác thực nền tảng, cho phép người dùng xác thực bằng vân tay hoặc phương thức khoá màn hình.
Tích hợp
Điểm truy cập API FIDO2 là Fido2ApiClient.
API này hỗ trợ hai thao tác:
- Việc đăng ký được thực hiện một lần cho mỗi trình xác thực cho mỗi tài khoản, khi người dùng liên kết một trình xác thực với một tài khoản.
- Quá trình ký được thực hiện bất cứ khi nào bên phụ thuộc muốn xác thực người dùng.
Cả quá trình đăng ký và ký đều cần phải có hoạt động tương tác của người dùng.
Bạn có thể xem một ứng dụng mẫu minh hoạ việc sử dụng API tại https://github.com/android/identity-samples/tree/main/Fido2.
Khả năng tương tác với trang web của bạn
Dễ dàng cho phép người dùng chia sẻ thông tin xác thực liền mạch trên trang web và ứng dụng Android của bạn. Để làm được điều này, hãy tận dụng Đường liên kết đến tài sản kỹ thuật số. Bạn có thể khai báo mối liên kết bằng cách lưu trữ tệp JSON chứa Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) trên trang web và thêm một đường liên kết đến tệp Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) vào tệp kê khai của ứng dụng.
Ví dụ: nếu bạn muốn liên kết https://example.com
với một ứng dụng Android
com.example.android
, hãy làm theo 3 bước sau đây:
Bước 1. Lưu trữ assetlinks.json
tại miền của bạn
Tạo một tệp JSON như thế này và lưu trữ tại 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"
]
}
}
]
Hãy đảm bảo rằng tệp này có thể thu thập dữ liệu từ Google và được phân phát bằng tiêu đề HTTP
Content-Type: application/json
.
sha256_cert_fingerprints
là vân tay SHA256 của chứng chỉ ký ứng dụng của bạn.
Tìm hiểu thêm thông tin chi tiết trong tài liệu về Đường liên kết trong ứng dụng Android.
Bước 2. Liên kết với assetlinks.json
trong ứng dụng Android
Trong ứng dụng Android, hãy thêm dòng sau vào tệp kê khai trong <application>
:
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Bước 3. Thêm tài nguyên chuỗi asset_statements
vào tệp strings.xml
Chuỗi asset_statements
là một đối tượng JSON chỉ định các tệp assetlinks.json
cần tải. Bạn phải thoát khỏi dấu nháy đơn và dấu ngoặc kép mà bạn sử dụng trong
chuỗi. Ví dụ:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>
Để tìm hiểu thêm về cách liên kết ứng dụng với trang web, hãy đọc tài liệu SmartLock cho Mật khẩu trên Android.