在新的 keycloak 用户帐户上设置所需的操作
Setting required action on new keycloak user account
我正在使用客户端创建一个新的 keycloak 用户。像这样:
keycloak.realm(realm)
.users()
.create(user);
用户变量是一个 UserRepresentation
对象,我正在尝试添加一个 Update Password
必需的操作:
user.setRequiredActions(singletonList("Update Password"))
用户创建成功,问题是我没有设置所需的操作
不确定我做错了什么,我应该在所需的操作列表中指定不同的值吗?
谢谢
弄清楚发生了什么。
Keycloak 有一个枚举来表示各种用户操作:
public static enum RequiredAction {
VERIFY_EMAIL, UPDATE_PROFILE, CONFIGURE_TOTP, UPDATE_PASSWORD, TERMS_AND_CONDITIONS
}
所以值应该是 "UPDATE_PASSWORD"
而不是 "Update password"
现在在 Keycloak 8.x 中您可以使用
UserResource.toRepresentation().setRequiredActions(...);
更改登录名后手动触发类似 "verify email" 的操作。
要找出所有可能的必需操作别名,请从管理界面将目标领域导出为 json。在 json 中,您会找到 "requiredActions" 数组,其中列出了所有法律行为,如下所示:
"requiredActions": [
{
"alias": "CONFIGURE_TOTP",
"name": "Configure OTP",
"providerId": "CONFIGURE_TOTP",
"enabled": true,
"defaultAction": false,
"priority": 10,
"config": {}
},
{
"alias": "terms_and_conditions",
"name": "Terms and Conditions",
"providerId": "terms_and_conditions",
"enabled": false,
"defaultAction": false,
"priority": 20,
"config": {}
},
在代码中设置所需操作列表时,只需使用 "alias" 标签下的字符串即可。
我正在使用客户端创建一个新的 keycloak 用户。像这样:
keycloak.realm(realm)
.users()
.create(user);
用户变量是一个 UserRepresentation
对象,我正在尝试添加一个 Update Password
必需的操作:
user.setRequiredActions(singletonList("Update Password"))
用户创建成功,问题是我没有设置所需的操作
不确定我做错了什么,我应该在所需的操作列表中指定不同的值吗?
谢谢
弄清楚发生了什么。
Keycloak 有一个枚举来表示各种用户操作:
public static enum RequiredAction {
VERIFY_EMAIL, UPDATE_PROFILE, CONFIGURE_TOTP, UPDATE_PASSWORD, TERMS_AND_CONDITIONS
}
所以值应该是 "UPDATE_PASSWORD"
而不是 "Update password"
现在在 Keycloak 8.x 中您可以使用
UserResource.toRepresentation().setRequiredActions(...);
更改登录名后手动触发类似 "verify email" 的操作。
要找出所有可能的必需操作别名,请从管理界面将目标领域导出为 json。在 json 中,您会找到 "requiredActions" 数组,其中列出了所有法律行为,如下所示:
"requiredActions": [
{
"alias": "CONFIGURE_TOTP",
"name": "Configure OTP",
"providerId": "CONFIGURE_TOTP",
"enabled": true,
"defaultAction": false,
"priority": 10,
"config": {}
},
{
"alias": "terms_and_conditions",
"name": "Terms and Conditions",
"providerId": "terms_and_conditions",
"enabled": false,
"defaultAction": false,
"priority": 20,
"config": {}
},
在代码中设置所需操作列表时,只需使用 "alias" 标签下的字符串即可。