You are not logged in.
Pages: 1
Bonjour,
Nous sommes actuellement en cours de test pour modifier l'authentification de nos utilisateurs et en même temps l'attribution de profil qui doit se faire de manière automatique (l'utilisateur figure dans un groupe LDAP => Affectation d'un profil sur une entité). Actuellement, c'est principalement sur AD que se fait l'authentification et les profils sont attribués soit par des règles, soit manuellement.
Le problème est celui décrit dans ce post. En résumé, une synchronisation de l'utilisateur fonctionne bien (ajout du ou des profils en dynamique). Lorsque la personne s'authentifie, tous les profils dynamiques ont disparu. Certaines informations de l'onglet utilisateur de l'annuaire ont aussi été supprimées (téléphone2, manager, par exemple).
Nous avons fait des tests de connexion (avec Apache Directory Studio). Il s'avère que l'utilisateur ne voit pratiquement rien sur l'annuaire (volonté de notre direction de la sécurité, on suppose), alors que le compte utilisé comme compte bind (paramétrage de l'annuaire dans l'authentification et fourni par cette même direction de la sécurité) voit beaucoup plus de choses.
En utilisant des points d'arrêt (et en plaçant quelques print_r à certains endroits !), nous avons remarqué que les groupes ne remontaient pas lors de l'authentification alors qu'ils apparaissent bien lors de la synchronisation. Déduction : Le bind utilisé pour remonter les groupes lors la connexion est celui de l'utilisateur alors que pour une synchronisation, c'est celui de l'utilisateur (rootdn) paramétré dans GLPI pour cette annuaire.
Pour corriger ce problème, nous avons repéré la ligne suivante dans la classe Auth au niveau de la fonction connection_ldap :
$bind_result = $this->user_found ? @ldap_bind($this->ldap_connection, $dn, $password) : false;
Et juste en dessous, nous avons ajouté la ligne ci-dessous afin de reprendre le bon utilisateur connecté sur l'annuaire.
@ldap_bind($this->ldap_connection, $ldap_method['rootdn'],(new GLPIKey())->decrypt($ldap_method['rootdn_passwd']));
De cette manière, les requêtes LDAP qui suivent remontent correctement les informations concernant l'utilisateur et n'empêche pas la vérification du login de l'utilisateur faite dans les lignes suivantes.
Cette solution fonctionne sur différents environnements : Windows 11 (mon portable) + Apache + MariaDB 10.11 ou Linux RH8 + Apache + MariaDB 10.11 ou encore Windows Server 2019 + IIS + MariaDB 10.11, ce dernier étant celui de production pour nous ... pour l'instant.
Pour information, l'annuaire LDAP utilisé est celui de 389 Project.
Je reste à votre disposition pour plus de renseignements.
Un grand Merci pour ce que vous faîtes, GLPI est une application géniale !.
Cordialement,
GLPI : 10.0.16
OS : RH9 + Apache
php : 8.3.11,
MariaDB : 10.11.9
Online
Veuillez ouvrir un problème sur GitHub à ce sujet, ou ouvrir une demande d'extraction avec les changements que vous avez effectués.
GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.
Offline
Pour information :
https://github.com/glpi-project/glpi/issues/17492
Merci ! Cordialement,
GLPI : 10.0.16
OS : RH9 + Apache
php : 8.3.11,
MariaDB : 10.11.9
Online
Pages: 1