Узнайте о подсказках WebAuthn для учетных данных с открытым ключом / подсказках User-Agent: их доступности, способах использования, а также о существующих ограничениях и рекомендациях.
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.
WebAuthn и ключи доступа (passkeys) набирают обороты и получают все большее распространение. С технической точки зрения стандарт WebAuthn также быстро развивается. Подсказки для учетных данных с открытым ключом WebAuthn (также называемые подсказками User-agent) — это последнее дополнение к Web Authentication API, направленное на улучшение способов реализации аутентификации с помощью ключей доступа в приложениях.
В этой статье мы ответим на следующие вопросы:
Давайте начнем с мотивации.
Recent Articles
📖
WebAuthn pubKeyCredParams и credentialPublicKey: CBOR и COSE
📖
Протокол обмена учетными данными (CXP) и формат обмена (CXF)
🔑
Passkeys и WebAuthn PRF для сквозного шифрования (2025)
📖
Подсказки WebAuthn для учетных данных с открытым ключом / User-Agent
📖
WebAuthn Signal API: Обновление и удаление Passkeys на стороне клиента
Сегодня существует несколько мест, где можно создавать и хранить ключи доступа:
Для пользователя это означает гибкость и свободу выбора. Однако некоторые приложения и сценарии требуют ограничения некоторых из этих опций, например, если вы хотите разрешить использование только аппаратных ключей безопасности из-за повышенных требований к безопасности.
Чтобы повлиять на создание и хранение ключей доступа, у нас было свойство authenticatorAttachment
.
authenticatorAttachment
позволяет проверяющим сторонам ограничивать, где может быть создан ключ доступа.
platform
указывает на аутентификатор, встроенный в устройство, на котором работает WebAuthn. WebAuthn взаимодействует с ним, используя специфичные для платформы методы передачи, такие как API платформы. Учетные данные с открытым ключом, связанные с платформенным аутентификатором, называются платформенными учетными данными. Из приведенного выше списка следующие менеджеры учетных данных / места могут хранить платформенные учетные данные:
Windows 11 и Chrome:
macOS 15 (Sequoia) и Chrome:
При нажатии на «Отмена» появляется следующее модальное окно:
macOS 15 (Sequoia) и Safari:
cross-platform
указывает на аутентификатор, который является внешним по отношению к устройству, на котором работает WebAuthn (перемещаемый аутентификатор), поскольку его можно использовать на нескольких устройствах. WebAuthn взаимодействует с ним, используя межплатформенные протоколы передачи, такие как Bluetooth или NFC. Учетные данные с открытым ключом, связанные с перемещаемым аутентификатором, называются перемещаемыми учетными данными. Из приведенного выше списка следующие менеджеры учетных данных / места могут хранить межплатформенные учетные данные:
Windows 11 и Chrome:
macOS 15 (Sequoia) и Chrome:
macOS 15 (Sequoia) и Safari:
Не указано означает, что можно использовать либо платформенный аутентификатор, либо межплатформенный аутентификатор. В этом случае пользователь может сам выбрать, где он хочет хранить ключи доступа.
Windows 11 и Chrome:
macOS 15 (Sequoia) и Chrome:
macOS 15 (Sequoia) и Safari:
При нажатии на «Отмена» появляется следующее модальное окно:
authenticatorAttachment
использовался довольно долго. Однако он был негибким в отношении новых разработок, таких как межплатформенная аутентификация (через QR-коды и Bluetooth). В этом случае ключ доступа хранится, например, в Менеджере паролей Google (платформенные учетные данные), но инициируется проверяющей стороной с помощью cross-platform
. Кроме того, проверяющая сторона могла повлиять на тип ключа доступа, который должен использоваться при входе (а не при регистрации), только путем изменения значения transports
для учетных данных.
Именно здесь в игру вступают подсказки для учетных данных с открытым ключом WebAuthn.
Подсказки для учетных данных с открытым ключом WebAuthn — это новый параметр, представленный в Web Authentication API (официально в WebAuthn Level 3). Они дают браузерам указания о типе аутентификатора, который пользователь, скорее всего, будет использовать в процессе аутентификации. Это помогает обеспечить более простой и интуитивно понятный пользовательский опыт, фокусируя интерфейс браузера на наиболее релевантных опциях.
Три типа подсказок
Подсказки бывают трех типов:
security-key
: Указывает, что пользователь, как ожидается, будет использовать аппаратный ключ безопасности (например, YubiKey).client-device
: Предполагает, что пользователь будет использовать платформенный аутентификатор, привязанный к клиентскому устройству (например, Touch ID на macOS, Face ID на iOS или Windows Hello на Windows).hybrid
: Подразумевает, что пользователь может использовать смартфон или планшет для межплатформенной аутентификации через QR-код и Bluetooth.Эти подсказки не являются строгими требованиями со стороны проверяющей стороны, а служат руководством для улучшения пользовательского опыта, выступая в роли подсказок для браузера.
Ниже вы видите скриншоты для macOS Sequoia (Edge + Chrome) и Windows 10 (Chrome) с не указанным authenticatorAttachment и подсказкой User-agent WebAuthn, установленной в security-key
.
Здесь мы видим еще одно ограничение: подсказка security-key
не учитывается в Windows 10, по крайней мере, не напрямую. Процесс практически такой же, как и для подсказки client-device
.
При нажатии на «Отмена» появляется следующее модальное окно:
Ниже вы видите скриншоты для macOS Sequoia (Edge + Chrome) и Windows 10 (Chrome) с не указанным authenticatorAttachment и подсказкой User-agent WebAuthn, установленной в client-device
.
При нажатии на «Отмена» появляется следующее модальное окно:
При нажатии на «Отмена» появляется следующее модальное окно:
При нажатии на «Отмена» появляется следующее модальное окно:
Ниже вы видите скриншоты для macOS Sequoia (Edge + Chrome) и Windows 10 (Chrome) с не указанным authenticatorAttachment и подсказкой User-agent WebAuthn, установленной в hybrid
.
С появлением подсказок разработчики теперь могут предоставлять массив предпочтений в порядке убывания приоритета, что обеспечивает большую гибкость.
Приведенный ниже фрагмент кода сообщает браузеру, что пользователь, скорее всего, будет аутентифицироваться с помощью аппаратного ключа безопасности, и соответствующим образом фокусирует пользовательский интерфейс.
Для совместимости со старыми user-agent'ами при использовании этой подсказки в PublicKeyCredentialCreationOptions свойство authenticatorAttachment должно быть установлено в cross-platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* ваш challenge здесь */, hints: ['security-key'], authenticatorSelection: { authenticatorAttachment: 'cross-platform' } } });
Подсказка security-key
особенно ценна в случаях с высокими требованиями к безопасности, когда веб-сайт / проверяющая сторона хочет разрешить использование только аппаратных ключей безопасности и подталкивает пользователя в этом направлении.
В этом примере подсказка предполагает, что пользователь может использовать встроенный платформенный аутентификатор текущего устройства.
Для совместимости со старыми 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, что сэкономит пользователю один клик для выбора правильного ключа доступа.
В этом примере подсказка предполагает, что пользователь может использовать смартфон или подобное устройство для аутентификации.
Для совместимости со старыми 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.
Крайне важно понимать, как подсказки для учетных данных с открытым ключом WebAuthn взаимодействуют с другими параметрами WebAuthn, такими как authenticatorAttachment и credential transports.
Во-первых, важно отметить, что эти подсказки не являются строгими требованиями. Они не обязывают user-agent (браузер), а служат руководством для обеспечения наилучшего опыта за счет использования контекстной информации, которая у вас есть о запросе. Это означает, что браузеры могут учитывать подсказки, но не обязаны строго им следовать.
Подсказки предоставляются в виде массива в порядке убывания предпочтения. Этот порядок определяет, как браузер должен их приоритизировать:
Пример:
hints: ['security-key', 'hybrid', 'client-device']
В этом массиве:
security-key
.hybrid
.client-device
(платформенные аутентификаторы на клиентском устройстве).Подсказки могут противоречить информации, содержащейся в authenticatorAttachment и credential transports. В этом случае подсказки имеют приоритет. Это обеспечивает большую гибкость по сравнению с предыдущим строгим использованием authenticatorAttachment, которое ограничивало аутентификатор либо platform
, либо cross-platform
.
Пример с противоречивыми параметрами:
const credential = await navigator.credentials.create({ publicKey: { challenge: /* ваш challenge здесь */, hints: ['hybrid'], authenticatorSelection: { authenticatorAttachment: 'platform' // Противоречит подсказке } } });
В этом случае:
platform
, что обычно ограничивает аутентификаторы клиентским устройством.В настоящее время подсказки для учетных данных с открытым ключом WebAuthn доступны только в Chrome (начиная с версии 128). На данный момент Edge и Safari заявили о планах по интеграции этой функции, в то время как Firefox еще не подтвердил сроки ее выпуска.
Браузер | Chrome | Edge | Safari | Firefox |
---|---|---|---|---|
Доступность | ✅ с версии 128 | ✅ с версии 128 | Планируется | н/д |
Важно помнить, что в Chrome параметр authenticatorAttachment пока что продолжает учитываться. Это означает, что на сегодняшний день authenticatorAttachment является решающим фактором, независимо от того, какая подсказка установлена. Однако мы ожидаем, что в будущих версиях Chrome подсказки для учетных данных с открытым ключом станут предпочтительным и единственным подходом.
Несмотря на то, что последние версии 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.
На Windows 10 подсказки User-agent WebAuthn, однако, учитываются, так как пользовательский интерфейс WebAuthn обрабатывается Chrome, а не Windows Hello / Windows Security. Однако во время наших тестов мы не увидели эффекта для security-key
. Когда эта подсказка была установлена, процесс выглядел так же, как и для client-device
.
Подсказки для учетных данных с открытым ключом 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).
С точки зрения сценариев использования, мы видим следующие рекомендуемые случаи, чтобы извлечь максимальную пользу из этой новой функции.
Когда вы создаете свой бэкенд и интеллектуальную систему анализа ключей доступа, постарайтесь включить правильное использование подсказок для учетных данных с открытым ключом, чтобы облегчить вход в систему и избавить пользователя от лишних кликов. Например, если ваша система обнаруживает, что пользователь входит в систему на устройстве, где, вероятно, доступен локальный ключ доступа, используйте подсказку client-device
.
Если пользователь заходит на веб-сайт с нового устройства, и ваша интеллектуальная система анализа ключей доступа (passkey intelligence) знает, что ключ доступа может быть доступен на мобильном устройстве пользователя, установите подсказку hybrid
, чтобы пользователь мог быстро отсканировать QR-код и воспользоваться гибридным ключом доступа.
Основная цель здесь — обеспечить более плавный и интуитивно понятный пользовательский опыт. Направляя браузеры к наиболее вероятным для использования аутентификаторам, разработчики могут уменьшить путаницу и трение для пользователя в процессе входа. Вместо того чтобы пользователи были перегружены ненужными вариантами аутентификации, подсказки позволяют браузерам сосредоточиться на наиболее релевантных вариантах, что приводит к более быстрому и простому опыту.
Предприятия с высокими требованиями к безопасности или государственные организации, которые стандартизировали использование аппаратных ключей безопасности для аутентификации пользователей, найдут подсказки для ключей доступа особенно полезными. Используя подсказку security-key
, они могут гарантировать, что браузеры будут на видном месте отображать опцию аппаратного ключа безопасности.
Это особенно полезно для крупных организаций, где сотрудникам выданы аппаратные ключи безопасности и где другие методы аутентификации (например, платформенные аутентификаторы) не разрешены. Подсказка security-key
позволяет предприятиям строго контролировать свои потоки аутентификации, не ограничивая их гибкость для будущих улучшений.
Подсказка hybrid
отлично подходит для сценариев, где желательна межплатформенная аутентификация и, следовательно, подход, ориентированный на мобильные устройства (mobile-first), или когда пользователи часто переключаются между устройствами или платформами.
Примером такого сценария может быть приложение для потребителей, которое ожидает, что большинство его пользователей будут использовать свои смартфоны для аутентификации, либо с помощью биометрических методов, либо через веб-приложения-аутентификаторы (ключи доступа mobile-first). Указывая hybrid
в качестве подсказки, разработчики обеспечивают, что пользовательский интерфейс браузера будет поощрять использование смартфона, улучшая удобство и доступность.
Подсказки для учетных данных с открытым ключом WebAuthn предлагают гибкий способ улучшить пользовательский опыт во время аутентификации с помощью ключей доступа. Давайте вернемся к вопросам из введения с учетом полученных нами знаний:
Что такое подсказки для учетных данных с открытым ключом WebAuthn?
Это необязательные предложения, предоставляемые веб-сайтом / приложением, чтобы направить клиенты к наиболее вероятному методу аутентификации, который будет использовать пользователь — будь то аппаратный ключ безопасности, платформенный аутентификатор или гибридное решение, такое как межплатформенная аутентификация.
Зачем нужны подсказки для учетных данных с открытым ключом WebAuthn?
Они упрощают процесс аутентификации, сужая круг предлагаемых пользователям вариантов, уменьшая ненужное трение / количество кликов и улучшая общий опыт.
Как работают подсказки для учетных данных с открытым ключом WebAuthn?
Разработчики указывают подсказки, такие как security-key
, client-device
или hybrid
, в зависимости от контекста, позволяя браузерам приоритизировать соответствующий метод аутентификации для пользователя. Хотя эти подсказки не являются строгими требованиями, они помогают оптимизировать поток пользовательского интерфейса во время аутентификации.
Каковы ограничения и рекомендуемые сценарии использования?
В настоящее время полная поддержка этих подсказок ограничена Chrome и Edge, в то время как другие браузеры и операционные системы, такие как Windows 11, демонстрируют разный уровень совместимости. Наиболее эффективные сценарии использования включают улучшение UX при входе, принудительное использование аппаратных ключей безопасности в средах с высокими требованиями к безопасности и обеспечение межплатформенной аутентификации в приложениях, ориентированных на мобильные устройства.
В заключение, подсказки для учетных данных с открытым ключом WebAuthn позволяют разработчикам создавать более интуитивные, удобные для пользователя процессы аутентификации, направляя браузеры к наиболее подходящим вариантам для каждого сценария пользователя. Несмотря на то, что эта функция все еще развивается, она может значительно улучшить как безопасность, так и пользовательский опыт при внедрении ключей доступа.
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