플러그 가능 토큰 지원
플러그 가능 보안 토큰 지원은 토큰 생성, 토큰 유효성 검증 및 Java™ EE(Java Platform, Enterprise Edition) 권한 부여 엔진이 사용하는 WebSphere® Application Server ID로의 클라이언트 ID 맵핑을 포함한 고객 보안 토큰 유형을 지원하기 위한 플러그인 지점을 제공합니다. 게다가, 플러그 가능 토큰 생성 및 유효성 검증 프레임워크는 웹 서비스 메시지 헤더에 삽입되고 수신자측 유효성 검증에서 유효성 검증되는 XML 기반 토큰을 지원합니다.
WebSphere Application Server 로그인 맵핑 메커니즘을 확장하여 새로운 유형의 인증 토큰을 처리할 수 있습니다. WebSphere Application Server는 메시지의 서버측에서 보안 토큰을 생성하고 메시지의 수신자측에서 보안 토큰을 유효성 검증하기 위한 플러그 가능 프레임워크를 제공합니다. 이 프레임워크는 JAAS(Java Authentication and Authorization Service) API(Application Programming Interface)를 기반으로 합니다.
- 사용자 이름(정의되지 않은 경우에는 문자열이나 널), 암호(정의되지 않은 경우에는 char[] 또는 널) 및 java.util.Map(특성이 정의되지 않은 경우에는 비어 있음)을 사용하는 생성자를 사용하십시오.
- 다음 구현을 처리할 수 있는 handle() 메소드를 사용하십시오.
- javax.security.auth.callback.NameCallback
- javax.security.auth.callback.PasswordCallback
- com.ibm.wsspi.wssecurity.auth.callback.XMLTokenCallback
- com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl
- javax.security.auth.callback.NameCallback 또는 javax.security.auth.callback.PasswordCallback 구현이 데이터로 채워진 다음 <wsse:UsernameToken> 요소가 작성됩니다.
- com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl이 채워지고 com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl 구현에서 <wsse:BinarySecurityToken> 요소가 작성됩니다.
- com.ibm.wsspi.wssecurity.auth.callback.XMLTokenCallback이 채워지고 XMLTokenCallback에서 리턴된 DOM(Document Object Model) 요소를 기반으로 XML 기반 토큰이 작성됩니다.
보안 핸들러를 사용하고 javax.security.auth.callback.CallbackHandler 구현을 사용하지 않고 토큰 바이트를 인코딩하십시오.
javax.security.auth.callback.CallbackHandler 구현을 인스턴스화하는 팩토리인 com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory 인터페이스를 구현할 수 있습니다. 사용자 고유의 구현의 경우에는 javax.security.auth.callback.CallbackHandler 인터페이스를 제공해야 합니다. 웹 서비스 보안 실행 시간은 팩토리 구현 클래스를 인스턴스화하고, setter 메소드를 통해 웹 서비스 메시지 헤더에서 팩토리 클래스로 인증 정보를 전달합니다. 그런 다음 웹 서비스 보안 런타임이 팩토리 구현 클래스의 newCallbackHandler() 메소드를 호출하여 javax.security.auth.CallbackHandler 오브젝트의 인스턴스를 얻습니다. 이 오브젝트가 JAAS 로그인 구성으로 전달됩니다.
public interface com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory {
public void setUsername(String username);
public void setRealm(String realm);
public void setPassword(String password);
public void setHashMap(Map properties);
public void setTokenByte(byte[] token);
public void setXMLToken(Element xmlToken);
public CallbackHandler newCallbackHandler();