我想将域角色“ TEST_ROLE_123”分配给一个组,我正在使用
PUT /admin/realms/ataccamaone/groups/{group-id}
{
"realmRoles":["TEST_ROLE_123"]
}
我从group-id
获得了/admin/realms/ataccamaone/groups/
但是我得到响应204 No Content
,在Keycloak控制台中我看不到分配。
答案 0 :(得分:0)
我试图重现您的问题,发现PUT /admin/realms/ataccamaone/groups/{group-id}
只能编辑组名。
检查浏览器的“网络”选项卡,我看到它使用另一个URL将角色映射到组。通过Admin REST API进行此操作的步骤是:
以下步骤将此PAT用作承载令牌(在“授权”标头中)。我想你已经知道了。
调用GET http://localhost:8080/auth/admin/realms/realm1/roles
以获取角色列表,包括其name
和id
值。
致电GET http://localhost:8080/auth/admin/realms/realm1/groups
以获得群组列表,包括其id
使用以下正文呼叫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相同的URL和正文调用DELETE
,以从组中删除角色。
答案 1 :(得分:0)
我遇到了同样的问题并使用 GROUP 进行了纠正,基本上我已经将首选角色添加到用户组角色列表中,并在通过 REST API 创建用户时使用了该特定用户组。
例如:- ADMIN_USER_GROUP -> INCLUDED ('ADMIN_ROLE')
然后用户创建 API 请求应该如下所示,
{
"firstName": "Sergey",
"lastName": "Kargopolov",
"email": "test4@test.com",
"enabled": "true",
"credentials": [
{
"value": "123"
}
],
"groups": [
"ADMIN_USER_GROUP"
]
}