是否可以在没有管理员凭据的情况下创建密钥斗篷用户?
Is it possible to create keycloak users without admin credentials?
我有一个 spring 启动应用程序,它使用 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 响应。这里授权令牌是使用上面的领域凭据.
生成的
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
但是当我使用本地 keycloak 实例并使用 admin 凭据 生成授权令牌时,这工作正常。
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
没有适当的管理员相关角色来执行管理员休息 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
所在的领域;
- 转到客户和 select 客户
project-client
;
- 切换到选项卡
Service Account Roles
;
- 在
Client Roles
下拉菜单中 select realm-management
;
- Select 并相应地分配角色:
我有一个 spring 启动应用程序,它使用 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 响应。这里授权令牌是使用上面的领域凭据.
生成的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
但是当我使用本地 keycloak 实例并使用 admin 凭据 生成授权令牌时,这工作正常。
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
没有适当的管理员相关角色来执行管理员休息 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
所在的领域; - 转到客户和 select 客户
project-client
; - 切换到选项卡
Service Account Roles
; - 在
Client Roles
下拉菜单中 selectrealm-management
; - Select 并相应地分配角色: