Настройте беспрепятственный обмен учетными данными между приложениями и веб-сайтами Android.

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

Лучшие практики

Для оптимального взаимодействия с пользователем и обеспечения безопасности внедрите беспрепятственный обмен учетными данными в следующих точках взаимодействия:

  • Форма входа : включите автоматическое заполнение учетных данных.
  • Форма регистрации : надежно храните новые учетные данные для использования на разных платформах.
  • Форма смены пароля : синхронизируйте обновления паролей на всех платформах.
  • Форма сброса пароля . Разрешить сброс одного пароля для обновления всех платформ.
  • Домены веб-просмотра . Расширьте общий доступ к учетным данным на домены веб-просмотра в вашем приложении, которые обрабатывают управление учетными записями (вход в систему, регистрация, смена пароля или формы сброса пароля).
  • Приложения для Android

Такой подход создает единую систему управления учетными данными, повышая удобство и безопасность пользователей.

При разработке веб-сайтов управления учетными записями мы предлагаем вам следовать следующим рекомендациям:

При разработке приложений для Android мы рекомендуем интегрировать их с Android Credential Manager .

Предварительные условия

Прежде чем настраивать беспрепятственный обмен учетными данными, убедитесь, что у вас есть следующее для каждой платформы:

Для каждого приложения Android:

Для каждого сайта:

  • Возможность публикации файла /.well-known/assetlinks.json в каждом соответствующем домене в соответствии с синтаксисом ссылок на цифровые активы (DAL) .
  • Все домены управления учетными записями (формы входа, регистрации, изменения пароля или сброса пароля) должны быть доступны через HTTPS.

Обеспечьте беспрепятственный обмен учетными данными между приложениями и веб-сайтами Android.

Чтобы настроить беспрепятственный обмен учетными данными между приложениями и веб-сайтами, вы создаете и публикуете списки утверждений о ссылках на цифровые активы , в которых указывается, каким объектам (веб-сайтам или приложениям Android) разрешено обмениваться учетными данными.

Чтобы объявить отношения совместного использования учетных данных:

  1. Создайте файл 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 сертификата подписи вашего приложения.

  2. Разместите файл JSON цифровых активов в следующем месте в доменах для входа: https:// DOMAIN [: OPTIONAL_PORT ]/.well-known/assetlinks.json , где DOMAIN является полным, а OPTIONAL_PORT необходимо опустить, если используя порт 443 для HTTPS.

  3. Объявите связь в приложении 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 позволяет изменять операторы без публикации новой версии вашего приложения .

  4. Создайте ссылку на оператор в манифесте, добавив следующую строку в файл AndroidManifest.xml вашего приложения в разделе <application> :

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  5. Опубликуйте новую версию своего приложения для Android в консоли разработчика Google Play.

Выполнив эти шаги, вы успешно настроили беспрепятственный обмен учетными данными между вашим веб-сайтом и приложением Android.

Обратите внимание, что это не единственный действительный способ настройки DAL для совместного использования учетных данных, но этот подход упрощает будущий процесс добавления новых объектов в вашу бесшовную сеть совместного использования учетных данных, способствует повторному использованию кода и снижает вероятность ошибок во время обновлений.