Amazon Cognito의 로그아웃 엔드포인트와 GlobalSignOut API의 차이점은 무엇인가요?

2분 분량
0

Amazon Cognito에서 로그아웃 엔드포인트와 GlobalSignOut API를 사용하는 방법을 알고 싶습니다.

간략한 설명

Amazon Cognito 로그아웃 엔드포인트는 브라우저에서 사용자 세션을 지웁니다. GlobalSignOut API는 특정 사용자에게 발급된 모든 액세스 및 새로 고침 토큰을 무효화합니다.

해결 방법

로그아웃 엔드포인트로 사용자 로그아웃

사용자 인증을 위해 호스팅된 엔드포인트를 사용하는 경우 Amazon Cognito는 브라우저에 ‘cognito’라는 쿠키를 저장합니다. 쿠키는 사용자 풀로 구성된 Amazon Cognito 도메인과 연결됩니다. 쿠키는 1시간 동안 유효합니다. 활성 세션 중에 사용자가 다시 로그인을 시도하면 Amazon Cognito는 사용자에게 기존 세션을 계속할지 묻습니다. 이렇게 하면 사용자가 보안 인증 정보를 제공하지 않고도 로그인할 수 있습니다. 사용자가 example_username으로 로그인 버튼을 선택하여 기존 세션을 사용하는 경우 쿠키의 유효 기간이 1시간으로 재설정됩니다.

사용자가 브라우저에서 로그아웃 엔드포인트를 방문하면 Amazon Cognito가 세션 쿠키를 삭제합니다. 다시 로그인하려면 사용자는 보안 인증 정보를 입력해야 합니다.

사용자가 타사 ID 제공업체(IdP)를 통해 로그인하는 경우 추가 단계를 수행해야 합니다. 사용자가 타사 IdP 중 하나를 사용하여 로그인하는 경우 로그아웃 엔드포인트를 방문하면 브라우저에서 ‘cognito’ 쿠키가 지워집니다. 하지만 IdP에는 여전히 활성 세션이 있을 수 있습니다. 사용자의 IdP 세션을 지울 때는 다음 정보를 고려하세요.

  • Amazon Cognito는 HTTP POST 바인딩을 사용하는 Security Assertion Markup Language 버전 2.0(SAML 2.0) IdP에 대해 단일 로그아웃(SLO) 기능을 지원합니다. 공급자가 SLO 엔드포인트에서 HTTP POST 바인딩을 수락하는 경우 SAML IdP용 SLO 구현을 고려하세요. 사용자가 SLO가 켜진 상태에서 로그아웃 엔드포인트를 방문하면 Amazon Cognito는 SAML IdP에 서명된 로그아웃 요청을 전송합니다. 그러면 SAML IdP가 IdP 세션을 지웁니다.
  • 소셜 및 OpenID Connect(OIDC) IdP의 경우 브라우저에서 IdP 세션을 지우려면 사용자 지정 워크플로를 생성해야 합니다.

GlobalSignOut API를 사용하여 사용자 로그아웃

GlobalSignOut API를 사용하면 Amazon Cognito는 사용자에게 발급된 모든 액세스 및 새로 고침 토큰을 취소합니다. 토큰 취소에 대한 알림은 Amazon Cognito만 받는다는 점에 유의하세요. 토큰이 만료될 때까지 애플리케이션에서 해당 토큰을 계속 수락할 수 있습니다.

애플리케이션은 GlobalSignOut API 및 AdminUserGlobalSignOut API 모두를 사용하여 사용자를 전역적으로 로그아웃시킬 수 있습니다. 애플리케이션에서 Amazon Cognito 사용자 인증을 위해 REST API를 사용하는 경우 이러한 API를 사용하여 사용자를 로그아웃해야 합니다.

애플리케이션이 취소된 토큰을 사용하려고 하면 Amazon Cognito에서 새로 고침 토큰을 취소했음을 나타내는 오류를 발생시킵니다. 사용자가 새 JSON 웹 토큰(JWT) 세트를 받으려면 다시 로그인해야 합니다.

사용자 풀 앱 클라이언트에서 액세스 및 ID 토큰의 만료 시간을 구성할 수 있습니다. 만료 시간을 5분에서 24시간 사이의 값으로 변경할 수 있습니다.


AWS 공식
AWS 공식업데이트됨 일 년 전