Я пытался настроить стандартный поток 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-клиента?
У кого-нибудь есть примеры или подсказки?