我想将领域角色“TEST_ROLE_123”分配给一个组,我正在使用
PUT /admin/realms/ataccamaone/groups/{group-id}
{
"realmRoles":["TEST_ROLE_123"]
}
我group-id
从/admin/realms/ataccamaone/groups/
但是我得到了响应204 No Content
,并且在 Keycloak 控制台中我没有看到分配。
我想将领域角色“TEST_ROLE_123”分配给一个组,我正在使用
PUT /admin/realms/ataccamaone/groups/{group-id}
{
"realmRoles":["TEST_ROLE_123"]
}
我group-id
从/admin/realms/ataccamaone/groups/
但是我得到了响应204 No Content
,并且在 Keycloak 控制台中我没有看到分配。
我试图重现您的问题,发现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
的 s
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
}
]
DELETE
使用与步骤 4 相同的 URL 和正文调用以从组中删除角色。
我遇到了同样的问题并使用 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"
]
}