Узнайте, как интегрировать ключи доступа в свой сервис.
Анатомия системы ключей
Система ключей состоит из нескольких компонентов:
- Проверяющая сторона : в контексте ключа доступа проверяющая сторона (сокращенно RP) занимается выдачей ключа доступа и аутентификацией. RP должен управлять клиентом — веб-сайтом или приложением, которое создает ключи доступа или проверяет подлинность с помощью ключей доступа — и сервером для регистрации, хранения и проверки учетных данных, сгенерированных ключами доступа на клиенте. Мобильное приложение с ключом доступа должно быть привязано к домену RP-сервера с помощью механизма ассоциации, предоставляемого ОС, например Digital Asset Links .
- Аутентификатор : вычислительное устройство, такое как мобильный телефон, планшет, ноутбук или настольный компьютер, которое может создавать и проверять ключи доступа с помощью функции блокировки экрана, предлагаемой операционной системой.
- Менеджер паролей : программное обеспечение, установленное на устройствах конечного пользователя, которое обслуживает, хранит и синхронизирует ключи доступа, например Google Менеджер паролей .
Процесс регистрации
Используйте API WebAuthn на веб-сайте или библиотеку Credential Manager в приложении Android, чтобы создать и зарегистрировать новый ключ доступа.
Чтобы создать новый ключ доступа, необходимо предоставить несколько ключевых компонентов:
- Идентификатор RP : укажите идентификатор проверяющей стороны в виде веб-домена.
- Информация о пользователе : идентификатор пользователя, имя пользователя и отображаемое имя.
- Исключаемые учетные данные : информация о ранее сохраненных ключах доступа для предотвращения дублирующей регистрации.
- Типы ключей доступа : следует ли использовать само устройство («аутентификатор платформы») в качестве аутентификатора или съемный ключ безопасности («кроссплатформенный/роуминговый аутентификатор»). Кроме того, вызывающие абоненты могут указать, следует ли сделать учетные данные видимыми, чтобы пользователь мог выбрать учетную запись для входа в систему.
Как только RP запрашивает создание ключа доступа и пользователь подтверждает его с помощью разблокировки экрана, создается новый ключ доступа и возвращаются учетные данные открытого ключа. Отправьте его на сервер и сохраните идентификатор учетных данных и открытый ключ для будущей аутентификации.
Узнайте подробнее, как создать и зарегистрировать ключ доступа:
- В Интернете : создайте пароль для входа в систему без пароля.
- На Android : обеспечение простой аутентификации в ваших приложениях с помощью ключей доступа с помощью API Credential Manager.
Поток аутентификации
Используйте API WebAuthn на веб-сайте или библиотеку Credential Manager в приложении Android для аутентификации с помощью зарегистрированного ключа доступа.
Для аутентификации с помощью ключа доступа необходимо предоставить несколько ключевых компонентов:
- Идентификатор RP : укажите идентификатор проверяющей стороны в виде веб-домена.
- Задача : задача, сгенерированная сервером, которая предотвращает атаки повторного воспроизведения.
Как только RP запрашивает аутентификацию с помощью ключа доступа, а пользователь подтверждает ее с помощью разблокировки экрана, возвращаются учетные данные открытого ключа. Отправьте это на сервер и проверьте подпись с помощью сохраненного открытого ключа.
Узнайте подробнее, как пройти аутентификацию с помощью ключа доступа:
- В Интернете : войдите в систему с помощью пароля через автозаполнение формы.
- На Android : обеспечение простой аутентификации в ваших приложениях с помощью ключей доступа с помощью API Credential Manager.
Серверная интеграция
При создании ключа доступа серверу необходимо предоставить ключевые параметры, такие как запрос, информация о пользователе, идентификаторы учетных данных, которые необходимо исключить, и многое другое. Затем он проверяет созданные учетные данные открытого ключа, отправленные от клиента, и сохраняет открытый ключ в базе данных. Для аутентификации с помощью ключа доступа серверу необходимо тщательно проверить учетные данные и подпись, чтобы позволить пользователю войти в систему.
Узнайте больше в наших руководствах по серверной части:
- Введение в реализацию пароля на стороне сервера
- Регистрация пароля на стороне сервера
- Аутентификация по ключу доступа на стороне сервера
Существующие (устаревшие) механизмы аутентификации
Если вы поддерживаете ключи доступа в существующей службе, переход от старого механизма аутентификации, такого как пароли, к ключам доступа не произойдет за один день. Мы знаем, что вы хотели бы как можно скорее отказаться от более слабого метода аутентификации, но это может привести к замешательству пользователей или оставить некоторых пользователей позади. Мы рекомендуем пока сохранить существующий метод аутентификации.
Есть несколько причин:
- Есть пользователи в среде, несовместимой с ключами доступа : поддержка ключей доступа широко расширяется во многих операционных системах и браузерах, но те, кто использует более старые версии, пока не могут использовать ключи доступа.
- Экосистема паролей еще не созрела : экосистема паролей развивается. Детали UX и техническая совместимость между различными средами могут улучшиться.
- Пользователи, возможно, еще не готовы жить с паролем : есть люди, которые не решаются переходить на новые вещи. По мере развития экосистемы ключей доступа они поймут, как работают ключи доступа и почему это для них полезно.
Пересмотрите существующий механизм аутентификации
Хотя ключи доступа упрощают и делают вашу аутентификацию более безопасной, сохранение старых механизмов равносильно оставлению дыры. Мы рекомендуем пересмотреть и улучшить существующие механизмы аутентификации.
Пароли
Создание надежных паролей и управление ими для каждого веб-сайта — непростая задача для пользователей. Настоятельно рекомендуется использовать встроенный в систему или автономный менеджер паролей. Внеся небольшую настройку в форму входа, веб-сайты и приложения могут существенно улучшить ее безопасность и удобство входа в систему. Узнайте, как можно внести эти изменения:
- Рекомендации по использованию формы входа (Интернет)
- Рекомендации по форме регистрации (Интернет)
- Войдите в систему с помощью Credential Manager (Android).
Двухфакторная аутентификация
Хотя использование менеджера паролей помогает пользователям работать с паролями, не все пользователи их используют. Запрос дополнительных учетных данных, называемых одноразовым паролем (OTP), является обычной практикой для защиты таких пользователей. OTP обычно предоставляются по электронной почте, SMS-сообщению или через приложение для аутентификации, такое как Google Authenticator . Поскольку одноразовые пароли обычно представляют собой короткий текст, динамически генерируемый и действительный только в течение ограниченного периода времени, это снижает вероятность взлома учетной записи. Эти методы не так надежны, как ключ доступа, но гораздо лучше, чем оставлять пользователям только пароль.
Если вы выберете SMS в качестве способа доставки одноразового пароля, ознакомьтесь со следующими рекомендациями, которые помогут упростить процесс ввода одноразового пароля.
- Рекомендации по формированию SMS OTP (Интернет)
- Автоматическая проверка SMS с помощью API SMS Retriever (Android)
Федерация удостоверений
Федерация удостоверений — это еще один вариант, позволяющий пользователям безопасно и легко входить в систему. Благодаря федерации удостоверений веб-сайты и приложения могут позволять пользователям входить в систему, используя удостоверение пользователя от стороннего поставщика удостоверений. Например, функция «Вход через Google» обеспечивает высокую конверсию для разработчиков, а пользователи находят ее проще и предпочтительнее аутентификации на основе пароля. Федерация удостоверений дополняет ключи доступа. Это отлично подходит для регистрации, поскольку веб-сайт или приложение могут получить основную информацию о профиле пользователя за один шаг, а ключи доступа отлично подходят для оптимизации повторной аутентификации.
Имейте в виду, что после того, как Chrome прекратит использование сторонних файлов cookie в 2024 году, это может повлиять на некоторые системы федерации удостоверений в зависимости от того, как они построены. Чтобы смягчить это воздействие, разрабатывается новый API-интерфейс браузера под названием Federated Credential Management API (сокращенно FedCM). Если у вас есть поставщик удостоверений, ознакомьтесь с подробностями и решите, нужно ли вам внедрять FedCM.
- API федеративного управления учетными данными (Интернет, FedCM)
- Обзор входа с помощью Google для Интернета (Интернет, Вход с помощью Google)
- Обзор входа в систему в одно касание на Android (Android, вход в одно касание)
«Волшебные ссылки»
Вход по магической ссылке — это метод аутентификации, при котором служба отправляет ссылку для входа по электронной почте, чтобы пользователь мог щелкнуть ее для аутентификации. Хотя это помогает пользователям войти в систему, не запоминая пароль, переключение между браузером/приложением и почтовым клиентом будет затруднено. Кроме того, поскольку механизм аутентификации основан на электронной почте, слабая безопасность провайдера электронной почты может подвергнуть риску учетные записи пользователей.
Образовательные ресурсы
Интернет
Чтобы интегрировать ключи доступа на свой веб-сайт, используйте API веб-аутентификации (WebAuthn) . Чтобы узнать больше, посетите следующие ресурсы:
- Создайте ключ доступа для входа в систему без пароля : статья, в которой обсуждается, как разрешить пользователям создавать ключи доступа для веб-сайта.
- Вход в систему с помощью ключа доступа посредством автозаполнения формы : статья, в которой обсуждается, как следует разработать вход без пароля с использованием ключей доступа с учетом существующих пользователей с паролями.
- Внедрение ключей доступа с автозаполнением форм в веб-приложении : лаборатория кода, которая позволяет узнать, как реализовать ключи доступа с автозаполнением форм в веб-приложении, чтобы сделать вход в систему более простым и безопасным.
- Узнайте, как реализовать ключи доступа с автозаполнением форм в веб-приложении : видео-практикум, в котором рассматривается лабораторная работа по коду. Внедрите ключи доступа с автозаполнением форм в веб-приложении, чтобы реализовать ключи доступа с автозаполнением форм в веб-приложении, чтобы создать более простой и безопасный вход.
- Создайте свое первое приложение WebAuthn : лаборатория кода, которая позволит вам научиться создавать простую функцию повторной аутентификации с помощью ключа доступа на вашем веб-сайте.
Андроид
Чтобы интегрировать ключи доступа в ваше приложение Android, используйте библиотеку Credential Manager . Чтобы узнать больше, посетите следующие ресурсы:
- Войдите в систему с помощью Credential Manager : статья, в которой обсуждается, как интегрировать Credential Manager в Android. Диспетчер учетных данных — это API Jetpack, который поддерживает несколько методов входа, таких как имя пользователя и пароль, ключи доступа и решения для федеративного входа (например, вход с помощью Google) в одном API.
- Обеспечение простой аутентификации в ваших приложениях с помощью ключей доступа с помощью Credential Manager API : статья, в которой обсуждается, как интегрировать ключи доступа через Credential Manager на Android.
- Узнайте, как упростить процедуру аутентификации с помощью API Credential Manager в вашем приложении Android . Узнайте, как реализовать API Credential Manager для обеспечения простой и безопасной аутентификации в вашем приложении с использованием ключей доступа или пароля.
- Пример приложения Credentials Manager : пример кода, запускающего Credential Manager с ключами доступа.
- Интегрируйте Credential Manager с вашим решением поставщика учетных данных | Android-разработчики
UX
Изучите рекомендации по использованию ключей доступа: