액세스 토큰 승인 및 취소

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

액세스 권한 및 갱신 토큰 취소

예를 들어 사용자가 OAuth 지원 앱에서 로그아웃할 때 토큰을 명시적으로 취소하거나 무효화해야 하는 경우가 있습니다. 토큰을 취소하면 만료되기 전에 언제든지 다시 승인을 받을 수 있습니다.

토큰 취소 절차는 OAuth 2.0 토큰 취소 사양에 의해 정의됩니다.

Apigee Edge는 전용 토큰 취소 엔드포인트를 구성할 수 있는 InvalidateToken 작업을 제공합니다. 이 엔드포인트의 URI를 게시하면 앱 개발자가 Edge에서 발급한 토큰을 무효화할 수 있습니다.

다음은 OAuthV2 정책 및 InvalidateToken 작업의 구성 예시입니다. 이 경우 액세스 토큰과 관련 갱신 토큰이 모두 취소됩니다. 기술적으로 cascade 플래그가 true로 설정되므로 둘 다 취소됩니다. cascade 플래그의 작동 방식에 관한 자세한 내용은 아래 토큰 요소의 속성 섹션을 참조하세요.

<OAuthV2 name="InvalidateToken">
  <Operation>InvalidateToken</Operation>
  <Tokens>
    <Token type="accesstoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

<Tokens>/<Token> 요소

취소할 토큰을 지정하는 흐름 변수를 식별합니다. 예를 들어 개발자가 access_token이라는 쿼리 매개변수를 사용하여 취소 요청을 제출할 경우 올바른 흐름 변수는 request.queryparam.access_token입니다. 예를 들어 HTTP 헤더의 토큰을 요구하려면 이 값을 request.header.access_token으로 설정합니다.

속성

  • type(필수, 문자열): 지정된 변수로 식별된 토큰 유형입니다. 지원되는 값은 accesstokenrefreshtoken:입니다.
    • 액세스 토큰을 취소하려면 accesstoken 유형을 지정합니다.
    • 액세스 토큰과 갱신 토큰을 모두 취소하려면 refreshtoken 유형을 지정합니다. 새로고침 토큰 유형을 확인하면 Edge는 토큰이 갱신 토큰이라고 가정합니다. 갱신 토큰을 찾으면 취소됩니다. 갱신 토큰을 찾을 수 없으면 Edge에서 액세스 토큰인지 확인합니다. 액세스 토큰이 존재하는 경우 취소됩니다.

      참고: 이미 무효화된 토큰을 InvalidateToken 정책에 전달하면 오류가 반환될 것으로 생각할 수도 있지만 정책은 오류를 반환하지 않습니다. 이러한 작업은 아무런 영향을 미치지 않습니다.
  • cascade(선택사항, 부울, 기본값: true) 이 속성의 기본 용도는 연결된 액세스 토큰을 취소하지 않고 갱신 토큰을 취소하는 것입니다. 다음 사례를 참조하세요.
    • 갱신 토큰만 취소하고 관련 액세스 토큰은 취소하지 않습니다. 이렇게 하려면 <Token> 유형을 refreshtoken으로 설정하고 cascade를 false로 설정합니다.
    • 액세스 토큰과 갱신 토큰을 모두 취소합니다. 이렇게 하려면 <Token> 유형을 accesstoken으로 설정합니다. cascade의 값은 true(기본값) 또는 false가 될 수 있습니다. 이를 true로 설정하면 액세스 토큰과 갱신 토큰이 모두 취소됩니다. 이를 false로 설정하면 액세스 토큰이 취소되고 갱신 토큰을 사용할 수 없게 됩니다. 자세한 설명은 아래 참고 사항을 참조하세요.
    • 액세스 토큰을 취소하고 관련 갱신 토큰은 취소하지 않습니다. 이 작업은 지원되지 않습니다. 자세한 설명은 아래 참고 사항을 참조하세요.

참고: 보안상의 이유로 액세스 토큰을 취소하면 관련 갱신 토큰도 함께 취소됩니다. 따라서 cascade 속성을 사용하여 액세스 토큰만 취소할 수는 없습니다. 예를 들어 <Token> 유형을 accesstoken으로 설정하고 cascade=false를 설정하면 액세스 토큰이 예상대로 취소되지만 관련 갱신 토큰은 사용할 수 없습니다. 취소된 액세스 토큰을 갱신하는 데 사용할 수 없습니다. cascade 속성의 기본 사용 사례는 갱신 토큰만 취소하려는 경우입니다. 이 경우 <Token> 유형을 refreshtoken으로 설정하고 cascade=false를 설정합니다. 갱신 토큰은 취소되지만 관련 액세스 토큰은 만료되거나 취소되기 전까지 유효합니다. 자세한 내용은 커뮤니티의 포럼 토론을 참조하세요.

액세스 권한 및 갱신 토큰 승인

ValidateToken 작업을 사용하여 취소된 토큰을 '다시 승인'합니다. 즉, 이 작업을 적용하면 대상 액세스 토큰 또는 갱신 토큰의 상태가 '취소됨'에서 '승인됨'으로 변경됩니다. 취소된 토큰이 아직 만료되지 않았다면 승인할 수 있습니다.

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

<Tokens>/<Token> 요소

승인할 토큰을 지정하는 흐름 변수를 식별합니다. 예를 들어 개발자가 access_token이라는 쿼리 매개변수를 사용하여 승인 요청을 제출해야 할 경우 올바른 흐름 변수는 request.queryparam.access_token입니다. 예를 들어 HTTP 헤더의 토큰을 요구하려면 이 값을 request.header.access_token으로 설정합니다.

특성

  • type(필수, 문자열) 지정된 변수로 식별된 토큰 유형입니다. 지원되는 값은 accesstokenrefreshtoken입니다.
  • cascade (선택사항, 부울): 기본적으로 이 옵션은 true로 설정되며 승인이 관련 토큰에도 적용되도록 만듭니다. 따라서 갱신 토큰에 적용하면 연결된 액세스 토큰도 승인됩니다. 액세스 토큰에 적용한 경우 해당 갱신 토큰도 승인됩니다. 이를 false로 설정하면 지정된 액세스 토큰 또는 갱신 토큰만 승인됩니다.