WS-Security の既知の問題と回避策
以下の項目は、Apache CXF オープン・ソース・サービス・フレームワークの WS-Security 実装での問題です。
- 何も暗号化する予定がない時に SupportingToken が暗号化されている場合は、この問題を解決するために暗号化関連のすべてのトークン・アサーションを除去してみてください。 SupportingToken アサーションを使用した AsymmetricBinding に EncryptedParts も EncryptedElements もない場合に、 SupportingToken が予期せず暗号化されます。
- エンベロープ署名変換を使用した XML Signature は動作しません。 この問題の回避策はありません。
- <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 ポリシーで、X509Token アサーション内の Require* アサーションは、X509 トークンの生成時にのみ使用されます。 これらは、X509 トークンを取り込む際には適用されません。 これらのアサーションには、 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.0 で定義された URI とスキーマ・エレメントは変更されないままで、
新しいスキーマ・エレメントと定数は 1.1 の名前空間と 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: 鍵オブジェクトが取得されていません」という応答を受け取った場合、WebSphere Application Server traditional APAR PM88011 によって問題が解決される可能性があります。この問題は特に、本体の非対称のデジタル署名と暗号化の両方を含む構成に関連しています。