SAML 서명 및 암호화
SAML 2.0 로그인은 애플리케이션 사용자가 인증 흐름에서 요청과 응답을 전달하는 주체가 되어 구축됩니다. 사용자가 전송 중에 이러한 SAML 문서를 읽거나 수정하지 않도록 해야 할 수도 있습니다. 이렇게 하려면 사용자 풀의 SAML ID 제공업체(IdPs)에 SAML 서명 및 암호화를 추가하십시오. SAML 서명으로 사용자 풀은 SAML 로그인 및 로그아웃 요청에 서명을 추가합니다. 사용자 풀 퍼블릭 키를 사용하면 IdP가 수정되지 않은 SAML 요청을 수신하고 있는지 확인할 수 있습니다. 그런 다음 IdP가 응답하고 SAML 어설션을 사용자의 브라우저 세션에 전달하면 IdP는 사용자가 자신의 속성과 권한을 검사할 수 없도록 해당 응답을 암호화할 수 있습니다.
SAML 서명 및 암호화를 사용하면 사용자 풀 SAML 작업 중 모든 암호화 작업은 Amazon Cognito가 생성하는 사용자 풀 제공 키를 사용하여 서명 및 사이퍼텍스트를 생성해야 합니다. 현재 외부 키를 사용하여 요청에 서명하거나 암호화된 어설션을 수락하도록 사용자 풀을 구성할 수 없습니다.
참고
사용자 풀 인증서는 10년 동안 유효합니다. Amazon Cognito는 1년에 한 번 사용자 풀에 대한 새 서명 및 암호화 인증서를 생성합니다. Amazon Cognito는 서명 인증서를 요청할 때 가장 최근의 인증서를 반환하고 가장 최근의 서명 인증서로 요청에 서명합니다. IdP는 만료되지 않은 모든 사용자 풀 암호화 인증서로 SAML 어설션을 암호화할 수 있습니다. 이전 인증서는 전체 기간 동안 계속 유효하며 퍼블릭 키는 인증서 간에 변경되지 않습니다. 가장 좋은 방법은 매년 제공업체 구성에서 인증서를 업데이트하는 것입니다.
IdP에서 암호화된 SAML 응답 수락
Amazon Cognito와 IdP는 사용자가 로그인하고 로그아웃할 때 SAML 응답에서 기밀성을 설정할 수 있습니다. Amazon Cognito는 사용자 풀에서 구성한 각 외부 SAML 제공업체에 퍼블릭 프라이빗 RSA 키 페어와 인증서를 할당합니다. 사용자 풀 SAML 제공업체에 대한 응답 암호화를 활성화할 경우 암호화된 SAML 응답을 지원하는 IdP에 인증서를 업로드해야 합니다. IdP가 제공된 키로 모든 SAML 어설션 암호화를 시작하기 전에는 SAML IdP에 대한 사용자 풀 연결이 작동하지 않습니다.
다음은 암호화된 SAML 로그인의 흐름에 대한 개요입니다.
-
사용자가 로그인을 시작하고 SAML IdP를 선택합니다.
-
사용자 풀 권한 부여 엔드포인트은 SAML 로그인 요청을 통해 사용자를 SAML IdP로 리디렉션합니다. 사용자 풀은 선택적으로 이 요청에 IdP의 무결성 검증을 가능하게 하는 서명을 추가할 수 있습니다. SAML 요청에 서명하려면 사용자 풀이 서명 인증서의 퍼블릭 키로 서명한 요청을 수락하도록 IdP를 구성해야 합니다.
-
SAML IdP는 사용자에 서명하고 SAML 응답을 생성합니다. IdP는 퍼블릭 키를 사용하여 응답을 암호화하고 사용자를 사용자 풀
/saml2/idpresponse
엔드포인트로 리디렉션합니다. IdP는 SAML 2.0 사양에 정의된 대로 응답을 암호화해야 합니다. 자세한 내용은 OASIS SAML(Security Assertion Markup Language) V2.0에 대한 어설션 및 프로토콜의 Element <EncryptedAssertion>
섹션을 참조하세요. -
사용자 풀은 프라이빗 키를 사용하여 SAML 응답의 사이퍼텍스트를 해독하고 사용자에 로그인합니다.
중요
사용자 풀에서 SAML IdP에 대한 응답 암호화를 활성화할 때 IdP는 제공업체 전용 퍼블릭 키로 모든 응답을 암호화해야 합니다. Amazon Cognito는 암호화를 지원하도록 구성한 SAML 외부 IdP에서 암호화되지 않은 SAML 응답을 수락하지 않습니다.
사용자 풀에 있는 모든 외부 SAML IdP는 응답 암호화를 지원할 수 있으며, 각 IdP는 자체 키 페어를 받습니다.
SAML 요청 서명
IdP에 대한 SAML 2.0 요청의 무결성을 증명할 수 있는 기능은 Amazon Cognito SP 시작 SAML 로그인이 가진 보안 이점입니다. 도메인이 있는 각 사용자 풀은 사용자 풀 X.509 서명 인증서를 받습니다. 이 인증서의 퍼블릭 키를 사용하면 사용자 풀은 사용자가 SAML IdP 를 선택할 때 사용자 풀이 생성하는 로그아웃 요청에 암호화 서명을 적용합니다. 선택적으로 SAML 로그인 요청에 서명하도록 앱 클라이언트를 구성할 수 있습니다. SAML 요청에 서명하면 IdP는 요청의 XML 메타데이터에 있는 서명이 사용자가 제공한 사용자 풀 인증서의 퍼블릭 키와 일치하는지 확인할 수 있습니다.