Максимизируйте удобство пользователя, обеспечив беспрепятственный межплатформенный обмен учетными данными между вашими приложениями и веб-сайтами. Когда несколько веб-сайтов и приложений Android используют один и тот же сервер управления учетными записями, эта функция позволяет пользователям один раз сохранить учетные данные и автоматически предлагать их на любом связанном веб-сайте или в приложении Android.
Лучшие практики
Для оптимального взаимодействия с пользователем и обеспечения безопасности внедрите беспрепятственный обмен учетными данными в следующих точках взаимодействия:
- Форма входа : включите автоматическое заполнение учетных данных.
- Форма регистрации : надежно храните новые учетные данные для использования на разных платформах.
- Форма смены пароля : синхронизируйте обновления паролей на всех платформах.
- Форма сброса пароля . Разрешить сброс одного пароля для обновления всех платформ.
- Домены веб-просмотра . Расширьте общий доступ к учетным данным на домены веб-просмотра в вашем приложении, которые обрабатывают управление учетными записями (формы входа в систему, регистрации, смены пароля или сброса пароля).
- Приложения для Android
Такой подход создает единую систему управления учетными данными, повышая удобство и безопасность пользователей.
При разработке веб-сайтов управления учетными записями мы предлагаем вам следовать следующим рекомендациям:
- Создайте форму регистрации в соответствии с лучшими практиками
- Создайте форму входа в соответствии с лучшими практиками.
- Добавьте известный URL для смены паролей
При разработке приложений для Android мы рекомендуем интегрировать их с Android Credential Manager .
Предварительные условия
Прежде чем настраивать беспрепятственный обмен учетными данными, убедитесь, что у вас есть следующее для каждой платформы:
Для каждого приложения Android:
- Идентификатор приложения Android , объявленный в файле
build.gradle
приложения. - Отпечатки SHA256 сертификата подписи.
- (Рекомендуется) Вход пользователя в систему осуществляется с помощью Credential Manager API .
Для каждого сайта:
- Возможность публикации файла
/.well-known/assetlinks.json
в каждом соответствующем домене в соответствии с синтаксисом ссылок на цифровые активы (DAL) . - Все домены управления учетными записями (формы входа, регистрации, изменения пароля или сброса пароля) должны быть доступны через HTTPS.
Обеспечьте беспрепятственный обмен учетными данными между приложениями и веб-сайтами Android.
Чтобы настроить беспрепятственный обмен учетными данными между приложениями и веб-сайтами, вы создаете и публикуете списки заявлений о ссылках на цифровые активы , в которых указывается, каким объектам (веб-сайтам или приложениям Android) разрешено обмениваться учетными данными.
Чтобы объявить отношения совместного использования учетных данных:
Создайте файл
assetlinks.json
с инструкциями, ссылающимися на веб-сайт и приложение Android, следуя синтаксису списка операторов DAL :[ { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"web", "site":URL } }, { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"android_app", "package_name":"APP_ID", "sha256_cert_fingerprints":[ "SHA_HEX_VALUE" ] } } ]
Где
URL
— это URL-адрес вашего сайта,APP_ID
— это идентификатор вашего приложения Android , аSHA_HEX_VALUE
— это отпечаток SHA256 вашего сертификата подписи приложения Android.Поле
relation
описывает объявляемое отношение. Чтобы объявить, что приложения и сайты используют общие учетные данные для входа, укажите отношения какdelegate_permission/common.get_login_creds
. Узнайте больше о строках отношений в DAL .target
поле — это объект, определяющий актив, к которому применяется декларация.Следующие поля идентифицируют веб-сайт:
namespace
web
site
URL-адрес веб-сайта в формате
https://domain[:optional_port
]; например, https://www.example.com.domain
должен быть полным, аoptional_port
должен быть опущен при использовании порта 443 для HTTPS.Целевым
site
может быть только корневой домен: вы не можете ограничить связь приложения определенным подкаталогом. Не включайте в URL-адрес путь, например косую черту.Субдомены не считаются совпадающими: то есть, если вы укажете
domain
как www.example.com, домен www.counter.example.com не будет связан с вашим приложением.Следующие поля идентифицируют приложение Android:
пространство имен
android_app
имя_пакета
Имя пакета, объявленное в манифесте приложения. Например, com.example.android
sha256_cert_fingerprints
Отпечатки SHA256 сертификата подписи вашего приложения.
Разместите файл JSON цифровых активов в следующем месте в доменах для входа:
https:// DOMAIN [: OPTIONAL_PORT ]/.well-known/assetlinks.json
, гдеDOMAIN
является полным, аOPTIONAL_PORT
необходимо опустить, если используя порт 443 для HTTPS.Объявите связь в приложении Android, внедрив оператор в файл
res/values/strings.xml
вашего приложения Android, который ссылается на список операторов, созданный на шаге 1. Добавьте объект, указывающий файлыassetlinks.json
для загрузки. Например:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json\" }] </string>
Замените
DOMAIN
иOPTIONAL_PORT
(необходимо опустить при использовании порта 443 для HTTPS) — напримерhttps://www.example.com
. Избегайте любых апострофов и кавычек, которые вы используете в строке.Вы также можете добавить фрагмент JSON в файл
strings.xml
, как показано в документации DAL , но использование оператораinclude
позволяет изменять операторы без публикации новой версии вашего приложения .Создайте ссылку на оператор в манифесте, добавив следующую строку в файл
AndroidManifest.xml
вашего приложения в разделе<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
Опубликуйте новую версию своего приложения для Android в консоли разработчика Google Play.
Выполнив эти шаги, вы успешно настроили беспрепятственный обмен учетными данными между вашим веб-сайтом и приложением Android.
Обратите внимание, что это не единственный действительный способ настройки DAL для совместного использования учетных данных, но этот подход упрощает будущий процесс добавления новых объектов в вашу бесшовную сеть совместного использования учетных данных, способствует повторному использованию кода и снижает вероятность ошибок во время обновлений.