Installation de Talend Identity Management Service - 6.4

Talend Real-time Big Data Platform Guide d'installation pour Linux

EnrichVersion
6.4
EnrichProdName
Talend Real-Time Big Data Platform
task
Installation et mise à niveau
EnrichPlatform
Studio Talend
Talend Activity Monitoring Console
Talend Administration Center
Talend Artifact Repository
Talend CommandLine
Talend Data Preparation
Talend Data Stewardship
Talend DQ Portal
Talend ESB
Talend Identity Management
Talend Installer
Talend JobServer
Talend Log Server
Talend Project Audit
Talend Repository Manager
Talend Runtime
Talend SAP RFC Server

Talend Identity Management Service, basé sur Apache Syncope, est un système qui permet de gérer les identités numériques dans des environnements d'entreprise.

Le serveur d'applications recommandé pour l'application Web Syncope est Apache Tomcat 8.0, cependant Apache Tomcat 7 est également supporté et nécessite de suivre les mêmes procédures. Dans les sections suivantes, <TomcatPath> désigne le chemin d'accès au répertoire d'installation de Tomcat.

Configurer le serveur d'applications Tomcat

Configurer l'environnement

  • Créez le fichier suivant : <TomcatPath>/bin/setenv.sh, modifiez-le et ajoutez ce qui suit, dans une seule ligne :

    JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server \ -Xms1536m -Xmx1536m 
    -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m \ -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC" 

Mettre à jour le fichier context.xml

  1. Ouvrez le fichier suivant : <TomcatPath>/conf/context.xml pour le modifier.

  2. Dé-commentez la ligne : <Manager pathname="" />

  3. En environment de production, il est fortement recommandé de définir une source de données comme stockage interne, à utiliser avec Talend Identity Management Service.

    <Resource name="jdbc/syncopeDataSource" auth="Container" 
        type="javax.sql.DataSource" 
        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
        testWhileIdle="true" testOnBorrow="true" testOnReturn="true" 
        validationQuery="SELECT 1" validationInterval="30000"
        maxActive="100" minIdle="2" maxWait="10000" initialSize="2"
        removeAbandonedTimeout="20000" removeAbandoned="true" 
        logAbandoned="true" suspectTimeout="20000" 
        timeBetweenEvictionRunsMillis="5000" 
        minEvictableIdleTimeMillis="5000"
        jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
        org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
        username="syncope" password="syncope" 
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/syncope?characterEncoding=UTF-8"/>

    L'exemple ci-dessus s'applique pour MySQL. Veillez à adapter les paramètres de connexion en fonction de vos besoins.

Déployer Talend Identity Management Service

  1. Copiez les fichiers suivants depuis add-ons/tidm:

    syncope.war

    syncope-console.war

    vers <TomcatPath>/webapps

  2. Démarrez le serveur Tomcat.

  3. Après avoir démarré le serveur, si Talend Administration Center n'est pas sur le port 8080 par défaut, arrêtez-le et modifiez le port dans le fichier <TomcatPath>/webapps/syncope-console/WEB- INF/classes/configuration.properties.

  4. Si vous avez défini une source de données à utiliser avec Talend Identity Management Service en environnement de production, modifiez le fichier <TomcatPath>/webapps/syncope-console/WEB-INF/web.xml, et dé-commentez la section resource-ref.

  5. Redémarrez le serveur Tomcat.

Configurer Talend Identity Management Service en cluster

  1. Après avoir déployé Talend Identity Management Service dans Tomcat, pour pouvoir le configurer en cluster, arrêtez Tomcat.

  2. Modifiez le fichier <TomcatPath>/webapps/syncope/WEB-INF/classes/persistence.properties, et remplacez la configuratin existante par :

    jpa.driverClassName=com.mysql.jdbc.Driver
    jpa.url=jdbc:mysql://localhost:3306/syncope?characterEncoding=UTF-8
    jpa.username=syncope_user
    jpa.password=syncope_pass
    jpa.dialect=org.apache.openjpa.jdbc.sql.MySQLDictionary
    quartz.jobstore=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
    quartz.sql=tables_mysql.sql
    logback.sql=mysql.sql
  3. Lorsque vous déployez plusieurs instances de Talend Identity Management Service, reposant sur une base de données unique ou sur un cluster de bases de données, il est d'une importance capitale que les instances d'OpenJPA contenues soient correctement configurées pour la notification d'évènements distants. Cette configuration permet, en effet, de maintenir synchronisé les données cache d'OpenJPA, quand celui-ci est déployé dans plusieurs JVMs, et ainsi, cela renforce l'uniformité des données parmi toutes les instances.

    La configuration par défaut, adaptée pour l'installation d'une JVM unique, est définie dans le fichier <TomcatPath>/webapps/syncope/WEB-INF/classes/persistenceContextEMFactory.xml :

    <entrykey="openjpa.RemoteCommitProvider"value="sjvm"/>

    Pour l'utilisation de multiples instances, plus d'options sont disponibles, notamment TCP ou JMS. Pour plus d'informations, consultez http://openjpa.apache.org/builds/2.3.0/apache-openjpa/docs/ref_guide_event.html (en anglais).

    Pour utliser Talend Identity Management Service en cluster, dans le fichier <TomcatPath>/webapps/syncope/WEB-INF/classes/persistenceContextEMFactory.xml, changez la valeur sjvm par défaut, par toutes les adresses IP de toutes les instances de Talend Identity Management Service, afin qu'elles puissent communiquer entre elles :

    <entrykey="openjpa.RemoteCommitProvider"value="tcp(Addresses=10.0.1.10;10.0.1.11)"/>
  4. Redémarrez le serveur Tomcat.

Configurer Talend Identity Management Service pour utiliser Postgres pour le stockage interne

Préparer Postgres

  1. Utilisez pgAdmin III pour naviguer parmi les objets, et sélectionnez le noeud PostgresSQL 9.2 (localhost:5432)/Login-Roles.

  2. Créez un nouveau role, appelez-le syncope, avec pour mot de passe syncope. Si vous utilisez d'autes role et mot de passe, adaptez la configuration ci-dessous.

  3. Sélectionnez PostgresSQL 9.2 (localhost:5432)/Databases, et créez une nouvelle base de données et appelez-la syncope aussi.

  4. Assignez-lui le syncope.

Déployer Talend Identity Management Service

  1. Si vous n'avez pas déjà déployé les fichiers suivants : syncope.war et syncope-console.war dans le dossier <TomcatPath>/webapps, faites-le maintenant.

  2. Déployez aussi le Driver JDBC de Postgres dans Tomcat. Le driver peut être téléchargé à l'adresse suivantes : http://jdbc.postgresql.org/download.html.

  3. Copiez le fichier JAR du driver que vous venez de télécharger dans <TomcatPath>/lib.

Configurer Tomcat

Pour configurer Syncope utilisant Mysql en backend dans Tomcat, consultez le tutoriel suivant : http://coheigea.blogspot.de/2013/07/apache-syncope-tutorial-part-i_26.html (en anglais), adapté pour l'usage de Talend Identity Management Service avec Postgres.

  1. Changez le contenu du fichier <TomcatPath>/webapps/syncope/WEB-INF/classes/persistence.properties comme suit :

    jpa.driverClassName=org.postgresql.Driver
            jpa.url=jdbc:postgresql://localhost:5432/syncope
            jpa.username=syncope
            jpa.password=syncope
            jpa.dialect=org.apache.openjpa.jdbc.sql.PostgresDictionary
            quartz.jobstore=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
            quartz.sql=tables_postgres.sql
            logback.sql=postgresql.sql
  2. Ajoutez une source de données pour le stockage interne dans le fichier conf/context.xml de Tomcat. Comme Syncope ne trouvera pas la source de données appelée jdbc/syncopeDataSource, il va tenter de se connecter au stockage interne en initiant une nouvelle connexion à chaque requête, ce qui va entrainer des pertes de performance. Pour éviter ces pertes, ajoutez le code suivant au fichier <TomcatPath>/conf/context.xml:

    <Resource name="jdbc/syncopeDataSource" auth="Container"
        type="javax.sql.DataSource"
        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
        testWhileIdle="true" testOnBorrow="true" 
        testOnReturn="true"
        validationQuery="SELECT 1" validationInterval="30000"
        maxActive="50" minIdle="2" maxWait="10000" initialSize="2"
        removeAbandonedTimeout="20000" removeAbandoned="true"
        logAbandoned="true" suspectTimeout="20000"
        timeBetweenEvictionRunsMillis="5000" 
        minEvictableIdleTimeMillis="5000"
        jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
        org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
        username="syncope" password="syncope"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://localhost:5432/syncope"/>

Configurer Talend Identity Management Service pour utiliser Oracle pour le stockage interne

Déployer Talend Identity Management Service

  1. Si vous n'avez pas déjà déployé les fichiers suivants : syncope.war et syncope-console.war dans le dossier <TomcatPath>/webapps, faites-le maintenant.

  2. Copiez le fichier ojdbcX.jar de votre installation Oracle dans <TomcatPath>/lib.

Configurer Tomcat

  1. Changez le contenu du fichier <TomcatPath>/webapps/syncope/WEB-INF/classes/persistence.properties comme suit :

    jpa.driverClassName=oracle.jdbc.OracleDriver
    jpa.url=jdbc:oracle:thin:@<host>:<port>:xe
    jpa.username=<user>
    jpa.password=<password>
    jpa.dialect=org.apache.openjpa.jdbc.sql.OracleDictionary
    jpa.pool.validationQuery=SELECT 1 FROM DUAL
    #note: other connection pool settings can also be configured here, see persistenceContext.xml
    quartz.jobstore=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
    quartz.sql=tables_oracle.sql
    audit.sql=audit_oracle.sql	
    database.schema=<schema_name>
  2. Remplacez les valeurs entre chevrons afin qu'elles correspondent à la configuration de votre système.

  3. Changez le contenu du fichier <TomcatPath>/webapps/syncope/WEB-INF/classes/persistenceContextEMFactory.xml comme suit :

    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <property name="persistenceXmlLocation" value="classpath*:META-INF/spring-persistence.xml"/>
            <property name="persistenceUnitName" value="syncopePersistenceUnit"/>
            <property name="dataSource" ref="dataSource"/>
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter">
                    <property name="showSql" value="false"/>
                    <property name="generateDdl" value="true"/>
                    <property name="databasePlatform" value="${jpa.dialect}"/>
                </bean>
            </property>
            <property name="jpaPropertyMap">
                <map>
                    <!--<entry key="openjpa.Log" value="SQL=TRACE"/>
                    <entry key="openjpa.ConnectionFactoryProperties" 
                    value="PrintParameters=true, PrettyPrint=true, PrettyPrintLineLength=80"/>-->
                    
                    <entry key="openjpa.jdbc.Schema" value="<schema_name>"/>
                    <entry key="openjpa.NontransactionalWrite" value="false"/>
                    <entry key="openjpa.AutoDetach" value="close, commit, nontx-read, rollback"/>
                    <entry key="openjpa.jdbc.SchemaFactory" value="native(ForeignKeys=true)"/>
                    <entry key="openjpa.jdbc.MappingDefaults"
                    value="ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict"/>
                    <entry key="openjpa.DataCache" value="true"/>
                    <entry key="openjpa.QueryCache" value="true"/>
                    <entry key="openjpa.RemoteCommitProvider" value="sjvm"/>
                </map>
            </property>
        </bean>
    </beans>
  4. Dans la ligne <entry key="openjpa.jdbc.Schema" value="<schema_name>"/>, remplacez <schema_name> par le nom de votre schéma.

Tester l'accès à l'application Web

  1. Rendez-vous sur http://localhost:8080/syncope-console/ (en supposant qu'Apache Tomcat tourne sur localhost et sur le port 8080).

  2. Connectez-vous avec les identifiants par défaut :

    identifiant: admin

    mot de passe: password