通过休息添加用户时,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 以自动执行此过程。
当我使用 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>
和来自 :
的用户 IDGET: https://localhost:8543/auth/admin/realms/quarkus/users/?username=<USERNAME>
我已上传 following bash scripts 以自动执行此过程。