Sortie de LemonLDAP::NG 0.9.4

Posté par  (site web personnel, Mastodon) . Modéré par baud123.
Étiquettes :
16
22
juil.
2009
Sécurité
Début juillet est sortie la dernière version de LemonLDAP::NG, un logiciel libre de WebSSO et gestion des accès.
Les nouveautés de la version 0.9.4 ont été présentées lors des 10èmes RMLL à Nantes, pendant la journée consacrée à la gestion des identités. Pour ceux qui n'ont pas eu le privilège d'assister à cette conférence, cet article rappelle les principes de fonctionnement du produit et liste les nouvelles fonctionnalités. Les plus intéressés trouveront également dans le Linux Mag de cet été une bonne introduction au logiciel. LemonLDAP::NG fournit des mécanismes d'authentification unique à l'intérieur d'Apache en utilisant les capacités de mod_perl à traiter les requêtes HTTP depuis leur arrivée, leur traitement jusqu'au renvoi de la réponse au client. La gestion de la session repose sur un cookie échangé entre les clients et les agents LemonLDAP::NG (Handlers) ne contenant qu'une clé permettant d'accéder aux données de session qui sont partagées entre les agents.

Ces données de sessions sont collectées lors de la phase d'authentification et permettent d'établir des règles d'accès complexes, avec notamment la possibilité de recourir aux expressions régulières, ou d'appeler des fonctions qui contrôlent par exemple les jours et horaires d'accès.

Le portail d'authentification présente à l'utilisateur connecté la liste des applications qui lui sont autorisées ainsi qu'un formulaire de changement de mot de passe.
Pour les administrateurs, une interface graphique permet de modifier les principaux paramètres de configuration ainsi que de naviguer dans les sessions ouvertes par les utilisateurs.

La version 0.9.4 apporte les nouveautés suivantes :

Utilisation de LDAP pour la configuration et les sessions
il était déjà possible d'utiliser un annuaire LDAP pour l'authentification, l'obtention des informations de session et pour le changement de mot de passe. À présent la configuration et les sessions peuvent être stockées dans l'annuaire, ce qui simplifie la configuration en mode réparti ou en cluster. Cela ne nécessite pas d'extension de schéma.

Accès SOAP
Les fonctions SOAP ont été entièrement réécrites, avec pour conséquence la perte de compatibilité avec les configurations SOAP des versions précédentes. Toutefois l'objectif étant la simplification de l'architecture, c'est le portail qui devient un point d'accès SOAP, rendant obsolète l'écriture de scripts CGI dédiés. La protection du point d'accès SOAP est gérée directement dans l'hôte virtuel du portail au niveau de la configuration Apache.

Notifications
Des notifications peuvent être envoyées aux utilisateurs qui devront les valider pour poursuivre leur accès au portail. Cela permet en particulier d'avertir un utilisateur de l'ouverture d'un accès à une application.

Fonctions dans les règles d'accès
Des nouvelles fonctions permettent de configurer des accès sur une période (date de début, date de fin) ou sur des jours et horaires (par exemple du lundi au vendredi de 8h à 19h).

Adresse du portail dynamique
Cela permet de présenter un portail différent selon l'application protégée d'origine ou la provenance des utilisateurs. Il est alors possible d'héberger plusieurs WebSSO avec une seule instance d'Apache.

Séparation claire des modules d'authentification, de données utilisateur et de mots de passe
Il est possible alors de choisir par exemple Kerberos pour l'authentification et LDAP pour la lecture des informations utilisateur. Le module Multi permet de chaîner plusieurs méthodes.

Politique des mots de passe LDAP
Le WebSSO gère à présent l'ensemble de la politique des mots de passe implémentée dans la plupart des annuaires LDAP. En particulier, le portail saura exiger le renouvellement du mot de passe lorsque celui aura été réinitialisé par un administrateur. Lors du changement de mot de passe, des messages d'erreurs explicites sont retournés aux utilisateurs (mot de passe trop court, historique, etc.).

Configuration du cross-domain
L'activation du cross-domain est simplifiée par l'ajout d'un paramètre dans le portail et dans l'agent. Le cross-domain permet d'ouvrir une session SSO sur plusieurs domaines DNS différents.

Validation de formulaires
Cette fonctionnalité est juste apparue dans cette version et doit être utilisée avec précaution. Elle permet de poster des données sur des applications protégées, ce qui étend la compatibilité de LemonLDAP::NG avec n'importe quelle application Web.

Double cookie
Lorsqu'elle est activée, cette fonction créée deux cookies, un pour HTTP et l'autre pour HTTPS. Ainsi un cookie dérobé en HTTP ne pourra pas servir à entrer sur des applications HTTPS.

Aller plus loin

  • # Validation du cookie ?

    Posté par  (site web personnel) . Évalué à 3.

    J'ai déjà eu à mettre en place une délégation d'authentification vers LemonLDAP à partir d'un autre système de SSO. En gros, on a 2 S.I., un avec LemonLDAP, l'autre avec un SSO X, et ce dernier doit accepter les authentifications délivrées par le premier. Si dans le S.I. X on reçoit le cookie d'authentification de LemonLDAP, on considère qu'on est déjà authentifié sur l'autre S.I. et on crée silencieusement une nouvelle session.

    Ça marche, sauf qu'on n'a aucun moyen de valider le cookie LemonLDAP. Autrement dit, n'importe qui peut se forger un tel cookie et va passer. Ce qui est d'une pourritude sans nom :-/

    Je n'ai pas trouvé mention d'un tel service sur le site de LemonLDAP::NG. Est-ce que ça existe enfin ?
  • # Connexion avec Apache

    Posté par  (site web personnel) . Évalué à 3.

    J'utilise souvent le module Apache pour authentifier les personnes. Très souvent, les application reprenne cette authentification et ne demande plus rien.

    L'avantage, l'authentification est gérée par Apache et non par le code php... J'ai bien plus confiance (à tord peut être !). D'ailleurs, le login et le mot de passe devrait être géré par le navigateur et non via le code HTML... On aurait alors un bouton dans son navigateur pour se déconnecté. Ce serait bien mieux que les n systèmes d'aujourd'hui.


    Je voudrais mettre un SSO directement dans le fichier de conf d'apache, Il y a moyen de faire cela simplement ?
    • [^] # Re: Connexion avec Apache

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      En fait LemonLDAP::NG est utilisé directement dans les fichiers de conf d'Apache.

      Si tu as déjà configuré tes applications pour qu'elles reposent sur la sécurité Apache, alors il te suffit dans tes hôtes virtuels Apache de remplacer la configuration de l'authentification (généralement les paramètres Auth*) pour faire appel au module LemonLDAP::NG (PerlHeaderParserHandler My::Package).

      Bien entendu il faudra inscrire les hôtes virtuels protégés dans l'interface d'administration de LemonLDAP::NG (le Manager).

      En conclusion, toute application compatible avec un mécanisme htaccess d'Apache est directement compatible avec LemonLDAP::NG.
      • [^] # Re: Connexion avec Apache

        Posté par  (site web personnel) . Évalué à 2.

        Génial !

        J'ai un gros coup de mous... Il faut dire que je gère emmerde sur emmerde depuis quelques temps !

        * Il y a un exemple clair ?

        * Il y a un dépot pour debian ? etch ? lenny ?

        En tout cas, merci. La dernière fois qu'il y avait eu une annonce ici, j'étais allé sur le site et je n'avais pas compris cela. C'est peut être un point à mettre plus en avant. Quand je vois les articles pour CASifier une application (il y en a un dans Linux Magazine en ce moment), cela ne donne pas du tout envie car il faut modifier les applications en profondeur et donc c'est clair pour moi que ce n'est pas maintenable avec mes ressources humaines.

        Donc là, si on change juste la tuyauterie d'Apache, c'est bien plus maintenable.
  • # Validation de formulaires

    Posté par  . Évalué à 2.

    Je vois que cette version permet de s'authentifier via HTTP POST, et c'est une bonne nouvelle, ça permet de protéger (enfin) des appli comme cacti sans les modifier (anciennement, pour ceux qui ne connaissent pas, il fallait soit un support natif, soit que la reconnaissance des utilisateurs se fasse via les en-têtes).

    Par contre je ne trouve pas comment faire dans la doc, ni dans le manager (que ça soit la démo ou la version que j'ai installée vite fait)... Quelqu'un sait ?
    • [^] # Re: Validation de formulaires

      Posté par  (site web personnel, Mastodon) . Évalué à 1.

      Effectivement ce n'est pas encore documenté, car cette fonctionnalité sort tout juste du carton, C'est en haut de ma liste ;)

      Pour Cacti par contre, il est possible d'utiliser un mécanisme d'authentification externe, donc ça s'intègre nativement.

      De plus en plus d'applications sont capables de faire confiance au REMOTE_USER, c'est vers cette technique qu'il faut aller. Pour les vieilles applis, on pourra effectivement passer par la soumission de formulaires (avec une bonne doc...)

      Clément.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.