Amazon Cognito 사용자 풀을 사용하여 Auth0을 SAML 2.0 ID 제공업체(IdP)로 설정하려고 합니다.
간략한 설명
앱 클라이언트, 도메인 이름, Auth0 애플리케이션이 있는 Auth0 계정이 포함된 Cognito 사용자 풀이 있어야 합니다. 자세한 내용은 타사 ID 제공업체를 통한 사용자 풀 로그인 및 사용자 풀에 SAML ID 제공업체 사용을 참조하십시오.
해결 방법
앱 클라이언트 및 도메인 이름을 사용하여 Cognito 사용자 풀 생성
자세한 내용은 다음 AWS 문서를 참조하십시오.
Auth0 계정 가입
Auth0 계정이 아직 없는 경우 Auth0 Sign Up 웹사이트에서 계정을 등록합니다.
Auth0 애플리케이션 생성
다음 단계를 완료합니다.
- Auth0 Dashboard에서 Applications을 선택한 다음 Create Application을 선택합니다.
- Create Application 상자에 애플리케이션 이름(예: My App)을 입력합니다.
- Choose an application type에서 Single Page Web Applications를 선택합니다.
- Create를 선택합니다.
Auth0 애플리케이션의 테스트 사용자 생성
다음 단계를 완료합니다.
- Auth0 Dashboard의 탐색 창에서 User Management를 선택한 다음 Users를 선택합니다.
- Create Your First User 또는 Create User를 선택합니다.
- Create User 상자에서 테스트 사용자의 이메일과 암호를 입력합니다.
- Save를 선택합니다.
애플리케이션의 SAML 설정 구성
다음 단계를 완료합니다.
- Auth0 Dashboard의 탐색 창에서 Applications를 선택합니다.
- 생성한 애플리케이션의 이름을 선택합니다.
- Addons 탭에서 SAML2 Web App을 켭니다.
- Addon: SAML2 Web App 상자의 Settings 탭에 있는 Application Callback URL에서 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse를 입력합니다.
참고: yourDomainPrefix 및 region을 사용자 도메인 접두사와 사용자 풀의 AWS 리전으로 바꾸십시오. 사용자 풀의 Management 페이지에 있는 Domain name 탭에서 찾아볼 수 있습니다. 또는 https//yourCustomDomain/saml2/idpresponse와 비슷한 사용자 지정 도메인 콜백 URL을 입력합니다.
- Settings의 audience에서 주석 구분 기호(//)를 삭제하고 기본값 urn:foo를 urn:amazon:cognito:sp:yourUserPoolId로 바꿉니다.
참고: yourUserPoolId를 Cognito 사용자 풀 ID로 바꾸십시오. 사용자 풀의 Management 페이지에 있는 General settings 탭에서 ID를 찾아볼 수 있습니다.
- mappings와 email의 주석 구분 기호(//)를 삭제합니다. 사용자 풀에 필요한 다른 모든 사용자 속성을 삭제합니다.
- nameIdenetifierFormat의 주석 구분 기호(//)를 삭제합니다. 기본값인 urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified를 urn:oasis:names:tc:SAML:2.0:nameid-format:persistent로 바꿉니다.
- (선택 사항) Debug를 선택합니다. 구성이 제대로 작동하는지 확인하기 위해 테스트 사용자로 로그인합니다.
- Enable을 선택하고 Save를 선택합니다.
Auth0 애플리케이션의 IdP 메타데이터 가져오기
Addon: SAML2 Web App 상자의 Usage 탭에서 Identity Provider Metadata를 찾습니다. Download를 선택하고 URL을 기록해 둡니다. 또는 Download를 선택하여 .xml 메타데이터 파일을 다운로드합니다.
Cognito에서 Auth0을 SAML IdP로 구성
SAML IdP를 생성할 때 Metadata document에 Identity Provider Metadata URL을 입력하거나 .xml 메타데이터 파일을 업로드합니다.
자세한 내용은 사용자 풀에 SAML ID 제공업체 추가 및 관리를 참조하십시오.
IdP 속성에서 사용자 풀 속성으로 이메일 주소 매핑
SAML Attribute에 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress를 입력합니다. User pool attribute에서 Email을 선택합니다.
자세한 내용은 프로필 및 토큰에 IdP 속성 매핑을 참조하십시오.
Cognito에서 앱 클라이언트 설정 변경
다음 단계를 완료합니다.
- Cognito 콘솔을 엽니다.
- 사용자 풀을 선택합니다.
- 사용자 풀의 관리 페이지에 있는 애플리케이션에서 원하는 앱 클라이언트 선택을 선택합니다.
- 로그인 페이지에서 관리되는 로그인 페이지 구성을 편집합니다.
- ID 제공업체에서 Auth0과 Cognito 사용자 풀을 선택합니다.
- 허용된 콜백 URL에 로그인한 후 리디렉션될 URL을 입력합니다. https://www.amazon.com과 같은 유효한 URL을 입력하여 인증을 테스트할 수 있습니다.
- 허용된 URL 로그아웃에 로그아웃한 후 리디렉션될 URL을 입력합니다. https://www.amazon.com과 같은 유효한 URL을 입력하여 인증을 테스트할 수 있습니다.
- 허용된 OAuth 흐름에서 최소한 암시적 부여를 선택합니다.
- 허용된 OAuth 범위에서 최소한 이메일과 openid를 선택합니다.
- 변경 사항 저장을 선택합니다.
자세한 내용은 앱 클라이언트 약관을 참조하십시오.
로그인 엔드포인트 테스트
다음 단계를 완료합니다.
- 웹 브라우저에 https://.auth..amazoncognito.com/login?response_type=token&client_id=&redirect_uri= URL을 입력합니다.
- yourDomainPrefix와 region을 사용자 풀 값으로 바꿉니다. 사용자 풀의 관리 페이지의 브랜딩에 있는 도메인 이름 탭에서 찾을 수 있습니다.
- yourClientId를 사용자의 앱 클라이언트의 ID로 바꾸고, redirectUrl을 사용자 앱 클라이언트의 콜백 URL로 바꿉니다. 사용자 풀의 관리 페이지의 애플리케이션에 있는 앱 클라이언트 설정 탭에서 확인할 수 있습니다. 자세한 내용은 관리형 로그인 로그인 엔드포인트: /login을 참조하십시오.
- Auth0을 선택합니다.
참고: 사용자의 앱 클라이언트 콜백 URL로 리디렉션된다면, 사용자의 브라우저에서 이미 Auth0 계정에 로그인한 것입니다.
- Auth0 애플리케이션의 로그인 페이지에서 테스트 사용자의 이메일과 암호를 입력합니다.
- Log in을 선택합니다.
로그인 후에는 앱 클라이언트의 콜백 URL로 리디렉션됩니다. 사용자의 웹 브라우저 주소 표시줄에 있는 URL에 사용자 풀 토큰이 표시됩니다.
관련 정보
사용자 풀 JSON 웹 토큰(JWT) 이해하기
타사 SAML ID 제공업체 구성
Amazon Cognito 사용자 풀을 사용하여 타사 SAML ID 제공업체를 설정하려면 어떻게 해야 합니까?