已创建my-realm与my-client,能否无需admin-cli通过API创建KeyCloak用户?
能否通过my-client的密钥调用API创建用户?
可以,但需要先给my-client配置足够的管理权限,具体操作如下:
- 配置客户端权限:在Keycloak控制台的
my-realm域中,找到my-client,进入「权限」标签页,为其添加realm级的用户管理角色,比如manage-users、create-users,确保客户端拥有创建用户的权限。 - 获取客户端访问令牌:调用Keycloak的令牌端点,使用
client_credentials授权类型,传入my-client的ID和secret,获取带有管理权限的access token。示例请求(curl命令):curl -X POST 'http://your-keycloak-domain/realms/my-realm/protocol/openid-connect/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'grant_type=client_credentials&client_id=my-client&client_secret=your-client-secret' - 调用创建用户API:使用拿到的access token,向用户管理端点发送POST请求,传入用户信息。示例请求:
curl -X POST 'http://your-keycloak-domain/admin/realms/my-realm/users' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ -d '{ "username": "new-user", "email": "new-user@example.com", "enabled": true, "credentials": [{ "type": "password", "value": "user-password", "temporary": false }] }'
需要注意:如果客户端没有被分配对应的管理角色,调用创建用户API会返回权限不足的错误。
内容的提问来源于stack exchange,提问作者Альберт Александров
相关产品推荐
相关产品推荐

