Vous avez déjà un serveur CAS et un LDAP (ou Active Directory) et vous voulez que Chamilo utilise ces 2 ressources, cette page vous guide pour mettre en place une configuration standard avec les valeurs recommandées par défaut.
Comme utilisateur "administrateur", allez dans Chamilo sur la page d'administration et dans le bloc "plateforme" et cliquez sur le lien "Paramètres de configuration de Chamilo", cliquez sur l'icône CAS.
On obtient ainsi la liste des options de configuration liées à CAS que l'on peut configurer ainsi :
Enable CAS authentication : Yes
Main CAS server : URL.DEVOTRESERVEUR.CAS
Main CAS server URI :
Main CAS server port : 443
Main CAS server protocol : CAS 2 (à adapter en fonction de ce que vous avez comme configuration de votre serveur)
Enable CAS user addition : Create a user account for any new CAS-authenticated user, from LDAP
Update CAS-authenticated user account information from LDAP : Yes
Si vous voulez tester la connexion par CAS indépendamment du LDAP, il est possible de mettre la configuration suivante pour ces 2 dernières options :
Enable CAS user addition : Create a user account for any new CAS-authenticated user, from scratch
Update CAS-authenticated user account information from LDAP : No
Pour tester, nous vous conseillons d'activer le plugin permettant d'ajouter un bouton sur la page de login (il sera désactivé quand on mettra la redirection automatique vers le serveur CAS si l'utilisateur n'est pas encore authentifié). Pour se faire, allez sur la page d'administration dans le bloc plateforme et cliquez sur le lien "plugin" puis activez le plugin "Add a button to login using CAS" et entrez la configuration suivante :
title : "CAS Connexion"
region : "login_bottom"
Une fois que la connexion CAS est validée avec cette configuration on peut finaliser la mise ne œuvre en adaptant la configuration dans le fichier app/config/auth.conf.php On trouve l'ensemble des options possibles dans le fichier app/config/auth.conf.dist.php On peut voir un bloc CAS à la fin qui contient ceci :
Nous vous conseillons de modifier ceci une fois que vous êtes en production et que la connexion avec le bouton CAS en page d'accueil fonctionne correctement :
'force_redirect' => true,
Ceci forcera la redirection automatique vers le serveur CAS si l'utilisateur n'est pas déjà authentifié. Attention qu'il faudra mettre en place une page de login local si vous avez besoin d'accéder à Chamilo en vous connectant avec des comptes qui ne sont pas sur CAS.
'noCasServerValidation' => false,
Pour que la création des comptes puisse se faire en récupérant les champs des utilisateurs depuis le LDAP, il faut pour cela configurer la connexion LDAP. Ceci se fait également dans le fichier de configuration app/config/auth.conf.php pour lequel on trouve toutes les options possibles dans le fichier app/config/auth.conf.dist.php Voici un exemple avec le mail comme identifiant dans le LDAP et également pour le CAS.
Il faut donc adapter cette configuration pour la connexion au LDAP et pour la correspondance des champs entre le LDAP et Chamilo. La configuration de la connexion se fait dans le tableau extldap_config. La correspondance des champs se fait dans le tableauextldap_user_correspondance. On peut voir pour la langue de l'utilisateur que l'on a une valeur fixe "english" qui est précédée d'un "!" pour indiquer qu'il faut prendre cette valeur fixe. Il faut savoir que pour mettre une autre langue, il faut mettre son nom en anglais et tel qu'il apparait dans le dossier main/lang/ de Chamilo. Donc, si l'on veut que les utilisateurs qui seront créés à partir du LDAP aient la langue française, il faut mettre : 'language' => '!french', On peut voir dans la partie 'extra' le dernier élément qui nommé cas_user, c'est un champs extra d'utilisateur qui est créé automatiquement quand on active l'authentification CAS et qui est utilisé pour stocker la valeur de l'authentifiant CAS de l'utilisateur. C'est ce qui permettra de faire le lien entre l'utilisateur LDAP et l'utilisateur CAS.
Pour la définition du rôle des utilisateurs en fonction de règles du LDAP, il faut adapter les fonctions correspondantes que l'on peut trouver dans main/auth/external_login/ldap.inc.php
Pour tester votre configuration LDAP, vous pouvez activer temporairement l'authentification par LDAP en allant dans le fichier de configuration app/config/configuration.php et en dé-commentant les deux dernières lignes du bloc ci-dessous :
Vous aurez alors un nouveau lien "Importer des utilisateurs" sur la page d'administration dans le bloc "Utilisateurs". En suivant ce lien vous aurez accès à un formulaire permettant de faire une recherche d'utilisateurs dans votre LDAP. Si vous retrouvez vos utilisateurs c'est que la connexion est correcte. Une fois que tout est bien configuré, vous pouvez alors désactiver à nouveau cette option en remettant en commentaire les 2 dernières lignes du bloc ci-dessus.
Une fois la connexion LDAP configurée n'oubliez pas de revenir à votre configuration CAS comme vu au dessus pour permettre de récupérer les attributs des utilisateurs depuis le LDAP lors de la connexion par CAS.