Keycloak подписан JWT client_assertion_type отсутствует - PullRequest
0 голосов
/ 24 января 2020

Я пытался настроить стандартный поток Oauth (предоставление кода авторизации) через Keycloak. Я настроил клиента в Keycloak. Теперь я пытаюсь получить код и впоследствии access_token через эти конечные точки

http://localhost:8080/auth/realms/oauth/protocol/openid-connect/auth?client_id=oauthclient&response_type=code&redirect_uri=http://localhost/redirect/abcdeft:8085&code_challenge_method=S256&code_challenge=n40vE6lQz7GCx8iYkmhGjwv05sMxGw6A4ynUcSDLkaY

и

http://localhost:8080/auth/realms/{realm}/protocol/openid-connect/token

с grant_type, client_id, code, redirect_uri и code_verifier в качестве параметров тела в кодировке url

Это работает нормально, только если я выбрал тип доступа клиента как Publi c. Если тип доступа не опубликован c http://localhost: 8080 / auth / realms / {realm} / protocol / openid-connect / token дает

{
    "error": "invalid_client",
    "error_description": "Parameter client_assertion_type is missing"
}  

Если я выберу тип доступа как конфиденциальный, тогда я понимаю, что я должен настроить Client Authenticator. Я не хочу использовать идентификатор клиента и секрет, поскольку я использую PKCE. Я хочу использовать Signed JWT, но я не могу понять, как это использовать.

Я пробую остальные конечные точки из Почтальона. Я предполагаю, что должен передать параметр client_assertion_type в запросе (вот что говорит ошибка). Но не ясно, что нужно передать в качестве значения? И как это можно проверить с помощью REST-клиента?

У кого-нибудь есть примеры или подсказки?

...