別のホスト/ポートでセキュリティで保護されていないサービスを呼び出す前に、セキュリティで保護されたWebサービスを公開し、セキュリティヘッダーを削除する、サンプル#200と同様のwso2esbを使用しようとしています。これを行うことができ、バリデーターとパスワードコールバックハンドラーの両方を統合することもできましたが、これが機能しているインストールを別のシステムにコピーしたり、同じように機能するように別のシステムを構成したりすることはできませんでした。
3.0.1、4.0.3、最近では4.5.0のクリーンインストールから始めてこのプロキシを構成しようとしましたが、すべて同様の結果、つまり、資格情報の読み込みまたは最近の「キーの回復」のセキュリティエラーが発生しました。
私たちは独自のCA証明書を持っており、その証明書で署名された証明書を顧客に発行し、顧客は秘密鍵を使用してSOAPを暗号化して署名します。次のセキュリティポリシーファイルを使用しており、コールバックハンドラーを使用する場合と使用しない場合の両方で試しました。
このプロキシサービスでセキュリティを有効にした後、管理GUIに貼り付けることで、このポリシーファイルを参照しようとしました。
1台のサーバーで作業しているバージョン3.0、4.0.3、最近では4.5.0で、さまざまなバージョンのwso2esbのレイアウトの変更に基づいて、必要に応じてserver.jksキーストアの場所を調整してみました。 。
複数のシステムでこれを機能させることができる一連の手順を使用して、セキュリティで保護されたプロキシサービスを構成する際の支援をいただければ幸いです。
前もって感謝します !!
私のプロキシサービスは次のように定義されています。
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="secureService"
statistics="disable" trace="disable" transports="https,http">
<target>
<inSequence>
<header action="remove" name="wsse:Security" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
</inSequence>
<endpoint>
<address statistics="disable" trace="disable" uri="http://192.168.55.201:8083/NotSecureEJB/RemoteService">
<timeout>
<duration>0</duration>
<action>discard</action>
</timeout>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
<retryDelay>0</retryDelay>
</markForSuspension>
<suspendOnFailure>
<initialDuration>0</initialDuration>
<maximumDuration>0</maximumDuration>
<progressionFactor>1.0</progressionFactor>
</suspendOnFailure>
</address>
</endpoint>
<outSequence>
<send/>
</outSequence>
</target>
<policy key="sec_policy"/>
<enableSec/>
ローカルエントリから参照されるセキュリティポリシー:
<loccalEntry key="sec_policy" src="file:repository/resources/security/sec_policy.xml"/>
<wsp:Policy wsu:Id="SigEncr" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wsp:ExactlyOne>
<wsp:All>
<sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:InitiatorToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
<wsp:Policy>
<sp:WssX509V3Token10/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:InitiatorToken>
<sp:RecipientToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssX509V3Token10/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:RecipientToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic128Rsa15/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
<sp:IncludeTimestamp/>
</wsp:Policy>
</sp:AsymmetricBinding>
<sp:SymetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic128/>
</wsp:Policy>
</sp:AlgorithmSuite>
</sp:SymetricBinding>
<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:MustSupportRefKeyIdentifier/>
<sp:MustSupportRefIssuerSerial/>
</wsp:Policy>
</sp:Wss10>
<sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<sp:Timestamp/>
<sp:Body/>
</sp:SignedParts>
<sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<sp:Body/>
</sp:EncryptedParts>
<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
<ramp:user>server</ramp:user>
<ramp:encryptionUser>useReqSigCert</ramp:encryptionUser>
<ramp:passwordCallbackClass>com.testing.PWCallback</ramp:passwordCallbackClass>
<ramp:policyValidatorCbClass>com.testing.CustomPolicyValidator</ramp:policyValidatorCbClass>
<ramp:encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#aes128-cbc</ramp:encryptionSymAlgorithm>
<ramp:encryptionKeyTransportAlgorithm>http://www.w3.org/2001/04/xmlenc#rsa-1_5</ramp:encryptionKeyTransportAlgorithm>
<ramp:signatureCrypto>
<ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
<ramp:property name="org.apache.ws.security.crypto.merlin.file">resources/security/server.jks</ramp:property>
<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">changeme</ramp:property>
</ramp:crypto>
</ramp:signatureCrypto>
<ramp:encryptionCypto>
<ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
<ramp:property name="org.apache.ws.security.crypto.merlin.file">resources/security/server.jks</ramp:property>
<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">changeme</ramp:property>
</ramp:crypto>
</ramp:encryptionCypto>
</ramp:RampartConfig>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>