Skip to content

Authentification

Jérôme Bousquié edited this page Sep 6, 2017 · 14 revisions

Modes d'authentification

Winlog supporte trois modes d'authentification : "simple" "LDAP" et "CAS".

Fichier de configuration

Dans le fichier de configuration générale winlog_admin_config.php, choisissez le mode d'authentification souhaité dans la variable $auth_mode :

  • "simple"
  • "CAS"
  • "LDAP"
// mode d'authentification : "CAS", "simple", "LDAP"
$auth_mode = "CAS";

Mode simple

L'authentification simple est un système de paires compte/password stockées dans un fichier.
Ce mécanisme ne devrait pas être utilisé en production. Il est néanmoins utile pour faire tous les réglages et la configuration lors de l'installation de Winlog.

Pour activer ce mode, déclarez la valeur "simple" dans le fichier de configuration.

// mode d'authentification : "CAS", "simple", "LDAP"
$auth_mode = "simple";

Puis renommez le fichier password.example.php en password.php et éditez ce dernier.
Déclarez ensuite manuellement chaque compte comme clé du tableau php $passwords et chaque mot de passe associé comme valeur de l'élément du tableau.

$passwords = array();
$passwords['user1'] = "password1";
$passwords['user2'] = "password2";
// etc...

Dès que le mode simple est activé, Winlog se charge de présenter un formulaire d'authentification avant d'accéder à l'interface d'administration.
N'oubliez pas de déclarer au moins un des comptes comme administrateur pour accéder à l'interface d'administration.
Dans le fichier winlod_admin_conf.php :

// Utilisateurs autorisés : les superviseurs peuvent tout voir, les administrateurs peuvent modifier
$administrateurs = array("user1");

Mode LDAP

L'authentification LDAP s'appuie sur un serveur LDAP externe. Ce serveur peut être le serveur Active Directory depuis lequel Winlog récupère les informations sur les machines, les comptes et les salles.

Ce mode nécessite l'existence d'un compte LDAP ayant accès au moins en lecture à la partie de l'annuaire où sont rangés tous les comptes utilisateurs.

Comme le mot de passe est envoyé du serveur Winlog au serveur LDAP, il est très fortement recommandé que les requêtes soient chiffrées (ldaps) entre ces deux serveurs.

Pour activer le mode LDAP, déclarez la valeur "LDAP" dans le fichier de configuration.

// mode d'authentification : "CAS", "simple", "LDAP"
$auth_mode = "LDAP";

Copiez le fichier admin/ldap_conf.example.php dans admin/ldap_conf.php et éditez ce dernier :

$auth_ldap_server = "ldaps://ip_serveur_ldap";                              // IP ou nom d'hôte du serveur LDAP
$auth_ldap_user   = "CN=reader,CN=Users,DC=iut,DC=local";                   // DN d'un compte autorisé en lecture sur l'annuaire
$auth_ldap_pass   = "Maude Passe";                                          // mot de passe de ce compte
$auth_ldap_basedn = "DC=iut,DC=local";                                      // DN : base de recherche des comptes
$auth_ldap_port = "636";                                                    // port du serveur : 636 (ldaps) recommandé
$auth_ldap_attribut_identifier = "sAMAccountName";                          // attribut identifiant d'un compte dans l'annuaire
$auth_ldap_AD = true;                                                       // le serveur LDAP est-il un serveur AD ?
$auth_ldap_message = "Veuillez vous authentifier avec votre compte et votre mode passe Windows"; // message sur le formulaire d'authentification LDAP

et donnez les valeurs adéquates aux variables de configuration de la connexion LDAP.
$auth_ldap_server est le nom ou l'IP du serveur LDAP. Il est impératif de commencer la chaîne par "ldaps://" pour forcer une communication chiffrée.
Si vous ne souhaitez pas vérifier le certificat du serveur LDAP, ajoutez simplement dans le fichier /etc/ldap/ldap.conf la clause suivante :

TLS_REQCERT never
  • $auth_ldap_user est un compte LDAP ayant un accès en lecture. Cela peut être le même compte que celui utilisé par Winlog pour lire les données des machines, comptes et salles.
  • $auth_ldap_basedn est la racine à partir de laquelle faire les recherches sur les comptes utilisateurs pour l'authentification.
  • $auth_ldap_attribut_identifier est le nom de l'attribut LDAP identifiant le username transmis. Il pourrait valoir "cn" pour un annuaire LDAP standard ou encore "sAMAccountName" si on souhaite le comparer à un compte Windows d'un AD.
  • $auth_ldap_AD est un booléen pour indiquer si l'annuaire LDAP est un serveur Active Directory, auquel cas certaines options doivent impérativement transmises par Winlog pour que les requêtes fonctionnent.
  • $auth_ldap_message est le message qui apparaitra sur le formulaire d'authentification LDAP.

Mode CAS

Winlog est une application CASsifiée.
Pour que le mode CAS fonctionne, il est impératif d'installer au préalable la librairie php-cas-client

pear install  https://developer.jasig.org/cas-clients/php/current.tgz

référence : https://wiki.jasig.org/display/casc/phpcas+installation+guide
note : https://wiki.jasig.org/display/CASC/phpCAS+requirements

Déclarez ensuite le mode CAS dans le fichier de configuration winlog_admin_conf.php :

// mode d'authentification : "CAS", "simple", "LDAP"
$auth_mode = "CAS";

Puis éditez le fichier libhome.php dans lequel vous déclarez la localisation (URL) du serveur CAS à utiliser, sans écrire le nom du protocole (https) :

// Variables
$cas_server = 'cas.iut-rodez.fr';
$cas_path = '/cas';
$cas_port = 443;

Note : si le fichier CAS.php n'est pas installé dans le répertoire courant, pensez à changer le chemin dans le include() vers l'emplacement effectif de la librairie CAS.php

// import phpCAS lib
include_once('/path/to/CAS.php');

N'oubliez pas de déclarer au moins un compte CAS comme administrateur pour pouvoir accéder à l'interface d'administration.
Dans le fichier winlod_admin_conf.php :

// Utilisateurs autorisés : les superviseurs peuvent tout voir, les administrateurs peuvent modifier
$administrateurs = array("CAS_user1");