Documentations:Notes installation

Un article de Wiki ESCO-Portail.

Sommaire

Serveur de groupes - Internet 2 Grouper

Installation / configuration

Références :

Java et ant

dpkg -i /home/grouper/sun-j2sdk1.5_1.5.0+update11_i386.deb
java -version
=> java version "1.5.0_11" cd /opt tar xzvf /home/grouper/apache-ant-1.7.0-bin.tar.gz ln -s /opt/apache-ant-1.7.0 /opt/ant ant -version ==> Apache Ant version 1.7.0 compiled on December 13 2006

Tomcat

Version téléchargée : 5.5.25
Répertoire : /opt/apache-tomcat-5.5.25 (Lien symbolique /opt/tomcat)
Script de démarrage : /etc/init.d/tomcatctl (nécessite l'utilisateur tomcat)
Ajourt du script :update-rc.d tomcatctl defaults

Mofications des droits pour exécuter le service tomcat sous l'utilisateur tomcat :

chgrp tomcat /opt/tomcat/conf 
chmod o-rwx /opt/tomcat/conf 
chmod g+r /opt/tomcat/conf/ *
chgrp tomcat /opt/tomcat/logs
chmod o-rwx /opt/tomcat/logs 
chmod g+u /opt/tomcat/logs

Par défaut le mécanisme utilisé pour gérer les permissions est celui de tomcat.
Editer le fichier <tomcat>conf/tomcat-users.xml et ajouter, au minimum, le rôle et l'utilisateur système grouper :

<role rolename="grouper_user"/>
<user username="GrouperSystem" password="xxx" roles="grouper_user"/>

Grouper

Version : 1.2.0
Paquets nécessaires : grouper-api et grouper-ui.

Ils sont décompressés dans le répertoire /opt/grouper/ :

mkdir /opt/grouper
cd /opt/grouper
tar xzvf /home/grouper/Packages/grouper-api-1.2.0.tgz
tar xzvf /home/grouper/Packages/grouper-ui-1.2.0.tgz

grouper-api

cd /opt/grouper/grouper-api-1.2.0

Edition du fichier conf/grouper.hibernate.properties

hibernate.dialect = net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class = com.mysql.jdbc.Driver 
hibernate.connection.url jdbc:mysql://<hostname>/GROUPER_TEST_DB 
hibernate.connection.username = <user>
hibernate.connection.password = <password>

ant build
ant schemaexport 
ant db-init

Remarque erreur sur la création de la table grouper_attributes => crée manuellement via la requête :

CREATE TABLE grouper_attributes (id varchar(128) NOT NULL, 
    group_id varchar(128), field_name varchar(32) NOT NULL, 
    value text NOT NULL,
    PRIMARY KEY (id), 
    UNIQUE (group_id, field_name, value(250))); 


=> show tables : 	

+---------------------------+ 
| Tables_in_grouper_test_db | 
+---------------------------+ 
| grouper_attributes        |
| grouper_composites        | 
| grouper_fields            | 
| grouper_groups            | 
| grouper_groups_types      | 
| grouper_members           | 
| grouper_memberships       | 
| grouper_sessions          | 
| grouper_stems             | 
| grouper_types             | 
| subject                   | 
| subjectattribute          | 
+---------------------------+

ant test (erreur : manque JUnit)
cp /home/grouper/mysql-connector-java-5.0.8-bin.jar /opt/grouper-api-1.2.0/lib/

Configuration des sources de données :
Fichier : conf/source.xml
Ajout d'une source pour LDAP (JNDI) avec paramétrage des filtres de recherche et spécification des attributs remontés.

<source adapterClass="edu.internet2.middleware.subject.provider.JNDISourceAdapter">
      <id>esco:ldap</id>
      <name>JNDI Source Adapter</name>
      <type>person</type>
      <init-param>
         <param-name>INITIAL_CONTEXT_FACTORY</param-name>
         <param-value>com.sun.jndi.ldap.LdapCtxFactory</param-value>
      </init-param>
 
      <init-param>
         <param-name>PROVIDER_URL</param-name>
         <param-value>ldap://<hostname>:389</param-value>
      </init-param>
 
      <init-param>
         <param-name>SECURITY_AUTHENTICATION</param-name>
         <param-value>simple</param-value>
      </init-param>
 
      <init-param>
         <param-name>SECURITY_PRINCIPAL</param-name>
         <param-value>cn=admin,dc=esco-centre,dc=fr</param-value>
      </init-param>
 
      <init-param>
         <param-name>SECURITY_CREDENTIALS</param-name>
         <param-value>******</param-value>
      </init-param>
      <init-param>
         <param-name>SubjectID_AttributeType</param-name>
	 <param-value>uid</param-value>
      </init-param>
 
      <init-param>
         <param-name>Name_AttributeType</param-name>
         <param-value>ENTPersonLogin</param-value>
      </init-param>
 
      <init-param>
         <param-name>Description_AttributeType</param-name>
         <param-value>displayName</param-value>
      </init-param>
 
      <search>
         <searchType>searchSubject</searchType>
         <param>
            <param-name>filter</param-name>
	    <param-value>
	       (&amp; (uid=%TERM%)(objectclass=inetOrgPerson))
            </param-value>
         </param>
         <param>
            <param-name>scope</param-name>
            <param-value>ONELEVEL_SCOPE</param-value>
         </param>
         <param>
            <param-name>base</param-name>
	    <param-value>ou=people,dc=esco-centre,dc=fr</param-value>
         </param>
      </search>
 
      <search>
         <searchType>searchSubjectByIdentifier</searchType>
         <param>
            <param-name>filter</param-name>
	    <param-value>
	       (&amp; (uid=%TERM%)(objectclass=inetOrgPerson))
	    </param-value>
         </param>
         <param>
            <param-name>scope</param-name>
	    <param-value>ONELEVEL_SCOPE</param-value>
         </param>
         <param>
            <param-name>base</param-name>
            <param-value>ou=people,dc=esco-centre,dc=fr</param-value>
         </param>
      </search>
 
    <search>
       <searchType>search</searchType>
         <param>
            <param-name>filter</param-name>
            <param-value>
	            	(&amp; (|(uid=%TERM%)(ENTPersonLogin=%TERM%))(objectclass=inetOrgPerson))
            </param-value>
        </param>
        <param>
            <param-name>scope</param-name>
            <param-value>ONELEVEL_SCOPE </param-value>
        </param>

Configuration des privilèges :
Fichier : conf/grouper.properties
=> suppression de tous les privilèges par défaut :

groups.create.grant.all.admin         = false 
groups.create.grant.all.optin         = false 
groups.create.grant.all.optout        = false 
groups.create.grant.all.read          = false 
groups.create.grant.all.update        = false 
groups.create.grant.all.view          = false


Activation d'un groupe de confiance pour l'administration de grouper :

groups.wheel.use                    = true 
groups.wheel.group                  = esco:admin:central 

Les utilisateurs membres de ce groupe ont la possibilité de basculer en mode administration sans avoir à se loger sous l'identifiant GrouperSystem.

grouper-ui

cd /opt/grouper/grouper-ui-1.2.0/
cp build.properties.template build.properties

Modifications apportées au fichier précédent :

grouper.folder=../grouper-api 
deploy.home=/opt/tomcat 
deploy.context.dir=/opt/tomcat/webapps
cp template-tomcat-context.xml tomcat-context.xml

Shell grouper

cd /opt/grouper/grouper-api-1.2.0/ext/
unzip gsh-src.zip 
cd ..
ant
  ==>Installe /opt/grouper/grouper-api-1.2.0/ext/gsh.sh 

Variables d'environnement (fichier /etc/profile) :

ANT_HOME=/opt/ant 
JAVA_HOME=/usr/lib/j2sdk1.5-sun 
TOMCAT_HOME="/opt/tomcat" 
CATALINA_HOME=$TOMCAT_HOME 
PATH=$ANT_HOME/bin:$PATH 
export JAVA_HOME ANT_HOME TOMCAT_HOME CATALINA_HOME PATH
pages développeurs
pages "communauté ESCO"