使用Keycloak API更新用户名

3
我将通过Keycloak用户更新REST API更新帐户的用户名。但是,如果使用自己的令牌请求,则无法更新它。我是否有其他方法让同一用户更新用户名?
2个回答

7
步骤:
  1. 将 manage-users 角色分配给自己
  2. 获取我的访问令牌
  3. 获取用户列表 - 记住我的用户 ID
  4. 使用新用户名添加新用户
  5. 删除我的用户,使用编号为 #3 的用户 ID

1 将 manage-users 角色分配给自己 enter image description here

3 获取用户列表 - 记住我的用户 ID enter image description here

4 使用新用户名添加新用户 enter image description here

5 删除我的用户,使用编号为 #3 的用户 ID enter image description here

更新

根据@AlekseyBudaev的反馈,为什么不通过PUT API进行更新呢? 这是最好的方式,而不是删除“用户名”并创建“用户名”。

PUT /{realm}/users/{id}

在PUT请求中的主体

{
    "username": "<new user name>",
    "firstName": "<new first name>",
    "lastName": "<new last name>",
    "email": "<new e-mail address>"
}

它应该使UI中的编辑用户名可用 输入图像描述

更新之前 输入图像描述

更改用户名 输入图像描述

更新之后 输入图像描述


@AlekseyBudaev,您必须创建一个新的并删除以前的,无法更新用户。 - Bench Vue
@AlekseyBudaev,我能找到'PUT /{realm}/users/{id}` API,但我只看到'PUT /{realm}/users/{id}/reset-password'。你能指出更新用户名API链接吗? - Bench Vue
@AlekseyBudaev,我通过在JSON主体中使用“username”进行PUT / {realm} / users / {id}测试,它返回204无内容而没有错误,但是用户名没有更改。其他属性如“firstName”,“lastName”和“email”可以更新。因此我的结论仍然是不行。 - Bench Vue
2
@BenchVue 我之前说过,你需要在领域设置中启用“编辑用户名”。请查看截图 https://ibb.co/6X19pB3 - Aleksey Budaev
@AlekseyBudaev 你是对的,它有效,我不知道。谢谢,我会更新我的答案。 - Bench Vue
显示剩余6条评论

2
正如Aleksey Budaev在下面的评论中提到的,如果您已经通过API使用了PUT请求(或者想要在GUI中执行PUT请求),重要的是您要在Realm设置中启用"编辑用户名"!否则,PUT请求将忽略此字段,并且仍然返回200响应,尽管用户名没有被更改!

https://ibb.co/6X19pB3


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接