WS-Security 已知問題和暫行解決方法
下列項目是在 Apache CXF 開放程式碼服務架構中之 WS-Security 實作的問題。
- 如果您的 SupportingToken 有加密,但您不想加密任何東西,請嘗試移除與加密相關的任何記號主張,以解決問題。 如果在含有 SupportingToken 主張的 AsymmetricBinding 中,沒有 EncryptedParts,也沒有 EncryptedElements,就會對 SupportingToken 進行非預期的加密。
- 含有「已封裝簽章轉換」的 XML 簽章無法運作。 沒有暫行解決方法。
- 雖然接受 <wsdl:output> 內的 PolicyReference,但會忽略 <wsdl:input> 內的 PolicyReference。 如果您必須在輸入及輸出之間區分 PolicyReference,暫行解決方法是在連結層次附加 PolicyReference,然後置換 <wsdl:output> 中的 PolicyReference。
- 不支援 sp:requireEmbeddedTokenReference 原則主張。
- 當 server.xml 檔 wsSecurityProvider 或 wsSecurityClient 區段中的 signatureProperties 元素含有 org.apache.ws.security.crypto.merlin.truststore.* 內容,encrytpionProperties 元素含有 org.apache.ws.security.crypto.merlin.keystore.* 內容時,encrytpionProperties 元素中的 org.apache.ws.security.crypto.merlin.keystore.* 值會置換 signatureProperties 元素中的 org.apache.ws.security.crypto.merlin.truststore.* 內容。 這個行為表示您的簽章信任儲存庫會使用您的加密金鑰儲存庫。 暫行解決方法是加密和簽章信任儲存庫兩者都使用相同的金鑰儲存庫;不能使用個別的金鑰儲存庫。
- 不支援 X509PKIPathv1 和 PKCS#7 記號類型。
- 在 WS-Security 原則中,只有在產生 X509 記號時,才使用 X509Token 主張內的 Require* 主張。 當使用 X509 記號時,並不施行它們。 這些主張包括下列各項,且不限於此:RequireKeyIdentifierReference、RequireIssuerSerialReference 和 RequireThumbprintReference。
- 在 SymmetricBinding 主張中,SignatureToken 和 EncryptionToken 兩個主張都不能指定。 ProtectionToken 主張是 SymmetricBinding 主張內唯一可用的受支援主張。 簽章和加密都會使用指定的 ProtectionToken。
- WS-Security 原則中的 ProtectTokens 主張不受支援,系統不會處理它。
- WS-Security 原則中的 KeyValueToken 主張不受支援。
- EndorsingEncryptedSupportingTokens 或 SignedEndorsingEncryptedSupportingTokens 內的 X509Token 不受支援。
- Liberty 中的 WS-Security 支援 1.1 版規格,它相容於含有 1.0 版規格的舊版本。這表示 1.0 中所定義的 URI 和綱目元素維持不變,而 1.1 名稱空間和 URI 定義了新的綱目元素和常數。
wss10 主張或 wss11 主張都定義了 WS-Security 原則中的 WS-Security 選項和內容。 如果您必須配置原則來支援 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 傳統版提供者,且收到提供者的回應:CWWSS6001E: 未取得金鑰物件。,WebSphere Application Server 傳統版 APAR PM88011 也許可以解決這個問題。具體來說,這個問題與同時包含主體的非對稱數位簽章及加密的配置相關。