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

How can I create a user with a password in Keycloak using the REST API?

我可以在

使用 REST API 创建一个新用户

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

但是用户没有密码。在 this post and this post 之后,我像这样 json 添加了凭据

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

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

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

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

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>