API를 사용하는 SAML 토큰의 전파

SAML 전파 기능은 다중 서버에서 상호작용하는 애플리케이션에 유용합니다. 전파 기능은 원래 서버 다운스트림에서 다른 서버로 토큰 정보를 통신합니다.

관리 명령 또는 프로그래밍 방식으로 SAML API(Application Programming Interface)를 사용하여, SAML 토큰을 전파할 수 있습니다. 관리 명령을 통한 전파는 SAML 토큰 전파 및 SAML 토큰 전파 메소드 주제에서 논의됩니다.

SAML 토큰의 프로그래밍 방식 전파는 웹 서비스 보안 런타임 환경의 사용과 명시 프로그래밍의 조합을 통해 이루어집니다. 예를 들어, org.apache.axis2.jaxws.BindingProvider 오브젝트에서 SAMLToken을 추출할 수 있습니다. 그러면 토큰은 아웃바운드 호출에 대해 사용됩니다. 이 예에서, WebSphere® 보안은 필요하지 않으므로 프로그래밍 방식으로 SAML 토큰을 전파하면 애플리케이션 레벨에서 SAML 보안을 사용할 수 있게 됩니다. 또한, SAML 토큰은 프로토콜을 사용하여 다운스트림을 통신할 수 있습니다.

첫 번째 요청이 완료된 후 다음 샘플 코드를 사용하여 클라이언트 측에서 SAMLToken을 추출합니다.

디스패치 오브젝트를 작성하고 요청을 호출합니다.
javax.xml.ws.Dispatch dispatch = ...;
dispatch.invoke();
응답 컨텍스트를 얻고 SAMLToken을 추출합니다.
Map<String, Object> responseContext = dispatch.getResponseContext();
 		SAMLToken samlToken = 
       (SAMLToken ) responseContext.get(com.ibm.wsspi.wssecurity.saml.config.SamlConstants.
    SAMLTOKEN_OUT_MESSAGECONTEXT);

다음 샘플 코드는 다음 웹 서비스 요청에 대해 SAMLToken을 재사용하는 방법을 보여 줍니다.

웹 서비스 클라이언트 프로그램은 디스패치 인스턴스를 작성하여 서비스를 호출합니다.
javax.xml.ws.Dispatch dispatch = ...;
그런 다음 웹 서비스 클라이언트는 이 코드를 사용하여 SAMLToken을 웹 서비스 보안 핸들러에 전달합니다.
Map<String, Object> requestContext = dispatch.getRequestContext();
     requestContext.put(com.ibm.wsspi.wssecurity.saml.config.SamlConstants.
     SAMLTOKEN_IN_MESSAGECONTEXT, samlToken);           

웹 서비스 제공업체(수신기)는 다음 코드를 사용하여 수신 웹 서비스 요청에서 SAMLToken을 추출할 수 있습니다.

requestContext에서 SAMLToken을 추출합니다.
Subject subject = (Subject) context.get(com.ibm.wsspi.wssecurity.core.Constants.WSSECURITY_TOKEN_WSSSUBJECT);
SAMLToken samlToken = null;
try {
  samlToken = (SAMLToken) AccessController.doPrivileged(
    new java.security.PrivilegedExceptionAction() {
      public Object run() throws java.lang.Exception {
        final java.util.Iterator authIterator = 
           subject.getPrivateCredentials(SAMLToken.class).iterator();

        if ( authIterator.hasNext() ) {
          final SAMLToken token = (SAMLToken) 
          authIterator.next();
          return token;
        }
        		     return null;
      }
    });
} catch (Exception ex) {
  // Error handling
}
  
SAML 속성을 추출합니다.
List<SAMLAttribute> allAttributes;
allAttributes = ((SAMLToken) samlToken).getSAMLAttributes();

웹 서비스 클라이언트 런타임 환경은 SAML 토큰을 캐시할 수 있습니다. 애플리케이션 내 다음 클라이언트 요청에서, 보안 런타임 환경은 대상과 함께 사용하기 위해 SAML 토큰을 검색합니다.


주제 유형을 표시하는 아이콘 개념 주제



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