====== Installation de LemonLDAP ====== Prérequis: * Configuration des dépôts fws et epel (voir [[tuto:ipasserelle:divers: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 ) - 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 [[http://wiki.contribs.org/SharedFolders|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** * SSL Requis: **Activé** * Sessions * Condition d'ouverture: **$groups =~ /\bshared\b/** * Journalisation * REMOTE_USER: $uid