您需要使用用户的角色映射API而不是用户API
POST {keycloak URL}/admin/realms/{my_realm}/users/{user-id}/role-mappings/realm
POST 正文
[
{
"id": {realm_role_id},
"name": {realm_role_name},
"composite": false,
"clientRole": false,
"containerId": {my_realm_id}
}
]
详细信息以官方为准管理接口 at Add realm-level role mappings to the user
部分。
邮差演示
1 获取主访问令牌,分配token
环境variable
这里有更多详细信息获取主令牌
2 获取用户列表#1 token
3 获取用户#2 {user id}
4 获取领域 ID#1 token
5 获取领域roles list
6 设置用户的领域角色映射#5's realm role
In the body
,使用数组格式 - 这意味着可以分配多个领域角色
POST URL
http://localhost:8180/auth/admin/realms/test/users/f3d78ca2-7bab-4aed-b1a4-8b98bf1be000/role-mappings/realm
containerId
是#4的{realm_id}
id
is #5 {role_id}
[
{
"id": "b73643c4-5375-4f9d-b6d5-65dc7c719c68",
"name": "name-of-role-2",
"composite": false,
"clientRole": false,
"containerId": "a6d347b4-3fe8-4410-bda6-54dbf8e50903"
}
]
返回状态应为 204 无内容。
如果不是,那就出问题了。
最后,您可以确认领域角色分配的结果。
如果您想通过API确认
GET API
http://localhost:8180/auth/admin/realms/test/users/f3d78ca2-7bab-4aed-b1a4-8b98bf1be000/role-mappings/realm