Включить разрешения авторизации для моего токена с помощью Keycloak Mapper

Я хотел бы, чтобы Keycloak (2.3.0.Final) включал разрешения, связанные с пользователем, в токен идентификатора. Я попытался создать картограф для сопоставления всех разрешений, но, к сожалению, нет возможности добавить такую ​​функцию.

Кто-нибудь знает, как это сделать?


person Celso Agra    schedule 27.10.2016    source источник


Ответы (1)


Благодаря другу я решил эту проблему!

Проблема в том, что я хочу получить информацию об авторизации, принадлежащую конкретному клиенту. В текущей версии Keycloak (2.3.0.Final) вы не можете получать разрешения через токен, и это имеет смысл.

Итак, у вас есть 2 альтернативы: первая использует билет разрешения, а еще один - через Entitlement API.

Итак, я использую вторую альтернативу:

curl -X GET \
    -H "Authorization: Bearer ${access_token}" \
    "http://localhost:8080/auth/realms/${realm_name}/authz/entitlement/${resource_server_id}"

realm_name - это имя, которое было добавлено в область (представленное в URL-адресе), а resource_server_id - это client_id, который был выбран в настройках клиента.

Кроме того, первая альтернатива будет использоваться с билет разрешения:

curl -X POST
    -H "Authorization: Bearer ${AAT}" -d '{
    "ticket" : ${PERMISSION_TICKET}
}' "http://localhost:8080/auth/realms/${realm_name}/authz/authorize"

Вот несколько полезных ссылок для решения этой проблемы:

person Celso Agra    schedule 08.11.2016