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 구성 이름에 기본값을 제공합니다. 기본 토큰 동작은 다음과 같습니다.

표 1. 기본 토큰 동작. 기본적으로 여러 토큰 특성이 구성됩니다.
이용자 토큰 결정 기본 동작
사용할 토큰 유형

토큰 유형은 메시지 서명 및 유효성 검증에 사용할 토큰 유형을 지정합니다. X.509 토큰이 기본 토큰 유형입니다.

WebSphere Application Server는 다음 사전 구성된 이용자 토큰 유형을 제공합니다.

  • 보안 컨텍스트 토큰
  • 파생 키 토큰
  • X509 토큰

필요에 따라 사용자 정의 토큰 유형을 작성할 수도 있습니다.

지정할 JAAS 로그인 구성 이름

JAAS 로그인 구성 이름은 사용할 JAAS 로그인 확인 이름을 지정합니다.

사용할 구성 유형 JAAS 로그인 모듈 구성 유형입니다. 사전 구성된 이용자 구성 유형만 이용자 토큰 유형에 사용할 수 있습니다.

SecurityToken 클래스(com.ibm.websphere.wssecurity.wssapi.token.SecurityToken)는 일반 토큰 클래스이며 ID, XML 형식 및 암호 키를 얻기 위한 메소드가 있는 보안 토큰을 표시합니다. SecurityToken 클래스를 사용하면 SOAP 메시지에 서명 및 암호화를 모두 적용할 수 있습니다. 그러나 이 둘 모두를 적용하기 위해서는 서명과 암호화용으로 두 개의 SecurityToken 오브젝트가 있어야 합니다.

다음 토큰 유형은 일반 보안 토큰 클래스의 서브클래스입니다.

표 2. SecurityToken의 서브클래스. 서브클래스를 사용하여 보안 토큰을 표시합니다.
토큰 유형 JAAS 로그인 구성 이름
보안 컨텍스트 토큰 system.wss.consume.sct
파생 키 토큰 system.wss.consume.dkt

다음 토큰 유형은 2진 보안 토큰 클래스의 서브클래스입니다.

표 3. BinarySecurityToken의 서브클래스. 서브클래스를 사용하여 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> 요소에 있어야 합니다.

프로시저

  1. securityToken 패키지 com.ibm.websphere.wssecurity.wssapi.token을 유효성 검증하려면 먼저 애플리케이션 서버가 설치되어 있는지 확인하십시오.
  2. 기본값을 사용하는 경우, 웹 서비스 보안 토큰 이용자 프로세스를 위한 토큰을 구성합니다. 각 토큰 유형에 대한 프로세스는 다음 토큰 이용자 프로세스와 유사합니다.
    1. WSSFactory.getInstance()를 사용하여 WSS API 구현 인스턴스를 가져옵니다.
    2. WSSFactory 인스턴스로부터 WSSConsumingContext 인스턴스를 작성합니다. WSSConsumingContext는 항상 JAX-WS 클라이언트 애플리케이션에서 호출되어야 함에 유의하십시오.
    3. 보안 토큰의 유효성을 검증하는 데 필요한 정보를 사용하여 JAAS CallbackHandler를 작성하십시오. 매개변수가 필수이거나 선택인 토큰 클래스 정보를 검토하십시오. 예를 들어, X.509 토큰의 경우 다음을 구성할 수 있습니다.
      표 4. X.509 토큰 옵션. 토큰의 동작을 제어하려면 X.509 구성 옵션을 사용하십시오.
      토큰 정보 설명
      keyStoreRef 암호 카드에 저장되는 키 저장소의 참조 이름을 표시합니다. 이 카드가 하드웨어로 설정될 때 지정할 수 있습니다.
      keyStorePath 키 저장소 파일의 경로를 표시합니다. keyStoreRef가 설정된 경우 keyStorePath를 지정할 필요가 없습니다.
      keyStorePassword 키 저장소 파일의 비밀번호를 표시합니다.
      keyStoreType 키 저장소 파일의 유형을 표시합니다.
      별명 키의 별명을 표시합니다.
      keyPassword 키의 비밀번호를 표시합니다.
      keyName 키의 주제 이름을 표시합니다.
    4. 콜백 핸들러를 WSSDecryption, WSSVerification 또는 WSSConsumingContext로 설정하십시오.
    5. 콜백 핸들러가 WSSDecryption 또는 WSSVerification으로 설정되면 둘 중 하나를 WSSConsumingContext에 추가합니다.
    6. WSSConsumingContext.process()를 호출합니다.
  3. 기본값 외의 값을 사용하는 경우, 웹 서비스 보안 토큰 이용자 프로세스를 위한 토큰을 구성합니다. 각 토큰 유형에 대한 프로세스는 다음 토큰 이용자 프로세스와 유사합니다.
    1. 기본 JAAS 로그인 모듈 및 콜백 핸들러를 사용하지 않는 경우에는 사용자 정의 값을 준비하고 사전에 관리 콘솔을 사용하여 JAAS 로그인 구성의 이름을 등록해야 합니다.
    2. WSSFactory.getInstance()를 사용하여 WSS API 구현 인스턴스를 가져옵니다.
    3. WSSFactory 인스턴스로부터 WSSConsumingContext 인스턴스를 작성합니다. WSSConsumingContext는 항상 JAX-WS 클라이언트 애플리케이션에서 호출되어야 함에 유의하십시오.
    4. 보안 토큰의 유효성을 검증하는 데 필요한 정보를 사용하여 콜백 핸들러를 작성합니다. 매개변수가 필수이거나 선택인 토큰 클래스 정보를 검토하십시오. 예를 들어, X.509 토큰의 경우 다음을 구성할 수 있습니다.
      표 5. X.509 토큰 옵션. 토큰의 동작을 제어하려면 X.509 구성 옵션을 사용하십시오.
      토큰 정보 설명
      keyStoreRef 암호 카드에 저장되는 키 저장소의 참조 이름을 표시합니다. 이 카드가 하드웨어로 설정될 때 지정할 수 있습니다.
      keyStorePath 키 저장소 파일의 경로를 표시합니다. keyStoreRef가 설정된 경우 keyStorePath를 지정할 필요가 없습니다.
      keyStorePassword 키 저장소 파일의 비밀번호를 표시합니다.
      keyStoreType 키 저장소 파일의 유형을 표시합니다.
      별명 키의 별명을 표시합니다.
      keyPassword 키의 비밀번호를 표시합니다.
      keyName 키의 주제 이름을 표시합니다.
    5. JAAS 구성 이름 및 콜백 핸들러를 WSSDecryption 또는 WSSVerification 또는 WSSConsumingContext로 설정하십시오.
    6. JAAS 구성 이름 및 콜백 핸들러가 WSSDecryption 또는 WSSVerification으로 설정되면 둘 중 하나를 WSSConsumingContext에 추가합니다.
    7. WSSConsumingContext.process()를 호출합니다.

결과

오류 조건이 있는 경우 WSSException이 제공됩니다. 성공할 경우 WSSConsumingContext.process()가 호출되고 이용자 측의 보안 토큰이 유효성 검증(인증)됩니다.

다음 샘플 코드는 기본 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 메시지를 보안 설정할 수 있습니다.


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



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