【问题标题】:How to add Keycloak realm role to group via REST API如何通过 REST API 将 Keycloak 领域角色添加到组
【发布时间】:2020-10-16 05:47:48
【问题描述】:

我想将领域角色“TEST_ROLE_123”分配给一个组,我正在使用

PUT /admin/realms/ataccamaone/groups/{group-id}
{
"realmRoles":["TEST_ROLE_123"]
}

我从/admin/realms/ataccamaone/groups/ 得到group-id

但是我得到了204 No Content 的响应,但在 Keycloak 控制台中我没有看到分配。

【问题讨论】:

    标签: keycloak keycloak-rest-api


    【解决方案1】:

    我尝试重现您的问题,发现PUT /admin/realms/ataccamaone/groups/{group-id} 只能编辑组名。

    检查浏览器的“网络”选项卡,我看到它使用另一个 URL 将角色映射到组。通过 Admin REST API 执行此操作的步骤是:

    1. 按照https://www.keycloak.org/docs/latest/authorization_services/index.html#_service_protection_whatis_obtain_pat 部分所述获取 PAT

    以下步骤使用此 PAT 作为不记名令牌(在“授权”标头中)。我猜你已经得到了这个。

    1. 调用GET http://localhost:8080/auth/admin/realms/realm1/roles 获取角色列表,包括他们的nameid 值。

    2. 致电GET http://localhost:8080/auth/admin/realms/realm1/groups 获取群组列表,包括他们的ids

    3. 致电POST http://localhost:8080/auth/admin/realms/realm1/groups/{group-id}/role-mappings/realm 使用以下正文:

      [
        {
          "id": "9083cac3-4280-497d-b973-7713a5fb12b4",  // role-id
          "name": "secretary"   // role-name
        }
      ] 
      
      
    4. 使用与步骤 4 相同的 URL 和正文调用 DELETE 以从组中删除角色。

    【讨论】:

    • 我们需要哪些凭据才能获得此 api 的授权?
    • 9 个月后我遇到了同样的问题。 Keycloak 在很多方面都很棒,但文档确实可以使用它自己的项目来提升它的水平。
    • 非常感谢您分享这个。 Keycloak 文档可以在此主题上进行改进...
    【解决方案2】:

    我遇到了同样的问题,并使用 GROUP 进行了纠正,基本上我已将首选角色添加到用户组角色列表中,并在通过 REST API 创建用户时使用了该特定用户组。

    例如:- ADMIN_USER_GROUP -> 包含('ADMIN_ROLE')

    那么用户创建 API 请求应该如下所示,

    {
        "firstName": "Sergey",
        "lastName": "Kargopolov",
        "email": "test4@test.com",
        "enabled": "true",
        "credentials": [
            {
                "value": "123"
            }
        ],
        "groups": [
            "ADMIN_USER_GROUP"
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 2020-06-21
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2020-08-27
      • 2019-10-19
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      相关资源
      最近更新 更多