SAML 자격 증명 공급자 이름 및 식별자 - Amazon Cognito

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

SAML 자격 증명 공급자 이름 및 식별자

SAML 자격 증명 공급자(IdPs)의 이름을 지정하고 IdP 식별자를 할당하면 SP가 시작한 로그인 및 로그아웃 요청의 흐름을 해당 공급자에 자동화할 수 있습니다. 공급자 이름의 문자열 제약 조건에 대한 자세한 내용은 ProviderName 속성 을 참조하세요CreateIdentityProvider.

IdP 식별자 및 호스팅 UI를 사용한 Amazon Cognito SP 시작 SAML 로그인의 인증 흐름도입니다. 사용자는 호스팅된 UI에 이메일 주소를 제공하고 Amazon Cognito는 자동으로 공급자로 리디렉션합니다.

SAML 공급자에 대해 최대 50개의 식별자를 선택할 수도 있습니다. 식별자는 사용자 풀의 IdP에 대한 표시 이름이며 사용자 풀 내에서 고유해야 합니다. SAML 식별자가 사용자의 이메일 도메인과 일치하는 경우 Amazon Cognito 호스팅 UI는 각 사용자의 이메일 주소를 요청하고, 이메일 주소의 도메인을 평가한 다음, 해당 도메인에 해당하는 IdP로 리디렉션합니다. 동일한 조직이 여러 도메인을 소유할 수 있으므로 단일 IdP에는 여러 식별자가 있을 수 있습니다.

이메일 도메인 식별자를 사용하든 사용하지 않든 다중 테넌트 앱의 식별자를 사용하여 사용자를 올바른 IdP리디렉션할 수 있습니다. 호스팅된 UI를 완전히 우회하려는 경우 사용자가 를 통해 IdP 로 권한 부여 엔드포인트 직접 리디렉션하도록 사용자에게 제공하는 링크를 사용자 지정할 수 있습니다. 식별자로 사용자를 로그인하고 IdP 리디렉션하려면 초기 권한 부여 요청의 요청 파라미터idp_identifier=myidp.example.com에 식별자를 형식으로 포함시킵니다.

사용자를 IdP로 전달하는 또 다른 방법은 파라미터를 다음 URL 형식으로 IdP identity_provider 이름으로 채우는 것입니다.

https://mydomain.us-east-1.amazoncognito.com/oauth2/authorize? response_type=code& identity_provider=MySAMLIdP& client_id=1example23456789& redirect_uri=https://www.example.com

사용자가 SAML IdP 로 로그인하면 IdP는 HTTP POST 본문의 SAML 응답과 함께 엔드포인트로 리디렉션합니다/saml2/idpresponse. Amazon Cognito는 SAML어설션을 처리하고 응답의 클레임이 기대치를 충족하는 경우 앱 클라이언트 콜백으로 리디렉션합니다URL. 사용자가 이러한 방식으로 인증을 완료한 후 IdP 및 앱에 대해서만 웹 페이지와 상호 작용했습니다.

도메인 형식의 IdP 식별자를 사용하면 Amazon Cognito 호스팅 UI는 로그인 시 이메일 주소를 요청한 다음 이메일 도메인이 IdP 식별자와 일치하면 사용자를 IdP의 로그인 페이지로 리디렉션합니다. 예를 들어 두 회사의 직원이 로그인해야 하는 앱을 빌드합니다. 첫 번째 회사인 AnyCompany A는 exampleA.com 및 를 소유합니다exampleA.co.uk. 두 번째 회사인 AnyCompany B는 를 소유합니다exampleB.com. 이 예제에서는 다음과 같이 각 회사에 대해 IdPs하나씩 두 개의 를 설정했습니다.

  • IdP A에는 exampleA.comexampleA.co.uk 식별자를 정의합니다.

  • IdP B에는 exampleB.com 식별자를 정의합니다.

앱에서 앱 클라이언트에 호스팅 UI를 호출하여 각 사용자에게 이메일 주소를 입력하라는 메시지를 표시합니다. Amazon Cognito는 이메일 주소에서 도메인을 추출하고, 도메인과 IdP를 도메인 식별자와 상호 연결하며, 요청 idp_identifier 파라미터권한 부여 엔드포인트가 포함된 요청을 통해 사용자를 올바른 IdP로 리디렉션합니다. 예를 들어 사용자가 를 입력하면 사용자가 상호 작용하는 bob@exampleA.co.uk다음 페이지는 의 IdP 로그인 페이지입니다https://auth.exampleA.co.uk/sso/saml.

동일한 로직을 독립적으로 구현할 수도 있습니다. 앱에서 사용자 입력을 수집하고 사용자 자신의 로직에 따라 올바른 IdP와 상호 연결하는 사용자 지정 양식을 구축할 수 있습니다. 각 앱 테넌트에 대해 사용자 지정 앱 포털을 생성할 수 있습니다. 여기서 각 링크는 요청 파라미터의 테넌트 식별자를 사용하여 권한 부여 엔드포인트에 연결됩니다.

호스팅 UI에서 이메일 주소를 수집하고 도메인을 구문 분석하려면 앱 클라이언트에 할당한 각 SAML IdP에 식별자를 하나 이상 할당합니다. 기본적으로 호스팅 UI 로그인 화면에는 앱 클라이언트에 할당 IdPs 한 각 에 대한 버튼이 표시됩니다. 그러나 식별자를 성공적으로 할당한 경우 호스팅 UI 로그인 페이지는 다음 이미지와 같습니다.

로컬 사용자 로그인 및 페더레이션 사용자에게 이메일 주소를 입력하라는 메시지를 표시하는 Amazon Cognito 호스팅 UI 로그인 페이지입니다.

호스팅 UI의 도메인 구문 분석에는 도메인을 IdP 식별자로 사용해야 합니다. 앱 클라이언트에 SAML IdPs 대해 모든 유형의 식별자를 각 에 할당하면 해당 앱의 호스팅 UI에 더 이상 IdP 선택 버튼이 표시되지 않습니다. 이메일 구문 분석 또는 사용자 지정 로직을 사용하여 리디렉션을 생성하려는 SAML 경우 IdP 식별자를 추가합니다. 자동 리디렉션을 생성하고 호스팅 UI에 의 목록이 표시되도록 하려면 식별자를 할당하지 IdPs말고 권한 부여 identity_provider 요청에 요청 파라미터를 사용합니다.

  • 앱 클라이언트에 SAML IdP를 하나만 할당하면 호스팅 UI 로그인 페이지에 해당 IdP 로 로그인할 수 있는 버튼이 표시됩니다.

  • 앱 클라이언트에 대해 활성화하는 모든 SAML IdP에 식별자를 할당하면 호스팅 UI 로그인 페이지에 이메일 주소에 대한 사용자 입력 프롬프트가 나타납니다.

  • 여러 가 IdPs 있고 모든 에 식별자를 할당하지 않은 경우 호스팅 UI 로그인 페이지에는 할당된 각 IdP 로 로그인할 수 있는 버튼이 표시됩니다.

  • 에 식별자를 할당 IdPs 하고 호스팅 UI에 선택한 IdP 버튼을 표시하려면 앱 클라이언트에 식별자가 없는 새 IdP를 추가하거나 새 앱 클라이언트를 생성합니다. 기존 IdP를 삭제하고 식별자 없이 다시 추가할 수도 있습니다. 새 IdP 생성하면 SAML 사용자가 새 사용자 프로필을 생성합니다. 활성 사용자의 이 중복은 IdP 구성을 변경하는 달에 청구에 영향을 미칠 수 있습니다.

IdP 설정에 대한 자세한 내용은 사용자 풀의 자격 증명 공급자 구성 섹션을 참조하세요.