WebSphere Application Server fournit un mécanisme de protection au niveau du message dans un environnement de cluster. Vous pouvez utiliser WS-SecureConversation (Web Services Secure Conversation) pour la protection au niveau
des messages des services Web JAX-WS (Java™ API for XML Web Services 2.0)
dans un environnement de cluster.
Avant de commencer
Une demande de services Web protégée à l'aide d'un jeton SCT (Security Context
Token) est dirigée vers un serveur dans un cluster mais ce jeton SCT peut avoir été
émis ou renouvelé par un autre serveur du cluster. Il se peut que le serveur traitant la demande n'ait pas accès au SCT si la mémoire cache répartie de WebSphere Application Server n'est pas configurée pour répondre ou ne fournit pas de réponse assez vite. Les opérations décrites dans cette rubrique ne doivent être exécutées que si le paramètre de réplication pour les membres de cluster est défini comme mise à jour asynchrone pour le cache réparti de sécurité des services Web.
Pour plus d'informations sur les paramètres de mise à jour du cache, reportez-vous à la rubrique Activation du cache distribué à l'aide de la mise à jour synchrone et de la récupération des jetons.
Vous pouvez également activer le cache réparti de sécurité des Services Web avec le paramètre par défaut, qui permet la mise à jour synchrone des membres de cluster.
Pourquoi et quand exécuter cette tâche
Effectuez les étapes de niveau élevé suivantes pour activer le cache distribué
et l'affinité de session à l'aide de la conversation sécurisée pour la protection au niveau
des messages dans un environnement de cluster.
Procédure
- Activez le cache distribué pour le jeton de contexte de sécurité.
- Dans la console d'administration de WebSphere
Application Server, cliquez sur .
- Cochez la case Activer la mise en cache répartie.
- Cliquez sur le bouton radio pour sélectionner Mise à jour asynchrone des membres de cluster.
- Cliquez sur Appliquer, puis sur Sauvegarder pour enregistrer la configuration.
- Créez un domaine de réplication. Effectuez les
opérations suivantes :
- Dans la console d'administration, cliquez sur .
- Entrez un nom. Par exemple, ABCDomain.
- Sous Nombre de répliques, sélectionnez l'option Domaine entier.
- Cliquez sur OK, puis sur Sauvegarder pour enregistrer la configuration.
- Activez le cache dynamique. Effectuez les tâches suivantes pour chaque serveur du cluster :
- Dans la console d'administration, cliquez sur .
- Sélectionnez l'option Activer la réplication de la mémoire cache.
- Sélectionnez le nom de domaine de réplication créé.
Par exemple, ABCDomain.
- Pour le type de réplication, sélectionnez Push et Pull.
- Cliquez sur OK, puis sur Sauvegarder pour enregistrer la configuration.
- Facultatif : Modifiez l'intervalle de mise à jour par lots du cache distribué. Par défaut, l'intervalle de mise à jour par lots du cache distribué est 1000 millisecondes. Vous pouvez cependant lui affecter une valeur inférieure à 1000 millisecondes. Pour modifier cette valeur, suivez les étapes ci-dessous pour chaque serveur du cluster :
- Dans la console d'administration, cliquez sur .
- Entrez le nom de la propriété com.ibm.ws.cache.CacheConfig.batchUpdateInterval.
- Entrez la valeur de la propriété.
- Cliquez sur OK, puis sur Sauvegarder pour enregistrer la configuration.
- Installez et configurez un serveur web ou un serveur proxy qui prend en charge
l'affinité de session. IBM® HTTP Server et un serveur proxy WebSphere Application Server prennent en charge une affinité de session. Dans le centre de documentation WebSphere Application Server, reportez-vous à la rubrique "Communication avec les serveurs Web".
pour plus d'informations que l'installation et la configuration d'IBM HTTP Server.
- Configurez les systèmes client afin qu'ils envoient des demandes de services web
à l'hôte et au port sur lesquels le serveur ou le serveur proxy est en cours d'exécution.
Le serveur
Web ou le serveur proxy achemine ensuite les demandes au membre de cluster approprié.
- Sur les services qui reçoivent les demandes de service Web protégées par
l'utilisation de Web Services Secure Conversation, sélectionnez l'option de règle activée
pour session de transport HTTP. Effectuez la configuration de l'ensemble de règles en suivant
la procédure ci-après.
- Ajoutez la règle de transport HTTP à l'ensemble de règles utilisé par les services.
- Dans le panneau de configuration de la règle de transport HTTP, sélectionnez Session
activée.
- Cliquez sur OK, puis sur Sauvegarder pour enregistrer la configuration.
- Sur les systèmes client qui envoient les demandes des services Web et qui sont protégés
par Secure Conversation, activez la propriété de session de gestion des transports HTTP. Effectuez
la configuration de l'ensemble de règles ou définissez la propriété par programmation. Si vous utilisez un ensemble de règles avec votre configuration, procédez
comme suit :
- Ajoutez la règle de transport HTTP à l'ensemble de règles utilisé
par les clients.
- Dans le panneau de configuration des règles de transport HTTP, sélectionnez l'option Session
activée.
- Cliquez sur OK, puis sur Sauvegarder pour enregistrer la configuration.
Résultats
Une fois les configurations effectuées, vous avez activé le cache distribué et l'affinité
de session lors de l'utilisation de la conversation sécurisée dans un environnement de cluster. Si le serveur traitant la demande n'a pas accès au jeton SCT, la demande n'aboutit pas et l'erreur
Jeton SCT de type null ou jeton SCT non valide.
Exemple
L'exemple suivant, qui est un fragment de code, présente comment définir par programmation
la propriété Maintain sur l'objet JAX-WS correct :
Map<String> rc = ((BindingProvider) port).getRequestContext();
...
rc.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, Boolean.TRUE);
... </String>