Outil de synchronisation de la base Grouper vers un annuaire LDAP
A partir de la version 1.6 de Grouper, deux outils de synchro : ldappc et ldappc-ng, à télécharger indépendamment de grouper-api (package ldappc-ng)
- déployer le répertoire lib de ldappc-ng dans le répertoire lib/custom de grouper-api
- déployer le répertoire conf de ldappc-ng dans le répertoire conf de grouper-api
Ldappc
Initialiser des groupes et appartenances dans un annuaire Ldap
Bloc de code |
---|
./gsh.sh -ldappc -groups -memberships -configManager ldappc.openldap.xml -properties ldappc.openldap.properties
|
- -groups : initialise les groupes
- -memberships : initialise les appartenances des individus aux groupes dans la branche des individus (people par exemple)
- -properties : paramètres d'accès à l'annuaire
- -configManager : définitions des groupes créés et des membres
Exemple de ldappc.properties
Bloc de code |
---|
edu.vt.middleware.ldap.ldapUrl=ldap://ldap.mon-univ.fr:389
edu.vt.middleware.ldap.base=dc=mon-univ,dc=fr
edu.vt.middleware.ldap.authtype=simple
edu.vt.middleware.ldap.serviceUser=cn=grouper,ou=special users,dc=mon-univ,dc=fr
edu.vt.middleware.ldap.serviceCredential=******
edu.vt.middleware.ldap.ssl=false
edu.vt.middleware.ldap.tls=false
|
Exemple de ldappc.xml
Bloc de code |
---|
<ldappc>
<grouper>
<group-queries>
<subordinate-stem-queries>
<stem-list>
<stem>groupes</stem>
</stem-list>
</subordinate-stem-queries>
</group-queries>
|
group-queries filtre les groupes à exporter de la base grouper.
Ici, tous les groupes dans le dossier groupes et les sous-dossiers
Bloc de code |
---|
<groups structure="flat" root-dn="ou=Groups,${edu.vt.middleware.ldap.base}" ldap-object-class="groupOfNames"
ldap-rdn-attribute="cn" grouper-attribute="name" provision-member-groups="false" >
|
groups indique où les groupes seront exportés dans l'annuaire (ici ou=Groups), la classe d'objet utilisée (groupOfNames), l'attribut ldap servant d'identifiant (cn) et l'attribut grouper correspondant (name)
Bloc de code |
---|
<group-members-dn-list list-object-class="groupOfNames" list-attribute="member" />
<group-attribute-mapping ldap-object-class="groupOfNames">
<group-attribute-map group-attribute="displayExtension" ldap-attribute="description" />
</group-attribute-mapping>
|
group-attribute-mapping permet d'établir des correspondances supplémentaires entre attributs grouper et attributs ldap à alimenter
Bloc de code |
---|
</groups>
<memberships>
<member-groups-list
list-object-class="inetuser"
list-attribute="memberOf"
naming-attribute="name"
temporary-directory="" />
</memberships>
|
memberships permet de renseigner les groupes auquel appartient chaque individu dans un attribut multivalué (ici memberOf, dans lequel on renseigne les valeurs de l'attribut name de grouper)
Bloc de code |
---|
<source-subject-identifiers>
<source-subject-identifier source="mon-univ:ldap" subject-attribute="id">
<ldap-search base="ou=people,${edu.vt.middleware.ldap.base}"
scope="subtree_scope"
filter="(uid={0})"
on-not-found="warn" />
</source-subject-identifier>
</source-subject-identifiers>
|
source-subject-identifier indique où trouver les individus à placer dans des groupes
Synchroniser un annuaire ldap à partir d'une base grouper
Bloc de code |
---|
./gsh.sh -ldappc -groups -memberships -configManager ldappc.openldap.xml -properties ldappc.openldap.properties -interval 60
|
Lance en tâche de fond une instance de gsh qui effectue une synchronisation toutes les 60 secondes