【问题标题】:client roles haven`t assigned during creating new user in Keycloak在 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"
    ]
  }
}'

用户已成功创建,但尚未分配角色。 我也想在一个请求中做到这一点

【问题讨论】:

  • 您是否找到了如何一步到位的答案?
  • 找到原因了吗?

标签: java api curl keycloak keycloak-services


【解决方案1】:

阅读此答案后: https://stackoverflow.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,为什么感到惊讶?
    猜你喜欢
    • 1970-01-01
    • 2019-10-19
    • 2021-01-03
    • 2017-08-30
    • 2017-09-12
    • 2019-05-05
    • 2021-10-27
    • 2019-01-08
    • 2019-06-04
    相关资源
    最近更新 更多