通过休息添加用户时,Keycloak 忽略 realmRoles api

Keycloak ignores realmRoles when adding a user by rest api

当我使用 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

如果您期望端点:

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>

我已上传 following bash scripts 以自动执行此过程。