#keycloak #keycloak-rest-api
#keycloak #keycloak-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
Ответ №1:
Если вы ожидаете, что с конечной точкой:
POST: https://localhost:8543/auth/admin/realms/quarkus/users
он также создаст роли области, этого не произойдет, он не создаст роли области. Для создания ролей области вы либо используете консоль администратора, либо используете конечную точку:
POST https://localhost:8543/auth/admin/realms/quarkus/roles
с полезной нагрузкой
{"name":"<ROLE_NAME>","description":"<DESCRIPTION>"}
если это не составная роль области.
Чтобы назначить пользователю роль Realm, после создания пользователя вызовите конечную точку:
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 для автоматизации этого процесса.