SAML 토큰 전파

아웃바운드 웹 서비스 메시지에 SAML 토큰을 포함하도록 다양한 SAML 토큰 전파 방법을 사용할 수 있습니다.

이 태스크 정보

웹 서비스 클라이언트는 아웃바운드 웹 서비스 메시지에서 두 가지 유형의 토큰을 포함할 수 있습니다.
  • 클라이언트가 인바운드 웹 서비스 메시지에서 수신하는 원래 SAML 토큰.
  • 자체 발행된 새 SAML 토큰.
원래 SAML 토큰의 속성을 사용하거나 실행 도구 주제에서 WSPrincipal 사용자 이름의 속성을 사용하여 새 SAML 토큰을 생성할 수 있습니다. 웹 서비스 정책 구성은 전파할 SAML 토큰을 판별합니다. Axis2 RequestContext 오브젝트로 전파할 SAML 토큰을 프로그래밍 방식으로 삽입하여 정책 구성을 대체할 수 있습니다.

4가지 전파 방법이 사용 가능합니다. 이 테이블에서는 전파 방법 및 연관된 바인딩 옵션을 요약합니다.

표 1. 전파 방법 및 연관된 바인딩 옵션. 전파를 사용하여 웹 서비스 메시지에서 SAML 토큰을 포함합니다.
SAML 토큰 전파 방법 바인딩 옵션 구현 세부사항
원래 SAML 토큰 전파 tokenRequest 바인딩 옵션은 propagation의 값으로 설정됩니다. WS-Security를 사용하여 토큰을 다른 서버로 수신하는 경우 서버에서 원래 SAML 토큰을 전송합니다.
사용자 보안 이름, 고유 보안 이름, 그룹 ID, 보안 영역 이름을 전파합니다. tokenRequest 바인딩 옵션은 issueByWSCredential의 값으로 설정됩니다. 기본 시스템 구현을 대체합니다.

자체 발행된 SAML 토큰은 사용자 보안 컨텍스트에서 WSCredential 오브젝트로 지정하는 사용자 보안 이름, 사용자 고유 보안 이름, 그룹 ID, 보안 영역 이름을 포함합니다.

SAML 토큰 ID 및 속성을 전파합니다. 바인딩 옵션이 설정되지 않습니다. 기본 시스템 구현.

서버는 원래 SAML 속성, 인증 방법, NameIdentifier 또는 SAML NameID를 포함하는 새 SAML 토큰을 자체 생성하고, WS-Security를 사용하여 자체 생성된 새 SAML 토큰을 다운스트림 서버로 전송합니다. 새 SAML 토큰 발행자 이름, 발행자 서명 인증서, 수명 주기는 SAML 제공자 구성 특성으로 판별됩니다.

WSPrincipal을 전파합니다. tokenRequest 바인딩 옵션은 issueByWSPrincipal의 값으로 설정됩니다.
전이 사용자용 전이 사용자용: 버전 8부터 issueByWSPrincipal 또는 issueByWSCredential 값을 지정해도 결과는 동일합니다. issueByWSPrincipal 값을 아직 사용하지 않는 경우 issueByWSCredential 값을 사용하는 것이 좋습니다. issueByWSPrincipal 값을 이미 사용하는 경우 실제로 issueByWSCredential 값으로 해당 값을 바꾸는 것이 좋습니다.trns
기본 시스템 구현을 대체합니다.

자체 발행된 SAML 토큰은 실행 도구 제목의 WSPrincipal 정보를 포함합니다. 정보는 제목에 토큰이 있어도 원래 SAML 토큰에서 복사하지 않고 NameIdentity 또는 NameID로 저장됩니다.

프로그래밍 방식으로 기존 SAML 토큰을 전파합니다. 특성, com.ibm.wsspi.wssecurity.core.token.config.WSSConstants.SAMLTOKEN_IN_MESSAGECONTEXT를 사용하는 RequestContext에 전파하려는 SAML 토큰을 삽입합니다. 기존의 다른 모든 바인딩 옵션을 대체합니다.

프로시저

  1. 단계에 나온 대로, bindings.xml 파일에서 propagation 값으로 tokenRequest 바인딩 옵션을 설정하여 원래 SAML 토큰을 전파하십시오. 이 메소드는 WS-Security를 사용하여 다른 서버로 원래 SAML 토큰을 전송합니다. 전파에 성공하려면 실행 도구 제목에 올바른 SAML 토큰이 있어야 합니다. 서버는 현재 보안 컨텍스트의 실행 도구 제목에서 SAML 토큰을 추출하고 다음 조건 유효성을 검증합니다. 이 조건이 올바르지 않으면 WS-Security 런타임 환경은 SAML 토큰을 전파하지 않으며 전파 요청에 실패합니다.
    • SAML 토큰이 만료되지 않으며 만료 시간은 notOnOrAfter 값의 시간 범위 내에 존재합니다.
    • SAML 토큰의 ConfirmationMethod 설정은 토큰 생성기 구성에 정의된 confirmationMethod 바인딩 옵션과 동일합니다.
    • SAML 토큰의 ValueType 토큰은 토큰 생성기 구성의 ValueType과 일치합니다.

    이 단계를 수행하여 tokenRequest 바인딩 옵션의 올바른 값을 설정합니다. 이 프로시저에서는 웹 서비스 클라이언트 애플리케이션 JaxWSServicesSamples를 배치했으며 SAML Bearer 클라이언트 샘플 바인딩을 첨부했다고 가정합니다.

    1. 애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples > 서비스 클라이언트 정책 세트 및 바인딩 > Saml Bearer Client sample > WS-Security > 인증 및 보호를 클릭하십시오.
    2. 인증 토큰 테이블에서 gen_saml11token을 클릭하십시오.
    3. 콜백 핸들러를 클릭하십시오.
    4. 사용자 정의 특성 tokenRequest를 추가하고 특성 값을 propagation으로 설정하십시오.
  2. 자체 발행 SAML 토큰을 사용하여 SAML 토큰 ID 및 속성을 전파하려면 bindings.xml 파일에서 아웃바운드 tokenGenerator를 수정하십시오. 이 방법은 WS-Security를 사용하여 원래 SAML 토큰의 원래 SAML 속성, NameIdentifier 또는 NameID, 인증 방법을 기타 서버로 전송합니다. 제목에 SAML 토큰이 없으면 서버는 NameIdentifier 또는 NameID로 저장된 WSPrincipal을 사용하여 자체 발행된 SAML 토큰을 작성합니다. 이 전파 방법은 기본 시스템 구현입니다. 이 방법에서 바인딩 옵션은 설정되지 않습니다.
    다음 제한사항은 이 전파 방법을 사용할 때 bindings.xml 파일에 적용됩니다.
    • bindings.xml 파일에서 tokenRequest 바인딩 옵션을 설정하지 마십시오.
    • bindings.xml 파일에서 stsURI 바인딩 옵션을 설정하거나 옵션을 이 www.websphere.ibm.com/SAML/Issuer/Self 값으로 설정하지 마십시오.
  3. WSPrincipal을 전파하려면 단계에 나온 대로, bindings.xml 파일을 수정하십시오. tokenRequest 세트 옵션을 bindings.xml 파일에서 issueByPrincipal 값으로 설정하십시오. 이 방법을 사용하면, 자체 발행된 SAML 토큰은 주제에 SAML 토큰이 있는 경우에도 항상 WSPrincipal에 기반합니다. 새 SAML 토큰은 WSPrincipal 사용자 이름을 NameId 또는 NameIdentifier로 포함합니다. 토큰은 WSPrincipal 또는 WSCredential 오브젝트에서 기타 속성을 포함하지 않습니다.
    다음 제한사항은 이 전파 방법을 사용할 때 bindings.xml 파일에 적용됩니다.
    • bindings.xml 파일에서 stsURI 바인딩 옵션을 설정하거나 옵션을 www.websphere.ibm.com/SAML/Issuer/Self 값으로 설정하지 마십시오.

    이 단계를 수행하여 tokenRequest 바인딩 옵션의 올바른 값을 설정합니다. 이 프로시저에서는 웹 서비스 클라이언트 애플리케이션 JaxWSServicesSamples를 배치했으며 SAML Bearer 클라이언트 샘플 바인딩을 첨부했다고 가정합니다.

    1. 애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples > 서비스 클라이언트 정책 세트 및 바인딩 > Saml Bearer Client sample > WS-Security > 인증 및 보호를 클릭하십시오.
    2. 인증 토큰 테이블에서 gen_saml11token을 클릭하십시오.
    3. 콜백 핸들러를 클릭하십시오.
    4. 사용자 정의 특성 tokenRequest를 추가하고 특성 값을 issueByPrincipal로 설정하십시오.
  4. RequestContext에서 SAMLToken을 삽입하여 기존 SAML 토큰을 전파하려면 다음 단계를 완료하십시오. 이 방법을 사용하여 작성한 SAML 토큰을 WS-Security를 통해 다운스트림 서버로 전송합니다. WS-Security 런타임이 RequestContext에서 SAML 토큰을 감지하면 전파가 자동으로 트리거됩니다. 기존의 토큰은 기존의 기타 바인딩 옵션을 대체합니다. 이 전파 방법을 사용하려면 단계에 나온 대로 com.ibm.wsspi.wssecurity.core.token.config.WSSConstants.SAMLTOKEN_IN_MESSAGECONTEXT를 키로 지정하여 RequestContext에서 기존 SAML 토큰을 저장하십시오.
    1. SAMLToken samlToken = <token type> 메소드를 사용하여 SAML 토큰을 생성하십시오. 예를 들어, 다음과 같습니다.
      SAMLToken samlToken = samlFactory.newSAMLToken(cred, reqData, samlIssuerCfg);
    2. RequestContext에 SAMLToken을 저장하십시오. 예를 들어, 다음과 같습니다.
      Map requestContext = ((BindingProvider)port).getRequestContext();
         requestContext.put("com.ibm.wsspi.wssecurity.core.token.config.WSSConstants.SAMLTOKEN_IN_MESSAGECONTEXT", samlToken );
    이 전파 옵션은 다른 전파 방법과 공존 가능하며, 다른 방법을 대체할 수 있습니다. RequestContext에서 SAML 토큰이 만료되거나 토큰 만료 시간이 현재 시간 + 캐시 쿠션 미만이면 WS-Security 런타임 환경은 SAML 토큰을 무시하고 bindings.xml 파일에 구성된 세 가지 기타 전파 방법 중 한 방법을 사용합니다. 기타 세 가지 전파 방법 사용을 방지하려면 TokenGenerator 구성에서 콜백 핸들러 아래 사용자 정의 특성에 다음 바인딩 옵션을 추가하십시오. failOverToTokenRequest = false.
  5. com.ibm.websphere.security.cred.WSCredential 오브젝트에 포함된 사용자의 그룹 멤버십, 고유 보안 이름, 영역 이름을 전파하려면 단계에 나온 대로 bindings.xml 파일을 수정하십시오. bindings.xml 파일에서 tokenRequest 바인딩 옵션을 issueByWSCredential 값으로 설정하십시오. 이 방법을 사용하면, 자체 발행된 SAML 토큰은 주제에 SAML 토큰이 있는 경우에도 항상 WSCredential에 기반합니다.

    새 SAML 1.1 토큰은 다음 어설션을 포함합니다.

    • NameIdentifier 요소는 NameQualifier 요소가 WSCredential의 영역 이름으로 설정된 WSCredentialSecurityName 값을 포함합니다. SecurityNameWSCredential.getSecurityName() 메소드를 호출하여 얻습니다. 영역 이름은 WSCredential.getRealmName() 메소드를 호출하여 얻습니다.
    • 모든 속성에서는 AttributeNamespace의 값이 com.ibm.websphere.security.cred.WSCredential로 설정됩니다.
    • GroupIds 속성은 사용자가 속하는 모든 그룹 이름을 포함합니다. 그룹 이름은 WSCredential.getGroupIds() 메소드를 호출하여 얻습니다.
    • UniqueSecurityName 속성은 고유 보안 이름을 포함하며, WSCredential.getUniqueSecurityName() 메소드를 호출하여 얻습니다.
    • 선택적으로 콜백 핸들러에서 includeRealmName=true 사용자 정의 특성을 추가하여 WSCredential에서 영역 이름을 보장할 수 있습니다.

    새 SAML 2.0 토큰은 다음 어설션을 포함합니다.

    • NameID 요소는 NameQualifier 요소가 WSCredential의 영역 이름으로 설정된 WSCredentialSecurityName 값을 포함합니다. SecurityNameWSCredential.getSecurityName() 메소드를 호출하여 얻습니다. 영역 이름은 WSCredential.getRealmName() 메소드를 호출하여 얻습니다.
    • 모든 속성에서는 NameFormat의 값이 com.ibm.websphere.security.cred.WSCredential로 설정됩니다.
    • GroupIds 속성은 사용자가 속하는 모든 그룹 이름을 포함합니다. 그룹 이름은 WSCredential.getGroupIds() 메소드를 호출하여 얻습니다.
    • UniqueSecurityName 속성은 고유 보안 이름을 포함하며, WSCredential.getUniqueSecurityName() 메소드를 호출하여 얻습니다.
    • 선택적으로 콜백 핸들러에서 includeRealmName=true 사용자 정의 특성을 추가하여 WSCredential에서 영역 이름을 보장할 수 있습니다.
    다음 제한사항은 전파 방법을 사용할 때 bindings.xml 파일에 적용됩니다.
    • bindings.xml 파일에 stsURI 바인딩 옵션을 설정하지 마십시오.
    이 단계를 수행하여 tokenRequest 바인딩 옵션의 올바른 값을 설정합니다. 이 프로시저에서는 웹 서비스 클라이언트 애플리케이션 JaxWSServicesSamples를 배치했으며 Saml Bearer Client sample 바인딩을 첨부했다고 가정합니다.
    1. 애플리케이션 > 애플리케이션 유형 > WebSphere 엔터프라이즈 애플리케이션 > JaxWSServicesSamples > 서비스 클라이언트 정책 세트 및 바인딩 > Saml Bearer Client sample > WS-Security > 인증 및 보호를 클릭하십시오.
    2. 인증 토큰 테이블에서 gen_saml11token을 클릭하십시오.
    3. 콜백 핸들러를 클릭하십시오.
    4. tokenRequest 사용자 정의 특성을 추가하고 특성 값을 issueByWSCredential로 설정하십시오.
    다음 예제는 WSCredential에 기반하여 자체 발행된 SAML 1.1 어설션에서 NameIdentifierAttribute문을 보여줍니다.
    <saml:AttributeStatement>
        <saml:Subject>
            <saml:NameIdentifier NameQualifier="ldap.acme.com:9080">uid=alice,dc=acme,dc=com</saml:NameIdentifier>
            <saml:SubjectConfirmation>
                <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</saml:ConfirmationMethod>
            </saml:SubjectConfirmation>
        </saml:Subject>
        <saml:Attribute AttributeName="UniqueSecurityName" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
            <saml:AttributeValue>uid=alice,dc=acme,dc=com</saml:AttributeValue>
        </saml:Attribute>
        <saml:Attribute AttributeName="GroupIds" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
            <saml:AttributeValue>cn=development,dc=acme,dc=com</saml:AttributeValue>
            <saml:AttributeValue>cn=deployment,dc=acme,dc=com</saml:AttributeValue>
            <saml:AttributeValue>cn=test,dc=acme,dc=com</saml:AttributeValue>
        </saml:Attribute>
    </saml:AttributeStatement>
    다음 예제는 WSCredential에 기반하여 자체 발행된 SAML 2.0 어설션에서 NameIDAttribute문을 보여줍니다.
    <saml2:AttributeStatement>
        <saml2:Attribute Name="UniqueSecurityName"
               NameFormat="com.ibm.websphere.security.cred.WSCredential">
            <saml2:AttributeValue>uid=alice,dc=acme,dc=com</saml2:AttributeValue>
        <saml2:Attribute>
        <saml2:Attribute AttributeName="GroupIds"
               NameFormat="com.ibm.websphere.security.cred.WSCredential">
            <saml2:AttributeValue>cn=development,dc=acme,dc=com</saml2:AttributeValue>
            <saml2:AttributeValue>cn=deployment,dc=acme,dc=com</saml2:AttributeValue>
            <saml2:AttributeValue>cn=test,dc=acme,dc=com</saml2:AttributeValue>
        </saml2:Attribute>
    </saml2:AttributeStatement>
    <saml2:NameID NameQualifier="ldap.acme.com:9060">alice</saml2:NameID>

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_propagatesamltoken
파일 이름:twbs_propagatesamltoken.html