Я хочу защитить функцию высокого уровня риска с помощью 2FA. Исторически мы используем 2FA SMS. Я хочу предложить ту же функцию, но в идеале я хочу иметь возможность интегрировать также собственный аутентификатор Keycloak OTP (более безопасный). Вот почему на основе keycloak-sms-authenticator-sns https://github.com/nickpack/keycloak-sms-authenticator-sns> я улучшил этот аутентификатор (скоро сделаю запрос на слияние).
Я искал в документации Keycloak 3.4.3, но, используя ту же область, я не видел никакой функции, которая запрашивала бы 2FA, когда конечный пользователь хочет получить доступ к определенному ресурсу. Ролевой механизм позволяет управлять доступом (403–200), но, похоже, он не подходит для моего варианта использования. Я не уверен, что UMA 2.0 может предлагать эту функцию. Более того, он еще не реализован. Уровень гарантии кажется очень хорошим, но он еще не реализован, и это будет трудно сделать.
Я мог бы включить фильтр сервлета в бизнес-приложение (адаптер JBoss), чтобы направить пользователя к аутентификатору 2FA, когда он хочет получить доступ к ресурсу. Но в этом случае я должен распространять состояние между Keycloak и адаптером Java, чтобы не запрашивать код 2FA для каждого доступа. Это может быть немного сложно в кластерном режиме (служба без сохранения состояния).
Есть ли у вас идея легко охватить этот вариант использования на основе встроенных функций keycloak? Если это не так, по вашему мнению, какое решение является лучшим (см. выше)? (самая простая интеграция для удобства обслуживания, поддержка кластеризации и независимость от техники 2FA)
Спасибо, что поделились своим опытом.