使用手机号码和 otp Rest api 登录 Keycloak(直接授予)

Abd*_*mon 5 authorization oauth keycloak keycloak-rest-api

我正在从 spring security oauth 迁移到 keycloak。我当前的系统支持使用用户名/密码、手机号码/密码和手机号码/otp登录。

Keycloak 允许我使用自定义提供商 SPI 实现使用用户名/密码和手机号码/密码登录并生成令牌。

我想允许我的用户使用 OTP 登录。在我当前的实现中,我使用 grant_type。如果 grant_type 是“password”,我们将检查用户名和密码。如果 grant_type 是 otp,我们将 otp 发送到手机号码,并将 otp 的秘密发送到前端进行验证。然后我们收到带有秘密的 otp,如果它有效,则会为用户生成令牌。

Keycloak 允许为浏览器流程创建身份验证,但不允许为直接授予或其余 api 创建身份验证。使用 keycloak 有没有可能的解决方案?