Продукт Рутокен 2FA Демо предназначен для демонстрации применения и функциональных возможностей устройств Рутокен MFA и Рутокен OTP в сценариях двухфакторной и беспарольной аутентификации. Для демонстрации возможностей аутентификации используются технологии FIDO2 (CTAP2 + WebAuthn) и OATH TOTP (Time-based One-Time Password Algorithm, RFC 6238).
В системе реализован следущий функционал:
- регистрация пользователей.
- традиционная (однофакторная) аутентификация (логин и пароль).
- личный кабинет пользователя.
- добавление/удаление второго фактора аутентификации (FIDO2 2-Step, FIDO2 Passwordless, TOTP).
- двухфакторная и беспарольная аутентификация.
Веб-сервер: | .NET Core 6. |
Фронтенд: | React |
База данных: | PostgreSQL |
Библиотеки: | Passwordless - FIDO2 for .NET, OTP .NET, QrCoder. |
В продукте реализованы следующие компоненты архитектуры FIDO2:
- Client-Side JS, Server-Side App & User Store.
- FIDO2 Server реализован с помощью библиотеки Passwordless - FIDO2 for .NET.
- Продукт позволяет осуществлять аутентификацию в режиме Passwordless, для этого устройство должно поддерживать Режим верификации пользователя.
- PasswordLess аутентификация включается на сервере путем установки параметров:
var authenticatorSelection = new AuthenticatorSelection
{
RequireResidentKey = true,
UserVerification = UserVerificationRequirement.Required
};
В продукте реализована двухфакторная аутентификация по протоколу TOTP (Time-based One-time Password) с помощью библиотеки OTP .NET.
Сервер позволяет вводить seed (секретный) ключ в форматах Base32 или HEX.
Для сборки и запуска веб-сервиса необходим установленный в системе .NET SDK 6.
Для сборки фронтенд части системы необходимо установить Node.js.
В качестве хранилища данных сервис использует СУБД PostgreSQL.
ConnectionString к базе необходимо установить в файле RutokenTotpFido2Demo/appsettings.json
cd RutokenTotpFido2Demo/ClientApp
npm install
cd RutokenTotpFido2Demo
dotnet run