确定 Keycloak 用户是否启用了 TOTP

Determine if Keycloak User has TOTP enabled

我有一个针对 Keycloak 进行身份验证并允许用户在其 Keycloak 帐户页面中启用 TOTP 的单页 Web 应用程序。

但是我希望客户端应用程序在登录后确定经过身份验证的用户是否启用了 2-factor-authentication/TOTP。

是否可以将此(布尔)信息映射到令牌或用户信息端点...我还没有找到包含此信息的任何用户 属性。

我找到它的唯一地方是 Admin-REST-API /auth/admin/realms/{realm}/users/{uuid},但是 Client/End-user 不会也不应该在那里访问:

{
   ...
   totp: true,
   
}

我认为如果不进行自定义,这是不可能的。

您可能想要添加自定义协议映射器并像这样检查 totp:

keyclaokSession.userCredentialManager().isConfiguredFor(realm, user, OTPCredentialModel.TYPE)

Here is a video 解释了第一步。