WS-Security 알려진 문제 및 임시 해결책
다음 항목은 Apache CXF 개방형 소스 서비스 프레임워크에서 WS-Security 구현의 문제입니다.
- 아무 것도 암호화하지 않으려는 때 SupportingToken이 암호화되고 있는 경우, 모든 암호화 관련 토큰 어설션을 제거하여 문제를 해결해 보십시오. SupportingToken 어설션을 갖는 AsymmetricBinding에 EncryptedParts 및 EncryptedElements가 없는 경우 SupportingToken이 예기치 않게 암호화됩니다.
- 내포된 서명 변환(Enveloped Signature Transformation)이 있는 XML 서명은 작동하지 않습니다. 임시 해결책은 없습니다.
- <wsdl:output> 내의 PolicyReference는 존중되지만, <wsdl:input>의 PolicyReference는 무시됩니다. 입력과 출력 사이에 PolicyReference를 구별해야 할 경우, 임시 해결책은 바인딩 레벨에서 PolicyReference를 첨부한 후 <wsdl:output>에서 PolicyReference를 대체하는 것입니다.
- sp:requireEmbeddedTokenReference 정책 어설션이 지원되지 않습니다.
- org.apache.ws.security.crypto.merlin.truststore.* 특성이 signatureProperties 요소에 존재하고 org.apache.ws.security.crypto.merlin.keystore.* 특성이 server.xml 파일의 wsSecurityProvider 또는 wsSecurityClient 섹션에 있는 encrytpionProperties 요소에 존재하는 경우, encrytpionProperties 요소의 org.apache.ws.security.crypto.merlin.keystore.* 값은 signatureProperties 요소의 org.apache.ws.security.crypto.merlin.truststore.* 특성을 대체합니다. 이 동작은 암호화 키 저장소가 서명 신뢰 저장소에 사용됨을 의미합니다. 임시 해결책은 암호화와 서명 신뢰 저장소 둘 다에 대해 동일한 키 저장소를 사용하는 것입니다. 별도의 키 저장소는 사용할 수 없습니다.
- X509PKIPathv1 및 PKCS#7 토큰 유형은 지원되지 않습니다.
- WS-Security 정책에서, X509Token 어설션 내에 있는 Require* 어설션은 X509 토큰을 생성하는 경우에만 사용됩니다. 이 어설션은 X.509 토큰을 이용할 때 시행되지 않습니다. 이 어설션에는 RequireKeyIdentifierReference, RequireIssuerSerialReference, RequireThumbprintReference가 포함됩니다. (그러나 여기에 한정되지 않습니다.)
- SymmetricBinding 어설션에서, SignatureToken이나 EncryptionToken 어설션 어느 것도 지정할 수 없습니다. SymmetricBinding 어설션에서 사용할 수 있는 지원되는 유일한 어설션은 ProtectionToken 어설션입니다. 지정된 ProtectionToken은 서명 및 암호화 모두에 사용됩니다.
- WS-Security 정책의 ProtectTokens 어설션은 지원되지 않으므로 무시됩니다.
- WS-Security 정책의 KeyValueToken 어설션은 지원되지 않습니다.
- EndorsingEncryptedSupportingTokens 또는 SignedEndorsingEncryptedSupportingTokens 내의 X509Token은 지원되지 않습니다.
- Liberty의 WS-Security는
버전 1.1 스펙을 지원하며, 이는 버전 1.0 스펙의 이전 버전과 호환 가능합니다. 즉, 새 스키마 요소 및 상수가 1.1 네임스페이스와 URI에 대해 정의된 반면,
1.0에 정의된 URI 및 스키마 요소는 변경되지 않고 유지됩니다.
WS-Security 정책의 WS-Security 옵션 및 특성은 wss10 어설션 또는 wss11 어설션으로 정의됩니다. WS-Security 1.1 특성을 지원하도록 정책을 구성해야 하는 경우, 이미 wss10 어설션을 포함하는 wss11 정책 어설션만 구성해야 하고, wss11 및 wss10 정책 어설션 둘 다를 구성하면 안됩니다.
wss10 어설션을 포함하는 wss11 정책 어설션의 예제에는 RequireSignatureConfirmation, MustSupportRefKeyIdentifier, MustSupportRefIssuerSerial이 포함됩니다. (그러나 여기에 한정되지 않습니다.)
- 현재로서는 동일한 서비스에 사용하도록 WS-Security 및 MTOM을 함께 구성할 수 없습니다. MTOM이 사용되고 WS-Security도 구성되면, SOAP 메시지가 제대로 전송되지 않습니다. MTOM을 사용하거나 WS-Security를 구성하도록 선택해야 합니다. MTOM이 필요한 경우, WSDL 파일에서 WS-Security 정책을 제거하여 WS-Security를 사용 불가능하게 해야 합니다.
- Liberty 클라이언트 및 WebSphere® Application Server Traditional 제공자를 사용 중이며 제공자로부터 CWWSS6001E: Key object was not obtained. 응답을 수신하는 경우, WebSphere Application Server Traditional APAR PM88011에 의해 문제가 해결될 수도 있습니다. 이 문제는 특히 본문의 비대칭 디지털 서명과 암호화를 포함하는 구성과 관련됩니다.