10.2. SAML
SAML 2.0 은 OIDC와 유사하지만 더 성숙한 사양입니다. CHAP 및 웹 서비스 메시징 사양에서 Descended는 일반적으로 OIDC보다 더 자세합니다. SAML 2.0은 인증 서버와 애플리케이션 간에 XML 문서를 교환하는 인증 프로토콜입니다. XML 서명 및 암호화는 요청 및 응답을 확인하는 데 사용됩니다.
일반적으로 SAML은 두 가지 사용 사례를 구현합니다.
첫 번째 사용 사례는 Red Hat Single Sign-On 서버를 요청하는 애플리케이션이 사용자를 인증하는 것입니다. 로그인에 성공하면 애플리케이션에 XML 문서가 수신됩니다. 이 문서에는 사용자 속성을 지정하는 SAML 어설션이 포함되어 있습니다. 영역은 애플리케이션이 애플리케이션에서 액세스할 수 있는 리소스를 결정하는 데 사용하는 액세스 정보(예: 사용자 역할 매핑)를 포함하는 문서에 디지털 서명합니다.
두 번째 사용 사례는 원격 서비스에 액세스하는 클라이언트입니다. 클라이언트는 사용자를 대신하여 원격 서비스에서 호출하도록 Red Hat Single Sign-On의 SAML 어설션을 요청합니다.
10.2.1. SAML 바인딩
Red Hat Single Sign-On은 세 가지 바인딩 유형을 지원합니다.
10.2.1.1. 리디렉션 바인딩
리디렉션 바인딩은 일련의 브라우저 리디렉션 URI를 사용하여 정보를 교환합니다.
- 사용자는 브라우저를 사용하여 애플리케이션에 연결합니다. 애플리케이션에서 사용자가 인증되지 않았음을 감지합니다.
- 애플리케이션은 XML 인증 요청 문서를 생성하여 URI에서 쿼리 매개변수로 인코딩합니다. URI는 Red Hat Single Sign-On 서버로 리디렉션하는 데 사용됩니다. 설정에 따라 애플리케이션은 XML 문서에 디지털 서명하고 Red Hat Single Sign-On으로 리디렉션 URI에 서명을 쿼리 매개변수로 포함할 수도 있습니다. 이 서명은 요청을 보내는 클라이언트의 유효성을 확인하는 데 사용됩니다.
- 브라우저가 Red Hat Single Sign-On으로 리디렉션됩니다.
- 서버는 XML 인증 요청 문서를 추출하고 필요한 경우 디지털 서명을 확인합니다.
- 사용자가 인증 자격 증명을 입력합니다.
- 인증 후 서버는 XML 인증 응답 문서를 생성합니다. 이 문서에는 이름, 주소, 이메일 및 사용자가 보유한 역할 매핑을 포함하여 사용자에 대한 메타데이터를 보유하는 SAML 어설션이 포함되어 있습니다. 이 문서는 일반적으로 XML 서명을 사용하여 디지털 서명되며, 또한 암호화될 수 있습니다.
- XML 인증 응답 문서는 리디렉션 URI에서 쿼리 매개변수로 인코딩됩니다. URI는 브라우저를 애플리케이션으로 다시 가져옵니다. 디지털 서명은 쿼리 매개변수로 포함되어 있습니다.
- 애플리케이션은 리디렉션 URI를 수신하고 XML 문서를 추출합니다.
- 애플리케이션은 영역의 서명을 확인하여 유효한 인증 응답을 수신하는지 확인합니다. SAML 어설션 내부의 정보는 액세스 결정을 내리거나 사용자 데이터를 표시하는 데 사용됩니다.
10.2.1.2. POST 바인딩
POST 바인딩은 리디렉션 바인딩과 유사하지만 POST 바인딩은 GET 요청을 사용하는 대신 POST 요청을 사용하여 XML 문서를 전송합니다. POST Binding은 JavaScript를 사용하여 브라우저가 문서를 교환할 때 Red Hat Single Sign-On 서버 또는 애플리케이션에 POST 요청을 전송하도록 합니다. HTTP는 JavaScript가 포함된 HTML 양식을 포함하는 HTML 문서를 사용하여 응답합니다. 페이지가 로드되면 JavaScript가 자동으로 양식을 호출합니다.
POST 바인딩은 다음 두 가지 제한으로 인해 권장됩니다.
- Security ECDHE-ECDHE With Redirect binding, SAML 응답은 URL의 일부입니다. 로그에서 응답을 캡처할 수 있으므로 안전하지 않습니다.
- HTTP 페이로드의 문서를 전송하면 제한된 URL보다 많은 양의 데이터에 대한 더 많은 범위를 제공합니다.
10.2.1.3. ECP
향상된 클라이언트 또는 프록시(ECP)는 웹 브라우저의 컨텍스트 외부에서 SAML 속성을 교환할 수 있는 SAML v.2.0 프로파일입니다. REST 또는 CHAP 기반 클라이언트에서 자주 사용됩니다.
10.2.2. Red Hat Single Sign-On 서버 SAML URI 끝점
Red Hat Single Sign-On에는 모든 SAML 요청에 대해 하나의 끝점이 있습니다.
http(s)://authserver.host/auth/realms/{realm-name}/protocol/saml
모든 바인딩은 이 끝점을 사용합니다.