API FIDO2 позволяет приложениям Android создавать и использовать надежные, проверенные учетные данные на основе открытого ключа для аутентификации пользователей. API предоставляет реализацию клиента WebAuthn , которая поддерживает использование роуминговых аутентификаторов BLE, NFC и USB (ключи безопасности), а также аутентификатор платформы, который позволяет пользователю проходить аутентификацию с помощью отпечатка пальца или блокировки экрана.
Интеграция
Точка входа API FIDO2 — Fido2ApiClient .
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 .
Шаг 2. Ссылка на assetlinks.json
в приложении для Android
В приложении для 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 .