You are not logged in.
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
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