API FIDO2 позволяет приложениям Android создавать и использовать надежные, проверенные учетные данные на основе открытого ключа для аутентификации пользователей. API предоставляет реализацию клиента WebAuthn , которая поддерживает использование роуминговых аутентификаторов BLE, NFC и USB (ключей безопасности), а также аутентификатор платформы, который позволяет пользователю проходить аутентификацию с помощью отпечатка пальца или блокировки экрана.
Интеграция
Точкой входа в API FIDO2 является Fido2ApiClient .
API поддерживает две операции:
- Регистрация выполняется один раз для каждого аутентификатора для каждой учетной записи, когда пользователь связывает аутентификатор с учетной записью.
- Подписание выполняется всякий раз, когда проверяющая сторона хочет аутентифицировать пользователя.
Как регистрация, так и подписание требуют взаимодействия с пользователем.
Пример приложения, демонстрирующего использование API, можно найти по адресу https://github.com/android/identity-samples/tree/main/Fido2 .
Совместимость с вашим сайтом
Разрешить пользователям беспрепятственно обмениваться учетными данными на вашем веб-сайте и в приложении Android очень просто. Для этого используйте ссылки на цифровые активы . Вы можете объявить ассоциации, разместив файл JSON Digital Asset Links на своем веб-сайте и добавив ссылку на файл Digital Asset Link в манифест вашего приложения.
Например, если вы хотите связать https://example.com
с приложением Android com.example.android
, выполните три обязательных шага:
Шаг 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 .
Шаг 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 .