토큰 취소로 사용자 세션 종료 - Amazon Cognito

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

토큰 취소로 사용자 세션 종료

다음 방법을 사용하여 새로 고침 토큰과 최종 사용자 세션을 취소할 수 있습니다. 새로 고침 토큰을 취소하면 해당 새로 고침 토큰에서 이전에 발급한 모든 액세스 토큰이 무효화됩니다. 사용자에게 발급된 다른 새로 고침 토큰은 영향을 받지 않습니다.

RevokeToken 작업

RevokeToken은 대화형 로그인의 초기 액세스 토큰을 포함하여 지정된 새로 고침 토큰에 대한 모든 액세스 토큰을 취소합니다. 이 작업은 사용자의 다른 새로 고침 토큰이나 이러한 다른 새로 고침 토큰의 ID 및 액세스 토큰 하위 항목에 영향을 주지 않습니다.

해지 엔드포인트

취소 엔드포인트는 지정된 새로 고침 토큰과 새로 고침 토큰이 생성한 모든 ID 및 액세스 토큰을 취소합니다. 또한이 엔드포인트는 대화형 로그인에서 초기 액세스 토큰을 취소합니다. 이 엔드포인트에 대한 요청은 사용자의 다른 새로 고침 토큰이나 이러한 다른 새로 고침 토큰의 ID 및 액세스 토큰 하위 항목에 영향을 주지 않습니다.

GlobalSignOut

GlobalSignOut은 사용자가 액세스 토큰으로 권한을 부여하는 셀프 서비스 작업입니다. 이 작업은 요청하는 사용자의 새로 고침, ID 및 액세스 토큰을 모두 취소합니다.

AdminUserGlobalSignOut

AdminUserGlobalSignOut은 관리자가 IAM 자격 증명으로 권한을 부여하는 서버 측 작업입니다. 이 작업은 대상 사용자의 모든 새로 고침, ID 및 액세스 토큰을 취소합니다.

참고

사용자 풀 JWTs는 토큰이 생성될 때 할당된 서명 및 만료 시간과 함께 독립적으로 포함됩니다. 취소된 토큰은 토큰이 필요한 Amazon Cognito API 호출에 사용할 수 없습니다. 그러나 취소된 토큰은 토큰의 서명 및 만료를 확인하는 JWT 라이브러리를 사용하여 확인되는 경우 여전히 유효합니다.

토큰 취소를 사용하는 사용자 풀 클라이언트의 새로 고침 토큰을 취소할 수 있습니다. 새 사용자 풀 클라이언트를 생성하면 토큰 취소가 기본적으로 사용됩니다.

토큰 취소 사용

기존 사용자 풀 클라이언트의 토큰을 취소하려면 먼저 토큰 취소를 사용하도록 설정해야 합니다. 또는 AWS API를 사용하여 기존 사용자 풀 클라이언트에 AWS CLI 대한 토큰 취소를 활성화할 수 있습니다. 이렇게 하려면 aws cognito-idp describe-user-pool-client CLI 명령 또는 DescribeUserPoolClient API 작업을 호출하여 앱 클라이언트에서 현재 설정을 검색합니다. 그런 다음 aws cognito-idp update-user-pool-client CLI 명령 또는 UpdateUserPoolClient API 작업을 호출합니다. 앱 클라이언트의 현재 설정을 포함하고 EnableTokenRevocation 파라미터를 true로 설정합니다.

AWS Management Console, AWS CLI또는 AWS API를 사용하여 새 사용자 풀 클라이언트를 생성하면 토큰 취소가 기본적으로 활성화됩니다.

토큰 취소를 활성화하면 Amazon Cognito JSON 웹 토큰에 새 클레임이 추가됩니다. origin_jtijti 클레임이 액세스 토큰과 ID 토큰에 추가됩니다. 이러한 클레임은 애플리케이션 클라이언트 액세스 토큰 및 ID 토큰의 크기를 늘립니다.

토큰 취소가 활성화된 앱 클라이언트를 생성하거나 수정하려면 CreateUserPoolClient 또는 UpdateUserPoolClient API 요청에 다음 파라미터를 포함합니다.

"EnableTokenRevocation": true

토큰 취소

RevokeToken API 요청(예: aws cognito-idp revoke-token CLI 명령)을 사용하여 새로 고침 토큰을 취소할 수 있습니다. 취소 엔드포인트을 사용하여 토큰을 취소할 수도 있습니다. 이 엔드포인트는 사용자 풀에 도메인을 추가한 후에 사용할 수 있습니다. Amazon Cognito 호스트된 도메인 또는 자체 사용자 지정 도메인의 취소 엔드포인트를 사용할 수 있습니다.

참고

새로 고침 토큰을 취소하는 요청에는 토큰을 얻는 데 사용한 것과 동일한 클라이언트 ID가 포함되어야 합니다.

다음은 RevokeToken API 요청 예시의 본문입니다.

{ "ClientId": "1example23456789", "ClientSecret": "abcdef123456789ghijklexample", "Token": "eyJjdHkiOiJKV1QiEXAMPLE" }

다음은 사용자 지정 도메인이 있는 사용자 풀의 /oauth2/revoke 엔드포인트에 대한 cURL 요청의 예입니다.

curl --location 'auth.mydomain.com/oauth2/revoke' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic Base64Encode(client_id:client_secret)' \ --data-urlencode 'token=abcdef123456789ghijklexample' \ --data-urlencode 'client_id=1example23456789'

앱 클라이언트에 클라이언트 보안 함호가 없는 한, RevokeToken 작업 및 /oauth2/revoke 엔드포인트에서 추가 권한 부여가 필요하지 않습니다.