Sichere Dialoge aktivieren
Verwenden Sie sichere Dialoge (Secure Conversation), um die Nachrichten von Web-Service-Anwendungen zu sichern.
Vorbereitende Schritte
Anwendungen, die Web-Services enthalten, müssen implementiert sein.
Informationen zu diesem Vorgang
Die OASIS-Entwurfsspezifikation (Organization for the Advancement of Structured Information Standards) "Web Services Secure Conversation (WS-SecureConversation)" beschreibt Methoden, um eine sichere Sitzung zwischen dem Initiator und dem Empfänger von SOAP-Nachrichten einzurichten. Die Entwurfsspezifikation WS-SecureConversation definiert auch, wie das OASIS-Protokoll "Web Services Trust" (WS-Trust) verwendet wird, um ein Sicherheitskontexttoken (SCT, Security Context Token) zu konfigurieren. Vollständige Informationen finden Sie in der OASIS-Spezifikation "Web Services Secure Conversation".
WebSphere Application Server unterstützt die Fähigkeit eines Endpunkts, ein Sicherheitskontexttoken für WS-SecureConversation auszustellen und damit eine sichere Sitzung zwischen dem Initiator und dem Empfänger von SOAP-Nachrichten einzurichten.
Die folgende Abbildung veranschaulicht den Ablauf, der erforderlich ist, um einen gesicherten Kontext einzurichten und sitzungsbasierte Sicherheit zu verwenden.

- Der Client sendet eine RST-Trust-Anforderung (RequestSecurityToken) für ein Sicherheitskontexttoken mit seinem
geheimen Schlüssel an einen Anwendungsendpunkt (Entropie und Zielschlüsselgröße) und fordert den geheimen Schlüssel des Zielservice
an.
Diese Anforderung wird gewöhnlich über asymmetrische Web Services Security gesichert, die in der Bootstraprichtlinie definiert ist.
- Die RST-Anforderung wird vom Trust-Service verarbeitet. Wenn die Anforderung, basierend auf der Sicherheitsrichtlinie
anerkannt wird, gibt der Trust-Service das Sicherheitskontexttoken mit dem geheimen Schlüssel des Zielservice
über eine WS-Trust RequestSecurityTokenResponse (RSTR) zurück.
Diese Anforderung wird gewöhnlich über asymmetrische Web Services Security gesichert. Der Client prüft, basierend auf der Bootstraprichtlinie, ob die RSTR vertrauenswürdig ist.
- Wenn die RequestSecurityTokenResponse vertrauenswürdig ist, sichert (signiert und verschlüsselt) der Client
die nachfolgenden Anwendungsnachrichten mit den Sitzungsschlüsseln.
Die Sitzungsschlüssel werden aus dem geheimen Schlüssel des Sicherheitskontexttokens abgeleitet, das über die ersten WS-Trust-RequestSecurityToken- und -RequestSecurityTokenResponse-Nachrichten angefordert wurde, die zwischen dem Initiator und dem Empfänger ausgetauscht wurden.
- Die Spezifikation definiert einen Algorithmus für die Ableitung der Schlüssel auf der Basis des anfänglichen geheimen Schlüssels. Der Ziel-Web-Service berechnet den abgeleiteten Schlüssel aus den Metadaten, die im Sicherheitsheader der SOAP-Nachrichten enthalten sind, und dem anfänglichen geheimen Schlüssel.
- Der Ziel-Web-Service verwendet den abgeleiteten Schlüssel, um die Nachricht, basierend auf der Anwendungssicherheitsrichtlinie, zu prüfen und zu entschlüsseln.
- Der Ziel-Web-Service verwendet den aus dem geheimen Schlüssel abgeleiteten Schlüssel, um die Antwort, basierend auf der Anwendungssicherheitsrichtlinie, zu signieren und zu verschlüsseln.
- Die Schritte 3 bis 6 werden so lange wiederholt, bis der Nachrichtenaustausch abgeschlossen ist.
In der Spezifikation WS-SecureConversation wird ein Sicherheitskontext durch das Sicherheitstoken <wsc:SecurityContextToken> dargestellt. Das folgende Beispiel veranschaulicht die Zusicherungssyntax für ein Element <wsc:SecurityContextToken>.
<wsc:SecurityContextToken wsu:Id="..." ...>
<wsc:Identifier>...</wsc:Identifier>
<wsc:Instance>...</wsc:Instance>
...
</wsc:SecurityContextToken>
Das Sicherheitskontexttoken unterstützt keine Referenzen über Schlüssel-IDs oder Schlüsselnamen. Alle Referenzen müssen entweder eine ID (für ein Attribut "wsu:Id") oder ein Element <wsse:Reference> für das Element <wsc:Identifier> verwenden.
WebSphere Application Server stellt die folgenden vorkonfigurierten Richtlinien für sichere Dialoge bereit:
- Der Richtliniensatz SecureConveration folgt den Spezifikationen WS-SecureConversation und WS-Security. In diesem Richtliniensatz sind sichere Dialoge aktiviert, und es werden Schlüssel verwendet, die vom Sicherheitskontexttoken abgeleitet werden und die für die Signatur und Verschlüsselung der Anwendungsnachrichten verwendet werden.
- Der Richtliniensatz Username SecureConversation folgt den Spezifikationen WS-SecureConversation und WS-Security und fügt die Authentifizierung über das Benutzernamenstoken hinzu.
- Der Richtliniensatz LTPA SecureConversation folgt den Spezifikationen WS-SecureConversation und WS-Security und unterstützt die Authentifizierung über LTPA-Token (Lightweight Third Party Authentication).
In diesem Beispiel werden der Standardrichtliniensatz SecureConversation sowie die WS-Security-Standardbindung und die Bindung TrustServiceSecurityDefault verwendet, um sichere Dialoge zu aktivieren. Der SecureConversation-Standardrichtliniensatz enthält die Anwendungsrichtlinie (symmetricBinding) und die Bootstraprichtlinie (asymmetricBinding). Die Anwendungsrichtlinie wird verwendet, um Anwendungsnachrichten zu sichern, und die Bootstraprichtlinie wird verwendet, um die RequestSecurityToken-Nachrichten (RST) zu sichern.
Ein Trust-Service, der ein Sicherheitskontexttoken ausstellt, ist mit der Systemrichtlinie TrustServiceSecurityDefault und der Bindung TrustServiceSecurityDefault konfiguriert. Die Trust-Richtlinie ist für die Sicherung der RequestSecurityTokenResponse-Nachrichten (RSTR) verantwortlich. Wenn die Bootstraprichtlinie geändert wird, muss die Trust-Richtlinie so geändert werden, dass sie beiden Konfigurationen entspricht.
Die WS-Security-Standardbindungen (Web Services Security), die hier verwendet werden, enthalten Beispielschlüsseldateien und müssen vor der Verwendung in einer Produktionsumgebung angepasst werden. Für die Produktionsumgebung wird die Verwendung angepasster Bindungen angeraten. Beachten Sie außerdem, das die Schritt 2 und 3 übersprungen werden können, wenn das Profil mit der Option Server mit einer Entwicklungsschablone erstellen erstellt wird.
Führen Sie die folgenden Schritte aus, um sichere Dialoge zu konfigurieren, den Richtliniensatz zu konfigurieren und der Richtlinie eine Richtlinienzusicherung hinzuzufügen:
Vorgehensweise
Ergebnisse
Nächste Schritte
Sehen Sie sich als Nächstes das Beispielszenario zum Erstellen eines Sicherheitskontexttokens zum Sichern eines sicheren Dialogs an.