我有一个 spring boot 应用程序,它使用 keycloak 进行用户管理。但是 keycloak 实例是生产实例,我没有管理员凭据。我关注 keycloak 领域信息。
#Keycloak settings
keycloak.auth-server-url=https://myapp.com/auth/
keycloak.realm=project-realm
keycloak.resource=project-client
keycloak.credentials.secret=secret
keycloak.use-resource-role-mappings=true
keycloak.bearer-only=true
keycloak.ssl-required=external
auth.token.url=https://myapp.com/auth/realms/my-realm/protocol/openid-connect/token
auth.grant.type=client_credentials
当我尝试使用 keycloak rest api 执行用户管理操作时,我收到了 403 Forbidden 响应。此处授权 token 是使用上述领域凭据生成的。
method: POST
url:https://myapp.com/auth/realms/project-realm/protocol/openid-connect/token
contentType: application/x-www-form-urlencoded
body:
client_id: project-client
grant_type: client_credentials
client_secret: secret
但是当我使用本地 key 斗篷实例并使用管理员凭据生成授权 token 时,这工作正常。
method: POST
url:http://localhost:8180/auth/realms/master/protocol/openid-connect/token
contentType: application/x-www-form-urlencoded
body:
client_id: admin-cli
grant_type: password
username: admin
password: admin
我需要知道的是,我是否需要管理员凭据(用户名、密码)才能使用 Keycloak rest api 执行这些用户管理操作?还是我做错了什么?
最佳答案
When I try do perform user management operations using keycloak rest api I get 403 Forbidden response. Here the authorization token is generated using above realm credentials.
这是因为
method: POST
url:https://myapp.com/auth/realms/project-realm/protocol/openid-connect/token
contentType: application/x-www-form-urlencoded
body:
client_id: project-client
grant_type: client_credentials
client_secret: secret
您的客户端 project-client
没有适当的管理相关角色来执行 Admin Rest API 调用。
What I need to know is do I need admin credentials (username, password) to perform these user management operation using keyclaok rest api? Or am I doing something wrong?
没有。您可以与其他用户或客户一起执行这些相同的任务,只要他们具有适当的角色即可。要解决您的问题,您可以执行以下操作:
- 转到客户端
project-client
所在的领域; - 转到客户端并选择客户端
project-client
; - 切换到标签
Service Account Roles
; - 在
Client Roles
下拉菜单中选择realm-management
; - 相应地选择和分配角色:
关于spring-boot - 是否可以在没有管理员凭据的情况下创建 key 斗篷用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67224388/