SAML SSO 응답

최신 업데이트:2022-06-09 12:17:17

개요

SAML2.0 기반 SSO 프로세스에서 기업 사용자가 IdP에 로그인할 때 IdP는 SAML statement을 포함하는 인증 응답을 생성하고 브라우저로 씨디네트웍스에 자동으로 전달한다.이 SAML statement은 사용자의 로그인 상태를 확인하고 로그인 대상을 해석하는 데 사용된다…따라서 SAML응답에는씨디네트웍스에 필요한 element가 포함되어야 한다. 그렇지 않으면 로그인 사용자를 식별할 수 없으므로 SSO가 실패한다.

SAML 응답

<saml2p:Response>
    <saml2:Issuer>${entityID}</saml2:Issuer>
    <ds:Signature>
     …
    </ds:Signature>
    <saml2p:Status>
     …
    </saml2p:Status>
    <saml2:Assertion>
        <saml2:Issuer>${entityID}</saml2:Issuer>
        <ds:Signature>
        …
        </ds:Signature>
        <saml2:Subject>
          <saml2:NameID>${NameID}</saml2:NameID>
          <saml2:SubjectConfirmation>
		…
          </saml2:SubjectConfirmation>
        </saml2:Subject>
        <saml2:Conditions>
          <saml2:AudienceRestriction>
          	<saml2:Audience>${Audience}</saml2:Audience>
          </saml2:AudienceRestriction>
        </saml2:Conditions>
        <saml2:AuthnStatement>
         …
        </saml2:AuthnStatement>
        <saml2:AttributeStatement>
          <saml2:Attribute Name="https://login.cdnetworks.com/SAML/Attributes/LoginName" >
            …
          </saml2:Attribute>
		 <saml2:Attribute Name="https://login.cdnetworks.com/SAML/Attributes/RoleSessionName">
            …
          </saml2:Attribute>
          …
        </saml2:AttributeStatement>
    </saml2:Assertion>
</saml2p:Response>


SAML Assertion의 각 element별 설명

  • SAML 2.0 프로토콜의 공통 element

항목 설명
Issuer Issuer 값은 엔티티와 일치해야 한다. 씨디네트웍스에서 생성한 ID 제공자가 엔티티에 업로드된 IdP 메타데이터 파일의 ID입니다.
Signature SAML Assertion에는 변조가 없도록 서명해야 하며 시그너처 및 포함된 element는 시그너처 값 및 시그너처 알고리즘과 같은 정보를 포함해야 한다.
Subject

Subject 필수 포함 요소.

1) NameID element가 하나밖에 없습니다.NameID의 값은 일반적으로 SAML 단언 주체가 IdP에서 ID(IdP 내부 계정 이름 또는 계정 ID가 될 수 있음)로 CDNetworks는 이 요소에 의존하지 않는 값으로 로그인 주체를 확인한다.

2) 단 한개의 SubjectConfirmationData element를 포함한 SubjectConfirmation element가 1개만 있어야 한다. 그리고, SubjectConfirmationData에는 다음과 같은 두개의 Attribute가 있어야 한다.

NotOnOrAfter: SAML Assertion의 유효기간

Recipient:CDNetworks가 해당 element의 값을 검사하여 CDNetworks를 이 SAML Assertion의 대상 수신자임을 확인한다.

값은 >https://login.cdnetworks.com/cas/login?client_name=${provider}。

다음은 Subject 요소의 예시입니다.:

<saml2:Subject>

       <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">admin</saml2:NameID>

       <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">

                <saml2:SubjectConfirmationData

                    InResponseTo="_adafdaxfrpqkrf4cpnkfslpgxf76qeqmlwtag"

                    NotOnOrAfter="2021-04-29T18:57:29.367Z" Recipient="https://cas.wangsu.com/cas/login?client_name=mockClient"/>

      </saml2:SubjectConfirmation>

</saml2:Subject>

Conditions

Condition element에서는,필수항목인 AudienceRestriction element에는 한개 이상의 Audience element가 있어야 하며,Audience element에는 https://login.cdnetworks.com을 가지고 있어야 한다.

Conditions element 예시는 아래와 같다.:

<saml2:Conditions>

  <saml2:AudienceRestriction>

     <saml2:Audience>https://cas.wangsu.com</saml2:Audience>

  </saml2:AudienceRestriction>

</saml2:Conditions>

사용자 정의 element

SAML Assertion의 AttributeStatement element에는 다음과 같은 Attribute element가 포함되어야 한다.

  • Name Attribute 속성 : https://login.cdnetworks.com/SAML/Attributes/LoginName의 Attribute element로, 필수이며 여러 개의 Attribute element를 가질 수 있다.(인터페이스에서는 업로드가 지원되지만 프로그램에서는 지원되지 않는다. 첫 번째 값만 사용된다.).
    여기에 포함된 AttributeValue element 값은 사용자가 현재 액세스할 수 있는 ID제공자를 나타낸다. 값은 쉼표로 구분된 사용자 설명과 ID 제공자 설명의 조합에 있다.
<saml2:Attribute Name="https://login.cdnetworks.com/SAML/Attributes/LoginName" >  

<saml2:AttributeValue>wsc:iam::${parentLoginName}:login-name/${loginName},wsc:iam::${parentLoginName}:saml-provider/${provider}</saml2:AttributeValue>        
     <saml2:AttributeValue>wsc:iam::${parentLoginName}:login-name/${loginName},wsc:iam::${parentLoginName}:saml-provider/${provider}</saml2:AttributeValue>  
</saml2:Attribute>
  • 이 Attribute은 다음과 같다
    • ${parentLoginName}: 씨디네트웍스의 메인계정(main account)로 변경한다;
    • ${loginName}: 현재 IdP 사용자가 CDNetworks에 접근할 때 사용하는 CDNetworks 계정으로 대체한다.
    • ${provider}: 씨디네트웍스 콘솔에 생성한 SAML 인증 공급자의 이름으로 대체한다.
  1. Name Attribute 속성
  • RoleSessionName은 https://login.cdnetworks.com/SAML/Attribute 필수 element이며, 하나만 가질 수 있다.
    포함된 AttributeValue element 값은 콘솔 및 작업 감사 로그에 로그인 사용자 정보의 일부로 표시하는 데 사용된다. 이 필드는 사용자가 사용자 정의할 수 있으며 길이는 32자를 넘지 않는다.포맷은 다음과 같다:
<saml2:Attribute Name="https://login.cdnetworks.com/SAML/Attributes/RoleSessionName">
     <saml2:AttributeValue>${NameID}</saml2:AttributeValue>          
</saml2:Attribute>

다음은 RoleSessionName의 Attribute element 예제이다.

<saml2:Attribute Name="https://login.cdnetworks.com/SAML/Attributes/RoleSessionName">
     <saml2:AttributeValue>admin</saml2:AttributeValue>          
</saml2:Attribute>

이 문서의 내용이 도움이 되었습니까?
아니오
정상적으로 제출되었습니다.피드백을 주셔서 감사합니다.앞으로도 개선을 위해 노력하겠습니다.