繁体   English   中英

如何在Spring Web Service中为不同客户实施数字签名验证?

[英]How to implement digital signature validation in spring web service for different clients?

我需要使用X509证书来验证SOAP请求的数字签名,该证书用于基于Spring的Web服务,该服务接受来自多个供应商的请求。

实施这种安全性的一般策略是什么? 我是否应该为每个供应商创建一个Web服务,以便我可以基于呼叫者的公钥验证数字签名? 理想情况下,我只想拥有一个Web服务,因为每个供应商请求的内容都具有相同的架构。

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>

签名允许知道引用用于签名的x509证书的签名者的身份。

您不需要为每个供应商提供不同的Web服务。 要允许访问,请向将用于签署消息的供应商请求证书的公共部分。 收到一条肥皂消息时,将签名者证书与期望的证书进行比较。

为了简化比较,您可以检查序列号+发行人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM