如何使用 REST API 在 Keycloak 中创建具有密码的用户?

Posted

技术标签:

【中文标题】如何使用 REST API 在 Keycloak 中创建具有密码的用户?【英文标题】:How can I create a user with a password in Keycloak using the REST API? 【发布时间】:2021-04-01 14:30:10 【问题描述】:

我可以使用 REST API 在

创建一个新用户

http://localhost:8080/auth/admin/realms/myRealm/users

但用户没有密码。在this post 和this post 之后,我向json 添加了这样的凭据


  "firstName":"functest",
  "lastName":"functest",
  "email":"me@gmail.com",
  "enabled":true,
  "username":"functest",
  "credentials":["type":"password","value":"abc123","temporary":false]

但是当我尝试使用用户名和密码登录时,它失败了。当我在 UI 中查看用户凭据时,它确实显示了 Type password 的行,但用户标签为空白。

如何使用 REST API 创建带密码的用户?

【问题讨论】:

【参考方案1】:

您应该能够使用端点创建凭据:

POST http://localhost:8080/auth/admin/realms/myRealm/users

与有效载荷

"enabled":true,"username":"functest","email":"me@gmail.com","firstName":"functest","lastName":"functest","credentials":["type":"password","value":"abc123","temporary":false]

或者,您可以先创建用户,然后使用端点设置密码:

PUT http://localhost:8080/auth/admin/realms/myRealm/users/<USER_ID>

有效载荷:

"credentials":["type":"password","value":"abc123","temporary":false]

用户ID你可以从:

GET http://localhost:8080/auth/admin/realms/myRealm/users/?username=<USERNAME>

【讨论】:

以上是关于如何使用 REST API 在 Keycloak 中创建具有密码的用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Keycloak 保护前端和 REST API

如何使用 REST API 在 Keycloak 中创建具有密码的用户?

如何激活keycloak的REST API?

如何从 Keycloak REST API 获取用户?

如何在不使用 rest admin api 的情况下以编程方式(java)更新 keycloak 的用户详细信息?

如何从 REST API(PUT 方法)更新 Keycloak 密码?