WSS API를 사용하여 이용자 보안 토큰 구성
WSS API(Web Services Security API)를 사용하여 정책 세트를 사용하지 않고도 SOAP 메시지를 보안 설정할 수 있습니다. 이용자 측에서 토큰을 구성하려면 WSS API(Web Services Security API)를 사용하십시오. 이용자 보안 토큰은 com.ibm.websphere.wssecurity.wssapi.token 인터페이스 패키지의 파트입니다.
시작하기 전에
WebSphere® Application Server의 플러그 가능 토큰 프레임워크가 WSS API의 같은 프레임워크를 다시 사용할 수 있도록 다시 설계되었습니다. 보안 토큰 작성 및 유효성 검증에 대한 동일한 구현은 웹 서비스 보안 런타임 및 WSS API 애플리케이션 코드 둘 다에 사용할 수 있습니다. 다시 설계된 프레임워크는 SPI 프로그래밍 모델을 단순화하고 보안 토큰 유형의 추가를 용이하게 합니다.
WSS API를 사용하거나 관리 콘솔을 통해 토큰을 구성할 수 있습니다. 토큰을 구성하려면 필요에 따라 생성기 토큰 구성과 같은 다음 토큰 태스크를 완료해야 합니다.
이 태스크 정보
생성기 측에서 JAAS CallbackHandler 및 JAAS LoginModule은 보안 토큰 작성을 담당합니다. JAAS LoginModule을 사용하고 인증 데이터를 전달하기 위한 JAAS CallbackHandler를 사용하여 토큰이 작성됩니다. 그러면 JAAS LoginModule이 securityToken 오브젝트(예: UsernameToken)를 작성하고 이 오브젝트를 웹 서비스 보안 런타임에 전달합니다.
이용자 측에서 XML 형식이 유효성 검증 및 인증을 위해 JAAS LoginModule에 전달됩니다. 그러면 JAAS CallbackHandler가 사용되어 웹 서비스 보안 런타임에서 로그인 모듈로 인증 데이터를 전달합니다. 토큰이 인증되고 보안 토큰 오브젝트가 작성된 후에는 토큰이 이 오브젝트를 웹 서비스 보안 런타임에 전달합니다.
이용자 토큰 유효성 검증을 위해 WSS API를 사용할 때 특정 기본 동작이 발생합니다. WSS API를 사용하는 가장 간단한 방법은 기본 JAAS 로그인 모듈 및 콜백 핸들러를 사용하는 것입니다. 예에서는 이를 위해 기본값을 사용하므로 JAAS 로그인 모듈 이름을 지정하지 않습니다.
WSS API를 사용하는 가장 간단한 방법은 기본 동작을 사용하는 것입니다(예제 코드 참조). WSS API는 토큰 유형, 토큰 값 및 JAAS 구성 이름에 기본값을 제공합니다. 기본 토큰 동작은 다음과 같습니다.
이용자 토큰 결정 | 기본 동작 |
---|---|
사용할 토큰 유형 | 토큰 유형은 메시지 서명 및 유효성 검증에 사용할 토큰 유형을 지정합니다. X.509 토큰이 기본 토큰 유형입니다. WebSphere Application Server는 다음 사전 구성된 이용자 토큰 유형을 제공합니다.
필요에 따라 사용자 정의 토큰 유형을 작성할 수도 있습니다. |
지정할 JAAS 로그인 구성 이름 | JAAS 로그인 구성 이름은 사용할 JAAS 로그인 확인 이름을 지정합니다. |
사용할 구성 유형 | JAAS 로그인 모듈 구성 유형입니다. 사전 구성된 이용자 구성 유형만 이용자 토큰 유형에 사용할 수 있습니다. |
SecurityToken 클래스(com.ibm.websphere.wssecurity.wssapi.token.SecurityToken)는 일반 토큰 클래스이며 ID, XML 형식 및 암호 키를 얻기 위한 메소드가 있는 보안 토큰을 표시합니다. SecurityToken 클래스를 사용하면 SOAP 메시지에 서명 및 암호화를 모두 적용할 수 있습니다. 그러나 이 둘 모두를 적용하기 위해서는 서명과 암호화용으로 두 개의 SecurityToken 오브젝트가 있어야 합니다.
다음 토큰 유형은 일반 보안 토큰 클래스의 서브클래스입니다.
토큰 유형 | JAAS 로그인 구성 이름 |
---|---|
보안 컨텍스트 토큰 | system.wss.consume.sct |
파생 키 토큰 | system.wss.consume.dkt |
다음 토큰 유형은 2진 보안 토큰 클래스의 서브클래스입니다.
토큰 유형 | JAAS 로그인 구성 이름 |
---|---|
X.509 토큰 | system.wss.consume.x509 |
X.509 PKI 경로 토큰 | system.wss.consume.pkiPath |
X.509 PKCS7 토큰 | system.wss.consume.pkcs7 |
- 각 JAAS 로그인 토큰 이용자 구성 이름의 경우 각각 토큰 생성기 구성 이름이 있습니다. 예를 들어, X509Token의 경우 각 토큰 생성자 구성 이름은 system.wss.generate.x509입니다.
- LTPA 및 LTPA 전파 토큰은 서버 기반 클라이언트로서 실행 중인 요청자에서만 사용 가능합니다. LTPA 및 LTPA 전파 토큰은 Java™ SE 6 또는 Java EE 애플리케이션 클라이언트에 대해 지원되지 않습니다.
이용자 측에서 SOAP 메시지에 대해 X509Token을 유효성 검증하려면 <X509Token> 요소가 <wsse:Security> 요소에 있어야 합니다.
프로시저
결과
예
다음 샘플 코드는 기본 JAAS 로그인 모듈 및 콜백 핸들러를 사용하는 복호화에 대한 WSS API 예제 코드를 제공합니다.
// Get the message context
Object msgcontext = getMessageContext();
// Generate the WSSFactory instance (step: a)
WSSFactory factory = WSSFactory.getInstance();
// Generate the WSSConsumingContext instance (step: b)
WSSConsumingContext gencont = factory.newWSSConsumingContext();
// Generate the callback handler (step: c)
X509ConsumeCallbackHandler callbackHandler = new
X509ConsumeCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Generate the WSSDecryption instance (step: d)
WSSDecryption dec = factory.newWSSDecryption(X509Token.class,
callbackHandler);
// Add WSSDecryption to WSSConsumingContext (step: e)
concont.add(dec);
// Validate the WS-Security header (step: f)
concont.process(msgcontext);
다음에 수행할 작업
각 토큰 유형에 대해 WSS API 또는 관리 콘솔을 사용하여 토큰을 구성하십시오. 그런 다음 아직 지정하지 않은 경우 유사한 생성기 토큰을 지정하십시오.
생성기 및 이용자 토큰이 모두 구성된 경우에는 WSS API를 사용하여 응답 이용자에서 계속해서 SOAP 메시지 보안 설정을 하거나 관리 콘솔을 사용하여 토큰을 구성하십시오.
생성기 및 이용자 토큰이 모두 구성된 경우에는 필요에 따라 서명을 검증하거나 메시지를 복호화하여 계속해서 SOAP 메시지를 보안 설정하십시오. WSS API 또는 관리 콘솔을 사용하여 SOAP 메시지를 보안 설정할 수 있습니다.