Get your free and exclusive 80-page Banking Passkey Report
webauthn public key credential hints

Подсказки WebAuthn для учетных данных с открытым ключом / User-Agent

Узнайте о подсказках WebAuthn для учетных данных с открытым ключом / подсказках User-Agent: их доступности, способах использования, а также о существующих ограничениях и рекомендациях.

Vincent Delitz

Vincent

Created: August 8, 2025

Updated: August 8, 2025


See the original blog version in English here.

Our mission is to make the Internet a safer place, and the new login standard passkeys provides a superior solution to achieve that. That's why we want to help you understand passkeys and its characteristics better.

1. Введение#

WebAuthn и ключи доступа (passkeys) набирают обороты и получают все большее распространение. С технической точки зрения стандарт WebAuthn также быстро развивается. Подсказки для учетных данных с открытым ключом WebAuthn (также называемые подсказками User-agent) — это последнее дополнение к Web Authentication API, направленное на улучшение способов реализации аутентификации с помощью ключей доступа в приложениях.

В этой статье мы ответим на следующие вопросы:

  • Что такое подсказки для учетных данных с открытым ключом WebAuthn?
  • Зачем нужны подсказки для учетных данных с открытым ключом WebAuthn?
  • Как работают подсказки для учетных данных с открытым ключом WebAuthn?
  • Каковы ограничения и рекомендуемые сценарии использования подсказок для учетных данных с открытым ключом WebAuthn в ваших проектах?

Давайте начнем с мотивации.

2. Мотивация для использования подсказок для учетных данных в ключах доступа#

Сегодня существует несколько мест, где можно создавать и хранить ключи доступа:

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

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

Substack Icon

Subscribe to our Passkeys Substack for the latest news.

Subscribe

3. Что такое authenticatorAttachment?#

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

3.1 platform#

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

Windows 11 и Chrome:

macOS 15 (Sequoia) и Chrome:

При нажатии на «Отмена» появляется следующее модальное окно:

macOS 15 (Sequoia) и Safari:

3.2 cross-platform#

cross-platform указывает на аутентификатор, который является внешним по отношению к устройству, на котором работает WebAuthn (перемещаемый аутентификатор), поскольку его можно использовать на нескольких устройствах. WebAuthn взаимодействует с ним, используя межплатформенные протоколы передачи, такие как Bluetooth или NFC. Учетные данные с открытым ключом, связанные с перемещаемым аутентификатором, называются перемещаемыми учетными данными. Из приведенного выше списка следующие менеджеры учетных данных / места могут хранить межплатформенные учетные данные:

Windows 11 и Chrome:

macOS 15 (Sequoia) и Chrome:

macOS 15 (Sequoia) и Safari:

3.3 Не указано#

Не указано означает, что можно использовать либо платформенный аутентификатор, либо межплатформенный аутентификатор. В этом случае пользователь может сам выбрать, где он хочет хранить ключи доступа.

Windows 11 и Chrome:

macOS 15 (Sequoia) и Chrome:

macOS 15 (Sequoia) и Safari:

При нажатии на «Отмена» появляется следующее модальное окно:

authenticatorAttachment использовался довольно долго. Однако он был негибким в отношении новых разработок, таких как межплатформенная аутентификация (через QR-коды и Bluetooth). В этом случае ключ доступа хранится, например, в Менеджере паролей Google (платформенные учетные данные), но инициируется проверяющей стороной с помощью cross-platform. Кроме того, проверяющая сторона могла повлиять на тип ключа доступа, который должен использоваться при входе (а не при регистрации), только путем изменения значения transports для учетных данных.

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

Slack Icon

Become part of our Passkeys Community for updates & support.

Join

4. Что такое подсказки для учетных данных с открытым ключом WebAuthn?#

Подсказки для учетных данных с открытым ключом WebAuthn — это новый параметр, представленный в Web Authentication API (официально в WebAuthn Level 3). Они дают браузерам указания о типе аутентификатора, который пользователь, скорее всего, будет использовать в процессе аутентификации. Это помогает обеспечить более простой и интуитивно понятный пользовательский опыт, фокусируя интерфейс браузера на наиболее релевантных опциях.

Три типа подсказок

Подсказки бывают трех типов:

  1. security-key: Указывает, что пользователь, как ожидается, будет использовать аппаратный ключ безопасности (например, YubiKey).
  2. client-device: Предполагает, что пользователь будет использовать платформенный аутентификатор, привязанный к клиентскому устройству (например, Touch ID на macOS, Face ID на iOS или Windows Hello на Windows).
  3. hybrid: Подразумевает, что пользователь может использовать смартфон или планшет для межплатформенной аутентификации через QR-код и Bluetooth.

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

4.1 security-key#

Ниже вы видите скриншоты для macOS Sequoia (Edge + Chrome) и Windows 10 (Chrome) с не указанным authenticatorAttachment и подсказкой User-agent WebAuthn, установленной в security-key.

4.1.1 macOS Sequoia и Edge#

4.1.2 macOS Sequoia и Chrome#

4.1.3 Windows 10 и Chrome#

Здесь мы видим еще одно ограничение: подсказка security-key не учитывается в Windows 10, по крайней мере, не напрямую. Процесс практически такой же, как и для подсказки client-device.

При нажатии на «Отмена» появляется следующее модальное окно:

4.2 client-device#

Ниже вы видите скриншоты для macOS Sequoia (Edge + Chrome) и Windows 10 (Chrome) с не указанным authenticatorAttachment и подсказкой User-agent WebAuthn, установленной в client-device.

4.2.1 macOS Sequoia и Edge#

При нажатии на «Отмена» появляется следующее модальное окно:

4.2.2 macOS Sequoia и Chrome#

При нажатии на «Отмена» появляется следующее модальное окно:

4.2.3 Windows 10 и Chrome#

При нажатии на «Отмена» появляется следующее модальное окно:

4.3 hybrid#

Ниже вы видите скриншоты для macOS Sequoia (Edge + Chrome) и Windows 10 (Chrome) с не указанным authenticatorAttachment и подсказкой User-agent WebAuthn, установленной в hybrid.

4.3.1 macOS Sequoia и Edge#

4.3.2 macOS Sequoia и Chrome#

4.3.3 Windows 10 и Chrome#

5. Как работают подсказки для учетных данных с открытым ключом WebAuthn?#

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

5.1 Пример для подсказки Security-Key#

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

Для совместимости со старыми user-agent'ами при использовании этой подсказки в PublicKeyCredentialCreationOptions свойство authenticatorAttachment должно быть установлено в cross-platform.

const credential = await navigator.credentials.create({ publicKey: { challenge: /* ваш challenge здесь */, hints: ['security-key'], authenticatorSelection: { authenticatorAttachment: 'cross-platform' } } });

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

5.2 Пример для подсказки Client-Device#

В этом примере подсказка предполагает, что пользователь может использовать встроенный платформенный аутентификатор текущего устройства.

Для совместимости со старыми user-agent'ами при использовании этой подсказки в PublicKeyCredentialCreationOptions свойство authenticatorAttachment должно быть установлено в platform.

const credential = await navigator.credentials.create({ publicKey: { challenge: /* ваш challenge здесь */, residentKey: true, hints: ['client-device'], authenticatorSelection: { authenticatorAttachment: 'platform' } } });

Установка подсказки client-device полезна, если с учетной записью пользователя связано несколько ключей доступа, и некоторые из них могут быть доступны на устройстве, с которого выполняется вход, в то время как другие хранятся на других устройствах. Если система (интеллектуальная система анализа ключей доступа (passkey intelligence)) обнаруживает, что у пользователя, пытающегося войти в систему, с высокой вероятностью есть доступный локальный ключ доступа, то эту подсказку можно установить в PublicKeyCredentialRequestOptions, что сэкономит пользователю один клик для выбора правильного ключа доступа.

5.3 Пример для подсказки Hybrid#

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

Для совместимости со старыми user-agent'ами при использовании этой подсказки в PublicKeyCredentialCreationOptions свойство authenticatorAttachment должно быть установлено в cross-platform.

const credential = await navigator.credentials.create({ publicKey: { challenge: /* ваш challenge здесь */, residentKey: true, hints: ['hybrid'], authenticatorSelection: { authenticatorAttachment: 'cross-platform' } } });

Подсказка hybrid может быть полезна, если у пользователя несколько ключей, и система (интеллектуальная система анализа ключей доступа (passkey intelligence)) обнаруживает, что на текущем устройстве, вероятно, нет доступного локального ключа доступа. Чтобы улучшить UX и сэкономить один клик, вы можете установить эту подсказку User-agent WebAuthn и сразу предложить пользователю межплатформенную аутентификацию (через QR-код и Bluetooth). Более того, если вы пытаетесь создать систему ключей доступа, ориентированную на мобильные устройства (mobile-first), то установка этой подсказки имеет большой смысл.

Чтобы самостоятельно поэкспериментировать с различными опциями, мы рекомендуем взглянуть на Passkeys Debugger.

Debugger Icon

Want to experiment with passkey flows? Try our Passkeys Debugger.

Try for Free

6. Приоритеты#

Крайне важно понимать, как подсказки для учетных данных с открытым ключом WebAuthn взаимодействуют с другими параметрами WebAuthn, такими как authenticatorAttachment и credential transports.

6.1 Необязательное руководство#

Во-первых, важно отметить, что эти подсказки не являются строгими требованиями. Они не обязывают user-agent (браузер), а служат руководством для обеспечения наилучшего опыта за счет использования контекстной информации, которая у вас есть о запросе. Это означает, что браузеры могут учитывать подсказки, но не обязаны строго им следовать.

6.2 Порядок имеет значение#

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

  • Первая подсказка имеет приоритет: Если две подсказки противоречат друг другу, браузер отдает приоритет первой.
  • Перекрывающиеся подсказки: Если более конкретная подсказка может быть не распознана всеми браузерами, вы можете включить менее конкретные после нее для более широкой совместимости.
  • Дублирующиеся подсказки: Если одна и та же подсказка появляется более одного раза, все последующие ее появления игнорируются.

Пример:

hints: ['security-key', 'hybrid', 'client-device']

В этом массиве:

  1. Браузер сначала отдает приоритет security-key.
  2. Если это неприменимо, он рассматривает hybrid.
  3. Наконец, он обращается к client-device (платформенные аутентификаторы на клиентском устройстве).

6.3 Подсказки против других параметров#

Подсказки могут противоречить информации, содержащейся в authenticatorAttachment и credential transports. В этом случае подсказки имеют приоритет. Это обеспечивает большую гибкость по сравнению с предыдущим строгим использованием authenticatorAttachment, которое ограничивало аутентификатор либо platform, либо cross-platform.

Пример с противоречивыми параметрами:

const credential = await navigator.credentials.create({ publicKey: { challenge: /* ваш challenge здесь */, hints: ['hybrid'], authenticatorSelection: { authenticatorAttachment: 'platform' // Противоречит подсказке } } });

В этом случае:

  • Подсказка: Указывает на предпочтение гибридных аутентификаторов.
  • authenticatorAttachment: Указывает platform, что обычно ограничивает аутентификаторы клиентским устройством.
  • Результат: Браузер отдает приоритет подсказке над authenticatorAttachment, фокусируясь на гибридных опциях.

7. Поддержка браузерами#

В настоящее время подсказки для учетных данных с открытым ключом WebAuthn доступны только в Chrome (начиная с версии 128). На данный момент Edge и Safari заявили о планах по интеграции этой функции, в то время как Firefox еще не подтвердил сроки ее выпуска.

БраузерChromeEdgeSafariFirefox
Доступностьс версии 128с версии 128Планируетсян/д

Важно помнить, что в Chrome параметр authenticatorAttachment пока что продолжает учитываться. Это означает, что на сегодняшний день authenticatorAttachment является решающим фактором, независимо от того, какая подсказка установлена. Однако мы ожидаем, что в будущих версиях Chrome подсказки для учетных данных с открытым ключом станут предпочтительным и единственным подходом.

7.1 Особый случай: Windows 11 и Chrome / Edge#

Несмотря на то, что последние версии Chrome поддерживают подсказки User-agent WebAuthn, эти подсказки не учитываются Windows 11 и Windows Hello / Windows Security. Основная причина в том, что пользовательский интерфейс контролируется самой операционной системой (Windows Hello / Windows Security).

Более того, для ключа доступа, который хранится в Менеджере паролей Google и синхронизирован с Windows 11, подсказки User-agent WebAuthn не учитываются, так как окончательная локальная аутентификация на Windows 11 происходит с помощью Windows Hello / Windows Security. С предстоящей синхронизацией ключей доступа на Windows 11 через учетные записи Microsoft мы также ожидаем улучшений для Windows 11 и подсказок User-agent WebAuthn.

7.2 Особый случай: Windows 10 и Chrome / Edge#

На Windows 10 подсказки User-agent WebAuthn, однако, учитываются, так как пользовательский интерфейс WebAuthn обрабатывается Chrome, а не Windows Hello / Windows Security. Однако во время наших тестов мы не увидели эффекта для security-key. Когда эта подсказка была установлена, процесс выглядел так же, как и для client-device.

8. Рекомендации по использованию подсказок для учетных данных с открытым ключом#

Подсказки для учетных данных с открытым ключом WebAuthn (user-agent) приносят ряд преимуществ как разработчикам, так и пользователям. Эта функция все еще новая и пока не внедрена во все браузеры и операционные системы (по состоянию на октябрь 2024 года).

Важно помнить о текущих ограничениях, которые особенно связаны с Windows 11. В Windows 11 интерфейс для ключей доступа управляется Windows Hello (модальное окно безопасности Windows Hello), и в настоящее время это имеет приоритет над поддержкой подсказок User-agent WebAuthn в Chrome / Edge. Это также относится к ключам доступа, синхронизируемым из Менеджера паролей Google в Windows (здесь подсказки также пока не имеют эффекта).

Это означает, что подсказки для учетных данных с открытым ключом WebAuthn действительно работают только на macOS и Windows 10 (из основных настольных операционных систем).

Более того, по состоянию на октябрь 2024 года, даже если на этих операционных системах используется Chrome / Edge, если установлен authenticatorAttachment, то он также имеет приоритет над подсказками User-agent WebAuthn (как заявили в Google).

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

8.1 Используйте подсказки в процессах входа для уменьшения количества кликов#

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

Если пользователь заходит на веб-сайт с нового устройства, и ваша интеллектуальная система анализа ключей доступа (passkey intelligence) знает, что ключ доступа может быть доступен на мобильном устройстве пользователя, установите подсказку hybrid, чтобы пользователь мог быстро отсканировать QR-код и воспользоваться гибридным ключом доступа.

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

8.2 Используйте подсказку Security-Key для корпоративных или государственных систем с высокими требованиями к безопасности#

Предприятия с высокими требованиями к безопасности или государственные организации, которые стандартизировали использование аппаратных ключей безопасности для аутентификации пользователей, найдут подсказки для ключей доступа особенно полезными. Используя подсказку security-key, они могут гарантировать, что браузеры будут на видном месте отображать опцию аппаратного ключа безопасности.

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

8.3 Используйте подсказку Hybrid для приложений, ориентированных на мобильные устройства#

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

Примером такого сценария может быть приложение для потребителей, которое ожидает, что большинство его пользователей будут использовать свои смартфоны для аутентификации, либо с помощью биометрических методов, либо через веб-приложения-аутентификаторы (ключи доступа mobile-first). Указывая hybrid в качестве подсказки, разработчики обеспечивают, что пользовательский интерфейс браузера будет поощрять использование смартфона, улучшая удобство и доступность.

9. Заключение#

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

  1. Что такое подсказки для учетных данных с открытым ключом WebAuthn?

    Это необязательные предложения, предоставляемые веб-сайтом / приложением, чтобы направить клиенты к наиболее вероятному методу аутентификации, который будет использовать пользователь — будь то аппаратный ключ безопасности, платформенный аутентификатор или гибридное решение, такое как межплатформенная аутентификация.

  2. Зачем нужны подсказки для учетных данных с открытым ключом WebAuthn?

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

  3. Как работают подсказки для учетных данных с открытым ключом WebAuthn?

    Разработчики указывают подсказки, такие как security-key, client-device или hybrid, в зависимости от контекста, позволяя браузерам приоритизировать соответствующий метод аутентификации для пользователя. Хотя эти подсказки не являются строгими требованиями, они помогают оптимизировать поток пользовательского интерфейса во время аутентификации.

  4. Каковы ограничения и рекомендуемые сценарии использования?

    В настоящее время полная поддержка этих подсказок ограничена Chrome и Edge, в то время как другие браузеры и операционные системы, такие как Windows 11, демонстрируют разный уровень совместимости. Наиболее эффективные сценарии использования включают улучшение UX при входе, принудительное использование аппаратных ключей безопасности в средах с высокими требованиями к безопасности и обеспечение межплатформенной аутентификации в приложениях, ориентированных на мобильные устройства.

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

Add passkeys to your app in <1 hour with our UI components, SDKs & guides.

Start Free Trial

Share this article


LinkedInTwitterFacebook

Enjoyed this read?

🤝 Join our Passkeys Community

Share passkeys implementation tips and get support to free the world from passwords.

🚀 Subscribe to Substack

Get the latest news, strategies, and insights about passkeys sent straight to your inbox.

Related Articles

Table of Contents