Как проверить токен доступа для потока OAuth2 + PCKE

Согласно этому документу https://developers.onelogin.com/openid-connect/guides/auth-flow-pkce

Конечная точка токена для потока PCKE - Нет (не базовая или POST)

введите описание изображения здесь

Итак, как я могу использовать API токена проверки https://developers.onelogin.com/openid-connect/api/validate-session, потому что он поддерживает Basic authentication или POST, но не для None (PCKE). Я не могу найти никакой информации, относящейся к этому.

ПРИМЕЧАНИЕ. Я пытался запросить с помощью обычной проверки подлинности и без + client_id, client_secret в качестве параметра, но не работал.

ответ 401 Неавторизованный

{
    "error": "invalid_client",
    "error_description": "client authentication failed"
}

person Jongz Puangput    schedule 24.04.2019    source источник


Ответы (2)


Я использую OIDC с PKCE, и мне удалось вызвать https://openid-connect.onelogin.com/oidc/token/introspection с токеном, полученным через поток кода авторизации:

$ curl -i -d "token=...&token_type_hint=access_token&client_id=..." https://openid-connect.onelogin.com/oidc/token/introspection

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Length: 304
Content-Type: application/json; charset=utf-8
Date: Thu, 25 Apr 2019 23:37:42 GMT
Pragma: no-cache
X-Powered-By: Express
Set-Cookie: ol_oidc_canary_040819=false; path=/; domain=.onelogin.com

{"active":true,"sub":"...","client_id":"...","exp":1558819177,"iat":1556227177,"sid":"...","iss":"https://openid-connect.onelogin.com/oidc","jti":"...","scope":"openid profile email"}

И access_token, и refresh_token, возвращенные из потока кода аутентификации https://developers.onelogin.com/openid-connect/api/authorization-code-grant работал, а access_token возвращал {"active":false} только после истечения срока его действия.

Убедитесь, что вы не устанавливаете заголовок Authorization, а только задаете client_id в полезной нагрузке.

person Jeremy    schedule 25.04.2019

Используйте client_id и code_verify в теле сообщения POST. Это будет аутентифицировать запрос на этой конечной точке.

person niall_atlasidentity    schedule 26.04.2019
comment
Я выяснил, что в теле запроса передавать code_verify не обязательно !? - person Jongz Puangput; 28.04.2019
comment
Привет, Джонгз. Это Найл. Мы с тобой разговариваем через другой канал :) - person niall_atlasidentity; 29.04.2019
comment
LoL земля круглая! @niall_atlasidentity - person Jongz Puangput; 29.04.2019