웹사이트 인증서와 SAML 인증서의 차이점은 무엇입니까?

웹사이트 인증서와 SAML 인증서의 차이점은 무엇입니까?

브라우저 인증서는 서명된 문서이며 CA의 공개 키를 사용하여 사용자 에이전트가 이를 확인할 수 있습니다.

SAML의 메타데이터 파일에도 인증서가 있는데 그냥 다른 것 같습니다. 그것은 무엇이며 정확히 무엇을 위한 것입니까?

답변1

그것은 익숙하다생산하다서명된 문서. IdP의 메타데이터에 있는 인증서는 ID 공급자(IdP)가 발급하고 서비스 공급자(SP)에 전송되는 SAML 토큰("어설션")에 서명하는 데 사용됩니다.

어설션은 사용자의 웹 브라우저를 통해 전송되므로 사용자가 어설션을 조작하는 것(예: 사용자가 더 많은 그룹이나 기타 속성을 추가할 수 없도록)으로부터 보호되어야 하므로 IdP의 개인 키를 사용하여 디지털 서명됩니다. SP는 로그인을 허용하기 전에 해당 서명을 확인합니다.

즉, SAML 어설션이 OIDC의 서명된 JWT 토큰과 거의 동일한 경우 인증서는 JWT 서명 키처럼 사용됩니다.

(실제로 SAML 어설션을 "인증서"라고 부를 수도 있고 발급 IdP를 "인증 기관"이라고 부를 수도 있습니다...)


또한 SP에는 IdP가 다음 용도로 사용할 수 있는 자체 인증서가 있을 수도 있습니다.암호화하다주장(예: 섀도우 금지 상태와 같이 사용자에게 유출되어서는 안 되는 내부 데이터 또는 SSN과 같이 노출을 최소화하기 위한 내부 데이터가 포함된 경우) 이는 선택 사항입니다.

SP가 자체 인증서를 보유하는 또 다른 이유는 서명할 수 있기 때문입니다.로그아웃 요청IdP로 다시 전송됩니다. SAML2 프로토콜은 하나의 SP에서 로그아웃하는 "단일 로그아웃"을 지원합니다. 즉, IdP 자체는 물론 다른 모든 SP에서도 로그아웃됩니다. 하지만 이 프로토콜에는 반드시 서로를 신뢰할 수 없는 위치를 통한 긴 리디렉션 체인이 포함됩니다.


참고 사항: SAML의 인증서는 TLS와 동일한 종류의 "서명된 문서"이지만, 한 가지 큰 차이점은 대부분의 경우 SAML 인증서는 자체 서명되고 SP는 정확한 공개 키에만 관심을 갖고 다른 모든 것은 무시한다는 것입니다. 필드. (실제로 X.509 인증서를 사용하는 가장 큰 이유는 SAML이 기존 XML-DSig 표준을 사용하고 모든 도구/라이브러리가 인증서를 처리할 것으로 예상하기 때문입니다.)할 수 없었다CA에서 발행해야 합니다. 지원되지만 거의 필요하지 않습니다.

관련 정보