Получить код авторизации от конечной точки токена Keycloak - PullRequest
0 голосов
/ 29 октября 2019

В документации о ключе ключа написано, что конечная точка токена может использоваться для получения временного кода в потоке кода авторизации или для получения токенов с помощью неявного потока, прямого предоставления или клиентского предоставления.

Но даже с response_type = code я не могу получить код авторизации: только токен. Как я могу это сделать?

Мой тестовый запрос:

curl -X POST \
  http://localhost:8080/auth/realms/my-realm/protocol/openid-connect/token \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Host: localhost:8080' \
  -H 'Postman-Token: e103dff9-7b25-4f8f-886b-2af73efee561,e8f92a85-1489-4d7f-b89f-76cfe85e9c68' \
  -H 'User-Agent: PostmanRuntime/7.15.0' \
  -H 'accept-encoding: gzip, deflate' \
  -H 'cache-control: no-cache' \
  -H 'content-length: 94' \
  -d 'grant_type=password&username=login&password=pwd&client_id=my-app&response_type=code'

Источник: https://www.keycloak.org/docs/latest/server_admin/index.html#keycloak-server-oidc-uri-endpoints

1 Ответ

2 голосов
/ 30 октября 2019

response_type может использоваться только в запросе авторизации к конечной точке авторизации (http://localhost:8080/auth/realms/my-realm/protocol/openid-connect/auth) и в этом случае будет игнорироваться (в запросе токена). Код авторизации можно получить из конечной точки авторизации следующим образом:

http://localhost:8080/auth/realms/my-realm/protocol/openid-connect/auth?client_id=my-ap&redirect_uri=https://...&response_type=code

См. Также: https://tools.ietf.org/html/rfc6749#section-4.1.1

...