You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2009-08-06 21:40:22

dga
Member
Registered: 2009-08-06
Posts: 2

Peuplement des groupes en provenance de l'AD dans GLPI 0.72

Comme mentionné dans le wiki (http://www.glpi-project.org/wiki/doku.p … onfig:ldap), la liaison utilisateur/groupe est calculée :
    * à l'import de l'utilisateur dans GLPI
    * à chaque connexion de l'utilisateur
    * lorsque l'on force la synchronisation avec l'annuaire

Or, seulement les deux premiers moyens fonctionnent pour moi. Que j'utilise la fonction "Forcer la synchronisation" de l'onglet "Synchronisation" d'un utilisateur, la fonction "Synchronisation des utilisateurs déjà importés" du menu "Administration -> Utilisateurs -> Liaison LDAP" ou le script ldap_mass_sync.php, je ne réussi pas à peupler ou mettre à jour les groupes d'un utilisateur une fois qu'il est importé dans GLPI sauf en me connectant en tant que cet utilisateur.

Voici la partie qui concerne les groupes de ma config LDAP:
Type de recherche: Utilisateurs et groupes
Filtre pour la recherche dans les groupes: (objectclass=group)
Utiliser le DN pour la recherche: Oui
Attribut utilisateur indiquant ses groupes: memberof
Attribut des groupes contenant les utilisateurs: member

p.s.: Je ne peux détruire tous mes usagers puis les ré-importer puisque ça va enlever la valeur du champ "demandeur" des nombreux tickets remplis jusqu'à ce jour avec le module Helpdesk de GLPI.

Offline

#2 2009-08-10 18:32:31

dga
Member
Registered: 2009-08-06
Posts: 2

Re: Peuplement des groupes en provenance de l'AD dans GLPI 0.72

Pour ceux qui auraient le même problème, voici un script que j'ai fait (vite et malpropre) qui refait le peuplement de tous les groupes à partir de ceux de l'AD. Certains bouts sont à changer selon le cas:

#!/bin/bash

id=0

mysql --execute="DELETE from glpi_users_groups;" glpi-prod;

for user in $(ldapsearch -h un_dc -b 'dc=mon,dc=organisation'  -D 'cn=compte,dc=mon,dc=organisation' -w MOTDEPASSE -x '(&(objectCategory=CN=Person,CN=Schema,CN=Configuration,DC=mon,DC=organisation)(|(userAccountControl=512)(userAccountControl=544)(userAccountControl=66048)(userAccountControl=66080)))' | grep '^sAMAccountName: ' | cut -d: -f2)
do
        user_id=$(mysql --execute="select * from glpi_users where name = \"$user\"" glpi-prod | tail -1 | cut -f1)

        echo user = $user , user_id = $user_id

        if [[ $user_id != '' ]]
        then
                groups_dn=$(ldapsearch -h un_dc -b 'dc=mon,dc=organisation'  -D 'cn=compte,dc=mon,dc=organisation' -w MOTDEPASSE -x "samaccountname=$user" | grep '^memberOf' | cut -d':' -f2 | perl -pe 's/^ CN\=([^,]+).+?\n/$1\n/g')

                for group in $groups_dn
                do
                        group_id=$(mysql --execute="select * from glpi_groups where name = \"$group\"" glpi-prod | tail -1 | cut -f1)

                        if [[ $group_id != '' ]]
                        then
                                let id=id+1
                                mysql --execute="INSERT INTO \`glpi_users_groups\` VALUES ($id,$user_id,$group_id);" glpi-prod;
                        fi
                done
        fi
done

Last edited by dga (2009-08-10 19:12:40)

Offline

Board footer

Powered by FluxBB