Безопасные и простые пароли: контрольный список развертывания

Пароли разработаны для революционного изменения процесса входа в систему, предлагая более простую, быструю и безопасную альтернативу паролям. Этот контрольный список проведет вас через ключевые аспекты внедрения паролей для достижения оптимальных результатов пользовательского опыта (UX).

Как использовать этот контрольный список

Этот контрольный список предназначен для разработчиков и групп по продуктам, внедряющих пароли в свои потоки аутентификации. Используйте его для:

  • Убедитесь, что ваша реализация соответствует лучшим практикам современного UX-дизайна паролей, описанным в следующих статьях.
  • Определите обязательные и необязательные элементы, которые улучшают удобство использования, безопасность и совместимость.
  • Проверяйте реализацию во время разработки и перед развертыванием.
  • Соответствуйте лучшим практикам, которые способствуют адаптации пользователей и совместимости систем.

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

Регистрация паролей

Чтобы сделать плавный переход от паролей к ключам доступа на вашем сайте, наличие сложной возможности регистрации ключа доступа является ключом. Следуйте инструкциям, описанным в разделе Создание ключа доступа для беспарольных входов, чтобы создать функцию регистрации ключа доступа на вашем сайте. Вот что вам следует проверить в дополнение к основным функциям регистрации ключа доступа:

✅ Укажите "platform" в качестве значения вложения аутентификатора для передачи в navigator.credentials.create() для создания расширенного ключа доступа.

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

✅ Прежде чем разрешить пользователю создать ключ доступа, проверьте его с помощью самого надежного из доступных ему методов аутентификации.

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

✅ Предотвращайте создание дубликатов ключей доступа для одного и того же поставщика ключей доступа с помощью excludeCredentials .

  • Многие поставщики ключей доступа поддерживают только один ключ доступа на учетную запись и идентификатор RP. Избегайте создания дубликатов.

Используйте AAGUID для идентификации поставщика ключа доступа и присвоения имени учетным данным пользователя.

  • Связывание ключа доступа с поставщиком ключа доступа — это интуитивно понятный способ представления учетных данных там, где это возможно.

✅ Сообщите, если попытка зарегистрировать ключ доступа не удалась с помощью PublicKeyCredential.signalUnknownCredential() .

  • Случайные ключи доступа могут вызвать путаницу. Сообщите поставщику ключей доступа, если серверу не удалось зарегистрировать ключ доступа.

Отправлять пользователю уведомление после создания и регистрации ключа доступа для его учетной записи.

  • Убедитесь, что пользователь знает о создании ключа доступа, особенно если это делает кто-то другой.

Аутентификация паролей

Размещение пользователей паролей и пользователей ключей доступа без минимального трения может быть сложной задачей. Следуйте инструкциям, описанным в разделе Вход с ключом доступа через автозаполнение форм, чтобы создать функцию автозаполнения форм ключей доступа на своем веб-сайте. Вот что вам следует проверить в дополнение к основным функциям аутентификации ключей доступа:

✅ Разрешить пользователям входить в систему с помощью пароля через автозаполнение форм .

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

✅ Сигнализировать, если соответствующие учетные данные ключа доступа не найдены на бэкэнде с помощью PublicKeyCredential.signalUnknownCredential() .

  • Случайные ключи доступа могут вызвать путаницу. Сообщите поставщику ключей доступа, какой ключ доступа не может быть использован, чтобы поставщик мог удалить его.

✅ Предлагать пользователям вручную создать пароль, если пользователь не создал его после входа в систему.

  • Если пользователь еще не создал пароль, предложите ему это сделать.

Автоматически создавать ключ доступа (условное создание) после того, как пользователь войдет в систему с паролем (и вторым фактором).

  • Ускорьте принятие пользователем пароля.

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

  • Создание локального ключа доступа поможет пользователю входить в систему без сканирования QR-кода в следующий раз.

✅ После входа в систему сообщите провайдеру список доступных паролей и обновленные данные пользователя (имя пользователя, отображаемое имя)

  • Синхронизация списка ключей доступа и данных пользователя между сервером и поставщиком ключей доступа улучшает пользовательский опыт.

Управление ключами доступа

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

✅ Разрешить пользователям управлять ключами доступа на странице управления ключами доступа .

  • Создайте центральное место, где пользователи смогут управлять своими ключами доступа.

✅ Поддержка регистрации нескольких ключей доступа .

  • Возможность регистрации нескольких паролей помогает пользователям избежать блокировки, не прибегая к более слабому методу аутентификации.

✅ Разрешить пользователям добавлять новые и гибкие типы ключей доступа на странице управления.

✅ Отобразить имя ключа доступа .

  • Присваивайте имена паролям на основе AAGUID и предоставляйте наглядное визуальное представление ключей доступа пользователя.

✅ Укажите, является ли ключ доступа синхронизируемым или нет .

  • Сообщите пользователю, если ключ доступа не синхронизирован.

✅ Разрешить пользователям удалять открытый ключ с сервера.

✅ Сообщать списку паролей, когда связанный открытый ключ удаляется с сервера.

  • Синхронизация списка ключей доступа между сервером и поставщиком ключей доступа улучшает взаимодействие с пользователем.
Пример страницы управления ключами доступа, демонстрирующий передовой опыт.
Пример страницы управления ключами доступа, демонстрирующий передовой опыт.

Дополнительные соображения

Сообщать об обновлении данных пользователя (имя пользователя, отображаемое имя) , когда пользователь обновляет их.

Создайте ключ доступа вместо нового пароля, если пользователь «Забыл пароль» .

Ресурсы