Frage

Ich habe so etwas wie ein Problem.

Wir haben eine zentrale Schnittstelle, Motor, der mit einem Web-Service sprechen wird, die Informationen Ergänzung bieten und ermöglichen Anforderung an externe Systeme zu unterbreiten. Alles dies ist gut und gut, bis wir diese mit der erforderlichen Sicherheit von diesem Anbieter zu integrieren haben.

Sie geben Zertifikate verteilt über Smart Cards (USB-Stick), dass die Endbenutzer die Software interact mit dem System haben, verwenden müssen (der Web-Service). Sie bestehen darauf, dass die (manchmal mehr) Unterschrift gegen das Zertifikat Ende oben Benutzer auf seinem USB-Stick erfolgen. Der private Schlüssel ist, natürlich, ein Passwort geschützt.

Wie schließe ich Axis2, dass dies alles auf die Zertifikate schließlich behandelt, die auf den End-Benutzer `s Computer sind.

Das System ist vor allem ältere Thick-Client-Anwendung in Delphi 5, der Schnittstelle Motor wirkt meist mit der Datenbank. Jetzt haben wir es geschafft, ein Stück Code zu verbinden, dass effektiv die End-Benutzer `s Station an die Schnittstelle Server über eine einfache TCP-Socket-Verbindung.

---- EDIT ----

Wir implementierten die Lösung mit maßgeschneiderter Signatur Abfangjäger innerhalb CXF (wir von Axis geändert), die den Inhalt der Nachricht zu einer Signatur-Proxy weitergeleitet, die wiederum würde den richtigen Signatur-Dienst auf der Benutzer-interaktive Sitzung, in der die ursprüngliche Anforderung ausgeführt finden und kam aus.

Ich akzeptierte Antwort Eugens, weil, obwohl wir nicht die Komponenten verwenden, hat er angegeben wir die Lösung implementieren hat, dass sein Vorschlag der allgemeinen Richtlinien befolgt.

Es gibt keine entweicht die Tatsache, dass die Unterschrift wegen der USB-Token in einer vom Benutzer interaktiver Sitzung getan werden muss. Zusätzliche Einschränkungen wurden aufgrund der Tatsache auferlegt wir verwendeten Legacy-Systeme und auf die Notwendigkeit, das System funktioniert in einer gemeinsam genutzten Umgebung (Remote Desktop Server) zu haben. Obwohl es möglich ist, es nicht auf natürliche Weise durch das Web-Service-Frameworks oder Verschlüsselungsbibliotheken unterstützt wird.

War es hilfreich?

Lösung

Wenn Sie das Zertifikat auf der Client-USB-Token mit Wohnsitz, dann Unterzeichnung (als Verschlüsselungsoperation) muss auf der Client-Seite durchgeführt werden. Wenn Sie diese Delphi-Anwendung ändern können, dann können Sie verwenden, SecureBlackbox zum Signieren. Ich weiß nichts über Axis2, aber wenn es Erstellung ermöglicht und individuelle Verschlüsselungsmodule anschließen, dann stellen Sie ein, die einen Hash nehmen (das ist das, was tatsächlich unterzeichnet wird) und es an den Client für die Unterzeichnung senden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top