Я пытаюсь добавить роль клиентского уровня конкретному пользователю с помощью API Keycloak rest. Я пробую это в почтальоне, но продолжаю получать 404, не найденный.
Вот URL-
https: // {keycloak url} / auth / admin / realms / acme / users / b62dc517-0dd8-41ad-9d97-f385e507e279 / role- mappings / clients / 6b1f23b4-6bec-4873-a991-4b7e49e8b797
Параметр пользователя в URL-адресе - это идентификатор пользователя (b62dc517-0dd8-41ad-9d97-f385e507e279) в keycloak, а последняя часть URL-адреса - это идентификатор клиента (6b1f23b4-6bec-4873-a991-4b7e49e8b797) в keycloak
Тело ПОСТ-
{
"roles": [
{
"id": "5aee8f8c-421f-4ed4-93d1-2ddd44864f4f",
"name": "admin",
"composite": false,
"clientRole": true,
"containerId": "5f930328-98bc-40d0-9882-dd7f2482b6c2"
}
]
}
Для почтальона я установил - Content-Type application/json
носитель авторизации {TOKEN}
Где я ошибся?
РЕДАКТИРОВАТЬ: вот мои настройки почтальона -
Вот мои настройки в почтальоне- Заголовки-
Content-Length = <calculated when request is sent>
Host = <calculated when request is sent>
User-Agent = PostmanRuntime/7.26.10
Accept = */*
Accept Encoding = gzip, deflate, br
Connection = keep-alive
Content-Type = application/json
Authorization- Type = Bearer Token Token успешно сгенерирован перед каждой попыткой вручную
Радиокнопка Body- raw выбрана ниже в качестве необработанных данных.
{
"roles": [
{
"id": "5aee8f8c-421f-4ed4-93d1-2ddd44864f4f",
"name": "admin",
"composite": false,
"clientRole": true,
"containerId": "6b1f23b4-6bec-4873-a991-4b7e49e8b797"
}
]
}
Метод POST
РЕДАКТИРОВАТЬ - Ответ был в комментариях от Dreamcrash. Я скопировал идентификатор клиента из пользовательского интерфейса Keycloak, что вызвало ошибку 404. Я заметил, что когда я использовал почтальон для получения идентификатора клиента, он отличался от того, что было в пользовательском интерфейсе. Когда я использовал возвращаемое значение, все было хорошо, и это сработало! Имя и идентификатор клиента, области и т. Д. Для параметров URL или тела документации сообщения вводят в заблуждение. Неправильный идентификатор вызовет 404. Надеюсь, это поможет кому-то, поскольку я потратил часы на это ...