FIDO2 API для Android, FIDO2 API для Android

API FIDO2 позволяет приложениям Android создавать и использовать надежные, проверенные учетные данные на основе открытого ключа для аутентификации пользователей. API предоставляет реализацию клиента WebAuthn , которая поддерживает использование роуминговых аутентификаторов BLE, NFC и USB (ключи безопасности), а также аутентификатор платформы, который позволяет пользователю проходить аутентификацию с помощью отпечатка пальца или блокировки экрана.

Интеграция

Точка входа API FIDO2Fido2ApiClient .

API поддерживает две операции:

  • Регистрация выполняется один раз для каждого аутентификатора для каждой учетной записи, когда пользователь связывает аутентификатор с учетной записью.
  • Подписание выполняется всякий раз, когда доверяющая сторона хочет аутентифицировать пользователя.

И регистрация, и подписание требуют взаимодействия с пользователем.

Пример приложения, демонстрирующего использование 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 App Links .

В приложении для 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>

Чтобы узнать больше о связывании вашего приложения и вашего веб-сайта, прочитайте документацию SmartLock для паролей на Android .