Основным условием для реализации бесперебойного входа с помощью Credential Manager в вашем приложении и на веб-сайте является установление безопасной связи между ними. Это достигается с помощью файлов Digital Asset Links, которые позволяют поставщикам учетных данных безопасно обмениваться учетными данными между вашим приложением и веб-сайтом. Например, веб-сайт может объявить о предоставлении общих учетных данных приложению Android или другому веб-сайту с помощью файла Digital Asset Links. Использование Digital Asset Links позволяет вашим пользователям бесперебойно входить в систему и использовать одни и те же сохраненные учетные данные во всех связанных приложениях и на веб-сайтах.
Настройте связи цифровых активов между вашим приложением и веб-сайтом
Чтобы разрешить поставщикам учетных данных использовать общие ключи доступа и пароли в вашем приложении и на веб-сайте, создайте файл ссылок на цифровые активы для своего приложения, выполнив следующие шаги:
1. Создайте JSON-файл ссылок на цифровые активы.
Создайте файл с именем assetlinks.json со следующей структурой:
[
{
"relation" : [
"<array_of_permissions_granted_to_app>"
],
"target" : {
"namespace" : "android_app",
"package_name" : "<android_application_package_name>",
"sha256_cert_fingerprints" : [
"<sha256_certificate_fingerprint_of_signing_key>"
]
}
}
]
relation: Массив из одной или нескольких строк, описывающих объявляемую связь. Чтобы объявить, что приложения и сайты используют общие учётные данные, укажите следующие связи в массиве:delegate_permission/common.handle_all_urls: это отношение включает ссылки приложений Android, которые позволяют вашему приложению Android обрабатывать все веб-URL-адреса для определенного домена.delegate_permission/common.get_login_creds: это отношение позволяет обмениваться учетными данными между вашим веб-сайтом и вашим приложением Android.
target: объект, указывающий актив, к которому применяется декларация.-
target.namespace: Установите значениеandroid_app. -
target.package_name: задайте здесь имя пакета, объявленное в манифесте приложения, например,com.example.android.
-
sha256_cert_fingerprints: отпечатки SHA256 сертификата подписи вашего приложения. Чтобы получить отпечаток SHA256 для вашего приложения, см. раздел «Объявление ассоциаций веб-сайтов» .
Пример цели для приложения выглядит следующим образом:
[
{
"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" : [
SHA_HEX_VALUE
]
}
}
]
2. Разместите JSON-файл ссылок на цифровые активы.
Разместите файл ссылок на цифровые активы в следующем месте на домене входа вашего веб-сайта:
```none
https://domain[:optional_port]/.well-known/assetlinks.json
```
Например, если ваш домен входа — signin.example.com , разместите файл по адресу: https://signin.example.com/.well-known/assetlinks.json .
Тип MIME для файла ссылок на цифровые активы должен быть JSON . Убедитесь, что сервер отправляет в ответе заголовок Content-Type: application/json с HTTP-статусом 200 .
3. Разрешить извлечение файла ссылок на цифровые активы
Обновите настройки вашего хостинга, чтобы разрешить Google извлекать ваш файл ссылок на цифровые активы. Большинство веб-сайтов позволяют любому автоматизированному агенту извлекать файлы по пути /.well-known/ , чтобы другие сервисы могли получить доступ к метаданным в этих файлах.
Если у вас есть файл robots.txt , разрешите веб-сканерам извлекать /.well-known/assetlinks.json , обновив robots.txt следующим образом:
User-agent: *
Allow: /.well-known/
4. Обновите манифест приложения.
В файле манифеста вашего приложения добавьте следующие строки под <application> :
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
5. Настройте ссылки на цифровые активы для паролей.
Если вы используете диспетчер учетных данных для паролей, вам необходимо выполнить дополнительный шаг для настройки связей цифровых активов.
Добавьте объект, указывающий файлы assetlinks.json для загрузки в файл манифеста. Необходимо экранировать все апострофы и кавычки, используемые в строке, как показано в следующем примере:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
}]
</string>
Ссылка https://signin.example.com/.well-known/assetlinks.json должна возвращать ответ HTTP 200 и иметь заголовок Content-Type application/json . Проверка не пройдёт, если ответ содержит HTTP-перенаправление 301 или 302 или Content-Type не является JSON.
В следующем примере показан образец запроса и ожидаемые заголовки ответа:
> GET /.well-known/assetlinks.json HTTP/1.1
> User-Agent: curl/7.35.0
> Host: signin.example.com
< HTTP/1.1 200 OK
< Content-Type: application/json
Следующие шаги
После добавления необходимых зависимостей и настройки ссылок на цифровые активы для ключей доступа вы можете использовать Credential Manager для реализации поддерживаемых методов аутентификации: ключей доступа и входа через Google. Для начала работы см. следующие руководства для разработчиков:
- Настройте ключи доступа с помощью Credential Manager : узнайте, как реализовать ключи доступа — современный, защищенный от фишинга метод безопасной и удобной аутентификации.
- Настройте вход с помощью диспетчера учетных данных Google : интегрируйте функцию «Вход с помощью Google» для упрощения входа пользователей с помощью учетных записей Google.
- Устранение распространенных ошибок с помощью диспетчера учетных данных : узнайте, как устранять распространенные ошибки с помощью диспетчера учетных данных.
- Интеграция аутентификации Firebase : разрешите пользователям проходить аутентификацию в Firebase, используя свои учетные записи Google.