Nous avons retenu FreeIPA (Identity Manager Software) comme brique centrale de l’infrastructure chargée d’assurer la fonction d’annuaire et d’authentification centralisée. Notre choix s’est ensuite porté sur LemonLDAP-NG en tant que portail d’authentification unique sur lequel nous venons authentifier nos services, dont notre solution de messagerie BlueMind. En voici le détail…
PREREQUIS
Afin d’effectuer les manipulations que nous vous présentons, vous devez disposer d’une instance fonctionnelle de LemonLDAP et de Bluemind avec un backend d’utilisateurs LDAP commun.
- Installation de LemonLDAP-NG.
- Installation de Bluemind.
Nous verrons l’installation et la configuration de ces produits dans de futurs billets de blog.
STEP 1 : LEMONLDAP-NG
Dans LemonLDAP, il faut activer et configurer le module CAS ici : General Parameters -> Issuer modules -> CAS
Une fois dans le module CAS, vous devez configurer les options de la façon suivante :
Activation: On # Activation du module CAS
Path: ^/cas/ # URL d’appel au module CAS
Use rule: On # Utilisation sans restriction
Options
CAS login: # Champ de session utilisé pour le login CAS. Par défaut, l’uid.
CAS exported attributes: # Attributs que l’on souhaite transmettre à l’application externe
mail $mail
uid $uid
Politique de contrôle d'accès: None # Définit le type de contrôle d’accès fait par le service CAS
Nom du module des session CAS: Apache::Session::File # Méthode de stockage des sessions CAS
Options du module des sessions CAS: # Options relatives à la méthode de stockage
Directory /var/lib/lemonldap-ng/sessions # Emplacement des fichiers de session
LockDirectory /var/lib/lemonldap-ng/sessions/lock # Emplacement des fichiers de lock
generateModule Lemonldap::NG::Common::Apache::Session::Generate::SHA256 # Module de génération des sessions
Il faut maintenant ajouter un nouveau Virtual Host via Virtual Hosts -> Add virtualhost -> mail.company.tld en adaptant les options suivantes à votre propre environnement :
mail.company.tld # URL de votre webmail Bluemind
Access rule
Default rule:
default accept # Pas de filtrage d’utilisateurs sur ce VirtualHost
Exported headers: # Pas de headers HTTP spécifiques exportés
Form replay: # Pas de rejeu de formulaire
Options:
Port: # Port spécifique
Value -1
HTTPS: On # Activation du HTTPS
Maintenance mode: Off # Activation du mode maintenance
Aliases: # URL aliases
Si comme nous, vous souhaitez utiliser LemonLDAP-NG comme portail applicatif, vous pouvez ajouter des applications à l’interface via General Parameters -> Portal -> Menu -> Categories and applications Pour ajoutez Bluemind, choisissez une categorie, puis configurer l’application comme ci-dessous :
Name: Bluemind
Description: Email Web Client
URI: mail.company.tld
Logo: mailappt.png
Display application: Enabled
STEP 2 : BLUEMIND
Pour pouvoir utiliser l’authentification CAS de Bluemind, il faut installer le plugin adéquat : Sous Debian-like :
apt install bm-plugin-hps-cas
Sous RedHat-like :
yum install bm-plugin-hps-cas
Il faut redémarrer les services de Bluemind pour prendre en compte l’installation du plugin :
bmctl restart
Pour activer l’authentification CAS, vous avez deux options (au choix) :
- via l’interface d’administration, en tant qu’admin0 :
- ou en ligne de commande :
root@mail:~# vim /etc/bm/bm.ini [global] ... casUrl = https://cas.domain.tld/cas/ casDomain = domain.tld Attention. Bien que les deux solutions doivent fonctionner, seule la modification du fichier bm.ini semble être efficace.
Après ces modifications, il faut relancer le service hps, en charge de l’authentification, de Bluemind :
service bm-hps restart
L’authentification est maintenant déléguée au LemonLDAP. Il n’est donc plus possible d’accéder à l’interface d’authentification de BlueMind. Pour utiliser l’authentification native de Bluemind (pour l’utilisateur admin0 par exemple), il faut utiliser l’URL suivante :
https://mail.domain.tld/native
Pour nous contacter : info@worteks.com
Sources
- Protocole CAS : https://fr.wikiliedia.org/wiki/Central_Authentication_Service
- LemonLDAP-NG et CAS : https://lemonldap-ng.org/documentation/latest/idpcas?s[]=cas
- Bluemind et CAS : https://forge.bluemind.net/confluence/display/BM35/Mise+en+place+du+SSO+CAS