

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

# 토큰 취소로 사용자 세션 종료
<a name="token-revocation"></a>

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

**RevokeToken 작업**  
[RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html)은 대화형 로그인의 초기 액세스 토큰을 포함하여 지정된 새로 고침 토큰에 대한 모든 액세스 토큰을 취소합니다. 이 작업은 사용자의 다른 새로 고침 토큰이나 다른 새로 고침 토큰의 ID 및 액세스 토큰 하위 항목에 영향을 주지 않습니다.

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

**GlobalSignOut 작업**  
[GlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GlobalSignOut.html)은 사용자가 액세스 토큰으로 권한을 부여하는 셀프 서비스 작업입니다. 이 작업은 요청하는 사용자의 새로 고침, ID 및 액세스 토큰을 모두 취소합니다.

**AdminUserGlobalSignOut 작업**  
[AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html)은 관리자가 IAM 자격 증명으로 권한을 부여하는 서버 측 작업입니다. 이 작업은 대상 사용자의 모든 새로 고침, ID 및 액세스 토큰을 취소합니다.

**토큰 취소에 대해 알아야 할 사항**
+ 새로 고침 토큰을 취소하는 요청에는 토큰을 얻는 데 사용한 것과 동일한 클라이언트 ID가 포함되어야 합니다.
+ 사용자 풀 JWT는 토큰이 생성될 때 서명 및 만료 시간이 할당되는 독립형 토큰입니다. 취소된 토큰은 토큰이 필요한 Amazon Cognito API 호출에 사용할 수 없습니다. 그러나 취소된 토큰은 토큰의 서명 및 만료를 확인하는 JWT 라이브러리를 사용하여 확인되는 경우 여전히 유효합니다.
+ 새 사용자 풀 클라이언트를 생성하면 토큰 취소가 기본적으로 사용됩니다.
+ 토큰 취소가 활성화된 앱 클라이언트에서만 새로 고침 토큰을 취소할 수 있습니다.
+ 토큰 취소를 활성화하면 Amazon Cognito JSON 웹 토큰에 새 클레임이 추가됩니다. `origin_jti` 및 `jti` 클레임이 액세스 토큰과 ID 토큰에 추가됩니다. 이러한 클레임은 애플리케이션 클라이언트 액세스 토큰 및 ID 토큰의 크기를 늘립니다.
+ 이전에 활성화된 앱 클라이언트에서 토큰 해지를 비활성화하면 취소된 토큰이 다시 활성화되지 않습니다.
+ [사용자 계정을 비활성화](how-to-manage-user-accounts.md#manage-user-accounts-enable-disable)하면(새로 고침 및 액세스 토큰 취소) 사용자 계정을 다시 활성화해도 취소된 토큰이 활성화되지 않습니다.
+  AWS Management Console AWS CLI, 또는 API를 사용하여 새 사용자 풀 클라이언트를 AWS 생성하면 토큰 취소가 기본적으로 활성화됩니다.

## 토큰 취소 사용
<a name="enable-token-revocation"></a>

기존 사용자 풀 클라이언트의 토큰을 취소하려면 먼저 토큰 취소를 사용하도록 설정해야 합니다. 또는 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`로 설정합니다.

Amazon Cognito API 또는 AWS SDK를 사용하여 토큰 해지가 활성화된 앱 클라이언트를 생성하거나 수정하려면 [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html) 또는 [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html) API 요청에 다음 파라미터를 포함합니다.

```
"EnableTokenRevocation": true
```

Amazon Cognito 콘솔에서 토큰 해지를 구성하려면 사용자 풀의 앱 클라이언트 메뉴에서 **앱 클라이언트**를 선택합니다. **앱 클라이언트 정보**에서 **편집** 버튼을 선택하고 **고급 구성**에서 토큰 취소를 활성화하거나 비활성화합니다.

## 토큰 취소
<a name="revoke-tokens-api"></a>

[RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html) API 요청(예: `[aws cognito-idp revoke-token](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/revoke-token.html)` CLI 명령)을 사용하여 새로 고침 토큰을 취소할 수 있습니다. [취소 엔드포인트](revocation-endpoint.md)을 사용하여 토큰을 취소할 수도 있습니다. 이 엔드포인트는 사용자 풀에 도메인을 추가한 후에 사용할 수 있습니다. Amazon Cognito 호스트된 도메인 또는 자체 사용자 지정 도메인의 취소 엔드포인트를 사용할 수 있습니다.

다음은 `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` 엔드포인트에서 추가 권한 부여가 필요하지 않습니다.