Logout 엔드포인트 - Amazon Cognito

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

Logout 엔드포인트

/logout 엔드포인트는 리디렉션 엔드포인트입니다. 사용자를 로그아웃시키고 앱 클라이언트의 승인된 로그아웃 URL 또는 엔드포인트로 리디렉션합니다. /login /logout 엔드포인트에 대한 GET 요청에서 사용 가능한 파라미터는 Amazon Cognito 호스팅 UI 사용 사례에 맞게 조정됩니다.

다시 로그인할 수 있도록 사용자를 호스팅 UI로 리디렉션하려면 요청에 redirect_uri 파라미터를 추가하세요. redirect_uri 파라미터가 있는 logout 요청에는client_idresponse_typescope 등 Login 엔드포인트에 대한 후속 요청을 위한 파라미터도 포함되어야 합니다.

로그아웃 엔드포인트는 고객과의 대화형 사용자 세션을 위한 프런트 엔드 웹 애플리케이션입니다. 앱은 사용자 브라우저에서 이 엔드포인트와 다른 호스팅 UI 엔드포인트를 호출해야 합니다.

선택한 페이지로 사용자를 리디렉션하려면 허용된 로그아웃 URL을 앱 클라이언트에 추가하세요. logout 엔드포인트에 대한 사용자의 요청에 logout_uri 및 client_id 파라미터를 추가합니다. logout_uri 값이 앱 클라이언트의 허용된 로그아웃 URL 중 하나인 경우 Amazon Cognito는 사용자를 해당 URL로 리디렉션합니다.

SAML 2.0용 싱글 로그아웃 (SLO) 을 사용하면 Amazon IdPs Cognito는 먼저 사용자를 IdP 구성에서 정의한 SLO 엔드포인트로 리디렉션합니다. IdP가 사용자를 다시 리디렉션하면 Amazon saml2/logout Cognito는 요청에서 OR로 한 번 더 리디렉션하여 응답합니다. redirect_uri logout_uri 자세한 정보는 SAML 로그아웃 플로우을 참조하세요.

로그아웃 엔드포인트는 OIDC 또는 소셜 ID 공급자 () 에서 사용자를 로그아웃시키지 않습니다. IdPs 외부 IdP를 사용한 세션에서 사용자를 로그아웃하려면 해당 공급자의 로그아웃 페이지로 안내하세요.

GET /logout

/logout 엔드포인트는 HTTPS GET만 지원합니다. 사용자 풀 클라이언트는 일반적으로 시스템 브라우저를 통해 이 요청을 수행합니다. 브라우저는 일반적으로 Android의 Custom Chrome Tab 또는 iOS의 Safari View Control입니다.

요청 파라미터

client_id

앱에 대한 앱 클라이언트 ID입니다. 앱 클라이언트 ID를 얻으려면 해당 앱을 사용자 풀에 등록해야 합니다. 자세한 내용은 사용자 풀 앱 클라이언트 섹션을 참조하세요.

필수 사항입니다.

logout_uri

logout_uri 파라미터가 있는 사용자 지정 로그아웃 페이지로 사용자를 리디렉션합니다. 로그아웃한 사용자를 리디렉션하려는 앱 클라이언트 로그아웃 URL로 값을 설정합니다. logout_uriclient_id 파라미터와 함께만 사용합니다. 자세한 정보는 사용자 풀 앱 클라이언트을 참조하세요.

logout_uri 파라미터를 사용하여 사용자를 다른 앱 클라이언트의 로그인 페이지로 리디렉션할 수도 있습니다. 다른 앱 클라이언트의 로그인 페이지를 앱 클라이언트의 허용된 콜백 URL로 설정합니다. /logout 엔드포인트에 대한 요청에서 logout_uri 파라미터의 값을 URL 인코딩된 로그인 페이지로 설정합니다.

Amazon Cognito에서는 /logout 엔드포인트를 요청할 때 logout_uri 또는 redirect_uri 파라미터가 필요합니다. logout_uri 파라미터는 사용자를 다른 웹 사이트로 리디렉션합니다. logout_uriredirect_uri 파라미터 모두가 /logout 엔드포인트에 대한 요청에 포함되어 있는 경우 Amazon Cognito는 logout_uri 파라미터만 사용하여 redirect_uri 파라미터를 재정의합니다.

redirect_uri

사용자를 로그인 페이지로 리디렉션하여 redirect_uri 파라미터를 사용하여 인증합니다. 다시 로그인한 사용자를 리디렉션하려는 앱 클라이언트 허용된 콜백 URL로 값을 설정합니다. /login 엔드포인트에 전달하려는 client_id, scope, state, response_type 파라미터를 추가합니다.

Amazon Cognito에서는 /logout 엔드포인트를 요청할 때 logout_uri 또는 redirect_uri 파라미터가 필요합니다. 사용자를 /login 엔드포인트로 리디렉션하여 재인증하고 앱에 토큰을 전달하려면 redirect_uri 매개변수를 추가하세요. logout_uri 파라미터와 redirect_uri 파라미터가 모두 엔드포인트에 대한 요청에 포함되어 있는 경우, /logout Amazon Cognito는 redirect_uri 파라미터를 재정의하고 logout_uri 파라미터를 배타적으로 처리합니다.

response_type

사용자가 로그인한 후 Amazon Cognito로부터 수신할 OAuth 2.0 응답입니다. codetokenresponse_type 파라미터에 대한 유효한 값입니다.

redirect_uri 파라미터를 사용하는 경우 필수입니다.

state

애플리케이션이 요청에 상태 파라미터를 추가하면 /oauth2/logout 엔드포인트가 사용자를 리디렉션할 때 Amazon Cognito가 해당 값을 앱에 반환합니다.

이 값을 요청에 추가하여 CSRF 공격으로부터 보호할 수 있습니다.

state 파라미터의 값을 URL 인코딩 JSON 문자열로 설정할 수 없습니다. 이 형식과 일치하는 문자열을 state 파라미터로 전달하려면 문자열을 base64로 인코딩한 다음 애플리케이션에서 디코딩하십시오.

redirect_uri 파라미터를 사용하는 경우 적극 권장됩니다.

scope

redirect_uri 파라미터를 사용하여 로그아웃한 후 Amazon Cognito로부터 요청할 OAuth 2.0 범위입니다. Amazon Cognito가 /logout 엔드포인트에 대한 요청에 scope 파라미터를 사용하여 사용자를 /login 엔드포인트로 리디렉션합니다.

redirect_uri 파라미터를 사용하는 경우에 선택 사항입니다. scope 파라미터를 포함하지 않는 경우 Amazon Cognito가 scope 파라미터를 사용하여 사용자를 /login 엔드포인트로 리디렉션합니다. Amazon Cognito가 사용자를 리디렉션하고 scope를 자동으로 채우는 경우 이 파라미터에 앱 클라이언트의 권한 부여된 모든 범위가 포함됩니다.

예제 요청

예 — 로그아웃하고 사용자를 클라이언트로 리디렉션

logout_uriclient_id 를 제외하고 이 엔드포인트에 사용할 수 있는 모든 쿼리 매개변수는 로 전달됩니다. 권한 부여 엔드포인트 요청에 logout_uriclient_id가 포함된 경우 Amazon Cognito는 다른 모든 요청 파라미터를 무시하고 사용자 세션을 logout_uri의 값에 속한 URL로 리디렉션합니다. 이 URL은 앱 클라이언트의 승인된 로그아웃 URL이어야 합니다.

다음은 로그아웃 및 https://www.example.com/welcome 리디렉션 요청의 예시입니다.

GET https://mydomain.auth.us-east-1.amazoncognito.com/logout? client_id=1example23456789& logout_uri=https%3A%2F%2Fwww.example.com%2Fwelcome

예: 로그아웃하고 사용자에게 다른 사용자로 로그인하라는 메시지 표시

요청에 logout_uri가 없지만 승인 엔드포인트에 올바른 형식의 요청을 구성하는 파라미터를 제공하는 경우 Amazon Cognito는 사용자를 호스팅된 UI 로그인으로 리디렉션합니다. 로그아웃 엔드포인트는 원래 요청의 파라미터를 리디렉션 대상에 추가합니다. 로그아웃 엔드포인트에 대한 요청의 파라미터 redirect_uri는 로그아웃 URL이 아니라 승인 엔드포인트로 전달하려는 로그인 URL입니다.

다음은 사용자를 로그아웃하고, 로그인 페이지로 리디렉션하고, 로그인한 후 인증 코드를 제공하는 요청의 예입니다. https://www.example.com

GET https://mydomain.auth.us-east-1.amazoncognito.com/logout? response_type=code& client_id=1example23456789& redirect_uri=https%3A%2F%2Fwww.example.com& state=example-state-value& nonce=example-nonce-value& scope=openid+profile+aws.cognito.signin.user.admin