5

우리 앱에는 3 가지 (Shibboleth) IdP와 SAML2 SSO 통합이 있습니다. 우리는 4 번째 앱 (Shibboleth도 추가)을 시도하고 있지만 일부 문제에 직면하고 있습니다. 앱에서 모든 SSO 응답에 검증 가능한 서명이 필요하기 때문입니다. 이 3 명은 응답에 서명하고 있지만 4 번째 앱은 앱에 서명하도록 사용자 설정을 추가하는 것을 주저합니다.SAML2 SSO 응답에 IdP를 서명해야합니까?

기술적으로 우리는 서명되지 않은 SSO 응답을 받아들이도록 앱을 수정할 수 있지만, 내가해야하는지 여부는 궁금합니다. 서명되지 않은 SSO 응답을 허용하는 함정은 무엇입니까? 어떤 보안 취약점이 있습니까?

모범 사례로 응답 서명을 권장하는 Shibboleth (또는 다른 SAML2 SSO) 설명서가 있습니까?

답변

8

SAML 2.0 사양을 따르는 IdP에 대한 유일한 요구 사항은 어설 션을 디지털 서명하는 것입니다 (http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf - 섹션 4.1.3.5 참조). 이는 IdP에서 SSO 작업을 페더레이션 한 SP가 신뢰해야 하는지를 판단하기에 충분합니다.

외부 응답 서명은 선택 사항입니다. 메시지 삽입 또는 수정 방지 (6.1.3/6.1.5, http://docs.oasis-open.org/security/saml/v2.0/saml-sec-consider-2.0-os.pdf 참조)와 같은 몇 가지 보안상의 이점이 있지만 실제로는 SSL/TLS를 사용하는 대신 생략됩니다.

+0

그렇다면 문서를 기반으로 Google의 앱이 인증 응답을 요구하는 경우 기술적으로 SAML2를 준수하지 않습니까? 모든 응답은 실제로 HTTPS를 통해 강제됩니다. – danludwig

+1

SAML 응답 또는 어설 션의 서명은 사용중인 바인딩에 따라 다릅니다. POST Binding을 통해 메시지를 받고 있다고 가정하기 때문에 메시지 무결성을 보장하기 위해 응답 및/또는 어설 션 *을 IDP로 서명해야합니다. 나는 그 혼란이 대응의 어떤 부분이 서명되고 있는지에 기인한다고 생각한다. Shibb이 서명되지 않은 메시지를 POST를 통해 보낼 수있게 허용하면 놀라실 것입니다. – Ian

3

응답에 서명하는 전체 요점은 그들이 실제로 발급자로부터 왔다는 것을 증명하는 것입니다. 그렇지 않으면 "중간에있는 사람"이 속성을 변경할 수 있습니다. 응용 프로그램에 대한 액세스 권한을 부여합니다.

기본적으로 SAML을 사용하는 ADFS 버전 2.0은 모든 응답 토큰에 서명합니다. 이 기능을 끄는 방법은 없습니다.

관련 문제