在Keycloak

时间:2018-04-13 13:42:56

标签: java api curl keycloak keycloak-services

我试图创建具有客户角色的新用户。 我有客户角色: - 管理员 - 运营商 - 经理

在创建用户期间,我想为用户分配一个客户角色

我的卷曲:

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"
    ]
  }
}'

用户已成功创建,但未分配角色。 我也希望在一个请求中执行此操作

2 个答案:

答案 0 :(得分:1)

这不是将角色分配给用户的正确方法。 这是一个逐步的过程- 第1步-在密钥斗篷中创建一个用户。

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 并搜索“将客户端级别的角色添加到用户角色映射”

答案 1 :(得分:1)

阅读此答案后: https://stackoverflow.com/a/60814057/577131

  • 创建新组(我的是“admin-group”)
  • 为每个用户想要的角色添加角色映射 此群组中的成员将获得此角色。

在使用创建新用户 POST 时,我将此添加到用户

"groups" : [
    "admin-group"
]

用户添加到该组并获得映射到该组的角色