在 Keycloak 中创建新用户期间未分配客户端角色
Posted
技术标签:
【中文标题】在 Keycloak 中创建新用户期间未分配客户端角色【英文标题】:client roles haven`t assigned during creating new user in Keycloak 【发布时间】:2018-09-23 21:35:18 【问题描述】:我尝试创建具有客户角色的新用户。 我有客户角色: - 行政 - 操作员 - 经理
在创建用户的过程中,我想为用户分配一个客户角色
我的卷发:
curl -X POST -H 'Authorization: Bearer token' -H 'Content-Type: application/json' -i 'http://localhost.com/auth/admin/realms/realm/users' --data '
"username": "test301@qqq.bbb",
"enabled": true,
"firstName": "",
"lastName": "",
"email": "test301@qqq.bbb",
"credentials": [
"type": "password",
"value": "qq",
"temporary": false
],
"clientRoles":
"suppression": [
"Admin"
]
'
用户已成功创建,但尚未分配角色。 我也想在一个请求中做到这一点
【问题讨论】:
您是否找到了如何一步到位的答案? 找到原因了吗? 【参考方案1】:阅读此答案后: https://***.com/a/60814057/577131
创建新组(我的是“admin-group”) 为您希望每个用户的角色添加角色映射 在该组上将获得此角色。当使用创建新用户 POST 时,我将此添加到用户
"groups" : [
"admin-group"
]
用户添加到该组并获取映射到该组的角色
【讨论】:
【参考方案2】:这不是为用户分配角色的正确方法。 这是一个循序渐进的过程—— 第 1 步 - 在 keycloak 中创建用户。
curl -X POST -H 'Authorization: Bearer token' -H 'Content-Type: application/json' -i 'http://localhost.com/auth/admin/realms/realm/users' --data '.....
第 2 步 - 然后使用不同的 API 将此用户映射到某个客户端角色。
POST /admin/realms/realm/users/id/role-mappings/clients/client
有关此 API 的完整规范,您可以在 Keycloak ADMIN API 文档中搜索此 API。这是链接 https://www.keycloak.org/docs-api/3.0/rest-api/index.html 并搜索“将客户端级角色添加到用户角色映射”
【讨论】:
为什么这么简单的事情必须在两个过程中 @aswzen 它的keycloak,隐含的复杂性dna,为什么感到惊讶?以上是关于在 Keycloak 中创建新用户期间未分配客户端角色的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Keycloak 授权服务策略中为所有用户分配权限?
如何在 Keycloak 中创建客户端以与 AWS Cognito 身份联合使用