Ключ FIDO U2F: проверка подлинности входа в Chrome возвращает код ошибки 4 (работает в FF)

Мы пытаемся добавить аутентификацию с помощью ключа безопасности Yubico FIDO U2F на наш веб-сайт администратора. Это работает в FireFox с установленной надстройкой U2F, но при подписании вызова (с использованием javascript) для входа продолжает возвращаться {errorCode: 4}.

Кто-нибудь знает, почему это может происходить или как я могу отладить, что идет не так?

Заранее спасибо.

подробности

Наш сайт сделан на Java с ZK Framework. На стороне сервера мы используем библиотеку java-u2flib-server. Мы подписываем запросы на стороне клиента, используя javascript в файлах zul, используя высокоуровневые функции API u2f.register и u2f.sign.

Постановка на учет

Для регистрации ключа пользователь сначала вводит имя и пароль и отправляет. Сервер создает RegistrationData и переходит на вторую страницу. Там мы используем функцию javascript u2f.register. В обратном вызове мы отправляем ответ с DeviceRegistration на сервер.

Это работает как в FireFox, так и в Chrome.

Аутентификация / Войти

Вход осуществляется аналогично. При отправке первой страницы сервер выдает DeviceRegistration json и вызов на вторую страницу. Страница использует u2f.sign и отправляет DeviceResponse на сервер в обратном вызове.

Это работает в Firefox, но в Chrome u2f.sign продолжает возвращать {errorCode: 4}.

Согласно документации это означает, что устройство не знает полученную DeviceRegistration, но это кажется маловероятным, так как тот же код работает в Firefox, и я проверил, что они получают одинаковый JSON с сервера.

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

0 ответов

Другие вопросы по тегам