我使用
http://localhost:8080/auth/realms/{realm_name}/protocol/openid-connect/token endpoint
创建令牌。
grant_type=client_credentials
客户端 ID: ------------
客户端秘密:78296d38-cc82-4010-a817-65c283484e51
现在我想获得realm的用户。然后我使用令牌向
http://localhost:8080/auth/admin/realms/{realm_name}/users?username=demo
端点发送请求。
但我得到了 403 forbidden
的回应 "error": "unknown_error"
。怎么解决?
创建(添加)用户
发送 POST 请求至:
http://localhost:8180/admin/realms/YOUR_REALM_NAME/users
这个身体样本:
{
"firstName":"Amir",
"lastName":"Sharafkar", "email":"[email protected]", "enabled":"true",
"username":"sharafkar",
"credentials":[{
"type":"password",
"value":"1234",
"temporary":false
}]}
获取所有用户
发送 GET 请求至:
http://localhost:8180/admin/realms/YOUR_REALM_NAME/users
带有“授权”键标头,其值:
Bearer {YOUR_TOKEN}
获取个人用户
发送 GET 请求至:
http://localhost:8180/admin/realms/YOUR_REALM_NAME/users/{id}
带有“授权”键标头,其值:
Bearer {YOUR_TOKEN}
不要忘记 - Keycloak“版本:20.0.2”
通过以下步骤为您的客户分配角色:
我在 quarkus 版本 18.0.2 中遇到了同样的问题:
我在这里找到了:“client_id是属于领域大师的机密客户端”:https://github.com/keycloak/keycloak-documentation/blob/main/server_development/topics/admin-rest-api.adoc
我不知道为什么引入这个限制,但是当您从master(/auth/realms/master/protocol/openid-connect/token)获取令牌时,您就可以使用自定义客户端和所有内容很好。