2016-12-22 7 views
0

Ich habe eine Anforderung zur Validierung der digitalen Signatur der SOAP-Anfrage mit X509-Zertifikaten für einen frühlingsbasierten Webservice, der Anfragen von mehreren Anbietern akzeptiert.Wie implementiert man die Validierung digitaler Signaturen im Frühling Web-Service für verschiedene Kunden?

Was ist die allgemeine Strategie für die Umsetzung einer solchen Sicherheit? Soll ich für jeden Anbieter einen Webservice einrichten, damit ich die digitale Signatur anhand des öffentlichen Schlüssels des Anrufers validieren kann? Idealerweise möchte ich nur einen Webservice haben, da der Inhalt jeder Lieferantenanforderung das gleiche Schema hat.

Antwort

0

Die digitale Signatur für SOAP-Nachrichten ist in den SOAP-Header der Nachricht eingebettet. Dies ist ein vereinfachtes Schema einer Nachricht. (Ein vollständiges Beispiel here)

<?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> 

Die Signatur ermöglicht die Identität des Unterzeichners zu wissen, das x509 Zertifikats Referenzierung zu unterzeichnen.

Sie benötigen keinen unterschiedlichen Webservice für jeden Anbieter. Um den Zugriff zu ermöglichen, fordern Sie den öffentlichen Teil des Zertifikats beim Hersteller an, der zum Signieren von Nachrichten verwendet werden soll. Wenn eine Soap-Nachricht empfangen wird, vergleichen Sie das Unterzeichnerzertifikat mit dem erwarteten.

Um den Vergleich zu vereinfachen, können Sie Seriennummer + Aussteller

überprüfen
Verwandte Themen