33.6 Étapes de post-installation pour WebSphere

33.6.1 Configuration d'une grappe WebSphere après l'installation des applications d'identité

Cette section décrit le processus de configuration d'une grappe WebSphere à utiliser avec les applications d'identité. Cette section suppose que vous êtes un utilisateur expérimenté de WAS (WebSphere Application Server).

  1. (Conditionnel) Pour utiliser le basculement de session avec RBPM, procédez comme suit :

    1. Dans la console d'administration IBM, accédez à Application servers > clustermember1 > Session management > Distributed environment settings > Tuning parameters > Custom tuning parameters (Serveurs d'applications > membregrappe1 > Gestion des sessions > Paramètres d'environnement distribué > Paramètres d'ajustement > Paramètres d'ajustement personnalisés).

    2. Spécifiez le mode All session attributes (Tous les attributs de session), qui permet de contrôler le contenu en écriture pour le basculement de session.

  2. Démarrez le serveur d'applications, et accédez au portail de l'application utilisateur en utilisant le contexte que vous avez spécifié au cours du déploiement.

33.6.2 Ajout de fichiers de configuration de l'application utilisateur et des propriétés système JVM

Cette section vous aide à créer de nouvelles propriétés système JVM nécessaires au fonctionnement des applications d'identité sur un serveur d'applications WebSphere.

  1. Connectez-vous à la console d'administration WebSphere en tant qu'administrateur.

  2. Dans le volet de gauche, cliquez sur Servers > Application Servers (Serveurs > Serveurs d'applications).

  3. Dans la liste des serveurs, cliquez sur le nom du serveur. Exemple : server1 (serveur1).

  4. Dans la liste des paramètres du volet de contenu, cliquez sur Java and Process Management (Gestion de processus et Java) sous Server Infrastructure (Infrastructure de serveur).

  5. Développez le lien et sélectionnez Process Definition (Définition du processus).

  6. Dans la liste sous Additional Properties (Propriétés supplémentaires), cliquez sur Java Virtual Machine (Machine virtuelle Java).

  7. Sous le titre Additional Properties (Propriétés supplémentaires) de la page JVM, cliquez sur Custom Properties (Propriétés personnalisées).

  8. Pour ajouter la propriété système JVM extend.local.config.dir, procédez comme suit :

    1. Cliquez sur New (Nouveau).

    2. Pour Name (Nom), indiquez extend.local.config.dir.

    3. Pour Value (Valeur), spécifiez le chemin complet du répertoire qui contient le fichier hibernate.cfg.xml. Exemple : /opt/netiq/idm/apps/UserApplication/.

    4. Pour Description, indiquez la description de la propriété.

      Par exemple, le chemin d'accès aux fichiers de configuration des applications d'identité.

    5. Cliquez sur OK pour enregistrer la propriété.

  9. Pour ajouter la propriété système JVM idmuserapp.logging.config.dir, procédez comme suit :

    1. Cliquez sur New (Nouveau).

    2. Pour Name (Nom), spécifiez idmuserapp.logging.config.dir.

    3. Pour Value (Valeur), spécifiez le chemin complet du répertoire qui contient le fichier idmuserapp_logging.xml.

      Exemple : /opt/netiq/idm/apps/UserApplication/.

    4. Pour Description, indiquez la description de la propriété.

      Par exemple, le chemin d'accès aux fichiers de configuration de consignation des applications d'identité.

    5. Cliquez sur OK pour enregistrer la propriété.

  10. Pour ajouter la propriété système JVM com.netiq.ism.config, procédez comme suit :

    1. Cliquez sur New (Nouveau).

    2. Pour Name (Nom), spécifiez com.netiq.ism.config.

    3. Pour Value (Valeur), spécifiez le chemin complet du fichier sm-configuation.properties, y compris son nom.

      Exemple : /opt/netiq/idm/apps/UserApplication/ism-configuation.properties.

    4. Pour Description, indiquez la description de la propriété.

      Exemple : le fichier ism properties des applications d'identité.

    5. Cliquez sur OK pour enregistrer la propriété.

  11. (Conditionnel) Pour spécifier l'ID de moteur de workflow pour un environnement de grappe, procédez comme suit :

    1. Cliquez sur New (Nouveau).

    2. Pour Name (Nom), spécifiez com.novell.afw.wf.engine-id.

    3. Pour Value (Valeur), indiquez l'ID du moteur de workflow.

    4. Pour Description, spécifiez une description de la propriété, par exemple ID moteur de workflow.

    5. Cliquez sur OK pour enregistrer la propriété.

33.6.3 Création et application d'une bibliothèque partagée

Il peut être nécessaire de configurer une bibliothèque partagée pour les applications d'identité. Lorsque vous créez une bibliothèque partagée, vous devez également l'appliquer à un nouveau chargeur de classe pour que WebSphere utilise bien les versions Identity Manager des fichiers JAR. Dans le cas contraire, vous rencontrerez des problèmes de chargement de classes avec les fichiers JAR fournis avec WebSphere. Les problèmes de chargement de classes WebSphere peuvent se manifester sous la forme des exceptions suivantes :

  • ClassCastException

  • ClassNotFoundException

  • NoClassDefFoundException

  • UnsatisfiedLinkError

  • LinkageError

Ce processus comprend les opérations suivantes :

Configuration de la bibliothèque partagée

  1. Connectez-vous à la console d'administration WebSphere en tant qu'administrateur.

  2. Dans le volet de gauche, développez le noeud Environment (Environnement).

  3. Cliquez sur Shared Libraries (Bibliothèques partagées).

  4. Dans le volet de contenu, cliquez sur New (Nouveau).

  5. Spécifiez un nom, tel que IDMUA Classpath.

  6. Pour Classpath (Chemin de classe), ajoutez les fichiers JAR requis suivants :

    • log4j.jar

    • commons-logging-1.1.1.jar

    • IDMselector.jar

    Ces fichiers sont situés par défaut dans le répertoire d'installation des applications d'identité. Exemple : /opt/netiq/idm/apps/UserApplication.

  7. Désactivez l'option Use an isolated class loader for this shared library (Utiliser un chargeur de classe isolé pour cette bibliothèque partagée).

  8. Cliquez sur OK.

  9. Cliquez sur Enregistrer pour enregistrer les modifications apportées à la configuration principale.

Application de la bibliothèque partagée à un nouveau chargeur de classe

  1. Connectez-vous à la console d'administration WebSphere en tant qu'administrateur.

  2. Développez Application servers > server-name > Class loader (Serveurs d'applications > nom_serveur > Chargeur de classes).

    REMARQUE :par défaut, cette option apparaît réduite dans la section Java and Process Management (Gestion des processus et Java).

  3. Dans le volet de contenu, cliquez sur New (Nouveau) pour créer un nouveau chargeur de classes.

  4. Sélectionnez Classes loaded with local class loader first (parent last) (Classes chargées en premier avec un chargeur de classes local (dernier parent)).

  5. Cliquez sur Apply (Appliquer).

  6. Sélectionnez Shared library references (Références de bibliothèque partagée).

  7. Cliquez sur Add (Ajouter), puis sélectionnez la bibliothèque partagée que vous avez créée à l'étape Configuration de la bibliothèque partagée.

  8. Cliquez sur Appliquer.

  9. Cliquez sur OK.

  10. Cliquez sur Save (Enregistrer) pour enregistrer les modifications apportées à la configuration principale.

33.6.4 Importation de la racine approuvée d'eDirectory dans le keystore WebSphere

Cette section vous permet d'importer les certificats de racine approuvée eDirectory dans le keystore sur l'ordinateur qui héberge le serveur WebSphere. Vous pouvez procéder de l'une des manières suivantes :

Importation de certificats avec la console de l'administrateur WebSphere

  1. Copiez les certificats de racine approuvée eDirectory sur la machine qui héberge le serveur WebSphere.

    Identity Manager permet d'importer les certificats dans les emplacements suivants du JRE IBM pour WebSphere :

    • fichier cacerts

    • répertoire /lib/security, par exemple /opt/IBM/WebSphere/AppServer/java_1.7_64/jre/lib/security

  2. Connectez-vous à la console d'administration WebSphere en tant qu'administrateur.

  3. Dans le volet de gauche, développez Security > SSL Certificate and Key Management (Sécurité > Certificat SSL et Gestion des clés).

  4. Dans le volet de contenu, cliquez sur Key stores and certificates (Keystores et certificats) sous Related Items (Éléments associés).

  5. Sélectionnez NodeDefaultTrustStore (ou la zone de stockage approuvée que vous utilisez).

  6. Sous Additional Properties (Propriétés supplémentaires), cliquez sur Signer Certificates (Certificats du signataire).

  7. Cliquez sur Ajouter.

  8. Saisissez le nom de l'alias et le chemin d'accès complet au fichier de certificat.

  9. Modifiez le type de donnée dans la liste déroulante en sélectionnant Données DER binaires.

  10. Cliquez sur OK.

    À présent, le certificat doit apparaître dans la liste des certificats du signataire.

  11. Cliquez sur Save (Enregistrer) pour enregistrer les modifications apportées à la configuration principale.

Importation de certificats avec la ligne de commande

Vous devez utiliser le keytool de WebSphere pour importer le certificat dans le keystore WebSphere. Par défaut, le keytool WebSphere se trouve sous /IBM/WebSphere/AppServer/java/bin. La zone de stockage est de type PKCS12.

  1. Copiez les certificats de racine approuvée eDirectory sur la machine qui héberge le serveur WebSphere.

    La procédure d'installation de l'application utilisateur exporte les certificats vers le répertoire dans lequel vous installez l'application utilisateur.

  2. À partir de la ligne de commande de la machine qui héberge le serveur WebSphere, exécutez le keytool de WebSphere.

    Exemple :

    keytool -import -trustcacerts -file servercert.der -alias myserveralias 
    -keystore trust.p12 -storetype PKCS12
    

    REMARQUE :si votre système contient plusieurs fichiers trust.p12, il se peut que vous deviez indiquer le chemin complet du fichier.

33.6.5 Application des fichiers de stratégie non restreints pour le JDK IBM

Pour fonctionner efficacement, les applications d'identité nécessitent que vous exécutiez les fichiers de stratégie non restreints au JDK IBM pris en charge sur le serveur où vous avez installé les applications. Vous devez également appliquer ces fichiers pour chaque JDK IBM de serveur WebSphere qui exécute RBPM.

Vérifiez chaque JDK IBM de serveur WebSphere pour vous assurer que vous avez bien appliqué les fichiers de stratégie non restreints. Sans ces fichiers de stratégie non restreints, l'erreur Taille de clé incorrecte se produit au démarrage de RBPM.

33.6.6 Transmission de la propriété preferIPv4Stack à la JVM

Les applications d'identité utilisent JGroups pour l'implémentation du caching. Dans certaines configurations, JGroups requiert que la propriété preferIPv4Stack soit définie sur true pour garantir le bon fonctionnement de la liaison mcast_addr.

Sans cette option, l'erreur suivante peut se produire :

[10/1/09 16:11:22:147 EDT] 0000000d UDP           W org.jgroups.util.Util
createMulticastSocket could not bind to /228.8.8.8 (IPv4 address); make sure
your mcast_addr is of the same type as the IP stack (IPv4 or IPv6).

L'erreur suivante peut également s'afficher :

[3/21/12 10:04:32:470 EDT] 00000024 UDP      E org.jgroups.protocols.TP down
failed sending message to null (131 bytes)
        java.lang.Exception: dest=/228.8.8.8:45654 (134 bytes)
    at org.jgroups.protocols.UDP._send(UDP.java:353)

Le paramètre java.net.preferIPv4Stack=true est une propriété système qui peut être configurée de la même façon que les autres propriétés système telles que extend.local.config.dir. Pour obtenir les instructions relatives à la configuration des propriétés système, reportez-vous à la Section 33.6.2, Ajout de fichiers de configuration de l'application utilisateur et des propriétés système JVM.

33.6.7 Configuration de JMS dans WebSphere

Les applications d'identité utilisent une zone de stockage JMS (Java Message Service) permanent pour conserver les messages électroniques. Si JMS n'est pas configuré correctement, les messages dans la file d'attente de la mémoire sont perdus en cas d'arrêt du serveur d'applications.

  1. Connectez-vous à la console d'administration WebSphere en tant qu'administrateur.

  2. Pour créer un nouveau bus, procédez comme suit :

    1. Cliquez sur Service integration > Buses (Intégration des services > Bus).

    2. Cliquez sur New (Nouveau).

    3. Spécifiez le nom du bus. Exemple : IDMProvBus.

    4. Désactivez l'option Bus Security (Sécurité des bus).

    5. Cliquez sur Next (Suivant), puis confirmez les modifications.

    6. Cliquez sur Finish (Terminer), puis sur Save (Enregistrer).

  3. Pour configurer le bus, procédez comme suit :

    1. Sous Service integration > Buses (Intégration de services > Bus), sélectionnez le bus créé à l'Étape 2.

    2. Cliquez sur Configuration > General Properties (Configuration > Propriétés générales).

    3. Spécifiez une description du bus. Exemple : Bus pour applications IDM.

    4. Cliquez sur Apply (Appliquer), puis sur Save (Enregistrer).

    5. Sous l'onglet Configuration, cliquez sur Topology > Bus Members (Topologie > Membres de bus).

    6. Cliquez sur Ajouter.

    7. Indiquez si le fichier IDMProv.war est déployé sur un serveur, une grappe ou un serveur WebSphere MQ, puis cliquez sur Next (Suivant).

    8. Pour File Store (Stockage de fichiers), spécifiez le type de zone de stockage de messages, puis cliquez sur Next (Suivant).

    9. Vérifiez les valeurs par défaut de la zone de stockage des fichiers, puis cliquez sur Next (Suivant).

    10. (Facultatif) Réglez les paramètres de performances pour le bus.

    11. Cliquez sur Next (Suivant), puis sur Finish (Terminer).

  4. Pour créer une connexion de rubrique pour le bus, procédez comme suit :

    1. Accédez à Resources > JMS > Topic connection factories (Ressources > JMS > Fabriques de connexions de rubriques).

    2. Dans le menu Scopes (Étendues), sélectionnez l'étendue appropriée. Exemple : Node=MyNode01, Server=server1.

    3. Cliquez sur New (Nouveau).

    4. Sélectionnez Default messaging provider (Fournisseur de messagerie par défaut) et cliquez sur OK.

    5. Cliquez sur Configuration.

    6. Indiquez un nom pour la connexion de rubrique. Exemple : FabriqueConnexions.

    7. Pour JNDI name (Nom JNDI), spécifiez la même valeur que pour le nom. Exemple : FabriqueConnexions.

    8. Indiquez une brève description de la connexion de rubrique. Exemple : Fabrique de connexions de rubriques pour applications IDM.

    9. Pour Bus Name (Nom de bus), sélectionnez le bus créé à l'Étape 2.

    10. Cliquez sur Durable Subscription > Client (Abonnement durable > Client) et indiquez IDMNotificationDurableTopic.

    11. Cliquez sur Quality of Service > Persistent message reliability (Qualité du service > Fiabilité des messages persistants) et sélectionnez Reliability persistent (Persistant - Fiable).

    12. Cliquez sur Share durable subscriptions > Advanced Messaging (Partager des abonnements durables > Messagerie avancée), puis sélectionnez Never shared (Jamais partagé).

    13. Cliquez sur Apply (Appliquer), puis sur Finish (Terminer).

  5. Pour créer une rubrique, procédez comme suit :

    1. Accédez à Resources > JMS > Topics (Ressources > JMS > Rubriques).

    2. Sélectionnez l'étendue que vous souhaitez utiliser. Exemple : Node=MyNode01, Server=server1.

    3. Cliquez sur New (Nouveau).

    4. Sélectionnez Default messaging provider (Fournisseur de messagerie par défaut) et cliquez sur OK.

    5. Cliquez sur Configuration.

    6. Spécifiez le nom de la rubrique. Exemple : IDMNotificationDurableTopic.

    7. Pour JNDI name (Nom JNDI), utilisez la syntaxe suivante : topic/nom. Exemple : topic/IDMNotificationDurableTopic.

    8. Indiquez une brève description de la connexion de rubrique. Exemple : Rubrique pour applications IDM.

    9. Pour Bus Name (Nom de bus), sélectionnez le bus créé à l'Étape 2.

    10. Cliquez sur Topic space (Espace de la rubrique) et sélectionnez Default. Topic.space.

    11. Cliquez sur JMS delivery mode (Mode de distribution JMS) et sélectionnezPersistent (Persistant).

    12. Cliquez sur Apply (Appliquer), puis sur Save (Enregistrer).

  6. Déconnectez-vous de la console WebSphere.

  7. Redémarrez WebSphere sur le serveur sur lequel vous avez déployé le WAR pour les applications d'identité.

  8. Pour vérifier que le serveur JMS est configuré correctement, consultez le fichier SystemOut.log.

    Configuration incorrecte

    Si le serveur JMS n'est pas configuré correctement, le fichier SystemOut.log comprend les lignes suivantes dans l'ordre indiqué :

    INFO  [JMSConnectionMediator] Starting JMS notification system
    WARN  [NotificationEngine] Could not properly initialize JMS persistence for the notification system. Will revert back to non-persistent asynchronous notification system. 
    INFO  [NotificationThread] Starting asynchronous notification system 
    
    Installation correcte

    Si la configuration a réussi, le fichier SystemOut.log contient le type d'informations suivantes dans l'ordre présenté :

    INFO  [JMSConnectionMediator] Starting JMS notification system
    %connection information%
    INFO  [NotificationThread] Starting asynchronous notification system
    
    
    ========
    
    [9/7/14 14:39:52:167 EDT] 00000000 SibMessage    I   [:] CWSID0021I: Configuration reload is enabled for bus IDMProvBus. 
    [9/7/14 14:39:52:372 EDT] 00000000 SibMessage    I   [:] CWSIS1569I: Messaging engine N35020Node02.server1-IDMProvBus is using a file store. 
    
    ========
    
    [9/7/14 14:41:32:613 EDT] 0000000c SystemOut     O 14:41:32,608 INFO  [JMSConnectionMediator] Starting JMS notification system 
    
    [9/7/14 14:41:32:841 EDT] 0000000c SharedPool    I   J2CA0086W: Shareable connection MCWrapper id 5c175c17  Managed connection [com.ibm.ws.sib.api.jmsra.impl.JmsJcaManagedConnection@490f490f <managedConnectionFactory=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaManagedTopicConnectionFactoryImpl@1f9c1f9c <logWriter=null> <busName=IDMProvBus> <clientID=IDMNotificationDurableTopic> <userName=null> <password=null> <xaRecoveryAlias=> <nonPersistentMapping=ExpressNonPersistent> <persistentMapping=ReliablePersistent> <durableSubscriptionHome=N35020Node02.server1-IDMProvBus> <readAhead=Default> <temporaryQueueNamePrefix=null> <temporaryTopicNamePrefix=null> <target=null> <targetSignificance=Preferred> <targetTransportChain=null> <targetType=BusMember> <providerEndpoints=null> <connectionProximity=Bus> <shareDataSourceWithCMP=false> <shareDurableSubscriptions=NeverShared> <cachedFactory=com.ibm.ws.sib.api.jms.impl.JmsFactoryFactoryImpl@4fb24fb2> <producerDoesNotModifyPayloadAfterSet=false> <consumerDoesNotModifyPayloadAfterGet=false>]> <coreConnection=com.ibm.ws.sib.processor.impl.ConnectionImpl@b0b0b0b> <localTransaction=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaManagedConnection$JmsJcaLocalTransaction@78ce78ce <localSITransaction=null>]> <xaResource=null> <metaData=null> <userDetails=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaUserDetails@5b4d5b4d <userName=null> <password=null>]> <subject=null> <logWriter=null> <sessions=[[com.ibm.ws.sib.api.jmsra.impl.JmsJcaSessionImpl@21ff21ff <managedConnection=1225738511> <connection=828453217> <transacted=false> <applicationLocalTransaction=null> <reqInfo=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionRequestInfo@219a219a> <userDetails=null> <coreConnection=com.ibm.ws.sib.processor.impl.ConnectionImpl@b0b0b0b> <request counter=0>]> <sessionClosed=false> <sessionInvalidated=false>]]> <connectionListeners=[com.ibm.ejs.j2c.ConnectionEventListener@1572625852]>]  State:STATE_TRAN_WRAPPER_INUSE 
     from resource ConnectionFactory was used within a local transaction containment boundary. 
    
    [9/7/14 14:41:32:938 EDT] 0000001a SystemOut     O 14:41:32,938 INFO  [NotificationThread] Starting asynchronous notification system