Keycloak Get Users 返回 403 禁止

Azh*_*san 19 authentication rest access-token keycloak keycloak-rest-api

我使用创建令牌http://localhost:8080/auth/realms/{realm_name}/protocol/openid-connect/token endpoint

grant_type=client_credentials
客户端 ID: ------------
客户端秘密:78296d38-cc82-4010-a817-65c283484e51

现在我想获得领域的用户。然后我http://localhost:8080/auth/admin/realms/{realm_name}/users?username=demo使用令牌向端点发送请求。但我得到了403 forbidden回应"error": "unknown_error"。怎么解决呢?

Luc*_*rcq 50

需要允许与您的客户端关联的服务帐户查看领域用户。

  1. 转到 http://localhost:8080/auth/admin/{realm_name}/console/#/realms/{realm_name}/clients

  2. 选择您的客户(必须是保密客户)

  3. 在“设置”选项卡中,将“启用服务帐户”切换为“开”

  4. 单击“保存”,将出现“服务帐户角色”选项卡

  5. 在客户端角色中,选择领域_管理

  6. 滚动浏览可用角色,直到可以选择view_users

  7. 单击添加选定的

你应该有这样的东西:

在此输入图像描述

您的客户端现在可以通过 REST API 访问用户。

  • 我需要向用户添加 `view-users` 角色:用户 -> <用户名> -> 角色映射 -> 客户端角色 -> 领域管理 -> `view-users` -> `[添加所选>> ]` (3认同)
  • 即使添加了所有角色后,我仍然收到 403 错误。有什么线索吗?附言。我已启用服务帐户,并且登录没有问题。 (2认同)
  • 嘿,我确实解决了,但我不记得是怎么解决的。确保 JWT 令牌内部有角色,我认为这是问题所在,但我不记得了,抱歉。 (2认同)

Ami*_*kar 6

创建(添加)用户

发送 POST 请求至:

http://localhost:8180/admin/realms/YOUR_REALM_NAME/users
Run Code Online (Sandbox Code Playgroud)

与这个身体样本:

http://localhost:8180/admin/realms/YOUR_REALM_NAME/users
Run Code Online (Sandbox Code Playgroud)

获取所有用户

发送 GET 请求至:

http://localhost:8180/admin/realms/YOUR_REALM_NAME/users
Run Code Online (Sandbox Code Playgroud)

带有“授权”键标头,其值:Bearer {YOUR_TOKEN}

获取个人用户

发送 GET 请求至:

http://localhost:8180/admin/realms/YOUR_REALM_NAME/users/{id}
Run Code Online (Sandbox Code Playgroud)

带有“授权”键标头,其值:Bearer {YOUR_TOKEN}

不要忘记- Keycloak“版本:20.0.2”

通过以下步骤为您的客户分配角色:

  1. 单击分配角色按钮

单击分配角色按钮

  1. 选择按客户过滤

选择按客户过滤

  1. 最后为您的客户端添加“管理用户”角色

最后为您的客户端添加“管理用户”角色


Dzm*_*ach 5

您需要为自定义用户分配目标领域管理角色。例如,Keycloak 版本 19.02 要分配任何领域管理角色,例如管理用户、管理客户端或领域管理员,您必须遵循以下步骤:

  1. 创建一个新用户
  2. 导航到用户详细信息并打开“角色映射”选项卡。
  3. 单击分配角色按钮
  4. 选择按客户过滤
  5. 您将看到前 10 个结果,单击“>”查看接下来的 10 个结果等,或使用搜索框
  6. 选择一个目标角色

按客户端领域管理角色过滤