2016-12-22 14 views
0

私は、複数のベンダーからのリクエストを受け入れるスプリングベースのWebサービスのX509証明書を使用して、SOAPリクエストのデジタル署名を検証する必要があります。さまざまなクライアントの春のWebサービスでデジタル署名の検証を実装する方法は?

このようなセキュリティを実装するための一般的な戦略は何ですか?発信者の公開鍵に基づいてデジタル署名を検証できるように、ベンダーごとに1つのWebサービスを作成する必要がありますか?理想的には、各ベンダー要求の内容が同じスキーマを持つため、1つのWebサービスしか持たないことを望みます。

答えて

0

SOAPメッセージのデジタル署名は、メッセージのSOAPヘッダーに埋め込まれています。これはメッセージの簡略化されたスキーマです。

<?xml version="1.0" encoding="UTF8"?> 
<SOAP-ENV:Envelope> 
<SOAP-ENV:Header> 
<wsse:Security 
    <wsse:BinarySecurityToken /> 
    <ds:Signature> 
     <ds:SignedInfo> 
     <ds:SignatureValue> 
     <ds:KeyInfo> 
    </ds:Signature> 
</wsse:Security> 
</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

(フル例here参照)署名は、署名に使用されるX509証明書を参照する署名者の身元を知ることができます。

ベンダーごとに異なるWebサービスは必要ありません。 アクセスを許可するには、メッセージの署名に使用するベンダーに証明書の公開部分を要求します。 SOAPメッセージが受信されると、署名者証明書と期待される証明書を比較します。

比較を簡単にするため、serialnumber + issuerを確認することができます

関連する問題