WebSphere Application Server unterstützt den Zugriffsschutz auf Nachrichtenebene in einer Clusterumgebung.
Sie können Web Services Secure Conversation (WS-SecureConversation) für den Nachrichtenschutz
für JAX-WS-Web-Services (Java™ API for XML Web Services 2.0) in einer Clusterumgebung verwenden.
Vorbereitende Schritte
Eine mit einem Sicherheitskontexttoken (SCT, Security Context Token) geschützte
Web-Service-Anforderung wird an einen Server in einem Cluster weitergeleitet, aber dieses SCT wurde möglicherweise
von einem anderen Server im Cluster ausgestellt oder erneuert. Wenn der verteilte Cache von WebSphere
Application Server nicht für die Replikation konfiguriert ist oder nicht schnell genug repliziert wird,
hat der Server, der die Anforderung verarbeitet, möglicherweise keinen Zugriff auf das SCT. Die in diesem
Artikel beschriebenen Taskschritte müssen nur ausgeführt werden, wenn die Replikationseinstellung für Cluster-Member
auf asynchrone Aktualisierung des verteilten Caches für Web Services Security gesetzt ist.
Weitere Informationen zu den Einstellungen für die Cacheaktualisierung
finden Sie im Artikel "Verteilten Cache durch synchrone Aktualisierung und Tokenwiederherstellung aktivieren".
Sie können den verteilten Cache für Web Services Security auch mit der Standardeinstellung aktivieren, die
die synchrone Aktualisierung der Cluster-Member ermöglicht.
Informationen zu diesem Vorgang
Führen Sie die folgenden problemorientierten Schritte aus, um den verteilten Cache und die Sitzungsaffinität
zu aktivieren, wenn Secure Conversation für den Zugriffsschutz auf Nachrichtenebene in einer Clusterumgebung
verwendet wird.
Vorgehensweise
- Aktivieren Sie den verteilten Cache für das Sicherheitskontexttoken.
- Klicken Sie in der Administrationskonsole von WebSphere Application Server auf .
- Wählen Sie das Kontrollkästchen Verteiltes Caching aktivieren.
- Klicken Sie auf das Optionsfeld, um Asynchrone Aktualisierung der Cluster-Member auszuwählen.
- Klicken Sie auf Anwenden und anschließend auf Speichern, um die Konfiguration zu speichern.
- Erstellen Sie eine Replikationsdomäne. Führen Sie die
folgenden Schritte aus:
- Klicken Sie in der Administrationskonsole auf .
- Geben Sie einen Namen ein, z. B. ABCDomain.
- Wählen Sie unter "Anzahl der Replikate" die Option Gesamte Domäne aus.
- Klicken Sie auf OK und Speichern, um die Konfiguration zu speichern.
- Aktivieren Sie den dynamischen Cache. Führen Sie die folgenden Schritte für jeden Server im Cluster
aus:
- Klicken Sie in der Administrationskonsole auf .
- Wählen Sie die Option Cachereplikation aktivieren aus.
- Wählen Sie den Namen der Replikationsdomäne aus, die Sie erstellt haben,
z. B. ABCDomain.
- Wählen Sie den Replikationstyp Push und Pull aus.
- Klicken Sie auf OK und Speichern, um die Konfiguration zu speichern.
- Optional: Ändern Sie das Intervall für die Aktualisierung des verteilten Caches. standardmäßig ist das Intervall für die Aktualisierung des verteilten Caches auf
1.000 Millisekunden gesetzt. Sie können dieses Intervall jedoch auf einen Wert unter
1.000 Millisekunde setzen. Führen Sie dazu für jeden Server im Cluster die folgenden Schritte aus:
- Klicken Sie in der Administrationskonsole auf .
- Geben Sie den Eigenschaftsnamen com.ibm.ws.cache.CacheConfig.batchUpdateInterval ein.
- Geben Sie den Wert der Eigenschaft ein.
- Klicken Sie auf OK und Speichern, um die Konfiguration zu speichern.
- Installieren und konfigurieren Sie einen Web-Server oder Proxy-Server, der die Sitzungsaffinität unterstützt.
Die Sitzungsaffinität wird von IBM® HTTP Server und vom Proxy-Server von WebSphere Application Server unterstützt. Lesen Sie
den Artikel "Kommunikation mit Web-Servern" im Information Center von WebSphere Application
Server, um mehr über die Installation und Konfiguration
von IBM HTTP
Server zu erfahren.
- Konfigurieren Sie die Clientsysteme so, dass die Web-Service-Anforderungen an die Host/Port-Kombination gesendet wird, unter
der der Web-Server bzw. Proxy-Server ausgeführt wird. Der Web-Server bzw. Proxy-Server leitet die Anforderungen dann
an das richtige Cluster-Member weiter.
- Wählen Sie für die Services, die die Web-Service-Anforderungen empfangen, die
durch Web Services Secure Conversation geschützt sind, die Richtlinienoption "Sitzung aktiviert" für HTTP-Transporte aus. Gehen Sie zum
Konfigurieren des Richtliniensatzes wie folgt vor:
- Fügen Sie dem Richtliniensatz, der von den Services verwendet wird, die HTTP-Transportrichtlinie hinzu.
- Wählen Sie in der Konfigurationsanzeige für die HTTP-Transportrichtlinie die Option
Sitzung aktiviert aus.
- Klicken Sie auf OK und Speichern, um die Konfiguration zu speichern.
- Aktivieren Sie auf den Clientsystemen, die die Web-Service-Anforderungen senden und durch
Secure Conversation geschützt sind, die HTTP-Transporteigenschaft "Maintain Session".
Konfigurieren Sie den Richtliniensatz, oder setzen Sie die Eigenschaft über das Programm. Wenn Sie einen Richtliniensatz für Ihre Konfiguration verwenden, führen Sie die folgenden Schritte aus:
- Fügen Sie dem Richtliniensatz, der von den Clients verwendet wird, die HTTP-Transportrichtlinie hinzu.
- Wählen Sie in der Konfigurationsanzeige für die HTTP-Transportrichtlinie die Option
Sitzung aktiviert aus.
- Klicken Sie auf OK und Speichern, um die Konfiguration zu speichern.
Ergebnisse
Nach Fertigstellung der Konfigurationen haben Sie den verteilten Cache und die Sitzungsaffinität
bei Verwendung von Secure Conversation in einer Clusterumgebung aktiviert.
Wenn der Server, der die Anforderung verarbeitet, keinen Zugriff auf das SCT hat,
schlägt die Anforderung mit dem Fehler
Either null SCT or invalid SCT fehl.
Beispiel
Das folgende Beispiel, ein Code-Snippet, veranschaulicht, wie die Eigenschaft "Maintain Session"
über das Programm für das richtige JAX-WS-Objekt gesetzt wird:
Map<String> rc = ((BindingProvider) port).getRequestContext();
...
rc.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, Boolean.TRUE);
... </String>