Thème graphique
Un nouveau thème graphique basé sur Bootstrap est disponible. Ce thème est adaptatif (responsive), il permet donc d'utiliser le SSO depuis tout type de périphérique (téléphone, tablette, poste de travail).
De nombreux thèmes sont disponibles sur Internet permettant de changer l’apparence d'un site utilisant Bootstrap, facilitant ainsi la personnalisation de l'interface Web de LemonLDAP::NG.
Création de compte
LemonLDAP::NG propose plusieurs libre-services (self service), en particulier la possibilité de réinitialiser son mot de passe lorsqu'il a été perdu. La nouvelle version propose désormais dans le même esprit de pouvoir créer un compte si l'on n'en possède pas.
La démarche est simple, calquée sur la plupart des services similaires proposés par des sites en ligne :
1. L'utilisateur remplit un formulaire avec nom, prénom et adresse mail
2. Il reçoit un message avec un lien sur lequel cliquer
3. Après avoir cliqué, il reçoit un message lui confirmant la création de son compte, avec ses informations de connexion
Bien entendu cette fonctionnalité a peu d'intérêt en entreprise, où les utilisateurs sont déclarés dans un annuaire central et ne peuvent choisir de s'inscrire ou non au service. Toutefois cela offre désormais la possibilité de proposer plusieurs services en ligne protégés par LemonLDAP::NG, permettant à un nouvel utilisateur de s'inscrire s'il ne possède pas de compte.
Utilisation de Mouse
Mouse est un module Perl permettant une manipulation haut niveau des objets. Ce module est utilisé dans la nouvelle version de LemonLDAP::NG, ce qui a entraîné beaucoup de réécriture de code, avec un objectif de meilleure maintenabilité.
Ces changements sont visibles essentiellement des développeurs, mais ils ont tout de même permis quelques améliorations :
- gestion unifiée du cache des sessions, pour tous les types de session (SSO, CAS, SAML, etc.) ;
- centralisation des valeurs par défaut des attributs de configuration ;
- simplification des appels au Handler dans la configuration Apache ;
- support des captcha en cluster ;
Génération des identifiants
C'est le principe du SSO : l'accès aux différentes applications est possible à l'aide d'un jeton, en l'occurrence pour LemonLDAP::NG une clé de session stockée dans un cookie.
Par défaut, les identifiants de session sont générés en MD5 avec une taille de 32 caractères. Cela peut poser des problèmes de sécurité, en particulier si un attaquant tente de découvrir un identifiant de session par force brute. Ce n'est pas spécifique au SSO, ce type d'attaque est possible sur toute application utilisant un cookie de session. Toutefois dans le cas du SSO, la découverte de la session permet l'accès à toutes les applications protégées.
La nouvelle version de LemonLDAP::NG permet de choisir son propre module de génération d'identifiant de session, et propose un module basé sur SHA, créant des clés sur 64 caractères.
SAML
Le mode SSO initié par le fournisseur d'identité (SSO IDP initiated) est désormais disponible. Il permet de générer des URLs sur le portail LemonLDAP::NG (agissant comme IDP SAML) qui transmettent directement une réponse SAML à un fournisseur de service (SP).
Cela permet une authentification en deux étapes (authentification sur l'IDP puis accès au SP) au lieu des trois étapes du processus standard (accès au SP, authentification sur l'IDP puis retour sur le SP).
La nouvelle version de LemonLDAP::NG permet également une configuration plus fine des dates utilisées dans les messages SAML (durée de validité des assertions et des sessions).
Nginx
Depuis ses origines (il y a plus de 10 ans), LemonLDAP::NG a été conçu pour fonctionner avec Apache. Le support de Nginx étant une demande de plus en plus forte, l'équipe de développement a planché sur le sujet.
Une première implémentation du Handler en LUA a été publiée. Cette implémentation ne permet pas de couvrir 100% des fonctionnalités offertes par le Handler standard (gestion des expressions régulières, de l'interception des déconnexion, etc.), c'est toutefois une bonne base de départ pour protéger l'accès à une application derrière Nginx.
Des travaux sont encore en cours sur un Handler Perl pour Nginx, pour l'instant freinés par les manques de l'API Perl de Nginx. Les discussions entre les communautés sont en cours (et toute aide est la bienvenue sur le sujet).