API FIDO2 dành cho Android

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

API FIDO2 cho phép các ứng dụng Android tạo và sử dụng thông tin đăng nhập dựa trên khóa công khai và đã được chứng thực để xác thực người dùng. API cung cấp phương thức triển khai WebAuthn Client, cho phép sử dụng trình xác thực chuyển vùng BLE, NFC và USB (khóa bảo mật) cũng như trình xác thực nền tảng, cho phép người dùng cần xác thực bằng vân tay hoặc phương thức khóa màn hình của họ.

Tích hợp

Điểm truy cập API FIDO2Fido2ApiClient.

API hỗ trợ hai hoạt động:

  • 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.
  • Việc ký được thực hiện mỗi khi bên phụ thuộc muốn xác thực người dùng.

Cả đăng ký và ký tên đều yêu cầu người dùng phải tương tác.

Bạn có thể xem ứng dụng mẫu minh họa việc sử dụng API tại https://github.com/android/security-samples/tree/master/Fido.

Khả năng tương tác với trang web của bạn

Bạn có thể dễ dàng cho phép người dùng chia sẻ thông tin đăng nhập một cách liền mạch trên trang web và ứng dụng Android của mình. Để làm như vậ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ữ một tệp JSON chứa Đường liên kết đến tài sản kỹ thuật số trên trang web của mình và thêm đường liên kết đến tệp Đườ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 bắt buộ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ệp 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 Google có thể thu thập dữ liệu trang này và phân phát với 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 trong tài liệu về Đường liên kết 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 để tải. Bạn phải thoát mọ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à trang web của bạn, hãy đọc tài liệu SmartSmart cho Mật khẩu trên Android.