API를 사용하여 자체 발행된 SAML 토큰의 NameID 사용자 정의

SAML 라이브러리 API를 사용하여 사용자 정의 NameID가 있는 SAML 토큰을 작성할 수 있습니다.

이 태스크 정보

SAML 토큰 생성기를 사용하여 자체 발행된 SAML 토큰을 작성한 경우 콜백 핸들러 특성을 사용하여 NameID를 사용자 정의하는 방법은 없습니다. 그러나 SAML 라이브러리 API를 사용하면 SAMLIssuerConfig.properties 파일에 정의된 사용자 정의 SAML NameID 콜백 핸들러(자체 발행된 SAML 토큰의 NameID를 사용자 정의할 수 있음)를 작성할 수 있습니다. newSAMLToken 메소드를 사용하는 애플리케이션에서 SAML NameID 콜백 핸들러를 사용할 수도 있습니다.

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

프로시저

  1. 사용자 정의 SAML NameID 콜백 핸들러를 개발하십시오. 예를 들어, 다음과 같습니다.
    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.NameIDCallback;
    import com.ibm.wsspi.wssecurity.saml.data.SAMLNameID;
    
    public class NameIDProvider 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 NameIDCallback) {
                    NameIDCallback callback = (NameIDCallback)callbacks[i];
                    SAMLNameID nameid = new SAMLNameID("newNameID", null, null, null, null);
                    callback.setSAMLNameID(nameid);
                }
            }
        }
    }
  2. NameIDProvider 사용자 정의 특성을 (cellRoot)/sts/SAMLIssuerConfig.properties 파일에 추가하십시오. 예: NameIDProvider =test.saml.NameIDProvider

결과

제공된 샘플 코드를 사용하여 이 태스크를 완료하면 다음 요소가 모든 SAML 토큰에 추가됩니다.
<saml:Subject>
<saml:NameID>newNameID</saml:NameID>
</saml:Subject>

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



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