A partir de GLPI 0.68.1, des hooks ont été rajoutés dans la partie authentification pour permettre les choses suivantes :
  • ajouter des traitements supplémentaires, en plus de l'authentification LDAP avant de déclarer l'utilisateur authentifié.
  • enrichir les informations remontées depuis l'annuaire qui seront utilisables dan GLPI.

Hook concernant l'authentification

Ce hook a été placé dans les fonctions ldap_connection et ldap_connection_active_directory afin de réaliser des traitements supplémentaires, par exemple vérifier l'appartenance d'un utilisateur à un groupe ldap ou vérifie la valeur d'un attribut de l'entrée utilisateur.

Pour implémenter ce hook, il faut créer un plugin et ajouter la configuration suivante :

   $plugin_hooks['restrict_ldap_auth']['ldap_check_group'] = 'plugin_authentication_action_check_group_<votre plugin>';
La méthode plugin_authentication_action_check_group_<votre plugin> a ce prototype :
function plugin_authentication_action_check_group_<votre plugin> ($infos)
{
   return 1;
}

La variable $infos contient l'ensemble des données lues depuis l'entrée utilisateur de l'annuaire LDAP.
Une fois vos traitements effectués, il faut renvoyer une valeur de retour, indiquant si l'utilisateur est ou non authentifié :
  • return 0 : l'utilisateur n'est PAS authentifié.
  • return 1 : l'utilisateur est authentifié.

Hook concernant la remontée d'informations depuis l'annuaire

Ce hook vous permet d'enrichir les informations disponibles dans GLPI et provenant de l'annuaire (ou de toute autre source d'ailleurs). Par exemple, il peut vous servir à aller chercher des informations depuis un autre annuaire, ou une base de données en utilisant les données que GLPI a déjà remontées.

Pour implémenter ce hook, il faut créer un plugin et ajouter la configuration suivante :

   $plugin_hooks['retrieve_more_data_from_ldap']['ldap_get_infos'] = 'plugin_authentication_action_retrieve_more_attributes_<votre plugin>';

La méthode plugin_authentication_action_retrieve_more_attributes_<votre plugin> a ce prototype :

function plugin_authentication_action_retrieve_more_attributes_<votre plugin> ($infos)
{
   return $infos;
}

La variable $infos contient l'ensemble des informations présentes dans le profil GLPI de l'utilisateur.
Pour les enrichir, il suffit de rajouter des données dans $infos.
Il faut enfin renvoyer $infos, pour que la variable soit réinjectée dans GLPI.