Когда я создаю нового пользователя с помощью API-интерфейса Keycloak rest, приложение игнорирует свойство 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
он также создаст роли области, этого не произойдет, он не создаст роли области. Чтобы создать роли Realm, вы либо используете консоль администратора, либо используете конечную точку:
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>"}]
Идентификатор роли, из которого вы можете получить его:
GET: https://localhost:8543/auth/admin/realms/quarkus/roles/<ROLE_NAME>
и идентификатор пользователя из:
GET: https://localhost:8543/auth/admin/realms/quarkus/users/?username=<USERNAME>
Я загрузил следующие bash-скрипты, чтобы автоматизировать этот процесс.