Web SSO avec LemonLdap-ng (Debian) [2 - Configuration] [1 - Serveur CAS]

Bonjour, dans ce billet, nous allons voir comment créer une première configuration pour LemonLdap afin qu’il puisse faire office de serveur CAS (à partir de l’interface web).

Configuration du portail :

Rendez-vous dans « Paramètres généraux » -> « Portail » .

URL : http://portal.mondomaine.fr

La recherche des utilisateurs et de leurs attributs se fera dans un annuaire LDAP.

Configuration de l’authentification :

Rendez-vous dans « Paramètres généraux » -> « Modules d’authentification » .

Sélectionnez LDAP pour les 3 modules (Authentification, Utilisateur, Mot de passe).

Sauvez la configuration.

Retournez dans le menu précédant, un sous-menu apparait « Paramètres LDAP ». Celui-ci va vous permettre de configurer la connexion et les différents filtres de recherche.

Exemple de configuration :

Niveau d'authentification : 2

Connexion :

Hôte : ldap://ldap.mondomaine.fr
Port : 389
Base de recherche des utilisateurs : dc=mondomaine,dc=fr

Groupes :

Base de recherche : ou=posix_groups,dc=mondomaine,dc=fr
Classe d'objet : posixGroup
Attribut cible : memberUid
Attribut source utilisateur : uid
Attributs recherchés : cn
Récursif : désactivé

Le sous menu « Groupes » permet de configurer une « moulinette » qui va lister automatiquement les groupes existants et les utilisateurs qui en font parti (bien utile si vous n’avez pas d’attribut « memberOf » dans vos compte utilisateurs).

A ce stade, vous devriez pouvoir vous authentifier sur le portail (http://portal.mondomaine.fr)avec un utilisateur LDAP.

Configuration serveur CAS :

Rendez-vous dans « Paramètres généraux » -> « Modules fournisseur » -> « CAS » .
Exemple de configuration :

Activation : activer
Chemin : ^/cas/
Règle d'utilisation : $authenticationLevel > 1

Options :

Identifiant CAS : uid
Politique de contrôle d'accès : none

Création de certificats (auto signés) pour CAS :
Connectez-vous en ssh au serveur (si vous êtes à distance).
Création de la clé privée :

# openssl genrsa -des3 -out mondomaine.key 1024
# openssl req -new -key mondomaine.key -out mondomaine.csr

Création du certificat :

openssl x509 -req -days 365 -in mondomaine.csr -signkey mondomaine.key -out mondomaine.crt

Déplacement des fichiers :

# mv mondomaine.key /etc/ssl/private/
# mv mondomaine.crt /etc/ssl/certs/
# mv mondomaine.csr /etc/ssl/certs/

Modification de la configuration de LemonLdap pour inclure le certificat (https) :
Editez le fichier /etc/lemonldap-ng/portal-apache2.conf

Modifiez :
en

Ajoutez (dans le virtual host) :

SSLEngine On
SSLCertificateFile /etc/ssl/certs/mondomaine.crt
SSLCertificateKeyFile /etc/ssl/private/mondomaine.key
SSLCertificateChainFile /etc/ssl/certs/mondomaine.csr

Editez le fichier /etc/apache2/ports.conf et rajoutez la ligne suivante :

<IfModule mod_ssl.c>
Listen 443
</IfModule>

Activez le module apache ssl :

root@hv-4:~# a2enmod ssl
apache2ctl restart

Le portail répondra maintenant à httpS://portal.mondomaine.fr donc, modifiez la configuration du portail en conséquence.

Voilà, vous serveur doit être opérationnel.

Test :

Pour tester, voici un exemple de test d’authentification CAS en PHP (basé sur la librairie phpCAS disponible ici) que vous pouvez installer sur un de vos serveur web.

Arborescence :
|/index.php
|/CAS/config.php
|—–/Client.php
|…

Fichier index.php :

<?php
include_once('CAS.php');
require_once ('config.php');
phpCAS::setDebug();
phpCAS::client(CAS_VERSION_2_0,$cas_host,$cas_port,$cas_context);
phpCAS::setNoCasServerValidation();
phpCAS::forceAuthentication();

if (isset($_GET['logout']) && $_GET['logout'] == "Déconnexion")
        phpCAS::logout();

?>
        <h1>Authentification CAS réussie !</h1>
        <p>L'utilisateur est <b><?php   echo phpCAS::getUser(); ?></b>.</p>
        <form action='#' method='GET' >
                <input type='submit' name='logout' value='Déconnexion'>
        </form>

Extrait du fichier config.php :

$phpcas_path = 'CAS/';
// Full Hostname of your CAS Server
$cas_host = 'portal.mondomaine.fr';
// Context of the CAS Server
$cas_context = '/cas';
$cas_port = 443;
$cas_real_hosts = array('portal.mondomaine.fr');

Les informations de débugage se trouve (par défaut) dans /tmp/phpCAS.log .

 

 

Cette entrée a été publiée dans Système, avec comme mot(s)-clef(s) , , , , , , , , . Vous pouvez la mettre en favoris avec ce permalien.

Une réponse à Web SSO avec LemonLdap-ng (Debian) [2 - Configuration] [1 - Serveur CAS]

  1. Cool pour le partage de l’info ;)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Please copy the string Et80Ew to the field below: