Installation de LemonLDAP

Prérequis:

Configuration des dépôts fws et epel (voir extras_repo)

Installation des RPMS

La première étape est l'installation des différents RPM. Il faut activer le dépôt epel pour les dépendances

yum --enablerepo=epel --enablerepo=fws install smeserver-lemonldap-ng

Une fois les RPMS installés, il suffit de re-configurer apache:

signal-event webapps-update

Les domaines virtuels nécessaire à la gestion de LemonLDAP sont créés automatiquement:

https://sso-manager.domain.tld permet d'accéder à la console de gestion de LemonLDAP. Par défaut, cette partie est protégée par une authentification basique HTTP, et demande le login admin du serveur

https://auth.domain.tld est le portail utilisateur

https://soapsso.domain.tls est le domaine utilisé pour les requêtes SOAP (utilisé par les handlers distants)

Protection d'une appli web

La protection d'une application Web se passe en plusieurs étapes

Déclaration du virtualhost dans la console de gestion de LemonLDAP, et configuration des règles souhaitées (ou simplement ajout des règles si le virtualhost est déjà déclaré)

Ajout de la ligne “PerlHeaderParserHandler My::Package” dans la configuration apache (soit au niveau du vhost, soit dans une section <Directory>

Configuration de l'application (si nécessaire)

VirtualHost et protection via LemonLDAP

Pour protéger un domaine virtuel par LemonLDAP sur un serveur SME (ou une iPasserelle), il faut utiliser les templates fournit par le paquet smeserver-webapps-common:

db domains setprop myapp.domain.tld TemplatePath WebAppVirtualHost DocumentRoot /opt/myapp LemonLDAP enabled signal-event domain-modify

Particularités shared-folders

Si vous utilisez un dossier partagé (contrib SharedFolders) pour y stocker votre application web, il faut aussi penser à désactiver les alias sur le domaine primaire (qui lui n'est pas protégé par LemonLDAP en général):

db accounts setprop myapp AliasOnPrimary disabled signal-event share-modify-server myapp

Authentification SSL

Il est possible de configurer une authentification SSL (les clients présentent un certificat utilisateur pour s'authentifié auprès du portail). Pour activer cette fonctionnalité:

Il faut tout d'abord disposer d'une PKI (on peut utiliser PHPKi par exemple). La CA de cette PKI signera les certificat des utilisateurs

Pour chaque utilisateur, il faudra créer un certificat qui porte son login comme CN (Nom Commun)

Il faut copier la partie public de la CA dans /etc/pki/tls/certs/cacert.pem et rendre ce fichier lisible par tous (chmod 644 /etc/pki/tls/certs/cacert.pem). Si vous utilisez PHPki sur le même serveur que LemonLDAP, il suffit de faire:

cp /opt/phpki/phpki-store/CA/certs/cacert.pem /etc/pki/tls/certs/cacert.pem chmod 644 /etc/pki/tls/certs/cacert.pem chown root:root /etc/pki/tls/certs/cacert.pem

Il faut activer la fonction avec les commandes suivantes:

db configuration setprop lemonldap SSLAuth optional signal-event webapps-update

Pour activer la vérification de la validité des certificats clients par une CRL, il faut configurer l'URL de mise à jour. Si on utilise PHPki sur le même serveur:

db configuration setprop httpd-e-smith CrlUrl http://localhost:940/phpki/index.php?stage=dl_crl_pem signal-event webapps-update

Il ne reste plus qu'à configurer le reste dans le gestionnaire de configuration de LemonLDAP (https://sso-manager.domain.tld). Voici la liste des paramètres à modifier:

Paramètres généraux

Modules d'authentification

Module d'authentification: Multiple (mettre SSL;LDAP dans le champ de saisie

Paramètres SSL

Champ extrait du certificat: SSL_CLIENT_S_DN_CN

Attribut LDAP pour le filtre: uid

Sessions

Condition d'ouverture: $groups =~ /\bshared\b/

Journalisation

REMOTE_USER: $uid