Каков статус Webauthn в iOS / Safari?

Я делаю презентацию по стандарту FIDO2 / Webauthn через несколько дней, и я был рад увидеть эта статья на веб-сайте Yubico, в которой говорится, что Apple добавила поддержку аутентификации FIDO через NFC, как это делает Android уже много лет. Несколько моих коллег пошли на различные тестовые сайты Webauthn (webauthn.me, webauthn.io и т. Д.) На более новом устройстве под управлением iOS 13.1, но все они отображают ошибки, в которых говорится, что браузер не поддерживается (как safari, так и chrome. ). Вам нужно что-то сделать, чтобы включить эту функцию, или мы ждем обновления от Apple, чтобы включить эту функцию?


person Justin    schedule 19.10.2019    source источник
comment
Смотрите мой обновленный ответ   -  person mackie    schedule 15.12.2019


Ответы (4)


Мы тоже этого ждем. Хорошим предзнаменованием является новая поддержка записи NFC, которая была добавлена ​​в 13. JavaScript API WebAuthn также доступен в Safari в качестве экспериментальной функции - он просто еще не выполняет никаких функций FIDO2 / CTAP2.

Я полностью ожидаю увидеть встроенную поддержку (с использованием NFC, Lightning и встроенного PIN / Touch / Face ID) в не столь отдаленном будущем - особенно с учетом того, что Apple поддерживает это, а поддержка настольного Safari хороша.

Вопрос в том, когда ...

Отредактировано и добавлено 15 декабря 2019 г .:

По состоянию на 10 декабря 2019 года Safari на iOS 13.3 поддерживает второй фактор (т. Е. Не без имени пользователя и пароля) с помощью ключей безопасности NFC, Lightning или USB. Я сам протестировал это, используя 2 разных ключа Yubico, поддерживающих NFC.

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

Также пока нет поддержки использования самого телефона в качестве ключа безопасности с помощью PIN-кода, Touch ID или Face ID.

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

Статья здесь: https://www.yubico.com/2019/12/native-support-for-webauthn-and-fido-is-finally-here-on-iphones-and-ipads/

Обновлено, чтобы добавить объявление для Touch и Face ID на iOS:

https://developer.apple.com/videos/play/wwdc2020/10670/ < / а>

person mackie    schedule 21.10.2019
comment
TouchID на Mac работает. Также: USB-ключ работает в сафари, ЕСЛИ у вас отключен пин-код на yubikey. По какой-то причине Apple пока не поддерживает пин-коды при входе в систему: / - person zackify; 16.01.2020

ОБНОВЛЕНИЕ: Начиная с iOS 13.3, в Safari добавлена ​​поддержка WebAuthn. Ключи безопасности, совместимые с WebAuthn, использующие NFC, Lightning или USB, должны работать с текущими реализациями API. Я смог проверить это, используя свой Yubikey 5Ci с помощью Lightning.

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

На этой странице вы можете точно увидеть, какие браузеры поддерживают WebAuthn API (или любой другой веб-API) по адресу момент.

person Tim    schedule 20.10.2019

Safari с iOS / iPadOS 14 и macOS Big Sur поддерживает WebAuthn с FaceID и TouchID, как было объявлено на WWDC 2020.

person DeenOub    schedule 01.07.2020
comment
в iOS 13 по-прежнему нельзя использовать FaceID для аутентификации. Я отправил запрос в команду Chrome для этого: https://bugs.chromium.org/p/chromium/issues/detail?id=1101804 - person Thang Le; 02.07.2020

Я использую NFC-ключ (FEITAN ePass FIDO -NFC Security Key) около года с моим iPhone 7, использующим последнюю версию iOS, доступную на нем. Кроме того, Touch ID хорошо работает на моем iPhone 7 и iPad Air 2 (на них нет Face ID, поэтому я не могу это проверить).

Что касается Touch ID, его немного сложно использовать. Это не подходит для регистрации в Safari javascript, если вы используете обратный вызов, а не тот же поток, что и событие кнопки, для вызова navigator.credentials.create({publicKey}). Обнаружить это было неприятно! Так что никаких setTimeout (register ...) или обещания (.then / await) запустить регистрацию с помощью Touch ID.

Я использую https://www.npmjs.com/package/fido2-lib как резервная библиотека на стороне сервера.

person Mathieu Dugré    schedule 12.06.2021