CAS (Central Authentication System) pour Dynacase

Introduction

Le module `dynacase-cas' permet à Dynacase-platform d'authentifier les utilisateurs sur un système CAS.

Configuration

Authentification

Au niveau de Dynacase-platform, `dynacase-cas' est un nouveau type d'authentification. Pour l'utiliser, il faut ajuster le fichier `dbacess.php' pour y déclarer `$freedom_authtype' avec la valeur `cas', et renseigner les paramètres d'authentification CAS :

$ vi context/default/dbaccess.php
[...]

$freedom_authtype = 'cas';

$freedom_authtypeparams = array(
    [...]
    'cas' => array(
                   'cookie' => 'freedom_auth',
                   'cas_version' => 'CAS_VERSION_2_0',
                   'cas_server' => 'localhost',
                   'cas_port' => 8443,
                   'cas_uri' => '/cas-server-webapp-3.4'
                   ),
    [...]
);

Les paramètres de l'authentification CAS sont les suivants :

Paramètre Description
cookie Le nom du cookie servant a référencer le numéro de la session (utiliser `freedom_auth').
cas_version Version du serveur CAS ('1.0', '2.0', 'CAS_VERSION_1_0', 'CAS_VERSION_2_0')
cas_server Adresse, ou nom DNS, du serveur CAS.
cas_port Port de connexion du serveur CAS.
cas_uri URI d'accès à la racine du serveur CAS.

Création d'utilisateurs à la volée

CAS ne fournit pas les informations/attributs de l'utilisateur (nom, prénom, adresse e-mail, etc…), par conséquent la création d'utilisateurs à la volée nécessite d'utiliser un « provider » Dynacase-platform. Ce provider permet à Dynacase-platform d'interroger le backend et de récupérer les informations concernant l'utilisateur.

Dans le cas d'un serveur CAS qui repose sur une base LDAP ou Active Directory, on peut utiliser le module freedom-networkuser qui fournit un provider capable d'interroger un serveur LDAP ou ActiveDirectory.

Pour configurer le module `freedom-networkuser', voir la documentation de freedom-networkuser.

Exemple de configuration du `dbaccess.php' pour utiliser le provider `freedomNu' :

$ vi context/default/dbaccess.php
[...]

$freedom_authtype = 'cas';

$freedom_authtypeparams = array(
    [...]
    'cas' => array(
                   'cookie' => 'freedom_auth',
                   'cas_version' => 'CAS_VERSION_2_0',
                   'cas_server' => 'localhost',
                   'cas_port' => 8443,
                   'cas_uri' => '/cas-server-webapp-3.4'
                   ),
    [...]
);

$freedom_authprovider = 'freedomNu';

$freedom_providers = array(
    [...]
    'freedomNu' => array(
                         'allowAutoFreedomUserCreation' => 'yes',
                         'fix_euro' => 'no',
                         'convert_to_utf8',
                         ),
    [...]
);

Flux d'échanges entre les serveurs

  • User Agent = le navigateur Web de l'utilisateur.
  • Web Server = le serveur Web qui héberge un ensemble d'applications (Dynacase-platform, appX, appY, etc.) qui utilisent le mécanisme SSO CAS pour l'authentification.
  • CAS Server = le serveur CAS qui centralise les demandes d'authentification
  • LDAP Server = le serveur LDAP qui contient la liste des utilisateurs utilisée en backend par le serveur CAS
  1. Le navigateur client fait une requête sur l'application Dynacase-platform. Celle-ci redirige l'utilisateur sur la page de login du serveur CAS
  2. Le navigateur se connecte sur la page de login du serveur CAS. L'utilisateur remplit et soumet le formulaire d'authentification. Si les éléments sont valides, le serveur CAS redirige l'utilisateur sur l'application initiale en rajoutant un ticket dans l'URL de connexion.
  3. Le navigateur se re-connecte donc sur l'application Dynacase-platform mais cette fois avec un numéro de ticket.
  4. Dynacase-platform le ticket et se connecte au serveur CAS pour valider le ticket. Si le ticket est valide, alors Dynacase-platform valide l'authentification et ouvre une session pour l'utilisateur
  5. Dans le cas ou la création à la volée est activée, et que le compte utilisateur n'existe pas dans Dynacase-platform, ce dernier va alors utiliser son mécanisme de « provider » (freedomNu/freedom-networkuser) pour interroger le serveur de backend LDAP et récupérer les informations nécessaires à la création du compte (nom, prénom, adresse e-mail, etc….)
modules/dynacase-cas/dynacase-cas.txt · Dernière modification: 28/09/2010 10:43 par nicolas.thing