Login 엔드포인트 - Amazon Cognito

Login 엔드포인트

/login 엔드포인트는 사용자를 로그인합니다. 로그인 페이지를 로드하고 클라이언트에 대해 구성된 인증 옵션을 사용자에게 표시합니다.

/login 획득

/login 엔드포인트는 HTTPS GET만 지원합니다. 사용자 풀 클라이언트는 시스템 브라우저를 통해 이 요청을 합니다. JavaScript용 시스템 브라우저에는 Chrome 또는 Firefox가 포함됩니다. Android 브라우저에는 Custom Chrome Tab이 포함됩니다. iOS 브라우저에는 Safari View Control이 포함됩니다.

요청 파라미터

client_id

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

필수.

redirect_uri

인증을 성공한 후에 사용자가 리디렉션된 URI입니다. 지정된 response_typeclient_id에서 구성되어야 합니다.

필수.

response_type

코드 부여 흐름에 대해 code가 되고 암시적 흐름에 대해 token이 될 수 있는 OAuth 응답 유형입니다.

필수.

state

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

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

state 파라미터의 값을 URL 인코딩 JSON 문자열로 설정할 수 없습니다. state 파라미터에서 이 형식과 일치하는 문자열을 전달하려면 문자열을 Base64로 인코딩한 다음 앱에서 디코딩하면 됩니다.

선택 사항이지만 권장됩니다.

scope

시스템에 예약된 범위나 클라이언트와 연결된 사용자 지정 범위를 조합하여 사용할 수 있습니다. 범위는 공백으로 구분해야 합니다. 시스템에 예약된 범위로는 openid, email, phone, profileaws.cognito.signin.user.admin이 있습니다. 요청한 모든 범위는 앱 클라이언트에 대해 활성화되어야 합니다. 그렇지 않으면 Amazon Cognito가 이를 무시합니다.

클라이언트가 범위를 요청하지 않은 경우 인증 서버에서는 클라이언트와 연결된 모든 범위를 사용합니다.

openid 범위가 요청될 경우에만 ID 토큰이 반환됩니다. aws.cognito.signin.user.admin 범위가 요청된 경우에만 Amazon Cognito 사용자 풀에 대해 액세스 토큰을 사용할 수 있습니다. phone 범위도 요청된 경우에만 email, profileopenid 범위를 요청할 수 있습니다. 이러한 범위는 ID 토큰 내부로 들어가는 클레임을 지정합니다.

선택 사항.

code_challenge_method

챌린지를 생성하는 데 사용된 메서드입니다. PKCE RFC는 S256 및 일반의 두 가지 메서드를 정의하지만 Amazon Cognito 인증 서버는 S256만 지원합니다.

선택 사항.

code_challenge

code_verifier에서 생성된 챌린지입니다.

code_challenge_method가 지정된 경우에만 필수입니다.

샘플 요청: 사용자에게 로그인하라는 메시지 표시

이 예제는 로그인 화면에 표시됩니다.

GET https://mydomain.auth.us-east-1.amazoncognito.com/login? response_type=code& client_id=ad398u21ijw3s9w3939& redirect_uri=https://YOUR_APP/redirect_uri& state=STATE& scope=openid+profile+aws.cognito.signin.user.admin

샘플 응답

인증 서버는 권한 부여 코드 및 상태와 함께 사용자의 앱으로 리디렉션합니다. 이 서버는 코드 및 상태를 조각이 아닌 쿼리 문자열 파라미터로 반환해야 합니다.

HTTP/1.1 302 Found Location: https://YOUR_APP/redirect_uri?code=AUTHORIZATION_CODE&state=STATE

더 많은 요청의 예와 긍정 응답 및 부정 응답의 예는 권한 부여 엔드포인트를 참조하세요.