Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
사용자가 Amazon Cognito로 페더레이션할 때 발생하는 잘못된 SAML 응답 오류를 해결하려면 어떻게 해야 합니까?
사용자가 SAML 2.0을 사용하여 Amazon Cognito에 페더레이션할 때 발생하는 오류를 해결하고 싶습니다.
해결 방법
SAML 응답 검토
브라우저에서 ID 제공업체(idP)가 Amazon Cognito로 보낸 SAML 응답을 검토하십시오.
참고: SAMLResponse 요소에는 base64로 인코딩된 응답이 포함되어 있습니다. 페이로드에 백분율(%) 문자가 표시되면 응답은 URL로 인코딩되고 base64로 인코딩된 것입니다. 이 경우 SAMLResponse 값에 대해 URL 디코딩을 수행한 다음, base64 디코딩을 적용하십시오.
속성 매핑 확인
"The attribute is required"
다음 오류 메시지가 표시됩니다.
"Invalid SAML response received: Invalid user attributes: <attribute_name>: The attribute is required"
이 문제를 해결하려면 다음 단계를 완료하십시오.
- Amazon Cognito 콘솔을 엽니다.
- 탐색 창에서 사용자 풀을 선택한 다음, 해당 사용자 풀을 선택합니다.
- 가입 환경에서 구성한 필수 속성을 기록해 둡니다.
- 사용자 풀의 속성 매핑을 구성했는지 확인합니다. 속성을 매핑하지 않은 경우 속성 매핑을 지정하십시오.
- 브라우저에서 SAML 응답을 검색합니다.
- AttributeStatement 필드에서 IdP에 필수 속성이 포함되어 있는지 확인합니다.
- IdP의 속성 매핑 구성에서 필요한 속성을 올바른 매핑과 함께 전송하도록 IdP를 설정했는지 확인합니다.
참고: IdP는 속성 매핑에 이메일 주소 또는 URL 형식과 같은 간단한 이름을 사용할 수 있습니다. URL 형식 속성 이름의 예는 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress입니다.
"Required attribute cannot be deleted"
다음 오류 메시지가 표시됩니다.
"Invalid SAML response received: Invalid user attributes: <attribute_name>: Required attribute cannot be deleted"
이 오류는 IdP가 필수 속성을 null로 설정하거나, 필수 속성을 삭제하거나, 사용자 만들기 후 속성 매핑을 제거할 때 발생합니다.
이 문제를 해결하려면 필요한 모든 속성을 매핑하고 속성에 대한 올바른 값을 전송하도록 IdP를 구성하십시오.
자세한 내용은 매핑에 대해 알아야 할 사항을 참조하십시오.
변경할 수 없는 속성 확인
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
다음 오류 메시지가 표시됩니다.
"Invalid SAML response received: Invalid user attributes: <attribute_name>: Attribute cannot be updated"
이 오류는 IdP가 변경할 수 없는 Amazon Cognito 속성에 매핑된 속성을 전달할 때 발생합니다. 사용자 풀을 만든 후에는 속성 변경 가능성을 변경할 수 없습니다.
이 문제를 해결하려면 다음 단계를 완료하십시오.
- 다음 describe-user-pool 명령을 실행합니다.
참고: USER-POOL-ID를 사용자 풀 ID로 바꾸십시오.aws cognito-idp describe-user-pool --user-pool-id USER-POOL-ID --query 'UserPool.SchemaAttributes[?Mutable==`false`].Name' - 명령 출력에서 변경할 수 없는 모든 속성을 기록해 둡니다.
- Amazon Cognito 콘솔을 엽니다.
- IdP의 SAML 속성 매핑에서 SAML 속성이 Amazon Cognito 변경 불가 속성에 매핑되는지 확인합니다. SAML 속성이 변경 불가능한 속성에 매핑되는 경우 매핑을 삭제하십시오.
참고: SAML 속성을 매핑해야 하는 경우 기존 가변 속성에 매핑하십시오. SAML 속성에 매핑할 수 있는 사용자 지정 변경 가능 속성을 만들 수도 있습니다.
매핑된 속성이 필요한 경우 올바른 변경 가능성 설정으로 새 사용자 풀을 만들고 사용자를 새 사용자 풀로 가져오십시오.
SAML 응답과 IdP 메타데이터 XML 파일 간의 값 비교
다음 오류 메시지가 표시됩니다.
"Invalid SAML response received: SAML Response signature is invalid"
이 오류는 IdP가 SAML 서명 인증서를 업데이트할 때 발생합니다. 업데이트로 인해 SAML 응답의 X509Certificate 값과 IdP 메타데이터 XML 파일 간에 불일치가 발생합니다.
이 문제를 해결하려면 다음 단계를 완료하십시오.
- IdP의 애플리케이션 구성 페이지에서 최신 메타데이터 파일을 다운로드합니다.
참고: IdP가 퍼블릭 URL을 통해 SAML 메타데이터를 제공하는 경우 메타데이터 문서 URL을 기록하고 퍼블릭 URL을 입력할 수 있습니다. - Amazon Cognito 콘솔을 엽니다.
- SAML IdP의 구성 설정에서 기존 메타데이터 파일을 새 메타데이터 파일로 바꿉니다.
엔터티 ID 및 URN 확인
다음 오류 메시지 중 하나가 표시됩니다.
"Invalid SAML response received: Audience restriction in SAML Assertion does not allow it for urn:amazon:cognito:sp:xxxxxxxx"
-또는-
"Invalid SAML response received: Application with identifier 'urn:amazon:cognito:sp:xxxxxxxx' was not found"
이러한 오류는 IdP에서 잘못된 엔터티 ID를 구성하거나 다른 사용자 풀의 URN(Uniform Resource Name)을 사용할 때 발생합니다.
이 문제를 해결하려면 다음 단계를 완료하십시오.
- Amazon Cognito 콘솔을 엽니다.
- 탐색 창에서 사용자 풀을 선택한 다음, SAML 통합을 위해 구성하려는 사용자 풀을 선택합니다.
- 탐색 창에서 개요를 선택하고 사용자 풀 ID를 기록해 둡니다.
- IdP의 SAML 애플리케이션 설정에서 urn:amazon:cognito:sp:USER-POOL-ID 형식으로 엔터티 ID를 구성합니다.
참고: USER-POOL-ID를 Amazon Cognito 사용자 풀 ID로 바꾸십시오.
IdP의 ACS(어설션 소비자) URL 구성 확인
다음 오류 메시지가 표시됩니다.
"An error was encountered with the requested page"
IdP의 ACS(어설션 소비자 서비스) URL을 잘못 구성하면 Amazon Cognito 관리형 로그인 페이지에서 이 오류가 발생합니다. Amazon Cognito는 엔드포인트에 대한 POST 바인딩만 지원합니다. IdP는 POST 요청의 SAML 응답을 엔드포인트로 보내야 합니다. IdP 애플리케이션에서 URL을 잘못 구성하면 IdP가 잘못된 엔드포인트로 SAML 응답을 보냅니다.
이 문제를 해결하려면 올바른 ACS URL 형식으로 IdP 애플리케이션을 구성하십시오.
기본 Amazon Cognito 사용자 풀 도메인의 예제 형식은 https://YOUR-USER-POOL-DOMAIN.auth.REGION.amazoncognito.com/saml2/idpresponse입니다.
사용자 지정 사용자 풀 도메인의 예제 형식은 https://YOUR-USER-POOL-DOMAIN/saml2/idpresponse입니다.
참고: YOUR-USER-POOL-DOMAIN을 사용자 풀 도메인으로 바꾸십시오.
IdP가 지원하는 로그인 유형 확인
다음 오류 메시지 중 하나가 표시됩니다.
"An error was encountered with the requested page: Invalid relayState from identity provider"
-또는-
"An error was encountered with the requested page: Invalid samlResponse or relayState from identity provider"
이러한 오류는 다음과 같은 이유로 IdP 시작 SAML 로그인 흐름과 서비스 제공업체 시작(SP 시작) SAML 로그인 흐름에서 모두 발생합니다.
- IdP가 Amazon Cognito에 대한 SAML 응답에서 RelayState 파라미터를 null로 설정했습니다.
- 다른 사용자 풀에 동일한 IdP 애플리케이션을 사용했습니다. 따라서 SAML 요청의 ACS URL이 IdP 애플리케이션 구성에 있는 ACS URL과 일치하지 않습니다.
참고: SP 시작 SAML 로그인 흐름의 경우, Amazon Cognito는 IdP에 대한 인증 요청에 RelayState 파라미터를 포함합니다. 인증 후 IdP는 RelayState 파라미터를 Amazon Cognito에 반환해야 합니다. IdP 시작 SAML 로그인 흐름의 경우, IdP에는 /saml2/idpresponse 엔드포인트에 대한 SAML 어설션과 함께 RelayState 파라미터가 포함되어야 합니다.
RelayState 문제를 해결하려면 SAML IdP가 SP 시작 SAML 로그인만 지원하는지, 아니면 IdP 시작 SAML 로그인과 SP 시작 SAML 로그인을 모두 지원하는지 확인하십시오.
IdP가 SP 시작 SAML 로그인 흐름을 지원하는 경우 Amazon Cognito에서 인증 흐름을 시작하여 페더레이션 요청을 시작하십시오. 사용자를 로그인 엔드포인트로 리디렉션하는 /login 관리형 로그인 엔드포인트를 사용할 수 있습니다. 또는 /oauth2/authorize 리디렉션 및 인증 엔드포인트를 사용하십시오.
IdP가 IdP 시작 SAML 로그인 흐름을 지원하는 경우, identity_provider=ID-PROVIDER-NAME&client_id=CLIENT-ID&redirect_uri=CALLBACK-URL&response_type=code&scope=openid+email+phone 형식의 RelayState 파라미터를 사용하여 SAML IdP를 구성합니다.
참고: ID-PROVIDER-NAME을 SAML IdP의 이름으로 바꾸십시오. 또한 CLIENT-ID를 사용자 풀의 앱 클라이언트 ID로 바꾸고, CALLBACK-URL을 앱 클라이언트 ID의 콜백 URL로 바꾸십시오.
ACS URL 문제를 해결하려면 다음 단계를 완료하십시오.
- HTTP 아카이브(HAR) 파일을 만듭니다.
- 브라우저의 네트워크 탭에서 saml?SamlRequest 항목이 있는 요청을 찾습니다.
- 요청 파라미터의 SAMLRequest를 기록해 둡니다.
- 선호하는 SAML 디코딩 도구를 사용하여 SAMLRequest를 디코딩합니다.
- 디코딩된 요청의 ACS URL을 IdP 구성의 ACS URL과 비교합니다.
URL이 다를 경우 SAMLRequest의 ACS URL과 일치하도록 IdP 구성을 업데이트하십시오. 그런 다음, 올바른 사용자 풀에서 페더레이션 요청을 시작합니다.
- 언어
- 한국어
