Чтобы обеспечить надежную работу с ключами доступа, мы рекомендуем, чтобы ваше приложение реализовывало следующее:
- Управление ключами доступа пользователей : включите специальный раздел управления ключами доступа в настройки вашего приложения, чтобы пользователи могли управлять своими ключами доступа.
- Интеграция с поставщиками учетных данных : для взаимодействия с поставщиками учетных данных сервер приложений может реализовать конечные точки ключей доступа для регистрации, аутентификации и удаления.
Управление ключами доступа пользователей
Чтобы позволить пользователям управлять своими ключами доступа, включите в свое приложение специальный раздел управления ключами доступа, где пользователи смогут создавать, просматривать, переименовывать и удалять свои ключи доступа.
Отображение доступных ключей доступа
В настройках вашего приложения для ключей доступа предоставьте пользователям информацию, включая поставщика учетных данных, который использовался для создания учетных данных, дату создания и дату последнего использования.
Чтобы получить информацию о поставщике учётных данных, используйте глобальный уникальный идентификатор подтверждения подлинности (AAGUID), связанный с соответствующим ключом доступа. AAGUID является частью PublicKeyCredential , возвращаемого при создании ключа доступа . AAGUID позволяет идентифицировать поставщика учётных данных, создавшего ключ доступа. Подробнее см. в разделе Определение поставщика ключа доступа с помощью AAGUID .
Ваше приложение может отображать следующую информацию о ключе доступа:
- Имя ключа доступа: Отображает имя, указанное при регистрации ключа доступа. Оптимальное имя основано на поставщике учётных данных (с использованием AAGUID); если поставщик не может быть идентифицирован, используйте информацию о модели устройства из
android.os.Build. - Логотип поставщика: отображает логотип поставщика учётных данных. Эта визуальная подсказка помогает пользователям быстро определить нужный ключ доступа.
- Временные метки: укажите время создания и время последнего использования. Эта информация помогает пользователям управлять своими учётными данными и определять старые или неиспользуемые ключи доступа.
- Индикатор статуса синхронизации: По умолчанию ключи доступа синхронизируются с поставщиками учётных данных, но возможности синхронизации могут различаться. Чтобы избежать путаницы, чётко укажите, что ключ доступа не поддерживает синхронизацию.
- Данные о последнем входе в систему (необязательно): укажите такие данные, как браузер, ОС, IP-адрес или место последнего входа. Это полезная дополнительная функция, позволяющая пользователям выявлять потенциально подозрительную активность.
Помимо этих деталей, на экране должны быть кнопки, позволяющие пользователям управлять каждым ключом доступа — удалять или переименовывать его.

Создайте несколько ключей доступа
Хотя вы должны предоставлять пользователям возможность создавать ключи доступа на протяжении всего пути пользователя, например, сразу после входа в систему, раздел настроек ключей доступа вашего приложения должен позволять пользователям создавать ключи доступа на основе выбранного ими поставщика учетных данных.
Чтобы снизить риск блокировки учётных записей, разрешите пользователям регистрировать несколько ключей доступа у разных поставщиков учётных данных. Если один из поставщиков учётных данных станет недоступен, например, если платформа прекратит поддержку или пользователь потеряет доступ, он сможет использовать другой ключ доступа для входа. Убедитесь, что ваша база данных поддерживает хранение нескольких учётных данных для каждого пользователя. Однако вы можете запретить пользователям создавать ключ доступа для одной и той же учётной записи у одного и того же поставщика учётных данных .
Удалить пароли
Раздел настроек ключей доступа вашего приложения должен позволять пользователям удалять ключи доступа.
Интеграция поставщика учетных данных
Чтобы обеспечить согласованность ключей доступа между сервером приложений и поставщиком учётных данных, включите управление ключами доступа по предопределённому пути /.well-known/passkey-endpoints на сервере приложений. Это позволит поставщикам учётных данных напрямую использовать эти конечные точки для управления ключами доступа. Подробнее см. в разделе Добавление конечных точек ключей доступа .
Дополнительные ресурсы
- Руководство по UX-дизайну Passkeys
- Видео: Как уменьшить зависимость от паролей в приложениях Android с помощью поддержки паролей
- Практическая работа: узнайте, как упростить процесс авторизации с помощью API Credential Manager в вашем приложении Android.
- Пример приложения: CredentialManager