2

当我使用 Keycloak rest API 创建新用户时,应用程序会忽略没有将角色分配给新用户的 realmRoles 属性。这是一个例子

POST: https://localhost:8543/auth/admin/realms/quarkus/users

Body:
{
   "username":"alexandre",
   "enabled":true,
   "emailVerified":true,
   "firstName":"Alexandre",
   "lastName":"Oliveira",
   "email":"alexandreqogmailcom",
   "credentials":[
      {
         "type":"password",
         "value":"123456",
         "temporary":false
      }
   ],
   "realmRoles":[
      "user_esc"
   ],
   "access":{
      "mapRoles":true
   }

有没有办法解决这个问题或解决方法?

PS:我使用的是keycloak 12.0.1版本

4

1 回答 1

1

如果您期望使用端点:

POST: https://localhost:8543/auth/admin/realms/quarkus/users

它还将创建领域角色,这不会发生,它不会创建领域角色。要创建领域角色,您可以使用管理控制台或使用端点:

POST https://localhost:8543/auth/admin/realms/quarkus/roles

与有效载荷

{"name":"<ROLE_NAME>","description":"<DESCRIPTION>"}

如果它是非复合领域角色。

要将领域角色分配给用户,在创建用户后,调用端点:

POST: https://localhost:8543/auth/admin/realms/quarkus/users/<USER_ID>/role-mappings/realm

与有效载荷

[{"id":"<Role ID>","name":"<Role Name>"}] 

您可以从中获取的角色 ID:

GET: https://localhost:8543/auth/admin/realms/quarkus/roles/<ROLE_NAME>

和来自的用户 ID:

GET: https://localhost:8543/auth/admin/realms/quarkus/users/?username=<USERNAME>

我已经上传了以下 bash 脚本来自动化这个过程。

于 2020-12-22T08:14:44.410 回答