기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
호스팅된 UI가 있는 앱 클라이언트 추가
사용자 풀을 생성한 후 호스팅된 UI의 빌트인 웹페이지를 불러오는 애플리케이션용 앱 클라이언트를 생성할 수 있습니다. 호스팅된 UI에서 사용자는 다음을 수행할 수 있습니다.
-
사용자 프로필에 가입하세요.
-
타사 ID 공급자로 로그인합니다.
-
다단계 인증을 사용하거나 사용하지 않고 로그인할 수 있습니다.
-
비밀번호를 재설정하세요.
호스팅된 UI 로그인을 위한 앱 클라이언트를 만들려면
-
Amazon Cognito 콘솔
로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다. -
[사용자 풀(User Pools)]을 선택합니다.
-
목록에서 기존 사용자 풀을 선택하거나 사용자 풀을 생성합니다. 새 사용자 풀을 생성하는 경우 마법사 중에 앱 클라이언트를 설정하고 호스트된 UI를 구성하라는 메시지가 표시됩니다.
-
사용자 풀의 [앱 통합(App integration)] 탭을 선택합니다.
-
도메인 옆의 작업을 선택한 다음, 사용자 지정 도메인 생성 또는 Amazon Cognito 도메인 생성을 선택합니다. 사용자 풀 도메인을 이미 구성한 경우 새 사용자 지정 도메인을 생성하기 전에 Amazon Cognito 도메인 삭제 또는 사용자 지정 도메인 삭제를 선택합니다.
-
Amazon Cognito 도메인에서 사용할 사용 가능한 도메인 접두사를 입력합니다. 사용자 지정 도메인을 설정하는 방법에 대한 자세한 내용은 호스팅 UI에 고유한 도메인 사용을 참조하세요.
-
생성(Create)을 선택합니다.
-
동일한 사용자 풀에 대한 [앱 통합(App integration)] 탭으로 다시 이동한 다음, [앱 클라이언트(App clients)]를 찾습니다. [앱 클라이언트 생성(Create an app client)]을 선택합니다.
-
[애플리케이션 유형(Application type)]을 선택합니다. 선택 내용에 따라 몇 가지 권장 설정이 제공됩니다. 호스트된 UI를 사용하는 앱은 퍼블릭 클라이언트입니다.
-
[앱 클라이언트 이름(App client name)]을 입력합니다.
-
이 연습에서는 [클라이언트 암호 생성 안 함(Don't generate client secret)]을 선택합니다. 클라이언트 암호는 중앙 집중식 애플리케이션에서 사용자를 인증하는 기밀 앱에서 사용됩니다. 이 연습에서는 사용자에게 호스트된 UI 로그인 페이지를 제공하며 클라이언트 암호가 필요하지 않습니다.
-
앱에 허용할 인증 흐름을 선택합니다.
USER_SRP_AUTH
가 선택되었는지 확인합니다. -
필요에 따라 [토큰 만료(token expiration)], [고급 보안 구성(Advanced security configuration)], [속성 읽기 및 쓰기 권한(Attribute read and write permissions)]을 사용자 정의합니다. 자세한 내용은 앱 클라이언트 설정 구성을 참조하세요.
-
앱 클라이언트에 콜백을 URL 추가하세요. 호스트된 UI 인증 후에 여기로 이동됩니다. 앱에서 로그아웃을 구현할 수 있을 URL 때까지는 허용된 로그아웃을 추가할 필요가 없습니다.
iOS 또는 Android 앱의 경우 다음과 URL 같은
myapp://
콜백을 사용할 수 있습니다. -
앱 클라이언트의 [자격 증명 공급자(Identity providers)]를 선택합니다. 최소한 공급자로 Amazon Cognito 사용자 풀을 사용하도록 설정합니다.
참고
OpenID Connect (IdPs) 또는 OpenID Connect () 를 통해 또는 SAML IdPs Facebook, Amazon, Google, Apple과 같은 외부 ID 공급자 (OIDC) 를 사용하여 로그인하려면 먼저 제3자를 통한 사용자 풀 로그인 추가에 표시된 대로 구성하십시오. 그런 다음 앱 클라이언트 설정 페이지로 돌아가서 활성화하십시오.
-
OAuth2.0 그랜트 유형을 선택합니다. Authorization code grant(인증 코드 권한 부여)를 선택하여 사용자 풀 토큰으로 교환되는 인증 코드를 반환합니다. 토큰은 최종 사용자에게 직접 노출되지 않기 때문에 침해될 가능성이 낮습니다. 하지만 사용자 풀 토큰에 대한 인증 코드를 교환하려면 백엔드에 사용자 지정 애플리케이션이 필요합니다. 보안상의 이유로 모바일 앱의 경우 인증 코드 부여 흐름을 코드 교환용 증명 키 (PKCE) 와 함께 사용하는 것이 좋습니다.
Amazon Cognito에서 사용자 풀 JSON 웹 토큰 (JWT) 을 반환받으려면 암시적 부여를 선택합니다. 토큰에 대한 인증 코드를 교환할 수 있는 백엔드가 없을 때 이 흐름을 사용할 수 있습니다. 또한 토큰 디버깅에도 유용합니다.
참고
Authorization code grant(인증 코드 권한 부여) 및 Implicit code grant(암시적 코드 부여)를 모두 활성화하고 각각을 필요한 경우 사용할 수 있습니다.
사용자를 대신해서가 아니라 자체적으로 액세스 토큰을 요청해야 하는 경우에만 Client credentials(클라이언트 자격 증명)를 선택합니다.
-
구체적으로 하나를 제외하려는 경우가 아니면 모든 OpenID Connect 범위(OpenID Connect scopes)를 선택합니다.
-
구성한 사용자 지정 범위를 선택합니다. 사용자 정의 범위는 일반적으로 기밀 클라이언트에서 사용됩니다.
-
생성(Create)을 선택합니다.
로그인 페이지를 보려면
앱 클라이언트 페이지에서 호스팅된 UI 보기를 선택하여 앱 클라이언트 ID, 범위, 권한 부여 및 콜백 매개변수로 미리 채워진 로그인 페이지로 연결되는 새 브라우저 탭을 엽니다. URL
다음을 사용하여 호스팅된 UI 로그인 웹 페이지를 수동으로 볼 수 있습니다. URL response_type
을 기록합니다. 이 경우 response_type=code는 인증 코드 권한 부여입니다.
https://
your_domain
/login?response_type=code&client_id=your_app_client_id
&redirect_uri=your_callback_url
response_type=token인 경우 암시적 코드 URL 부여에 대한 다음과 같은 내용을 통해 호스팅된 UI 로그인 웹 페이지를 볼 수 있습니다. 로그인 성공 이후 Amazon Cognito는 사용자 풀 토큰을 웹 브라우저의 주소 표시줄로 반환합니다.
https://
your_domain
/login?response_type=token&client_id=your_app_client_id
&redirect_uri=your_callback_url
응답의 매개변수 뒤에 있는 JSON 웹 토큰 (JWT) ID 토큰을 찾을 수 있습니다. #idtoken=
다음은 암시적 허가 요청의 샘플 URL 응답입니다. 사용자의 자격 증명 토큰 문자열이 훨씬 더 길어집니다.
https://www.example.com/#id_token=123456789tokens123456789&expires_in=3600&token_type=Bearer
Amazon Cognito 사용자 풀 토큰은 알고리즘을 RS256 사용하여 서명됩니다. 를 사용하여 사용자 풀 토큰을 디코딩하고 확인할 수 있습니다. AWS Lambda자세한 내용은 웹 사이트에서 Amazon JWT Cognito 토큰 디코딩 및 확인을
도메인 이름(Domain name) 페이지에 도메인이 표시됩니다. 앱 클라이언트 ID와 URL 콜백은 일반 설정 페이지에 표시됩니다. 콘솔에서 변경한 내용이 즉시 표시되지 않으면 몇 분 정도 기다린 다음 브라우저를 새로 고치십시오.