Keycloak:如何从管理 REST API 禁用 TOTP?

问题描述 投票:0回答:1

UserRepresentation
包含一个
totp
成员。 23.0.0 文档 将其显示为可选布尔值,但它没有记录在案。经过一番尝试,我认为:

  1. 该字段不可写
  2. 如果您阅读它,如果为该用户启用了 TOTP,则返回 true,并且并且已设置

另一种选择是

requiredActions
。如果将
CONFIGURE_TOTP
添加到数组,则可以启用 TOTP,但如果从数组中删除 CONFIGURE_TOTP,TOTP 仍保持启用状态。

那么我错过了什么?如何关闭 TOTP?谢谢。

keycloak keycloak-rest-api
1个回答
0
投票

想通了。在 23.0.1 中,您可以通过转到用户 > 凭据并删除 OTP 凭据,从 UI 手动禁用 OTP。如果您在浏览器中看到调试窗口并检查网络活动,这会变成

DELETE /admin/realms/{realm}/users/{id}/credentials/{credentialId}

唯一困难的是获得

credentialId
。为此,
GET /admin/realms/{realm}/users/{id}/credentials
,它返回一个
CredentialRepresentation
数组。如果您有一个类型为
otp
的对象,那么这就是您的 OTP 凭证,并且关联的
id
是必需的
credentialId

唯一令人困惑的部分是用户的

totp
中的
UserRepresentation
实际上是只读的。当用户完成 OTP 设置后,它会将其自身设置为 true。 UI 的行为方式完全相同:如果您选择用户并查看凭据选项卡,则在用户完成设置并使用 TOTP 登录之前,OTP 凭据不会出现。

© www.soinside.com 2019 - 2024. All rights reserved.