Как реализовать FIDO2 (WebAuthn) для Android и IOS

Я разработал веб-приложение, которое использует WebAuthn API для аутентификации с использованием аппаратных ключей безопасности. Работает нормально.

Я пытаюсь реализовать это изначально, используя Flutter с совместимостью как для IOS, так и для Android. Есть ли какие-нибудь библиотеки или отправная точка для этих платформ? Я не хочу использовать ChromeTabs или SFSafariViewController.

Пожалуйста посоветуй.


person tambre    schedule 24.05.2020    source источник
comment
Под «родным» вы имеете в виду вообще не использовать веб-браузер? Если так, то это больше не WebAuthn, и вы будете напрямую взаимодействовать с CTAP2. Я не уверен, доступны ли API для этого даже на iOS. Вы используете для этого серверную часть OAuth2 / OIDC? В этом случае рекомендуется использовать ASWebAuthenticationSession или настраиваемые вкладки Chrome в соответствии с tools.ietf.org/html/rfc8252 < / а>.   -  person mackie    schedule 24.05.2020
comment
Вы нашли решение?   -  person poqueque    schedule 16.09.2020


Ответы (2)


Вы должны открыть окно браузера, чтобы аутентифицировать пользователя, и при успешном входе в систему используйте my-app: // myapp / auth / successed = true & token = xyz в качестве URL-адреса перенаправления (перенаправления схемы URI частного использования) и перед этим зарегистрируйте этот шаблон URL-адреса для вашего приложение my-app в качестве протокола. Браузер автоматически откроет ваше приложение с заданным URL-адресом перенаправления, и вы должны обработать этот URL-адрес, чтобы перевести приложение в соответствующее состояние ...

person efaruk    schedule 11.09.2020

Для Android у вас есть их FIDO2 API. Некоторые примеры кодовых лабораторий и реализаций уже существуют:

  1. codelab
  2. пример котлина
  3. пример java.

Однако на iOS FIDO2 поддерживается только в браузере Safari (не уверен в других браузерах) и только с iOS 13.3 (ссылка).

Вы можете рассмотреть возможность использования собственного FIDO2 API на Android и открытия Safari на iOS до тех пор, пока не будет добавлена ​​поддержка базовой платформы.

Как указано в @mackie, однако, если вы используете FIDO2 в части аутентификации потока OAuth, рекомендуется использовать веб-браузер с настраиваемыми вкладками ASWebAuthenticationSession или Chrome.

person bugbear    schedule 06.06.2021