API 또는 엔드포인트를 사용하여 Amazon Cognito에서 생성한 새로 고침 토큰을 취소하고 싶습니다.
해결 방법
API 및 엔드포인트를 사용하여 Amazon Cognito에서 생성한 새로 고침 토큰을 취소할 수 있습니다.
참고: 새로 고침 토큰을 실시간으로 취소하여 이러한 새로 고침 토큰이 액세스 토큰을 생성할 수 없게 할 수 있습니다.
새로 고침 토큰 취소를 위한 필요 조건
앱 클라이언트의 토큰 취소를 켜면 해당 앱 클라이언트가 발행한 새로 고침 토큰을 취소할 수 있습니다. 새 Amazon Cognito 사용자 풀 클라이언트를 생성할 때** EnableTokenRevocation** 파라미터가 기본적으로 켜집니다. 기존 사용자 풀 클라이언트의 토큰을 취소하기 전에 UpdateUserPoolClient API 작업 내에서 토큰 취소를 켜세요. 자신의 앱 클라이언트의 현재 설정을 포함시키고 EnableTokenRevocation 파라미터를 true로 설정합니다.
토큰 취소 설정을 켜면 origin_jti 및 jti 클레임이 액세스 및 ID 토큰에 추가됩니다.
- jti 클레임은 JSON 웹 토큰(JWT)의 고유 식별자를 제공합니다.
- jti 클레임은 JWT가 재생되지 않도록 하는 데 사용됩니다.
- jti 값은 대소문자를 구분하는 문자열입니다.
- REFRESH_TOKEN 인증 흐름을 사용하여 새 액세스 및 ID 토큰을 생성하는 경우, 새 액세스 및 ID 토큰은 동일한 origin_jti 클레임을 갖습니다. jti 클레임은 다릅니다.
자세한 내용은 토큰 취소 켜기 및 사용자 풀에서 토큰 사용을 참조하세요.
새로 고침 토큰 취소의 예상 결과
액세스 토큰 및 JWT에 미치는 영향을 포함하여 새로 고침 토큰을 취소할 때 예상되는 사항에 대한 자세한 내용은 토큰 취소 및 RevokeToken을 참조하세요.
참고: JWT에 대한 자세한 내용은 JSON 웹 토큰 확인을 참조하세요.
RevokeToken API 호출을 사용하여 새로 고침 토큰 취소
취소할 새로 고침 토큰, 앱 클라이언트 ID 및 클라이언트 암호는 RevokeToken API를 호출하는 데 필요한 파라미터입니다.
참고: 클라이언트 암호는 클라이언트 ID에 암호가 있는 경우에만 필요합니다.
요청 구문:
{
"ClientId": "string",
"ClientSecret": "string",
"Token": "string"
}
AWS Command Line Interface(AWS CLI) 명령의 예:
참고: 토큰을 <value> 자신의 토큰 정보로 바꾸세요. 클라이언트 ID를 <value> 자신의 클라이언트 ID로 바꾸세요. 클라이언트 암호를 <value> 자신의 앱 클라이언트 암호로 바꾸세요.
aws cognito-idp revoke-token
--token <value>
--client-id <value>
--client-secret <value>
참고: AWS CLI 명령을 실행할 때 오류가 발생하면 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.
컬 명령의 예:
참고: 을(를)<region> 자신의 AWS 리전으로 바꾸세요. 을(를)<refresh token> 자신의 토큰 정보로 바꾸세요. 을(를)<client-id> 자신의 클라이언트 ID로 바꾸세요.
awscurl \
-v \
-X POST \
--service cognito-idp \
--region <region> \
-H 'X-Amz-Target: AWSCognitoIdentityProviderService.RevokeToken' \
-H 'Content-Type: application/x-amz-json-1.1' \
-d '{"ClientId": "<client-id>", "Token": "<refresh-token>"}' \
https://cognito-idp.<region>.amazonaws.com
취소 엔드포인트를 사용하여 새로 고침 토큰 취소
/oauth2/revoke 엔드포인트는 자신의 사용자 풀에 도메인을 추가한 후에 사용할 수 있습니다. 엔드포인트가 토큰을 취소한 후에는 취소된 토큰을 사용하여 Amazon Cognito 토큰이 인증하는 API에 액세스할 수 없습니다. 요청 파라미터를 비롯한 /oauth2/revoke 엔드포인트에 대한 자세한 내용은 엔드포인트 취소를 참조하세요.
예 1: 앱 암호가 없는 앱 클라이언트를 사용하여 토큰을 취소합니다.
참고: 을(를)<region> 자신의 AWS 리전으로 바꾸세요. 을(를)<refresh token> 자신의 새로 고침 토큰 정보로 바꾸세요. 을(를)<client-id> 자신의 클라이언트 ID로 바꾸세요.
POST /oauth2/revoke HTTP/1.2
Host: https://mydomain.auth.<region>.amazoncognito.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
token=<refresh token>&
client_id=<client-id>
예 2: 앱 암호가 있는 앱 클라이언트를 사용하여 토큰을 취소합니다.
POST /oauth2/revoke HTTP/1.2
Host: https://mydomain.auth.<region>.amazoncognito.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
token=<refresh token>
권한 부여 헤더 설정에 대한 자세한 내용은 내 사용자 풀에서 “클라이언트의 비밀 해시를 확인할 수 없음” 오류를 어떻게 <client-id>해결할 수 있나요?를 참조하세요.
엔드포인트 오류
엔드포인트 오류에 대한 자세한 내용은 엔드포인트 취소를 참조하고 취소 오류 응답에서 정보를 검토하세요.