Authentification externe

Un article de Claroline Documentation.

Note préliminaire: Ce document ne traite pas l'identification SSO avec CAS.

Depuis Claroline 1.6, la plate-forme est capable de se fier à un système externe concernant l'authentification ainsi que la gestion du profil des utilisateurs. Cette authentification externe est basée sur une collection de drivers stockés dans le répertoire de Claroline/auth/exauth/drivers.

Ces drivers peuvent être chargés par le noyau de Claroline lorsqu'un utilisateur tente de se logguer à la plate-forme.

Les premiers usages de ces drivers sont :

  • Ouvrir le driver concerné à l'intérieur du modificateur de texte et adapter les paramètres pour votre propre contexte (Claroline/exhauth/drivers).
  • Décommenter la ligne concernée dans le fichier général de configuration Claroline (Claroline/inc/conf/auth.conf.php).

Comment cela fonctionne-t-il?

Ces drivers peuvent être appelés "authentification de système" par Claroline dans deux circonstances :

  • Lorsqu'un utilisateur n'a jamais été loggué à la plate-forme et essaye de se logguer à Claroline pour la première fois, aucun enregistrement concernant cet utilisateur n'est trouvé dans le système Claroline. Le système tente alors de rechercher cet utilisateur dans une liste de systèmes d'authentification externe prévu par ce fichier de configuration. Quand il le trouve, Claroline recopie le profil de l'utilisateur dans sa propre table d'utilisateurs, en précisant que cela provient du système d'authentification externe.

Le driver traitant ce cas est appelé, par le noyau de Claroline, comme la ligne qui suit dans le fichier de configuration Claroline :

$extAuthSource['authSourceName']['newUser'] = "path/file";


  • Lorsque l'utilisateur se loggue à la plate-forme la fois suivante, un enregistrement le concernant est déjà stocké dans le système Claroline. À la base de cet enregistrement, Claroline sait d'où vient le profil de cet utilisateur. Claroline tentera donc de se connecter au système d'identification externe le concernant, afin de vérifier si le compte de cet utilisateur permet toujours de se connecter avec ce mot de passe. Cela permettra aussi de mettre à jour, à partir du système d'authentification externe, chaque utilisateur actuellement stocké dans le système Claroline.

Le driver traitant de ce cas est appelé, par le noyau de Claroline, comme la ligne qui suit dans le fichier de configuration Claroline :

$extAuthSource['authSourceName']['login'  ] = "path/file";

Les dispositions du driver

Chaque driver Claroline dispose de 5 paramètres :

  • $authSourceName : l'identité de la source externe d'authentification
Exemple: $authSourceName = 'phpnuke';


  • $authSourceType : le type technique de la source externe d'authentification
Exemple : $authSourceName = 'DB';


  • $extAuthOptionList : les paramètres nécessaires à la connexion à la source externe

d'authentification et le champ pour y accéder

Exemple: $extAuthOptionList = array(
                  'url'      => 'ldap://server_address',
                  'port'     => '636',
                  'basedn'   => 'ou=personne,o=your organisation unit,c=domaine',
                  'userattr' => 'uid',
                  'useroc'   => 'person',
                  'attributes' => array('sn', 'givenName', 'telephoneNumber','mail'),
              );


  • $extAuthAttribNameList : montre la manière dont la donnée est récupérée du système d'authentification externe correspondant à la structure de données de Claroline. Les clés sont les attributs de Claroline, et la valeur est l'authentification externe des attributs.
Exemple : $extAuthAttribNameList = array (
                  'lastname'     => 'sn',
                  'firstname'    => 'givenName',
                  'email'        => 'mail',
                  'phoneNumber'  => 'telephoneNumber',
                  'authSource'   => 'ldap'
              );


  • $extAuthAttribTreatmentList : montre chaque traitement optionnel préliminaire de la donnée récupéré par la source d'authentification externe avant d'être dans Claroline. Les clés sont concernées par l'attribut Claroline, et leurs valeurs sont le nom et la fonction qui permettent le traitement. Vous pouvez utiliser une fonction PHP standard ou des fonctions définies vous-même.
Exemple : $extAuthAttribTreatmentList = array (
              'lastname'     => 'utf8_decode',
              'firstname'    => 'utf8_decode',
              'loginName'    => 'utf8_decode',
              'email'        => 'utf8_decode',
              'officialCode' => 'utf8_decode',
              'phoneNumber'  => 'utf8_decode',
              'status'       => 'treat_status_from_extauth_to_claroline'
      );

Documentation PEAR

Le système d'authentification de Claroline est basé sur la bibliothèque PEAR Auth.

Outils personels