OpenID Connect를 위한 토큰 엔드포인트 호출
OpenID Connect 권한 부여 코드 플로우에서 클라이언트는 토큰 엔드포인트를 사용하여 ID 토큰, 액세스 토큰 및 새로 고치기 토큰을 얻습니다.
시작하기 전에
이 태스크 정보
토큰 엔드포인트는 권한 부여 엔드포인트가 클라이언트에게 발행한 권한 부여 코드를 포함하는 클라이언트로부터의 요청을 승인합니다. 권한 부여 코드가 유효성 검증되면 적절한 토큰이 응답에서 클라이언트에게 리턴됩니다.
토큰 엔드포인트는 OpenID Connect 암시 플로우에서 사용되지 않습니다.
OpenID Connect가 사용되는 Liberty 서버에는 다음 URL의 OpenID Connect 토큰 엔드포인트에 대한 액세스 권한이 있습니다.
https://server.example.com:443/oidc/endpoint/<provider_name>/token
참고: 이 예제에서
OP의 SSL 포트는 443으로 예상됩니다. 토큰 엔드포인트와의 모든 통신은 TLS을 사용해야 합니다.
프로시저
결과
OpenID Connect Provider가 클라이언트로부터 수신한 토큰 요청을 유효성 검증하면 OpenID Connect Provider는 application/json 형식의 JSON 오브젝트가 있는 HTTP 200 응답을 다시 클라이언트로 리턴합니다. 응답에는 다음과 같은 추가 매개변수와 함께 ID 토큰, 액세스 토큰 및 새로 고치기 토큰이 포함됩니다.
- token_type: OAuth 2.0 토큰 유형. OpenID Connect의 경우 이 값은 Bearer입니다.
- expires_in: 응답이 생성된 후 액세스 토큰의 만기 시간(초)입니다.
토큰, 본인확인정보 또는 기타 민감한 정보를 포함하는 토큰 엔드포인트로부터의 모든 응답에서 Cache-Control 헤더 값은 no-store로 설정되고 Pragma 헤더 값은 no-cache로 설정되어 있습니다.
.예
예제 요청은 다음과 같습니다.
POST /token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
grant_type=authorization_code
&code=SplxlOBeZQQYbYS6WxSbIA
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
예제 응답은 다음과 같습니다.
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
"access_token": "SlAV32hkKG",
"token_type": "Bearer",
"refresh_token": "8xLOxBtZp8",
"expires_in": 3600,
"id_token": "eyJ ... zcifQ.ewo ... NzAKfQ.ggW8h ... Mzqg"
}