В этом документе описывается, как с помощью Менеджера учетных данных получить криптографически подтвержденный адрес электронной почты с устройства пользователя. В этом случае пользователям не нужно подтверждать адрес электронной почты с помощью одноразовых кодов или ссылок для входа.
В этом документе рассматриваются следующие темы:
- Совместимость с Android
- Удобство использования
- Поддерживаемые аккаунты
- Последствия для доставляемости писем
- Сравнение с функцией Войти с аккаунтом Google
В этом руководстве предполагается, что вы знакомы со следующими понятиями:
Совместимость с Android
Эта функция поддерживается на телефонах, планшетах и складных устройствах с Android 9 (уровень API 28) и более поздними версиями. Минимальная требуемая версия сервисов Google Play (GMS) – 25.49.x.
Удобство использования
В разделах ниже описано, как пользователи проходят проверку, почему нужно добавлять резервные способы подтверждения и как лучше организовать процесс в разных случаях.
Процесс подтверждения
Вот как это выглядит для пользователя:
- Пользователь выбирает поле ввода или нажимает кнопку, которая вызывает Credential Manager API. В зависимости от дизайна экрана вы также можете вызывать API при загрузке экрана приложения.
- Появится нижний экран с информацией, которая будет передана приложению. Если на устройстве нет информации, пользователь увидит общее сообщение об ошибке.
- После того как пользователь нажмет Принять и продолжить, покажите сообщение об успешном или неудачном выполнении действия.
- Примечание. Если полученное письмо с подтверждением не соответствует ожидаемому, сообщите пользователю о несоответствии и попросите его повторить попытку с другими учетными данными или предоставьте альтернативный способ подтверждения, например с помощью одноразовых кодов.
- Если пользователь регистрируется в вашем сервисе, предложите ему создать ключ доступа, чтобы упростить последующий вход.
- Примечание. Подтверждение адреса электронной почты не запускает автоматическое создание ключа доступа. Однако мы настоятельно рекомендуем включить шаги по созданию ключа доступа. Ключи доступа упрощают вход в аккаунт и делают его более безопасным, а также избавляют от необходимости вводить имя пользователя и пароль.
Добавьте основной и резервный потоки.
Чтобы пользователям было удобно, добавьте на экраны, где требуется подтверждение адреса электронной почты, следующие возможности:
- Основной способ подтверждения. Поле для ввода адреса электронной почты или кнопка, которая запускает процесс быстрой проверки с помощью Credential Manager API.
- Альтернативные способы подтверждения. Ссылка или кнопка "Подтвердить другим способом" или "Другие варианты" для ввода адреса электронной почты вручную в случае сбоев, например если на устройстве нет информации или полученный адрес не совпадает с ожидаемым. Это позволит пользователям попробовать подтвердить номер телефона с помощью других учетных данных или вручную ввести одноразовый код.
Примеры использования
В следующих разделах описаны рекомендуемые варианты использования и предлагаемый пользовательский интерфейс для подтверждения адреса электронной почты.
Зарегистрироваться
Пользователи могут сразу создать аккаунт с подтвержденным адресом электронной почты без отдельного шага подтверждения. При необходимости предложите пользователю добавить ключ доступа. Если пользователь решит добавить ключ доступа, запустите процесс создания ключа доступа.
Восстановление аккаунта
Чтобы пользователям не приходилось искать коды восстановления в папке "Спам", разрешите им восстанавливать доступ к аккаунту с помощью подтвержденного адреса электронной почты, который надежно хранится на устройстве. Кроме того, предложите им создать ключ доступа для использования в будущем.
Повторная аутентификация для действий, связанных с безопасностью
Защитите конфиденциальные действия пользователей, такие как изменение настроек или обновление данных профиля, требуя быстрого повторного прохождения аутентификации.
Поддерживаемые аккаунты
Подтверждение адреса электронной почты через Менеджер учетных данных поддерживается только для обычных аккаунтов Google. Аккаунты Workspace и контролируемые аккаунты не поддерживаются.
Обычный аккаунт Google можно создать с адресом электронной почты от любого поставщика, не обязательно @gmail.com. Однако Google проверяет эти аккаунты по-разному:
- Для аккаунтов @gmail.com: Google является авторитетным источником, и известно, что адрес электронной почты подтвержден.
- Для аккаунтов, не относящихся к домену @gmail.com: Google не является авторитетным источником для этих адресов электронной почты в долгосрочной перспективе. Хотя Google проверяет адрес электронной почты при создании аккаунта, со временем владелец этого адреса может измениться. Поэтому для адресов, не относящихся к домену @gmail.com, следует предусмотреть дополнительный этап проверки, например отправку одноразового кода, чтобы убедиться, что у пользователя по-прежнему есть доступ к аккаунту электронной почты.
Подробнее о цифровых удостоверениях…
Примечание. Помимо адреса электронной почты, вы можете запросить другие непроверенные поля, например имя, фамилию, полное имя и фото профиля аккаунта Google. Однако Google проверяет только адрес электронной почты.
Подробнее о том, как подтверждать номера телефонов с помощью цифровых удостоверений… Решение Firebase описано в статье Подтверждение номера телефона в Firebase.
Достоверность и актуальность
Система выдает проверяемые учетные данные на основе текущего адреса электронной почты пользователя из активных аккаунтов Google на устройстве. Эти учетные данные выдаются устройству заранее, обычно когда оно не используется. Хотя эти учетные данные могут оставаться действительными в течение нескольких дней, система выполняет проверку в момент передачи учетных данных, чтобы убедиться, что аккаунт по-прежнему существует, находится на устройстве и что адрес электронной почты действителен, фактически отдавая приоритет немедленному статусу аккаунта над окном действия учетных данных.
Чтобы обеспечить подлинность, при передаче генерируется подпись Key Binding (kb), включающая одноразовый код.
Если устройство находится в офлайн-режиме или аккаунт удален, процесс завершается ошибкой, а не предоставляет просроченную VC или VC для неактивного аккаунта Google.
Доставляемость электронной почты
Хотя этот процесс подтверждает легитимность аккаунта, он не гарантирует доставку во входящие (например, письмо может быть перенаправлено в спам). Одноразовый код остается основным способом подтверждения доставки электронных писем.
Сравнение с функцией "Войти с аккаунтом Google"
Хотя и Digital Credentials, и Вход с аккаунтом Google предоставляют подтвержденный адрес электронной почты, пути пользователя и сценарии использования различаются.
- Варианты использования. Процесс подтверждения адреса электронной почты в Менеджере учетных данных используется не только при регистрации или входе, но и в любых других случаях, когда требуется получить подтвержденный адрес электронной почты. Это также может включать восстановление доступа к аккаунту.
- Регистрация. В отличие от функции "Войти с аккаунтом Google", для работы с Менеджером учетных данных не требуется регистрация в Google.
Поддержка платформ. Менеджер учетных данных работает только на Android.
Области действия. В отличие от функции "Войти с аккаунтом Google", которая может использовать OAuth 2.0 для запроса доступа к пользовательским данным (например, к Календарю или Диску через области действия), Digital Credentials API предназначен исключительно для получения подтвержденных атрибутов идентификационной информации. Его нельзя использовать для запроса дополнительных областей авторизации.
Дальнейшие действия
Чтобы реализовать эту функцию в своем приложении, ознакомьтесь с руководством по внедрению.