Эта страница переведена автоматически. Прочитайте оригинальную версию на английском здесь.
Whitepaper по Passkey для Enterprise. Практические рекомендации, шаблоны внедрения и KPI для программ passkeys.
| Платформа | Платформенные аутентификаторы | Ключи безопасности |
|---|---|---|
| Веб-браузеры | Windows Hello: ["internal"]Google Password Manager: ["internal", "hybrid"]Связка ключей iCloud: ["internal", "hybrid"] | ["usb", "nfc"] |
| Android (нативные) | ["internal", "hybrid"] | ["usb", "nfc"] |
| iOS (нативные) | ⚠️ Пусто [] (Связка ключей iCloud) | ["usb", "nfc"] |
Примечание: согласно спецификации WebAuthn, пустая последовательность транспортов означает, что информация о транспортах недоступна или скрыта в целях конфиденциальности. Часто браузеры интерпретируют это так, как будто возможны все транспорты.
internal
(внутренний) и hybrid (гибридный) доминируют в рабочих развертываниях, тогда как
платформенные аутентификаторы iOS уникальным образом возвращают пустые массивы
транспортов.[] для платформенных
аутентификаторов Связки ключей iCloud, в отличие от веб-браузеров и Android Credential
Manager, которые сообщают точные данные о транспортах.internal и hybrid для управления тем, какие варианты пользовательского
интерфейса аутентификации будут отображаться.["internal", "hybrid"] наиболее распространены; транспорты
аппаратных ключей безопасности (usb, nfc) встречаются очень редко и используются
в основном в корпоративных сценариях или сценариях с высокими требованиями к
безопасности.hybrid в целом охватывает
60–78 % в веб-среде Windows и 66–86 % в веб-среде macOS. При этом сценарии с вводом
идентификатора в первую очередь находятся в нижнем диапазоне (52–67 % для Windows, 59–76
% для macOS), а контексты запроса на том же устройстве — в верхнем (79–98 % для Windows,
83–98 % для macOS). hybrid — самый затратный транспорт, и маршрутизация должна
осуществляться соответствующим образом (Corbado Passkey Benchmark 2026, Q1 2026).При внедрении ключей доступа на разных платформах разработчики сталкиваются с важным решением:
Ответ кроется в понимании транспортов WebAuthn — технической детали, определяющей, как аутентификаторы связываются с проверяющими сторонами (relying parties). Хотя в теории транспорты кажутся простыми, их реализация значительно различается в веб-браузерах, нативных приложениях iOS и нативных приложениях Android, особенно в отношении обработки внутреннего и гибридного транспортов.
В этой статье рассматривается, как транспорты WebAuthn работают на различных платформах, и представлены два разных подхода к обработке внутреннего и гибридного транспортов, каждый из которых имеет свои компромиссы.
Последние статьи
♟️
Проблемы ключей доступа на «День 2»: 5 рисков после запуска
🔑
Почему безопасная обработка документов важна для современных предприятий?
♟️
Почему даже ваш самый сложный пароль скоро будет взломан
♟️
Повторное использование паролей в Японии: по-прежнему на уровне 84 % [2026]
♟️
Роль ИИ в обнаружении киберугроз
В этой статье рассматриваются:
Транспорты WebAuthn определяют методы связи между аутентификаторами и клиентскими устройствами. В спецификации WebAuthn Level 3 определено шесть типов транспортов:
usb: используется аппаратными ключами безопасности, которые подключаются через порты
USB, такими как YubiKey или другие токены безопасности
FIDO2.
nfc: обеспечивает связь с аутентификаторами через Near Field Communication, позволяя
пользователям прикладывать свои ключи безопасности или устройства с поддержкой NFC.
ble: облегчает аутентификацию по Bluetooth Low Energy,
обеспечивая беспроводную связь с внешними аутентификаторами.
smart-card: используется для считывателей смарт-карт, позволяя проводить
аутентификацию с помощью смарт-карт.
hybrid: обеспечивает кросс-девайс аутентификацию, обычно когда пользователь
сканирует QR-код для аутентификации сеанса на настольном компьютере с помощью телефона или
наоборот. Этот транспорт может вызывать появление QR-кодов как на настольных, так и на
мобильных устройствах, что не всегда желательно в зависимости от контекста. Примечание:
hybrid был добавлен в WebAuthn Level 3.
internal: аутентификатор встроен в само устройство — например, Связка ключей iCloud
(проверяется через Face ID или Touch ID) на iPhone,
Windows Hello на ПК или
Google Password Manager на устройствах
Android. Это платформенные аутентификаторы.
При создании ключа доступа аутентификатор сообщает, какие транспорты он поддерживает. Эта
информация отправляется проверяющей стороне (вашему бэкенду), которая должна сохранить ее
вместе с учетными данными. Во время аутентификации проверяющая сторона отправляет эти
транспорты обратно клиенту в списке allowCredentials, помогая браузеру или платформе
определить, какие методы аутентификации предложить пользователю.
Обработка транспортов существенно различается на разных платформах, создавая проблемы совместимости, с которыми сталкиваются разработчики.
Браузеры получают информацию о транспортах от аутентификаторов и учитывают ее во время процесса аутентификации. Когда вы создаете ключ доступа в Chrome, Safari или Edge, менеджер учетных данных браузера предоставляет данные о транспортах, которые варьируются в зависимости от используемого аутентификатора:
Платформенные аутентификаторы: Windows Hello предоставляет
только ["internal"], что отражает его привязанность к устройству. Однако, когда Chrome
использует Google Password Manager в качестве
аутентификатора, он предоставляет ["internal", "hybrid"], потому что
Google Password Manager поддерживает
кросс-девайс аутентификацию через телефоны
Android.
Аппаратные ключи безопасности: предоставляют конкретные транспорты, такие как
["usb", "nfc"], в зависимости от их фактических возможностей.
Облачные менеджеры учетных данных: Связка ключей iCloud в Safari и
Google Password Manager в Chrome обычно
предоставляют ["internal", "hybrid"] для поддержки как локальных процессов, так и
кросс-девайс аутентификации.
Эта информация надежно передается в веб-контекстах, хотя конкретные транспорты зависят от того, какой аутентификатор выберет браузер для хранения учетных данных.
Документация: Спецификация W3C WebAuthn
API Credential Manager в Android ведет себя аналогично веб-браузерам. При создании ключей доступа в нативных приложениях Android, Credential Manager предоставляет информацию о транспортах, которая зеркально отражает поведение в вебе: платформенные аутентификаторы точно сообщают о своих возможностях, и система последовательно обрабатывает данные о транспортах. Разработчики для Android могут полагаться на эту информацию без специальной обработки.
Документация: Android Credential Manager
На iOS ситуация сложнее. Фреймворк AuthenticationServices от Apple обрабатывает транспорты по-разному в зависимости от типа аутентификатора:
Платформенные аутентификаторы (Связка ключей iCloud, подтверждаемая через Face ID или Touch ID): часто возвращают пустые массивы транспортов при создании ключа доступа. Это указывает на то, что информация о транспорте недоступна или скрыта в целях конфиденциальности — согласно спецификации WebAuthn, пользовательские агенты могут возвращать пустые последовательности, когда информация о транспорте неизвестна или для сохранения конфиденциальности. Проверяющие стороны должны рассматривать транспорты как подсказки, а не как гарантии.
Ключи безопасности: предоставляют информацию о транспорте (например, ["usb"],
["nfc"]) при использовании с устройствами iOS,
следуя ожидаемому шаблону.
Документация: Apple AuthenticationServices
Реальные данные из рабочих веб- и нативных приложений выявляют следующие шаблоны транспортов (в порядке частоты использования). Обратите внимание, что на это распределение влияют особенности реализации и демография клиентов (использование мобильных устройств в сравнении с настольными, наличие нативных приложений), но они дают ценное представление о типичном использовании транспортов:
| Шаблон транспортов | Частота | Источник |
|---|---|---|
["internal", "hybrid"] | Очень часто | Облачные менеджеры учетных данных (Связка ключей iCloud, Google Password Manager) в вебе и нативных приложениях |
["hybrid", "internal"] | Очень часто | То же, что и выше, другой порядок |
[] (пустой массив) | Очень часто | Нативные платформенные аутентификаторы iOS |
["internal"] | Часто | Windows Hello, аутентификаторы с привязкой к устройству |
["internal", "cable"] | Редко | Устаревшее обозначение для hybrid (cable = старая терминология) |
["nfc", "usb"] | Очень редко | Аппаратные ключи безопасности |
["usb"] | Очень редко | USB-ключи безопасности |
["hybrid"] | Очень редко | Только гибридные конфигурации |
Ключевые выводы:
Доминирование платформенных аутентификаторов: подавляющее большинство ключей доступа
используют транспорт internal, часто в сочетании с hybrid для поддержки кросс-девайс
аутентификации. Это отражает ориентацию потребителей на платформенные аутентификаторы
(Связка ключей iCloud, Google Password Manager).
Пустые массивы — частое явление: нативные приложения iOS часто возвращают пустые массивы транспортов для платформенных аутентификаторов, что составляет значительную часть рабочих учетных данных. Как обсуждалось в разделе 2.2.3, они указывают на недоступность информации о транспорте, а не на исчерпывающую поддержку транспортов.
Ключи безопасности встречаются редко: аппаратные ключи безопасности (usb, nfc)
составляют крошечную долю рабочих ключей доступа, что указывает на их основное
использование в корпоративных сценариях или сценариях с высокими требованиями к
безопасности, а не в потребительских приложениях.
Существуют варианты порядка: порядок транспортов в массивах (["internal", "hybrid"]
по сравнению с ["hybrid", "internal"]) варьируется в зависимости от платформы и
реализации аутентификатора, но не несет функциональной разницы — оба указывают на
поддержку одних и тех же методов передачи.
Устаревшая терминология: идентификатор транспорта cable иногда появляется в старых
реализациях и является синонимом hybrid (caBLE = облачный Bluetooth Low
Energy, первоначальное название гибридного транспорта).
Это распределение подчеркивает важность правильной обработки транспортов internal и
hybrid, поскольку на них приходится подавляющее большинство реальных реализаций ключей
доступа.
Доступность транспорта показывает, о чем сообщают аутентификаторы, а не завершится ли
результирующий процесс успешно. Анализ завершения кросс-девайс аутентификации в рамках
Corbado Passkey Benchmark 2026
оценивает завершение с транспортом hybrid в первом квартале 2026 года на уровне 60–78 %
в веб-среде Windows и 66–86 % в веб-среде macOS в целом. При этом показатели разделяются
на 79–98 % (Windows) / 83–98 % (macOS) для процессов с запросами на том же устройстве в
сравнении с 52–67 % (Windows) / 59–76 % (macOS) для процессов с вводом идентификатора в
первую очередь. Рассматривайте hybrid как самый затратный транспорт в логике
маршрутизации и отдавайте предпочтение процессам, при которых пользователь остается на
устройстве, на котором хранятся учетные данные.
Один и тот же аутентификатор часто сообщает разные шаблоны транспортов в зависимости от платформы, версии и контекста реализации. Это нормально и ожидаемо:
Связка ключей iCloud демонстрирует три шаблона:
["internal", "hybrid"] — наиболее распространенный, обычно из веб-браузеров.[] (пустой массив) — очень распространенный, из нативных приложений iOS.["hybrid", "internal"] — менее распространенный, вариация порядка.["internal"] или ["hybrid"] — редкие крайние случаи.Google Password Manager демонстрирует наибольшие вариации:
["hybrid", "internal"] — самый распространенный шаблон.["internal", "hybrid"] — распространенный альтернативный порядок.["internal", "cable"] — старые реализации (cable = старый термин для hybrid).[] (пустой массив) — в определенных нативных контекстах.Windows Hello наиболее последователен:
["internal"] — доминирующий шаблон (по дизайну привязан к устройству).Менеджеры паролей, такие как 1Password, Bitwarden, Dashlane и LastPass, все показывают схожие шаблоны вариаций:
["internal", "hybrid"], так и ["hybrid", "internal"].[] из контекстов нативных приложений.["internal"].Samsung Pass (экосистема Android) в основном использует:
["hybrid", "internal"] и ["internal", "hybrid"] — оба порядка распространены.Различия между платформами: один и тот же аутентификатор ведет себя по-разному в вебе и в нативных приложениях, на iOS и на Android, или на Windows и на macOS.
Эволюция версий: отчетность о транспортах со временем развивалась. В старых версиях
может использоваться cable вместо hybrid или сообщаться о различных комбинациях.
Выбор реализации: некоторые аутентификаторы отдают приоритет internal в первую
очередь, другие — hybrid. Порядок не имеет функционального значения, но варьируется в
зависимости от реализации.
Чувствительность к контексту: нативные приложения, особенно на iOS, часто получают пустые массивы даже от аутентификаторов, которые сообщают полные транспорты в веб-контекстах.
Ключевой вывод: не предполагайте, что массивы транспортов будут постоянными для данного аутентификатора. Спроектируйте свою реализацию так, чтобы она корректно обрабатывала все вариации, ориентируясь на наличие определенных транспортов, а не на точное совпадение массивов.
Перед разработчиками стоит выбор: строго следовать спецификации или оптимизировать внутренний и гибридный транспорты для удобства пользователей. Каждый подход имеет свои достоинства и недостатки.
Этот подход соответствует спецификации WebAuthn: используйте транспорты в том виде, в котором они были предоставлены аутентификатором при регистрации учетных данных, и отправляйте их обратно без изменений во время аутентификации.
Реализация: при создании ключа доступа сохраните массив transports из ответа
аутентификатора. Во время аутентификации включите именно эти транспорты в список
allowCredentials:
{ "allowCredentials": [ { "id": "credential-id-base64", "type": "public-key", "transports": ["internal", "hybrid"] } ] }
Преимущества:
Недостатки:
Лучше всего подходит для: приложений, отдающих приоритет соответствию стандартам, корпоративных сред с разнообразными типами аутентификаторов.
Этот подход отдает приоритет пользовательскому опыту путем выборочного изменения внутреннего и гибридного транспортов в зависимости от конкретных целей оптимизации. Вместо общего правила рассмотрите следующие распространенные сценарии оптимизации:
Проблема: платформенные аутентификаторы iOS возвращают пустые массивы транспортов. Если они остаются пустыми или заполняются бэкендом, пользователи могут увидеть запросы ключей безопасности (USB, NFC) наряду с платформенными вариантами, что создает путаницу в потребительских приложениях.
Решение: явно задайте транспорты ["hybrid", "internal"] для платформенных
аутентификаторов iOS. Это гарантирует, что будут предложены только платформенная
аутентификация и кросс-девайс процессы, скрывая параметры ключей безопасности.
// При сохранении учетных данных платформенного аутентификатора iOS if (platform === "iOS" && authenticatorAttachment === "platform") { transports = ["hybrid", "internal"]; }
Результат: чистый пользовательский интерфейс аутентификации без запросов ключей безопасности для ключей доступа, созданных в iOS.
Проблема: при аутентификации на мобильных устройствах отображение QR-кодов для кросс-девайс аутентификации создает плохой пользовательский опыт — пользователи уже находятся на мобильном устройстве, где доступны их ключи доступа.
Решение: удалите транспорт hybrid, когда пользователь проходит аутентификацию с
мобильного устройства, оставив только ["internal"].
// При сборке allowCredentials для аутентификации const transports = isMobileDevice ? credentials.transports.filter((t) => t !== "hybrid") : credentials.transports;
Результат: мобильные пользователи видят только варианты прямой аутентификации без ненужных запросов с QR-кодами.
⚠️ Осторожно: манипуляции с транспортом не всегда дают стабильные результаты на разных платформах. Обширное тестирование показывает, что комбинации браузеров и ОС по-разному обрабатывают транспорты:
hybrid исключен из транспортов.hybrid.Риск тупиков: слишком строгая фильтрация транспортов может создать тупики в
аутентификации, когда пользователи вообще не могут войти в систему. Например, удаление
hybrid может предотвратить законные сценарии кросс-девайс аутентификации, когда
пользователю необходимо аутентифицироваться с одолженного устройства. Всегда
предоставляйте резервные методы аутентификации и тщательно тестируйте на целевых
платформах перед развертыванием оптимизации транспортов.
Это подсказки по оптимизации: WebAuthn предоставляет другие механизмы для оптимизации UX аутентификации помимо манипуляций с транспортом — например, подсказки (hints).
Поведение транспортов непредсказуемо: кросс-девайс аутентификация через транспорт
hybrid демонстрирует непоследовательное поведение в разных комбинациях браузеров и ОС.
Реальное тестирование показывает, что значения транспортов не гарантируют определенного
поведения пользовательского интерфейса — платформы интерпретируют и обрабатывают
транспорты по-разному, что приводит к неожиданным результатам.
Специфическая сложность платформы: при явном управлении транспортами необходимо учитывать различия платформ:
["internal"]; добавление hybrid вызывает
нежелательные QR-коды.hybrid в массиве транспортов.Требуется комплексное понимание: явный контроль транспортов означает принятие ответственности за весь процесс. Вы должны понимать, как каждая комбинация транспортов ведет себя на всех ваших целевых платформах, и тщательно тестировать. Манипуляции с транспортом могут создать тупики аутентификации, когда для пользователей нет действительного пути аутентификации.
Преимущества:
Недостатки:
Лучше всего подходит для: потребительских приложений с особыми требованиями к UX, команд с ресурсами для поддержания логики конкретной платформы, сценариев, ставящих во главу угла оптимизированные процессы аутентификации по сравнению со строгим соблюдением спецификаций.
Обработка транспортов WebAuthn не существует изолированно — это часть вашей общей стратегии внедрения ключей доступа. В рабочих развертываниях возникают два распространенных подхода, каждый из которых имеет разные последствия для использования внутреннего и гибридного транспортов.
Этот подход ставит во главу угла гибкость и соответствие стандартам, позволяя пользователям аутентифицироваться с помощью любого совместимого аутентификатора.
Характеристики реализации:
[], позволяя сопоставить любые
учетные данные.usb, nfc, ble).Последствия для транспортов: С пустым списком allowCredentials транспорты становятся
менее важными во время аутентификации — платформа показывает все доступные опции. Однако
это означает, что пользователи могут одновременно видеть запросы на использование ключа
безопасности, QR-коды и платформенные варианты, что может привести к параличу принятия
решений в потребительских приложениях.
Лучше всего подходит для: корпоративных сред, приложений с разнообразной пользовательской базой, требующих поддержки ключей безопасности, сценариев, где в приоритете максимальная гибкость аутентификации.
Этот подход оптимизирован для потребительского UX за счет ограничения создания ключей доступа платформенными аутентификаторами и использования процессов с вводом идентификатора в первую очередь (identifier-first).
Характеристики реализации:
authenticatorAttachment: "platform" для фокусировки на сразу доступных
аутентификаторах.authenticatorAttachment, что позволяет опытным пользователям выбирать любой
аутентификатор, включая ключи безопасности.preferImmediatelyAvailableCredentials для тихой, мгновенной аутентификации без
запросов на ключи безопасности или QR-коды.preferImmediatelyAvailableCredentials (пользователи
обычно проходят аутентификацию на устройстве, где хранятся их ключи доступа).internal и
hybrid.Последствия для транспортов: Поскольку allowCredentials содержит определенные
учетные данные с их транспортами, обработка транспортов становится решающей для
оптимизации опыта аутентификации.
Реальность ключей безопасности: ключи безопасности составляют крайне малую долю использования ключей доступа в крупномасштабных потребительских развертываниях — в основном это опытные пользователи или пользователи со специфическими требованиями к безопасности. Адаптированный для потребителей подход признает эту реальность, поддерживая ключи безопасности без оптимизации основных процессов вокруг них.
Двухуровневая стратегия создания: реализации могут сбалансировать совместимость ключей безопасности с оптимизированным пользовательским опытом через два пути создания:
authenticatorAttachment: "platform", направляя
пользователей к сразу доступным ключам доступа с высокими показателями успешности.authenticatorAttachment, позволяя
опытным пользователям выбирать ключи безопасности, сторонние менеджеры паролей или любой
доступный аутентификатор.Этот шаблон встречается в крупных реализациях: ключи безопасности поддерживаются и работают через настройки, но обращенные к пользователю подсказки оптимизированы для доминирующего варианта использования — платформенных аутентификаторов, которые обеспечивают мгновенную, незаметную аутентификацию.
Лучше всего подходит для: потребительских приложений, нативных мобильных приложений, сценариев, ставящих во главу угла оптимизированный UX по сравнению с гибкостью аутентификаторов, платформ, где уже существуют процессы с вводом идентификатора в первую очередь.
| Характеристика | Соответствие стандартам | Адаптировано для потребителей |
|---|---|---|
| allowCredentials | Пустой массив | Учетные данные конкретного пользователя |
| Типы аутентификаторов | Все (платформенные, ключи безопасности, кросс-девайс) | Платформенные + кросс-девайс (основные), ключи безопасности (через настройки) |
| API нативного приложения | Стандартный WebAuthn | preferImmediatelyAvailableCredentials |
| Ключи безопасности | Поддерживаются во всех процессах | Поддерживаются через настройки |
| Актуальность транспортов | Низкая (пустой список) | Высокая (конкретные учетные данные) |
| Мобильные QR-коды | Могут появляться | Могут быть оптимизированы |
| Пользовательский опыт | Больше опций, больше сложности | Оптимизированные основные процессы, доступны опции для опытных пользователей |
| Сложность реализации | Ниже | Выше (контекстно-зависимая логика транспортов) |
| Потребительское трение | Выше (несколько вариантов аутентификации) | Ниже (оптимизировано для доминирующих сценариев использования) |
Для платформ, которые уже раскрывают факт существования аккаунта или используют процессы с вводом идентификатора в первую очередь (пользователь вводит адрес электронной почты перед просмотром вариантов входа), подход, адаптированный для потребителей, подходит естественным образом. После того как пользователь предоставил свой идентификатор:
allowCredentials с конкретными учетными данными и их транспортами.В этих сценариях транспорты могут стать инструментом оптимизации, а не проблемой безопасности. Вы можете адаптировать варианты аутентификации в зависимости от контекста устройства (мобильное или настольное) и возможностей учетных данных.
Рекомендация: для платформ, которые уже используют процессы с вводом идентификатора в
первую очередь или где перебор аккаунтов не является проблемой, подход, адаптированный для
потребителей с явной обработкой транспортов, обеспечивает превосходный пользовательский
опыт, особенно в нативных мобильных приложениях, где
preferImmediatelyAvailableCredentials обеспечивает бесшовную биометрическую
аутентификацию.
Независимо от того, какой подход вы выберете для обработки внутреннего и гибридного транспортов, следуйте этим рекомендациям, чтобы свести к минимуму проблемы:
Сохраняйте транспорты при регистрации: всегда сохраняйте массив transports из ответа
аутентификатора вместе с идентификатором учетных данных и открытым ключом. Эти данные
необходимы для процессов аутентификации.
Изящно обрабатывайте пустые массивы: при получении пустого массива транспортов от платформенных аутентификаторов iOS:
["internal", "hybrid"], чтобы контролировать,
какие варианты аутентификации будут показаны.Стратегии транспортов в вебе и в нативных приложениях: различайте обработку транспортов в зависимости от контекста:
preferImmediatelyAvailableCredentials для незаметной аутентификации; транспорты
отправляются в сохраненном виде.Обработка аутентификации по ключам безопасности: когда у пользователей зарегистрированы ключи безопасности:
Тестируйте на всех целевых платформах: создайте матрицу тестирования, охватывающую все комбинации:
preferImmediatelyAvailableCredentials.authenticatorAttachment.Понимайте семантику транспортов: осознайте разницу между пустыми и отсутствующими значениями транспортов:
[]: указывает, что информация о транспорте недоступна
или скрыта для конфиденциальности. Пользовательские агенты могут предоставлять пустые
последовательности, когда они не могут или предпочитают не сообщать о возможностях
транспорта. Это не эквивалентно фразе «все транспорты поддерживаются» — относитесь к ним
как к подсказкам, когда информация недоступна.Следите за изменениями платформ: реализации WebAuthn развиваются. Apple, Google и Microsoft регулярно обновляют поведение своих аутентификаторов. Будьте в курсе изменений, которые могут повлиять на обработку транспортов.
Транспорты WebAuthn — особенно внутренние и гибридные — это технические детали, оказывающие значительное практическое влияние на кросс-девайс аутентификацию. Ваша стратегия обработки транспортов должна согласовываться с вашим более широким подходом к внедрению ключей доступа и целевыми платформами.
Решения по транспортам являются частью более широкой стратегии: то, как вы обрабатываете транспорты, зависит от того, разрабатываете ли вы решение для максимальной гибкости (пустой allowCredentials) или для потребительского UX (идентификатор в первую очередь с конкретными учетными данными). Второе делает транспорты критически важными для оптимизации.
Различия между платформами требуют обработки: веб-платформы и Android предоставляют
надежную информацию о транспорте, тогда как платформенные аутентификаторы iOS возвращают
пустые массивы. Windows Hello отправляет только ["internal"]. Понимание этих различий
имеет важное значение для рабочих развертываний.
Два правильных подхода к транспортам: соответствие спецификации (доверие транспортам аутентификаторов) хорошо подходит для корпоративных сценариев и сценариев с максимальной гибкостью. Явный контроль (оптимизация транспортов) подходит для потребительских приложений с процессами ввода идентификатора в первую очередь и нативных мобильных приложений.
Ввод идентификатора в первую очередь позволяет оптимизировать транспорты: когда пользователи сначала предоставляют свой идентификатор, обработка транспортов становится мощным инструментом UX. Вы можете предотвратить появление нежелательных QR-кодов на мобильных устройствах, скрыть параметры ключей безопасности и упростить аутентификацию — без дополнительных проблем, связанных с перебором аккаунтов.
Для корпоративных пользователей / Максимальная гибкость:
allowCredentials для поддержки всех типов аутентификаторов.Для потребительских приложений / Нативных приложений:
authenticatorAttachment: "platform" для немедленной аутентификации с высоким уровнем
успешности.authenticatorAttachment для опытных
пользователей, которым требуются ключи безопасности.allowCredentials с конкретными учетными данными и оптимизированными
транспортами.preferImmediatelyAvailableCredentials для тихой
аутентификации.["hybrid", "internal"].hybrid на мобильных устройствах, чтобы при необходимости предотвратить
появление QR-кодов.Для платформ, где уже есть процессы ввода идентификатора в первую очередь:
Начните с соответствия спецификации, затем оптимизируйте в зависимости от вашей стратегии:
Ландшафт WebAuthn продолжает развиваться. Поставщики платформ регулярно обновляют свои реализации, а такие спецификации, как WebAuthn Level 3, привносят новые возможности. Создание гибких систем, которые согласовывают обработку транспортов с вашей более широкой стратегией аутентификации, гарантирует, что ваша реализация ключей доступа останется надежной и будет обеспечивать отличный пользовательский опыт по мере развития экосистемы.
Corbado — это Passkey Intelligence Platform для CIAM-команд, обеспечивающих аутентификацию пользователей в крупных масштабах. Мы показываем то, что не видят логи IDP и общие инструменты аналитики: какие устройства, версии ОС, браузеры и менеджеры учётных данных поддерживают passkey, почему регистрации не превращаются в логины, где сбоит WebAuthn-поток и когда обновление ОС или браузера тихо ломает вход — всё это без замены Okta, Auth0, Ping, Cognito или вашего собственного IDP. Два продукта: Corbado Observe добавляет наблюдаемость для passkey и любых других способов входа. Corbado Connect даёт managed passkey со встроенной аналитикой (рядом с вашим IDP). VicRoads использует passkey для более чем 5 млн пользователей с Corbado (+80 % активации passkey). Поговорить с экспертом по passkey →
iOS AuthenticationServices скрывает информацию о транспорте для платформенных
аутентификаторов, таких как Связка ключей iCloud, возвращая пустые массивы в соответствии
с положениями о конфиденциальности спецификации WebAuthn. Ключи безопасности в iOS
предоставляют данные о транспорте, такие как ["usb"] или ["nfc"]. Проверяющим сторонам
следует рассматривать все транспорты как подсказки, а не как авторитетные гарантии
возможностей.
cable и hybrid в WebAuthn?#cable — это устаревшая терминология, синоним hybrid, расшифровывающаяся как caBLE
(cloud-assisted Bluetooth Low Energy). Оба термина описывают
кросс-девайс аутентификацию, например сканирование QR-кода для аутентификации сеанса на
настольном компьютере с помощью телефона. hybrid — текущий термин, введенный в WebAuthn
Level 3, и его следует использовать в новых реализациях.
Для потребительских приложений, использующих процессы ввода идентификатора в первую
очередь, явно задайте для транспортов значение ["hybrid", "internal"] для платформенных
аутентификаторов iOS, которые вернули пустые массивы при регистрации. Это предотвратит
появление запросов ключей безопасности USB и NFC в пользовательском интерфейсе
аутентификации. Альтернативный вариант, соответствующий спецификации, заключается в том,
чтобы оставить массивы пустыми или вообще опустить свойство транспортов.
Удаление транспорта hybrid на мобильных устройствах предотвращает появление запросов с
QR-кодом, когда пользователи уже находятся на устройстве, где хранятся их ключи доступа.
Однако манипуляции с транспортом дают нестабильные результаты: некоторые платформы
показывают QR-коды, даже когда hybrid исключен, а другие скрывают их в любом случае.
Всегда тестируйте на целевых платформах и предоставляйте резервные методы аутентификации,
чтобы избежать создания тупиков.
Пустой массив allowCredentials поддерживает все типы аутентификаторов, включая ключи
безопасности и кросс-девайс аутентификацию, но снижает значимость транспортов и может
представлять пользователям несколько вариантов одновременно. Заполнение его конкретными
учетными данными пользователя делает обработку транспортов критически важной для
оптимизации пользовательского интерфейса, позволяя процессам с вводом идентификатора в
первую очередь фильтровать QR-коды на мобильных устройствах и скрывать запросы ключей
безопасности в потребительских контекстах.
Посмотрите, как Corbado вписывается во внедрение passkeys и текущий стек аутентификации.
Открыть Console
Похожие статьи
Содержание