메시지 확실성을 보호하기 위해 이용자 토큰 유효성 검증

토큰 이용자 정보는 이용자 측에서 보안 토큰을 통합하고 유효성 검증하기 위해 사용됩니다. 사용자 이름 토큰, X509 토큰 및 LTPA 토큰은 기본적으로 메시지 확실성을 위해 사용됩니다.

시작하기 전에

웹 서비스 보안 런타임의 토큰 처리 및 플러그 가능 토큰 아키텍처는 동일한 보안 토큰 인터페이스 및 WSS API(Web Services Security API)의 JAAS(Java™ Authentication and Authorization Service) 로그인 모듈을 다시 사용합니다. 토큰 작성 및 유효성 검증의 동일한 구현은 WSS API 및 웹 서비스 보안 런타임의 WSS SPI 둘 다에서 사용할 수 있습니다.

제한사항: com.ibm.wsspi.wssecurity.token.TokenConsumingComponent 인터페이스는 JAX-WS 웹 서비스에서 사용되지 않습니다. JAX-RPC 웹 서비스를 사용하는 경우 이 인터페이스는 계속 유효합니다.

현재 OASIS 웹 서비스 보안 드래프트 스펙에서 정의된 KeyName 정책 어설션이 없기 때문에 키 이름 (KeyName) 요소는 지원되지 않음에 유의하십시오.

이 태스크 정보

JAAS 콜백 핸들러(CallbackHandler) 및 JAAS 로그인 모듈(LoginModule)은 생성기 측에서 보안 토큰을 작성하고 이용자 측에서 보안 토큰을 유효성 검증(인증)하는 것을 담당합니다.

예를 들어, 생성기 측에서 사용자 이름 토큰은 JAAS LoginModule 및 인증 데이터를 전달하기 위한 JAAS CallbackHandler를 사용하여 작성됩니다. JAAS LoginModule은 Username SecurityToken 오브젝트를 작성하고 이를 웹 서비스 보안 런타임에 전달합니다.

그런 다음 이용자 측에서 Username 토큰 XML 형식이 유효성 검증 또는 인증을 위해 JAAS LoginModule에 전달되고 JAAS CallbackHandler는 웹 서비스 보안 런타임에서 LoginModule로 인증 데이터를 전달하는 데 사용됩니다. 토큰이 인증된 후에 Username SecurityToken 오브젝트가 작성되고 웹 서비스 보안 런타임에 전달됩니다.

참고: WebSphere® Application Server는 WebSphere Application Server 기본 로그인 모듈 구현을 포함하는 스택 가능한 로그인 모듈(WebSphere Application Server 로그인 모듈 구현 앞 뒤에 로그인 모듈을 추가함을 의미함)을 지원하지 않습니다. 로그인 모듈 구현을 스택하려면 기본 구현이 없으므로 필수 로그인 모듈을 개발해야 합니다.
WebSphere Application Server가 제공하는 com.ibm.websphere.wssecurity.wssapi.token 패키지에는 다음 클래스에 대한 지원이 포함됩니다.
  • 보안 토큰(SecurityTokenImpl)
  • 2진 보안 토큰(BinarySecurityTokenImpl)
또한 WebSphere Application Server는 다음과 같이 보안 토큰에 대해 사전 구성된 하위 인터페이스를 제공합니다.
  • 파생 키 토큰
  • 보안 컨텍스트 토큰(SCT)
  • Username 토큰
  • LTPA 토큰 전파
  • LTPA 토큰
  • X509PKCS7 토큰
  • X509PKIPath 토큰
  • X509v3 토큰
  • Kerberos v5 토큰

사용자 이름 토큰, X.509 토큰 및 LTPA 토큰은 기본적으로 메시지 확실성을 위해 사용됩니다. 파생된 키 토큰 및 X.509 토큰은 기본적으로 서명 및 암호화에 사용됩니다.

WSS API 및 WSS SPI는 클라이언트에서만 지원됩니다. 이용자 측에서 보안 토큰 유형을 지정하기 위해 관리 콘솔을 사용하여 정책 세트를 구성할 수도 있습니다. WSS API 또는 일치하는 생성기 보안 토큰의 정책 세트를 사용할 수도 있습니다.

기본 로그인 모듈 및 콜백 구현은 쌍, 즉 생성기 및 이용자 파트로 사용하도록 디자인되어 있습니다. 기본 구현을 사용하려면 적합한 생성기 및 이용자 보안 토큰을 쌍으로 선택하십시오. 예를 들어, X.509 토큰이 필요한 경우에는 토큰 생성기에서 system.wss.generate.x509를 선택하고 토큰 이용자에서 system.wss.consume.x509를 선택하십시오.

이용자 측 보안 토큰을 구성하려면 WSS API에서 미리 구성된 적합한 토큰 이용자 인터페이스를 사용하여 다음 토큰 구성 프로세스 단계를 완료하십시오.

프로시저

  1. wssFactory 인스턴스를 생성하십시오.
  2. wssConsumingContext 인스턴스를 생성하십시오.

    WSSConsumingContext 인터페이스는 웹 서비스 보안(WS-Security)을 이용하기 위해 검증, 복호화, 보안 토큰 및 시간소인과 같은 컴포넌트를 저장합니다. validate() 메소드가 호출되면 이러한 모든 컴포넌트가 유효성 검증됩니다.

  3. WSSVerification 및 WSSDecryption 오브젝트와 같은 이용자 측 컴포넌트를 작성하십시오.
  4. JAAS 로그인 구성의 이름을 지정하여 JAAS 구성을 지정하십시오. JAAS(Java Authentication and Authorization Service) 구성은 JAAS 구성의 이름을 지정합니다. JAAS 구성은 이용자 측에서 토큰의 로그인 방법을 지정합니다. 사전정의된 시스템 또는 애플리케이션 로그인 구성을 제거하지 마십시오. 그러나 이 구성에서는 모듈 클래스 이름을 추가하고 WebSphere Application Server에서 각 모듈을 로드하는 순서를 지정할 수 있습니다.
  5. 토큰 이용자 클래스 이름을 지정하십시오. 토큰 이용자 클래스 이름은 SecurityToken을 유효성 검증하기 위한 필수 정보를 지정합니다. 사용자 이름 토큰, X.509 토큰 및 LTPA 토큰은 기본적으로 메시지 확실성을 위해 사용됩니다.
  6. 콜백 핸들러 클래스 이름을 지정하여 콜백 핸들러의 설정을 지정하고 콜백 핸들러 키도 지정합니다. 이 클래스 이름은 보안 토큰 프레임워크에 대한 플러그인용으로 사용되는 콜백 핸들러 구현 클래스의 이름입니다.
    WebSphere Application Server는 이용자 측에 대해 다음 기본 콜백 핸들러 구현을 제공합니다.
    com.ibm.websphere.wssecurity.callbackhandler.PropertyCallback
    이 클래스는 웹 서비스 보안(WS-Security) 구성 XMI 파일의 요소에서 이름-값 쌍을 처리하기 위한 콜백입니다.
    ccom.ibm.websphere.wssecurity.callbackhandler.UNTConsumeCallbackHandler
    이 클래스는 이용자 측의 사용자 이름 토큰에 대한 콜백 핸들러입니다. 이 인스턴스는 사용자 이름 토큰을 유효성 검증하기 위한 WSSConsumingContext 오브젝트를 설정하는 데 사용됩니다. Java EE(Java Platform, Enterprise Edition) 애플리케이션 클라이언트에 대해서만 이 구현을 사용합니다.
    com.ibm.websphere.wssecurity.callbackhandler.X509ConsumeCallbackHandler
    이 클래스는 SOAP 메시지 내 웹 서비스 보안 헤더에 이용자 측 2진 보안 토큰으로 삽입되는 X.509 인증서를 유효성 검증하는 데 사용되는 콜백 핸들러입니다. 이 인스턴스는 X.509 2진 보안 토큰의 유효성을 검증하기 위해 WSSVerification 및 WSSDecryption 오브젝트를 생성하고, 오브젝트를 WSSConsumingContext 오브젝트로 설정하는 데 사용됩니다. 키 저장소 및 키 정의는 이 콜백 핸들러에 필수입니다. 이 구현을 사용하는 경우, 키 저장소 비밀번호, 경로 및 유형은 생성기 측에서 제공해야 합니다.
    com.ibm.websphere.wssecurity.callbackhandler.LTPAConsumeCallbackHandler
    이 클래스는 이용자 측의 LTPA(Lightweight Third Party Authentication) 토큰에 대한 콜백 핸들러입니다. 이 인스턴스는 LTPA 토큰을 유효성 검증하기 위해 WSSVerification 및 WSSDecryption 오브젝트를 생성하는 데 사용됩니다.

    이 콜백 핸들러는 SOAP 메시지 내 웹 서비스 보안 헤더에 2진 보안 토큰으로 삽입되는 LTPA 보안 토큰을 유효성 검증하는 데 사용됩니다. 그러나, 사용자 이름과 비밀번호가 지정되어 있는 경우, WebSphere Application Server는 LTPA 보안 토큰을 실행 도구 주제(Run As Subject)에서 얻지 않고 사용자 이름과 비밀번호를 인증하여 얻습니다. 웹 서비스가 애플리케이션 서버에서 클라이언트의 역할을 하는 경우에만 이 콜백 핸들러를 사용합니다. 이 콜백 핸들러는 Java EE 애플리케이션 클라이언트에서 사용하지 않는 것이 좋습니다. 이 구현을 사용하는 경우 기본 인증 사용자 ID 및 비밀번호는 생성기 측에서 제공해야 합니다.

    com.ibm.websphere.wssecurity.callbackhandler.KRBTokenConsumeCallbackHandler
    이 클래스는 이용자 측 Kerberos v5 토큰에 대한 콜백 핸들러입니다. 이 인스턴스는 2진 보안 토큰으로 Kerberos v5 AP-REQ를 이용하기 위해 WSSConsumingContext 오브젝트를 설정하는 데 사용됩니다. 이 인스턴스는 SOAP 메시지 검증 및 복호화에서 Kerberos 세션 키 또는 파생 키를 사용하기 위해 WSSVerification 및 WSSDecryption 오브젝트를 생성하는 데에도 사용됩니다.
  7. X.509 토큰이 지정되는 경우 추가 토큰 정보도 지정됩니다.
    표 1. X.509 토큰에 대한 정보. X.509 토큰을 사용하여 메시지를 인증하십시오.
    토큰 정보 설명
    keyStoreRef 키 위치 지정자에 사용되는 키 저장소의 참조 이름입니다.
    keyStorePath 필요한 경우 키 저장소를 로드할 키 저장소 파일 경로입니다. 이 변수가 시스템의 WebSphere Application Server 경로로 확장되는 경우 경로 이름에 ${USER_INSTALL_ROOT}를 사용하는 것이 좋습니다. 이 경로는 X.509 토큰 콜백 핸들러 구현을 사용할 때 필수입니다.
    keyStorePassword 키 저장소의 무결성을 확인하는 데 사용되는 비밀번호 또는 키 저장소를 잠금 해제하고 키 저장소 파일에 액세스하는 데 사용되는 키 저장소 비밀번호입니다. 키 저장소 및 그 구성은 WebSphere Application Server가 제공하는 기본 콜백 핸들러 구현 중 일부에 사용됩니다.
    keyStoreType 키 위치 지정자에 사용되는 키 저장소의 키 저장소 유형입니다. 이 선택사항은 키 저장소 파일이 사용하는 형식을 표시합니다. 다음 값 중에서 선택할 수 있습니다.
    JKS
    키 저장소가 JKS(Java Keystore) 형식을 사용하는 경우 이 옵션을 사용합니다.
    JCEKS
    Java Cryptography Extension이 SDK(Software Development Kit)에 구성된 경우 이 옵션을 사용합니다. 기본 IBM® JCE가 WebSphere Application Server에 구성되어 있습니다. 이 옵션은 삼중 DES 암호화를 사용하여 저장된 개인 키에 대해 더 강력한 보호를 제공합니다.
    JCERACFKS
    인증서가 SAF 키 링에 저장된 경우 JCERACFKS를 사용합니다(z/OS® 전용).
    PKCS11KS (PKCS11)
    사용자의 키 저장소가 PKCS#11 파일 형식을 사용하면 이 형식을 사용하십시오. 이 형식을 사용하는 키 저장소는 보호를 위해 암호화 하드웨어에서 RSA 키를 포함하거나 암호화 하드웨어를 사용하는 암호화 키를 포함할 수 있습니다.
    PKCS12KS (PKCS12)
    사용자의 키 저장소가 PKCS#12 파일 형식을 사용하면 이 옵션을 사용하십시오.
    별명 키 별명 이름입니다. 키 별명은 키 위치 지정자가 키 저장소 파일에서 키를 찾는 데 사용됩니다.
    keyPassword 키를 복구하는 데 사용되는 키 비밀번호입니다. 이 비밀번호는 키 저장소 파일에서 키 오브젝트에 액세스하는 데 필요합니다.
    keyName 키의 이름입니다. 디지털 서명의 경우 메시지에 디지털 서명하는 데 사용되는 키를 판별하기 위해 요청 생성기 또는 응답 이용자 서명 정보에서 사용됩니다. 암호화의 경우 키 이름은 암호화에 사용된 키를 판별하기 위해 사용됩니다. 키 이름은 완전한 식별 이름(DN)이어야 합니다. 예를 들면, CN=Bob,O=IBM,C=US입니다.
    trustAnchorPath 트러스트 앵커를 로드할 파일 경로입니다.
    trustAnchorType 트러스트 앵커의 유형입니다.
    trustAnchorPassword 트러스트 앵커의 무결성을 확인하는 데 사용되는 비밀번호 또는 키 저장소의 잠금을 해제하는 데 사용되는 비밀번호입니다.
    certStores 인증서 저장소의 목록입니다. 콜렉션 인증서 저장소는 신뢰할 수 없는 중간 인증서 목록 및 인증서 폐기 목록을 포함합니다. 콜렉션 인증서 저장소는 수신 X.509 형식 보안 토큰의 인증서 경로 유효성을 검증하는 데 사용됩니다.
    provider 보안 제공자입니다.

    X.509 토큰에 대해 다음을 지정할 수 있습니다.

    1. 키 저장소가 없습니다.
    2. 트러스트 앵커를 포함합니다. 트러스트 앵커는 신뢰 루트 인증서가 들어 있는 키 저장소 구성의 목록을 지정합니다. 이 구성은 수신 X.509 형식 보안 토큰의 인증서 경로 유효성을 검증하는 데 사용됩니다. 예를 들어, 트러스트 앵커 또는 신뢰 인증서의 인증서 저장소를 선택할 때 인증서 경로를 설정하기 전에 트러스트 앵커 및 인증서 저장소를 구성해야 합니다.
    3. 키 위치 지정자에 사용되는 키 저장소가 있습니다.

      예를 들면, 먼저 키 도구 유틸리티를 사용하여 키 저장소 파일을 작성해야 합니다. 키 저장소는 X.509 인증서를 검색하는데 사용됩니다. 이 항목은 키 저장소 파일에 액세스하는 데 사용되는 비밀번호를 지정합니다. 트러스트 앵커가 있는 키 저장소 오브젝트는 인증서 체인의 신뢰성 유효성을 검증하기 위해 CertPath API에서 사용하는 신뢰할 수 있는 루트 인증서를 포함합니다. 트러스트 앵커 및 콜렉션 인증서 저장소의 이름은 토큰 이용자 아래 인증서 경로에 작성됩니다.

    4. 키 위치 지정자 및 트러스트 앵커에 사용되는 키 저장소가 있습니다.
    5. 키-값 쌍을 포함하는 맵이 있습니다. 예를 들어, 값 유형 이름 및 값 유형 URI(Uniform Resource Identifier)를 지정할 수도 있습니다. 값 유형은 이용자 토큰에 대한 값 유형의 네임스페이스 URI를 지정하고 이 클래스의 토큰 유형을 나타냅니다.
      ValueType: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3
      X.509 인증 토큰을 지정합니다.
      ValueType: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509PKIPathv1
      공개 키 인프라(PKI) 경로에서 X.509 인증서를 지정합니다. 이 콜백 핸들러는 PkiPath 형식으로 인코딩된 X.509 인증서를 작성하는데 사용됩니다. 인증서는 2진 보안 토큰으로써 SOAP 메시지 내 웹 서비스 보안 헤더에 삽입됩니다. 키 저장소는 이 콜백 핸들러에 필요합니다. CRL은 콜백 핸들러에서 지원되지 않습니다. 그러므로, 콜렉션 인증서 저장소가 필요하거나 사용되지 않습니다. 이 구현을 사용하는 경우 이 패널에서 키 저장소 비밀번호, 경로, 유형을 제공해야 합니다.
      ValueType: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#PKCS7
      X.509 인증서 목록 및 인증 취소 목록을 PKCS#7 형식으로 지정합니다. 이 콜백 핸들러는 PKCS#7 형식으로 인코딩된 X.509 인증서를 작성하는 데 사용됩니다. 인증서는 2진 보안 토큰으로써 SOAP 메시지의 웹 서비스 보안 헤더에 삽입됩니다. 키 저장소는 이 콜백 핸들러에 필요합니다. 콜렉션 인증서 저장소에서 인증서 폐기 목록(CRL)을 지정할 수 있습니다. CRL은 PKCS#7 형식으로 X.509 인증서와 함께 인코딩됩니다. 이 구현을 사용하는 경우 키 저장소 비밀번호, 경로 및 유형을 제공해야 합니다.

      일부 토큰의 경우 WebSphere Application Server는 값 유형에 사전 정의된 로컬 이름을 제공합니다. 다음 로컬 이름을 지정할 때 값 유형 URI는 지정하지 않아도 됩니다.

      ValueType: http://www.ibm.com/websphere/appserver/tokentype/5.0.2
      LTPA 토큰의 경우 값 유형 로컬 이름에 LTPA를 사용할 수 있습니다. 이 로컬 이름을 사용하면 값 유형 URI(Uniform Resource Identifier)에 http://www.ibm.com/websphere/appserver/tokentype/5.0.2가 지정됩니다.
      ValueType: http://www.ibm.com/websphere/appserver/tokentype/5.0.2
      LTPA 토큰 전파의 경우, 값 유형 로컬 이름에 LTPA_PROPAGATION을 사용할 수 있습니다. 이 로컬 이름을 사용하면 값 유형 URI(Uniform Resource Identifier)에 http://www.ibm.com/websphere/appserver/tokentype이 지정됩니다.
  8. 사용자 이름 토큰이 토큰 이용자 클래스 이름으로 지정된 경우에는 다음 토큰 정보를 지정할 수 있습니다.
    1. 난스(nonce)를 지정할지 여부입니다.

      이 옵션은 토큰 이용자에 대해 난스(Nonce)가 포함되는지 여부를 표시합니다. 난스(Nonce)는 사용자 이름 토큰의 반복적 무단 침입을 중지하기 위해 메시지에 임베드되는 암호화 숫자입니다. 난스(Nonce)는 유효성을 검증하는 토큰 유형이 사용자 이름 토큰인 경우에만 유효하며 응답 이용자 바인딩에만 사용 가능합니다.

    2. 시간소인의 키워드를 지정합니다. 이 옵션은 사용자 이름 토큰의 시간소인을 확인할지 여부를 표시합니다. 시간소인은 통합된 토큰 유형이 사용자 이름 토큰인 경우에만 유효합니다.
    3. 키-값 쌍을 포함하는 맵을 지정합니다. 예를 들어, 값 유형 이름 및 값 유형 URI(Uniform Resource Identifier)를 지정할 수도 있습니다. 값 유형은 이용자 토큰에 대한 값 유형의 네임스페이스 URI를 지정하고 이 클래스의 토큰 유형을 나타냅니다.
      URI value type: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken
      사용자 이름 토큰을 지정합니다.
  9. 토큰 생성기 클래스 이름으로 Kerberos v5 토큰을 지정하면 다음 토큰 정보를 지정할 수 있습니다.
    토큰 정보 설명 기본값
    tokenValueType Oasis Kerberos 토큰 프로파일 v1.1 스펙에서 정의되는 QName의 Kerberos 토큰 값 유형입니다. http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ
    requireDKT 메시지 보호를 위해 파생 키를 요구하는 부울 값입니다. false
    clabel 파생 키의 클라이언트 레이블입니다. WS-SecureConversation

    기본값을 사용하려면 널을 지정하십시오.

    slabel 파생 키의 서비스 레이블입니다. WS-SecureConversation

    기본값을 사용하려면 널을 지정하십시오.

    keylen 파생 키의 길이입니다. 16

    기본값을 사용하려면 0을 지정하십시오.

    supportTokenRequireSHA1 Kerberos 토큰이 지원되는 토큰으로 사용될 때 후속 요청 메시지에 사용되는 SHA1 키를 요구하는 부울 값입니다. false

    SHA1 키는 지원되는 Kerberos 토큰이 보호되는 경우에만 이용됩니다. true로 설정되면 SHA1 키를 항상 이용합니다.

    decComponent WSSDecryption의 인스턴스입니다. 복호화 또는 검증 컴포넌트에 대해 처음 초기화하려면 decComponent 및 verComponent를 널로 설정하십시오. 그런 다음 두 번째 컴포넌트의 콜백 핸들러 생성자에서만 초기화된 컴포넌트를 사용하십시오.
    verComponent WSSVerfication의 인스턴스입니다. 복호화 또는 검증 컴포넌트에 대해 처음 초기화하려면 decComponent 및 verComponent를 널로 설정하십시오. 그런 다음 두 번째 컴포넌트의 콜백 핸들러 생성자에서만 초기화된 컴포넌트를 사용하십시오.
    추가 토큰 값 유형이 OASIS Kerberos 토큰 프로파일 v1.1 스펙에서 정의됩니다. 로컬 이름으로 토큰 값 유형을 지정하십시오. Kerberos v5 토큰에 대해서는 값 유형 URI를 지정하지 않아도 됩니다.
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ1510
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ1510
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ4120
    • http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ4120
  10. 메시지 보호를 위해 보안 대화를 사용하는 경우 다음 정보를 지정해야 합니다.
    Information 설명
    EncryptionAlgorithm 이 정보는 키 크기를 판별합니다.
    cLabel 파생 키를 작성할 때 사용되는 클라이언트 레이블입니다.
    sLabel 파생 키를 작성할 때 사용되는 서버 레이블입니다.
  11. 컴포넌트를 wssConsumingContext 오브젝트로 설정하십시오.
  12. wssConsumingContext.process() 메소드를 호출하십시오.

결과

WSS API를 사용하여 토큰 이용자를 구성했습니다.

다음에 수행할 작업

아직 완료하지 않은 경우 유사한 토큰 생성기 구성을 지정해야 합니다.

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



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