기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
새로 고침 토큰
새로 고침 토큰을 사용하여 새 ID와 액세스 토큰을 검색할 수 있습니다. 기본적으로 새로 고침 토큰은 애플리케이션 사용자가 사용자 풀에 로그인하고 30일이 지나면 만료됩니다. 사용자 풀에 대한 애플리케이션을 생성할 경우 애플리케이션의 새로 고침 토큰 만료를 60분에서 10년 사이의 값으로 설정할 수 있습니다.
새로 고침 토큰으로 새 액세스 및 자격 증명 토큰 받기
Amazon Cognito는 관리형 로그인 권한 부여 코드 흐름과 API 작업 또는 SDK 메서드를 사용한 성공적인 인증에 대한 응답으로 새로 고침 토큰을 발급합니다. 새로 고침 토큰은 새 ID 및 액세스 토큰과 선택적으로 새 새로 고침 토큰을 반환합니다. 다음과 같은 방법으로 새로 고침 토큰을 사용할 수 있습니다.
- GetTokensFromRefreshToken
-
GetTokensFromRefreshToken API 작업은 유효한 새로 고침 토큰에서 새 ID와 액세스 토큰을 발급합니다. 새로 고침 토큰 교체를 활성화한 경우에도 새 새로 고침 토큰이 생성됩니다.
- InitiateAuth 및 AdminitiateAuth
-
AdminInitiateAuth 또는 InitiateAuth API 작업에는
REFRESH_TOKEN_AUTH
인증 흐름이 포함됩니다. 이 흐름에서는 새로 고침 토큰을 전달하고 새 ID 및 액세스 토큰을 가져옵니다. 새로 고침 토큰 교체가 활성화된 앱 클라이언트REFRESH_TOKEN_AUTH
에서는를 사용하여 인증할 수 없습니다. - OAuth 토큰 엔드포인트
-
도메인이 있는 사용자 풀의 토큰 엔드포인트에는 유효한 새로 고침 토큰에서 새 ID, 액세스 및 선택적으로(새로 고침 토큰 교체 포함) 새로 고침 토큰을 발급하는
refresh_token
권한 부여 유형이 있습니다.
토큰 교체 새로 고침
새로 고침 토큰 교체를 사용하면 원래 새로 고침 토큰을 무효화하고 토큰 새로 고침마다 새 새로 고침 토큰을 발행하도록 사용자 풀을 선택적으로 구성할 수 있습니다. 이 설정이 활성화되면 모든 형태의 토큰 새로 고침에서 성공한 각 요청은 새 ID, 액세스 및 새로 고침 토큰을 반환합니다. 새 새로 고침 토큰은 원래 새로 고침 토큰의 남은 기간 동안 유효합니다. 새로 고침 토큰을 교체하거나 원래 새로 고침 토큰을 전달하도록 앱 클라이언트를 구성할 수 있습니다. 짧은 기간 동안 재시도를 허용하려면 원래 새로 고침 토큰에 대해 최대 60초의 유예 기간을 구성할 수도 있습니다.
새로 고침 토큰 교체에 대해 알아야 할 사항
-
새로 고침 토큰 교체를 활성화하면 사용자 풀의 JSON 웹 토큰에 새 클레임이 추가됩니다.
origin_jti
및jti
클레임이 액세스 토큰과 ID 토큰에 추가됩니다. 이러한 클레임은 JWTs. -
새로 고침 토큰 교체는 인증 흐름와 호환되지 않습니다
REFRESH_TOKEN_AUTH
. 새로 고침 토큰 교체를 구현하려면 앱 클라이언트에서이 인증 흐름을 비활성화하고 GetTokensFromRefreshToken API 작업 또는 이에 상응하는 SDK 방법을 사용하여 토큰 새로 고침 요청을 제출하도록 애플리케이션을 설계해야 합니다. -
새로 고침 토큰 교체가 비활성화된 상태에서
GetTokensFromRefreshToken
또는를 사용하여 토큰 새로 고침 요청을 완료할 수 있습니다REFRESH_TOKEN_AUTH
. -
사용자 풀에서 디바이스 기억이 활성 상태인 경우
GetTokensFromRefreshToken
요청에 디바이스 키를 제공해야 합니다. 사용자에게 애플리케이션이 초기 인증 요청에서 제출하는 확인된 디바이스 키가 없는 경우 Amazon Cognito는 새 키를 발급합니다. 이 구성에서 토큰을 새로 고치려면에서 토큰을 지정AuthParameters
했는지 아니면 인증 응답에서 새 토큰을 수신했는지에 관계없이 디바이스 키를 제공해야 합니다. -
GetTokensFromRefreshToken
요청ClientMetadata
에서 사전 토큰 생성 Lambda 트리거에 전달할 수 있습니다. 트리거의 입력 이벤트에 전달되는이 데이터는 Lambda 함수의 사용자 지정 로직에 사용할 수 있는 추가 컨텍스트를 제공합니다.
보안 모범 사례로 앱 클라이언트에서 새로 고침 토큰 교체를 활성화합니다.
API 및 SDK 토큰 새로 고침
새로 고침 토큰 교체가 활성 상태인지 여부에 따라 새로 고침 토큰을 사용하여 사용자 풀 API로 새 ID 및 액세스 토큰을 가져오는 두 가지 방법이 있습니다. 새로 고침 토큰 교체가 활성화된 앱 클라이언트에서 GetTokensFromRefreshToken API 작업을 사용합니다. 새로 고침 토큰 교체가 없는 앱 클라이언트에서는 AdminInitiateAuth 또는 InitiateAuth API 작업의 REFRESH_TOKEN_AUTH
흐름을 사용합니다.
참고
사용자는 관리형 로그인 또는 AWS SDKs 및 Amazon Cognito API 작업으로 빌드하는 사용자 지정 애플리케이션에서 사용자 풀을 사용하여 인증할 수 있습니다. REFRESH_TOKEN_AUTH
흐름과 모두 관리형 로그인 사용자의 토큰 새로 고침을 완료할 GetTokensFromRefreshToken
수 있습니다. 사용자 지정 애플리케이션의 토큰 새로 고침은 관리형 로그인 세션에 영향을 주지 않습니다. 이러한 세션은 브라우저 쿠키에 설정되며 1시간 동안 유효합니다. GetTokensFromRefreshToken
응답은 새 ID, 액세스 및 선택적으로 새로 고침 토큰을 발급하지만 관리형 로그인 세션 쿠키는 갱신하지 않습니다.
REFRESH_TOKEN_AUTH
새로 고침 토큰 교체가 활성화된 앱 클라이언트에서는를 사용할 수 없습니다.
OAuth 토큰 새로 고침
도메인을 구성한 사용자 풀의 Token 엔드포인트에 새로 고침 토큰을 제출할 수도 있습니다. 요청 본문에 refresh_token
의 grant_type
값과 사용자 새로 고침 토큰의 refresh_token
값을 포함합니다.
토큰 엔드포인트에 대한 요청은 새로 고침 토큰 교체가 활성 상태인 앱 클라이언트와 비활성 상태인 앱 클라이언트에서 사용할 수 있습니다. 새로 고침 토큰 교체가 활성화되면 토큰 엔드포인트가 새 새로 고침 토큰을 반환합니다.
다음은 새로 고침 토큰이 있는 요청의 예입니다.
POST /oauth2/token HTTP/1.1 Host:
auth.example.com
Content-Type: application/x-www-form-urlencoded Authorization: BasicZGpjOTh1M2ppZWRtaTI4M2V1OTI4OmFiY2RlZjAxMjM0NTY3ODkw
Content-Length: ** client_id=1example23456789
&grant_type=refresh_token&refresh_token=eyJjd123abcEXAMPLE
새로 고침 토큰 철회
사용자에게 속한 새로 고침 토큰을 취소할 수 있습니다. 토큰 취소에 대한 자세한 내용은 토큰 취소로 사용자 세션 종료 섹션을 참조하세요.
참고
새로 고침 토큰을 취소하면 Amazon Cognito가 해당 토큰을 사용하여 새로 고침 요청에서 발급한 모든 ID 및 액세스 토큰이 취소됩니다.
현재 로그인한 모든 세션에서 사용자를 로그아웃하려면 GlobalSignOut 또는 AdminUserGlobalSignOut API 요청을 사용하여 모든 토큰을 취소합니다. 사용자가 로그아웃하면 다음과 같은 효과가 발생합니다.
-
사용자의 새로 고침 토큰을 사용하여 사용자에 대한 새 토큰을 가져올 수 없습니다.
-
사용자의 액세스 토큰을 사용하여 토큰으로 권한이 부여된 API 요청을 할 수 없습니다.
-
새 토큰을 가져오려면 사용자가 다시 인증해야 합니다. 관리형 로그인 세션 쿠키는 자동으로 만료되지 않으므로 사용자는 자격 증명에 대한 추가 프롬프트 없이 세션 쿠키로 다시 인증할 수 있습니다. 관리형 로그인 사용자를 로그아웃한 후 Amazon Cognito가 세션 쿠키를 지우Logout 엔드포인트는 로 리디렉션합니다.
새로 고침 토큰을 사용하면 앱에서 사용자의 세션을 오랫동안 유지할 수 있습니다. 시간이 지남에 따라 사용자는 새로 고침 토큰으로 로그인한 일부 애플리케이션의 권한을 취소할 수 있습니다. 단일 세션에서 사용자를 로그아웃하려면 새로 고침 토큰을 취소합니다. 사용자가 인증된 모든 세션에서 로그아웃하려는 경우 GlobalSignOut API 요청을 생성합니다. 앱에서 사용자에게 모든 디바이스에서 로그아웃과 같은 선택 항목을 제공할 수 있습니다. GlobalSignOut
은 변경되지 않고 만료되지 않고 취소되지 않은 사용자의 유효한 액세스 토큰을 허용합니다. 이 API는 토큰으로 권한이 부여되었기 때문에 한 사용자가 이 API를 사용하여 다른 사용자의 로그아웃을 시작할 수 없습니다.
그러나 자격 AWS 증명으로 모든 디바이스에서 사용자를 로그아웃하도록 권한을 부여하는 AdminUserGlobalSignOut API 요청을 생성할 수 있습니다. 관리자 애플리케이션은 AWS 개발자 자격 증명으로이 API 작업을 호출하고 사용자 풀 ID와 사용자의 사용자 이름을 파라미터로 전달해야 합니다. AdminUserGlobalSignOut
API를 사용하면 사용자 풀의 모든 사용자를 로그아웃할 수 있습니다.
자격 AWS 증명 또는 사용자의 액세스 토큰으로 권한을 부여할 수 있는 요청에 대한 자세한 내용은 섹션을 참조하세요권한 부여 모델별로 그룹화된 API 작업 목록.