API를 사용하는 자체 서명된 SAML 토큰에 속성 추가

SAML 라이브러리 API는 사용자 정의 속성을 가지고 있는 자체 서명된 SAML 토큰을 작성할 때 사용할 수 있습니다.

이 태스크 정보

자체 서명된 SAML 토큰은 콜백 핸들러 특성을 사용하여 사용자 정의 속성을 추가하는 방법이 없는 경우 SAML 토큰 생성기를 사용하여 작성됩니다. 그러나 SAML 라이브러리 API를 사용하면, SAMLIssuerConfig.properties에 정의된 사용자 정의 SAML 속성 콜백 핸들러는 속성이 작성될 수 있고 자체 서명된 SAML 토큰에 속성을 추가할 수 있습니다. SAML 속성 콜백 핸들러는 newSAMLToken 메소드를 사용하는 애플리케이션에 의해 사용될 수도 있습니다.

SAML 속성 콜백 핸들러는 수정된 SAMLIssuerConfig.properties 파일을 사용하여 애플리케이션 서버에서 작성된 모든 SAML 토큰에 대해 실행됩니다.

프로시저

  1. 사용자 정의 SAML 속성 콜백 핸들러를 개발하십시오. 예를 들어, 다음과 같습니다.
    package test.saml;
    
    import java.io.IOException;
    import javax.security.auth.callback.Callback;
    import javax.security.auth.callback.UnsupportedCallbackException;
    import com.ibm.websphere.wssecurity.callbackhandler.Saml11AttributeCallback;
    import com.ibm.wsspi.wssecurity.saml.data.SAMLAttribute;
    import java.util.ArrayList;
    
    public class AttributeProvider implements javax.security.auth.callback.CallbackHandler {
        @Override
        public void handle(Callback[] callbacks) throws IOException,
        UnsupportedCallbackException {
            if (callbacks == null || callbacks.length == 0) {
                throw new UnsupportedCallbackException(null, "There is no callback.");
            }
            for (int i = 0; i < callbacks.length; i++) {
                if (callbacks[i] instanceof Saml11AttributeCallback) {
                    Saml11AttributeCallback callback = (Saml11AttributeCallback)callbacks[i];
                    SAMLAttribute attr = new SAMLAttribute("newAttribute", new String[]{"newValue"}, null, null, null, null);
                    ArrayList<SAMLAttribute> attrList = callback.getSAMLAttributes();               
                    if (attrList == null) {
                        attrList = new ArrayList<SAMLAttribute>();
                        attrList.add(attr);
                        callback.setSAMLAttributes(attrList);
                            } else {
                        attrList.add(attr);
                    }
                }
            }
        }
    }
  2. AttributeProvider 사용자 정의 특성을 (cellRoot)/sts/SAMLIssuerConfig.properties 파일에 추가하십시오. 예제: AttributeProvider=test.saml.AttributeProvider

결과

제공된 샘플 코드를 사용하여 이 태스크를 완료하면 다음 요소가 모든 SAML 토큰에 추가됩니다.
<saml:AttributeStatement>
    <saml:Attribute Name="newAttribute">
        <saml:AttributeValue>newValue</saml:AttributeValue>
    </saml:Attribute>
</saml:AttributeStatement>

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



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