Keycloak включает разрешение в токен доступа вместе с ролями - PullRequest
0 голосов
/ 07 февраля 2019

Я работал над настройкой авторизации с помощью keycloak и настроил определенные роли и разрешения на основе ресурсов, но токен доступа JWT содержит только сведения о ролях, а не полномочия, назначенные пользователю.

Я хочу, чтобы токен доступа включал сведения о разрешениях и пробовал методы, описанные в документации Keycloak: 1) Использование разрешения не может сгенерировать билет, используя

http://${host}:${port}/auth/realms/${realm_name}/authz/protection/permission

, которое показывает:

{
    "error": "invalid_bearer_token",
    "error_description": "Could not obtain bearer access_token from request."
}

и, следовательно, не может сгенерировать RPT и получить подробные сведения о разрешениях.

Также попытался использовать API предоставления прав.

2) Использование API предоставления прав:

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

Iпопытался использовать почтальон и он показывает 404 Not Found ..

Может кто-нибудь показать мне правильную процедуру для включения разрешения в токен доступа или правильно сгенерировать RPT.

1 Ответ

0 голосов
/ 07 февраля 2019

Keycloak - это документ для служб авторизации.Вы можете получить следующий URL:

curl -X GET http://localhost:8080/auth/realms/{realm}/.well-known/uma2-configuration -H "Authorization: Bearer ${access_token}"

здесь localhost и 8080 для хоста keycloak и порта

ошибка говорит о том, что используемый вами токен недействителен для клиента.

Я смог получить RPT, используя следующую команду

curl -X POST   http://localhost:8080/auth/realms/${realm}/protocol/openid-connect/token  -H "Authorization: Bearer ${access_token}" --data "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket" --data "audience={resource_server_client_id}"  --data "permission=Resource#Scope"

Keycloak отвечает клиенту RPT

...