[英]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.