Bonnes ID ~ Clément Oudot

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - perl

Fil des billets

vendredi, avril 26 2013

Sortie de LemonLDAP::NG 1.2.4

Une nouvelle version de LemonLDAP::NG est sortie le 23 avril 2013 : la version 1.2.4.

Cette version sera l'une des dernières de la branche 1.2, l'équipe travaillant désormais sur la version 1.3. Elle ne comporte que quelques correctifs :

  • Suppression de certains logs de debug dans le backend de configuration LDAP
  • Meilleure gestion des logs de l'interface du backend de configuration
  • Correction d'un bug empêchant l'utilisation du backend Multi avec un # dans le nom des modules
  • Correction des problèmes d'encodage dans les POD des modules Perl

Les notes de publications sont visibles ici, et cette nouvelle version est téléchargeable ici.

Pensez à mettre à jour votre installation !

mardi, février 19 2013

LemonLDAP::NG 1.2.3 : Soleil !

Le 8 février dernier est sortie la version 1.2.3 de LemonLDAP::NG. Prévue à l'origine pour n'être qu'une version corrective de la branche 1.2, de nombreux bugs et améliorations ont été inclus dans cette version, ce qui explique sa sortie tardive (6 mois après la version 1.2.2). Panorama de ces changements.

logo_lemonldap-ng.png

Les signatures SAML au cœur du cyclone

En décembre, une alerte de sécurité a été diffusée concernant le traitement des signatures SAML dans LemonLDAP::NG (CVE-2012-6426), problème corrigé dès le 18 décembre sur le SVN du projet.

Concrètement, la vérification des signatures était désactivée par défaut lors de la réception des messages et la fonction chargée de vérifier ensuite la signature n'était pas effective (mauvais appel de fonction de la librairie Lasso).

Si vous travaillez donc avec le protocole SAML dans une version inférieur à 1.2.3, la mise à jour est chaleureusement conseillée pour revenir à une situation au beau fixe.

Cette version apporte de plus certaines améliorations sur SAML, comme le support des NameID transient, un meilleur log des échanges SAML et la compatibilité de l'IDP SAML avec une authentification CAS.

Soleil Orage Averse Pluie

Le support de SOAP a été amélioré :

Le ciel est tombé sur l'en-tête X-Forwarded-For

Jusqu'ici, la gestion de l'en-tête X-Forwarded-For n'était pas évident. Cette en-tête est gérée par les proxys et permet de connaître l'adresse IP d'origine d'une requête HTTP, donc l'IP du client.

Avant la version 1.2.1, l'activation de la gestion de cette en-tête inscrivait l'IP dans une variable spécifique de la session ($xForwardedForIpAddr), laissant l'IP standard dans la variable $ipAddr. Hors, même s'il est possible d'utiliser la variable $xForwardedForIpAddr dans des règles, dans d'autres endroits du code, $ipAddr est forcément utilisé (par exemple dans les logs, ou dans les modèles HTML des mails envoyés).

Cette gestion a été revue, désormais si l'option X-Forwarded-For est activée dans LemonLDAP::NG, alors la variable de session $ipAddr prendra cette valeur, ce qui s'appliquera donc à toutes les fonctions utilisant cette variable.

De plus, depuis la version 1.2.3, pour éviter que la valeur de cette en-tête soit modifiée manuellement par les utilisateurs, une règle de sécurité est apparue pour n'accepter cette en-tête que depuis certaines IP (en l'occurrence les adresses IP des proxys s'ils existent).

Accalmie sur les rejeux de formulaire

Les rejeux de formulaire sont une fonctionnalité assez marginale, permettant de transformer des requêtes GET en POST, utilisant comme données POST des informations de la session de l'utilisateur. En utilisant la fonction de sauvegarde du mot de passe en session, cela permet donc de faire du SSO sur des applications mal écrites propriétaires.

Plusieurs bugs ont été corrigés pour rendre cette fonction plus opérationnelle :

Toutefois, cette fonctionnalité reste assez peu avancée, et il est préférable d'utiliser les modes standards de SSO (en-tête HTTP, CAS, SAML, ...).

Séance d'UV pour le portail

Le portail est la partie visible de LemonLDAP::NG, là où les utilisateurs s'authentifient, changent leur mot de passe et voient les applications auxquelles ils sont accès.

Comme le physique c'est important, la version 1.2.3 apporte deux nouveautés dans ce domaine :

D'hiver

D'autres améliorations diverses ont été faites :

Après la pluie

À présent que vous êtes convaincus qu'il faut absolument installer cette nouvelle version, courrez la télécharger, ou mettez à jour via vos distributions préférées !

L'équipe du projet LemonLDAP::NG travaille déjà sur la version 1.3. N'hésitez pas à venir nous prêter main forte !

mardi, septembre 25 2012

Sortie de LemonLDAP::NG 1.2.2

Une nouvelle version mineure de LemonLDAP::NG est sortie la semaine dernière, c'est l'occasion pour présenter les évolutions qui on eu lieu depuis la sortie de la version majeure 1.2 en juin dernier.

Une première version mineure (1.2.1) a été publiée en juillet, avec les changements principaux suivants :

  • Correction d'un bug critique empêchant les groupes LDAP d'être enregistrés en session.
  • Correction de l'inclusion des modèles HTML pour l'envoi des mails.
  • Modification de la gestion de l'IP "X-Forwarded-For" : auparavant, la valeur de l'en-tête était stockée dans une clé de session séparée, désormais, si l'option "Utiliser X-Forwarded-For" est activée, la valeur du champ IP de la session est remplacée par la valeur de l'en-tête. Cela permet une meilleure prise en compte de cette option lors de la navigation dans l'explorateur de sessions, et pour l'affichage de l'historique de connexion.
  • Ajout compatibilité CSS3 dans les modèles graphiques.

La seconde version mineure (1.2.2) sortie il y a quelques jours apporte les changements suivants :

  • Meilleure gestion du cross domain avec les cookies sécurisés
  • Plusieurs correctifs sur le backend Multi, permettant son utilisation par SOAP, et le chainage de plusieurs annuaires LDAP utilisant des paramètres de connexion différents
  • Nouveau web service pour supprimer des notifications

La liste complète des changements est accessible sur la forge du projet :

Il est donc vivement recommandé de mettre à jour votre version de LemonLDAP::NG si ce n'est pas déjà fait.

mercredi, juin 20 2012

Sortie de LemonLDAP::NG 1.2

Cette semaine est sortie une nouvelle version majeure de LemonLDAP::NG : la version 1.2.0. Annoncée et attendue depuis plusieurs mois (voir la présentation donnée au FOSDEM), elle est enfin disponible et propose de nombreuses améliorations.

logo_lemonldap-ng.png

LemonLDAP::NG est un logiciel de WebSSO, contrôle d'accès et fédération des identités. Ses principales fonctionnalités sont :

  • Portail d'application, affichant dynamiquement les applications autorisées
  • Réinitialisation du mot de passe par un challenge par mail
  • Interface d'administration Web
  • Explorateur de sessions
  • Notifications
  • Support de nombreux moyens d'authentifications (LDAP, SQL, certificat SSL, Kerberos, etc.)
  • Support des protocoles CAS, OpenID et SAML
  • Propagation de l'identité par en-têtes HTTP, variables d'environnement ou rejeu de formulaires
  • Identification des URLs à protéger par expressions régulières

On met le paquet

Tout d'abord avant d'entrer dans le détail des nouveautés, on peut noter que LemonLDAP::NG est désormais empaqueté pour les distributions suivantes :

  • Debian Squeeze
  • RHEL/CentOS 5
  • RHEL/CentOS 6
  • Mageia Caudron

Rien de plus simple donc pour installer ou mettre à jour LemonLDAP::NG que d'utiliser les outils standards des distributions comme apt-get, yum ou urpmi.

Une fonction historique

L'une des évolutions majeures de la 1.2 est l'historique des connexions. Cet historique permet de stocker les dates des dernières authentifications réussies et échouées. La raison de l'échec est également conservée.

Ces informations sont d'abord visibles par les administrateurs dans l'explorateur de sessions, car elles sont chargées lors de l'ouverture de la session SSO depuis la session persistante de l'utilisateur.

Il est ensuite possible de configurer LemonLDAP::NG pour présenter ces informations à l'utilisateur :

  • Par un onglet dédié dans le portail des applications
  • Par une case à cocher affichant ces informations avant redirection vers l'application protégée

Authentication_portal_1340022292201.png

Le nombre d'authentifications conservées dans l'historique est lui aussi paramétrable, pour les authentifications réussies comme pour les authentifications échouées.

Docteur qui ?

La question qui revient le plus souvent de la part des personnes installant pour la première fois LemonLDAP::NG est : "Où sont les utilisateurs ?"

doctor_who_logo.jpg

LemonLDAP::NG n'est pas un annuaire LDAP ou un référentiel autre permettant de créer, modifier ou supprimer des comptes utilisateurs. Il s'appuie au contraire sur des référentiels existants dans l'entreprise (LDAP, base de données) ou externes via des protocoles de fédération d'identités (OpenID, SAML, ...)

Seulement il assez facile de comprendre la frustration ressentie lorsque l'on installe LemonLDAP::NG et qu'il faille créer soi-même un référentiel d'identités et le configurer avant de pouvoir tester le WebSSO.

Relaxez-vous, la nouvelle version de LemonLDAP::NG arrive avec un module "Démonstration" configuré par défaut, qui fournit des comptes utilisateurs factices permettant d'ouvrir une session et d'accéder aux applications de test. On peut ainsi installer et démarrer LemonLDAP::NG en quelques minutes.

NUP_102225_0127.jpg

Les comptes de test sont issus de la série Doctor Who :

  • Rose Tyler: rtyler/rtyler
  • Mickey Smith : msmith/msmith
  • Doctor Who: dwho/dwho

À noter que l'utilisateur "dwho" est le seul à avoir accès à l'interface d'administration et l'explorateur de sessions dans la configuration initiale.

Ne quittez pas, un agent va vous répondre

Des applications en maintenance, ça arrive même aux meilleurs. Si certaines organisations arrivent par des architectures en haute-disponibilité à éviter toute coupure de service lors de la mise à jour d'une application, ce n'est pas le cas pour tout le monde, et surtout parfois impossible pour certaines applications (schéma de base de données à modifier par exemple).

Dans ce cas, au lieu que les utilisateurs accédant à l'application se retrouvent avec des messages d'erreurs exotiques (et même s'ils ont été prévus 10 fois par mail qu'une opération de maintenance allait avoir lieu !), il est préférable de les rediriger vers une page dédiée expliquant que l'application est en maintenance.

Cette opération peut se faire en modifiant les configurations Apache, sur un ou plusieurs serveurs en fonction du déploiement de l'application, mais c'est souvent fastidieux et source d'erreurs.

La nouvelle version de LemonLDAP::NG propose désormais un mode maintenance qui permet de désactiver temporairement l'accès à une application. Il suffit d'activer cette option depuis l'interface d'administration, et automatiquement les utilisateurs sont redirigés vers une page d'erreur spécifique lorsqu'ils tentent de joindre l'application. La configuration de LemonLDAP::NG étant propagée à tous les nœuds des applications, ce mode s'applique directement sur ces nœuds, sans intervention nécessaire sur la configuration Apache.

De la flotte au menu

Petite nouveauté également, la possibilité d'ajouter un menu flottant sur les applications protégées. Ce menu est un module chargé dans la configuration Apache qui ajoute des éléments au DOM de la page à la volée. Il est donc non-intrusif sur les applications.

LemonLDAP__NG_sample_protected_application_1340022329086.png

Ce module est pour l'instant très simple et ne propose que 2 liens : retour à la page du portail ou déconnexion. Il est par contre facile de se créer son propre module en copiant le module d'origine.

Ave Radius

L'authentification Radius vient s'ajouter aux nombreux autres moyens d'authentification proposés par LemonLDAP::NG.

Un des intérêts de Radius est d'être compatible avec Google Authenticator, qui propose une méthode de double authentification : mot de passe et OTP (One Time Password). L'OTP est envoyé sur le téléphone mobile et permet donc de s'assurer que l'utilisateur est celui qui possède le mot de passe et le téléphone mobile associé au compte.

La communauté de l'année

Cette nouvelle version est le fruit d'un travail communautaire important, avec de nombreux bugs et patchs rapportés par les utilisateurs avancés de la solution :

  • Dominique Fournier
  • Emmanuel Lesouef
  • Erwan Le Gall
  • Gaultier Hubert
  • Quentin Jaboeuf
  • Mathieu Parent
  • Romain Vrignaud
  • Sébastien Bahloul
  • ulkesh

L'équipe principale du projet s'est également beaucoup investie, en particulier François-Xavier Deltombe qui a rejoint le projet l'année dernière. Merci donc à lui et aux autres membres de l'équipe : Xavier Guimard et Thomas Chemineau.

Enfin, petit clin d'œil à Sandro Cazzaniga qui a rejoint Linagora pour la période estivale et qui a empaqueté LemonLDAP::NG pour Mageia.

Speed dating

Pour venir découvrir en direct cette nouvelle version, rendez-vous aux prochains salons du libre :

Pour les malchanceux qui ne pourront venir, le lot de consolation :

mardi, février 7 2012

Conférence LemonLDAP::NG au FOSDEM 2012

Comme chaque année, le FOSDEM a lieu à Bruxelles et rassemble de nombreux développeurs de logiciels libres venant de différents pays.

Cette année, pour la première fois, j'ai eu le plaisir de pouvoir présenter LemonLDAP::NG dans la devroom Perl :

Cette présentation a été l'occasion d'annoncer quelques nouveautés qui apparaîtront dans la prochaine version (1.2.0) sur laquelle nous travaillons activement :

  • Historique des connexions : les connexions réussies ou échouées sont conservées et peuvent être affichée dans le menu du portail. Cela permettra en particulier de vérifier quand son compte a été utilisé.
  • Module d'authentification Radius : contribué par des utilisateurs avancés du logiciel, ce module est utile entre autres pour l'utilisation de l'authentification multi-facteurs de Google (voir le blog de Romain Vrignaud)
  • Règles d'ouverture de session personnalisées : on pourra paramétrer des règles refusant l'ouverture d'une session avec l'affichage d'un message contextuel

Cette nouvelle version apportera bien entendu son lot de correctifs et d'autres évolutions, elle devrait sortir d'ici le mois de mars. En attendant, vous pouvez retrouver les diapositives de la conférence du FOSDEM.

vendredi, octobre 7 2011

Sortie de LemonLDAP::NG 1.1.2

Sortie d'une nouvelle version de LemonLDAP::NG en ce début d'automne, corrigeant quelques problèmes de la version 1.1.1, et apportant une amélioration du module fournisseur CAS.

Un problème ? Quel problème ? Mais y'a pas de problème

Parmi les petits soucis corrigés, on notera:

  • Meilleure gestion des dépendances Debian (Lasso et javascript-common)
  • Importation des fonctions étendues dans le Handler si la cage Safe est désactivée
  • Amélioration de la gestion des erreurs du Handler SecureToken
  • Modification du comportement de la fonction d'autorisation du portail : si l'application à afficher n'est pas connue du portail, elle est ignorée. On peut forcer l'affichage d'une application dans le portail avec le paramètre Display qu'il suffit de mettre à On.

CAS / Lemon, un cocktail d'enfer

LemonLDAP::NG est fournisseur CAS depuis la version 1.0. Cela permet de remplacer facilement son serveur CAS par LemonLDAP::NG. Il manquait toutefois une petite fonctionnalité : la gestion des autorisations pour les services CAS.

Avant cette version, le fournisseur CAS de LemonLDAP::NG renvoyait des tickets CAS aux services sans contrôler que l'utilisateur était bien autorisé à accéder à ce service. L'autorisation devait se faire soit en interne à l'application, soit en positionnant un Handler LL::NG devant.

Désormais, le fournisseur CAS peut vérifier l'autorisation d'accès à l'émission du ticket. Deux solutions alors si l'utilisateur n'est pas autorisé:

  • L'utilisateur reste sur le portail avec un message d'erreur adéquat
  • L'utilisateur repart sur le service avec un faux ticket, et l'erreur est alors gérée au niveau de l'application

À ma connaissance, cela fait de LemonLDAP::NG le seul serveur CAS sachant gérer les autorisations d'accès aux services !

On s'est pas déjà vu quelque part ?

C'est possible. Mais si vous voulez être certain de me croiser, ne ratez pas les prochaines occasions :

vendredi, juillet 29 2011

Sortie de LemonLDAP::NG 1.1.1

En cette fin de juillet ensoleillée est sortie une nouvelle version mineure de LemonLDAP::NG, la 1.1.1

Cette version corrige les problèmes suivants :

  • Les fonctions SOAP n'étaient plus disponibles lorsque les notifications étaient activées
  • Les notifications devaient être acceptées deux fois par les utilisateurs déjà authentifiés
  • Le séparateur dans les nom de fichier des notifications n'était pas configurable
  • La recherche des groupes LDAP ne fonctionnait pas si le DN de l'utilisateur contenait des caractères spéciaux (comme l'anitslash)

La nouvelle version est téléchargeable ici : http://lemonldap-ng.org/download

jeudi, juillet 21 2011

Sortie de LemonLDAP::NG 1.1

Ceci est la reprise de l'article rédigé pour LinuxFR, disponible ici : http://linuxfr.org/news/sortie-de-lemonldapng-11

Le 8 juillet dernier, à la veille de l'ouverture des RMLL, est sortie une nouvelle version majeure de LemonLDAP::NG.

LemonLDAP::NG est un logiciel de Web-SSO destiné à protéger des applications Web. Pour les utilisateurs, cela permet de ne s'authentifier qu'une seule fois (Single Sign-On) et pour les administrateurs du WebSSO cela permet de contrôler de manière centralisée les droits d'accès aux applications. LemonLDAP::NG supporte désormais de nombreux protocoles d'authentification et de fédération d'identités comme CAS, OpenID ou SAML 2.0.

La version 1.1 apporte un certain nombre de nouveautés présentées ci-dessous.

Gestion des notifications

Une notification est un message affiché à l'utilisateur lors de son accès au portail d'authentification (accès obligatoire pour la création de sa session SSO). Une notification peut contenir des cases à cocher, qui devront alors être activées par l'utilisateur pour poursuivre.

Ce système permet par exemple d'avertir un utilisateur sur la modification de ses habilitations, ou sur l'ajout ou la suppression d'une application dans le portail.

Les notifications existent dans LemonLDAP::NG depuis la version 0.9.4, mais le paramétrage de cette fonctionnalité était complexe. Depuis la version 1.1, le Manager (interface d'administration de la solution) possède désormais un explorateur qui permet de créer et parcourir les notifications.

De plus, les notifications peuvent désormais :

  • S'adresser à tous les utilisateurs (auparavant, une notification était enregistrée pour un utilisateur précis)
  • Posséder une condition d'affichage (ce qui permet par exemple d'afficher une notification pour des utilisateurs provenant d'un certain réseau, ou possédant certains attributs)

Pour plus d'informations, vous pouvez consulter la documentation en ligne.

Réinitialisation du mot de passe par mail

Lorsqu'un utilisateur a perdu son mot de passe, LemonLDAP::NG propose une page où il peut réinitialiser son mot de passe par mail. Il n'est bien entendu pas question de lui transmettre son mot de passe actuel, mais bien de lui permettre d'en changer via un challenge par mail. Cette méthode est inefficace si le mot de passe du WebSSO est le même que le mot de passe de sa messagerie, mais dans les autres cas, elle permet d'alléger considérablement les appels au support.

La cinématique est la suivante :

  • L'utilisateur fait une demande de réinitialisation en entrant son identifiant (ou tout attribut permettant de l'identifier de manière unique, comme son mail)
  • Un mail est envoyée avec un lien, dont la validité est configurable (par défaut 24 heures)
  • Le lien mène à une page permettant de saisir un nouveau mot de passe, ou de demander sa génération automatique
  • Le nouveau mot de passe est envoyé par mail

Pour plus d'informations, vous pouvez consulter la documentation en ligne.

Authentification par Yubikey

La Yubikey est un périphérique physique permettant de faire de l'authentification avec mot de passe à usage unique (One Time Password, OTP).

LemonLDAP::NG permet désormais d'utiliser ce périphérique pour ouvrir une session SSO. Les attributs de l'utilisateur peuvent être ensuite récupéré en associant l'identifiant de la clé à l'identifiant de l'utilisateur dans la base des comptes (LDAP ou SQL).

Pour plus d'informations, vous pouvez consulter la documentation en ligne.

Personnalisation

La personnalisation du produit est facilitée dans la dernière version, en particulier :

  • Les messages d'erreurs peuvent être surchargés dans le fichier INI
  • Les thèmes possèdent désormais des modèles HTML "custom" inclus dans les modèles par défaut

Pour plus d'informations, vous pouvez consulter la documentation en ligne.

mercredi, juin 1 2011

Sortie de LemonLDAP::NG 1.0.6 et autres actualités

La version 1.0.6 de LemonLDAP::NG est sortie le 30 mai, apportant quelques corrections :

  • La recherche LDAP de l'utilisateur requête à présent explicitement la liste des attributs (et non la totalité des attributs)
  • La syntaxe de configuration de l'authentification multiple (backend Multi) est désormais acceptée dans le Manager
  • Les valeurs base64 sont correctement échappées dans le javascript du Manager pour être compatibles avec les sélecteurs jQuery

Cette version peut être téléchargée ici : http://lemonldap-ng.org/download

La prochaine version sera une version majeure, la 1.1.0, incluant quelques nouvelles fonctionnalités sympa :

  • Authentification par Yubikey
  • Authentification "esclave", c'est-à-dire liée à un produit de SSO frontal qui transmet les données dans les en-têtes HTTP (LemonLDAP::NG, SiteMinder, OpenAM, etc.)
  • Simplification de la personnalisation du thème graphique (pour les pages du portail et les mails HTML envoyés)
  • Amélioration de la fonctionnalité de réinitialisation du mot de passe par mail, avec renvoi possible du mail de confirmation, et saisie du nouveau mot de passe sur le portail, en plus de la possibilité de le générer
  • Gestion d'une notification globale, c'est-à-dire applicable à tous les utilisateurs (les notifications en 1.0 doivent être attribuées nominativement)

Cette nouvelle version devrait sortir fin juin/début juillet, on pourra en entendre alors parler lors de deux événements :

Sinon, vous pourrez trouver quelques informations sur LemonLDAP::NG dans le GNU/Linux Magazine de ce mois-ci (n°139 / juin 2011) dans le reportage sur ConFoo.

jeudi, mars 24 2011

Mise à jour de sécurité sur LemonLDAP::NG (sortie de la version 1.0.4)

Une nouvelle version de LemonLDAP::NG est sortie cette semaine, numérotée 1.0.4.

Cette version corrige entre autres un problème important, lié à la refactorisation du code de la cage d'exécution (Safe) : les macros et les groupes étaient conservés en mémoire, et pouvaient donc être copiés d'une session d'utilisateur à une autre. Conséquence : si les règles d'accès utilisent les macros ou les groupes, cela pouvait permettre l'accès à des personnes non autorisées aux applications.

Il est donc vivement conseillé de migrer vers la nouvelle version.

Page de téléchargement de LemonLDAP::NG.

mardi, mars 15 2011

Sortie de LemonLDAP::NG 1.0.3

Une nouvelle version mineure de LemonLDAP::NG, la version 1.0.3, est sortie le 7 mars dernier, très rapidement après la 1.0.2.

Cette sortie se justifie par la correction d'un bug apparu dans la 1.0.2 et qui empêchait les applications en mode automatique (c'est à dire dont les droits d'accès sont calculés à la volée) d'apparaître dans le menu des applications. Ce bug a été introduit pour une modification de la gestion de la cage d'exécution (Safe.pm), il est à présent corrigé.

Page de téléchargement de LemonLDAP::NG.

mardi, mars 1 2011

Sortie de LemonLDAP::NG 1.0.2

Une nouvelle version mineure de LemonLDAP::NG vient de sortir, corrigeant quelques problèmes sur la 1.0, publiée en fin d'année dernière.

logo_lemonldap-ng.png

La version 1.0.2 apporte les améliorations principales suivantes :

  • Correction sur la prise en compte des niveaux d'authentification LDAP et DBI
  • L'option portalOpenLinkInNewWindow n'est pas prise en compte
  • Réinitialisation du mot de passe avec AuthChoice
  • Meilleure gestion du cache de configuration dans le portail
  • Protection de l'explorateur de sessions semblable à celle du Manager
  • Masquage des catégories vides dans le menu des applications
  • Correctifs sur le packaging Debian
  • Nouvelle option useSafeJail pour désactiver l'utilisation de Safe.pm

Quelques liens :

lundi, février 28 2011

LemonLDAP::NG se présente à Montréal le 10 mars prochain

Pour la première fois, LemonLDAP::NG traverse l'atlantique et va se présenter lors de l'événement ConFoo à Montréal.

I am speaking at ConFoo Web Techno Conference. March 9th to 11th 2011. Montreal

ConFoo propose 3 journées de conférences sur les technologies Web, avec des pointures du domaines. On retrouvera en particulier parmi nos compatriotes Damien Seguy (Alterway) et Fabien Potencier (Sensio Labs), deux des acteurs les plus influents de la communauté PHP en France. ConFoo donne aussi la parole à des intervenants du domaine de la sécurité, comme Allan Foster de ForgeRock qui viendra parler d'OpenAM, le fork d'OpenSSO suite au rachat de SUN par Oracle.

Pour ma part, j'aurai le plaisir de représenter LINAGORA, et de faire découvrir LemonLDAP::NG au public québecois, et parler un peu de Perl au milieu des conférences Java, Python et PHP ;)

jeudi, février 10 2011

Installer LemonLDAP::NG 1.0 sur Debian Lenny

Même si Debian Squeeze vient de remplacer Lenny comme version stable ce mois-ci, il reste que cette dernière reste une version serveur encore très déployée, en attendant les migrations vers Squeeze.

La version 1.0 de LemonLDAP::NG a été empaquetée pour de nombreuses distributions, y compris Debian. Cependant, pour des questions de dépendances, les paquets Debian de LemonLDAP::NG sont compatibles avec Squeeze, et ne s'installent pas directement sous Lenny. Cela vous chagrine ? Moi aussi.

Heureusement, il y a toujours des solutions. Celle que je vous propose consiste à télécharger directement les dépendances problématiques depuis le site http://packages.debian.org et de les installer manuellement. Les paquets à télécharger depuis leur version Sid sont :

  • libjs-jquery
  • libjs-jquery-ui
  • libnet-ldap-perl

Par exemple :

wget http://ftp.de.debian.org/debian/pool/main/j/jquery/libjs-jquery_1.5-2_all.deb
dpkg -i libjs-jquery_1.5-2_all.deb 
wget http://ftp.de.debian.org/debian/pool/main/j/jqueryui/libjs-jquery-ui_1.8.dfsg-3_all.deb
dpkg -i libjs-jquery-ui_1.8.dfsg-3_all.deb 
wget http://ftp.de.debian.org/debian/pool/main/libn/libnet-ldap-perl/libnet-ldap-perl_0.4001-2_all.deb
dpkg -i libnet-ldap-perl_0.4001-2_all.deb 

Voilà, ensuite il ne reste plus qu'à installer LemonLDAP::NG en suivant la procédure officielle.

mercredi, décembre 1 2010

Sortie de LemonLDAP::NG 1.0 !

Non, vous ne rêvez pas

logo_lemonldap-ng.png

Le bruit courrait depuis quelque temps déjà, c'est aujourd'hui chose faite : La version 1.0 de LemonLDAP::NG est sortie !

Il ne faut évidemment pas se fier au numéro de version, LemonLDAP::NG est un logiciel qui a vu le jour il y a plusieurs années, au sein du Ministère des Finances et de la Gendarmerie Nationale. La version 1.0 marque la stabilisation d'un certain nombre de fonctionnalités et l'arrivée de modules très importants, comme les fournisseurs d'identité CAS, SAML et OpenID. Une attention toute particulière a été accordée à la gestion de la configuration, qui pouvait être l'un des reproches fait aux précédentes versions, afin que les futures évolutions de versions soient beaucoup plus simple.

L'heure des présentations

Mesdames, messieurs, j'ai le plaisir de vous présenter LemonLDAP::NG, un logiciel libre d'authentification unique (WebSSO) et de contrôle d'accès aux applications Web.

Écrit en Perl et intégré directement au cœur du serveur HTTP Apache (à travers mod_perl), il analyse chaque flux HTTP pour d'une part vérifier les habilitations de l'utilisateur, et d'autre part enrichir la requête d'en-têtes HTTP pour transmettre les informations de session à l'application protégée. La cinématique complète est décrite ici.

Une de ses grandes forces est la simplicité d'intégration des applications. En effet, il suffit de lire une en-tête HTTP ou une variable d'environnement pour utiliser le WebSSO. Et c'est sans compter les applications qui sont nativement compatibles (OBM, Bugzilla, Dokuwiki, Linshare, etc.)

C'est en forgeant des en-têtes qu'on devient forgeron

À ses débuts, LemonLDAP::NG ne savait interagir qu'avec un annuaire LDAP pour authentifier les utilisateurs (d'où son nom). Aujourd'hui, il a bien mûri et peut utiliser les protocoles suivants :

  • LDAP
  • SQL
  • SSL X509
  • Apache built-in modules (Kerberos, NTLM , OTP, …)
  • SAML 2.0 / Shibboleth
  • OpenID
  • Twitter
  • CAS

La grande nouveauté, c'est que LemonLDAP::NG est désormais fournisseur d'identités, c'est-à-dire qu'il peut transmettre l'identité d'un utilisateur à d'autres services en passant par des protocoles standards :

Il SAML de quoi ?

C'est sur SAML que le travail a été le plus important, ce qui explique le laps de temps entre la précédente version (0.9.4.1 en octobre 2009) et celle-ci. Toutefois l'attente n'aura pas été vaine puisque LemonLDAP::NG est désormais :

  • Fournisseur de service (conforme SP Lite)
  • Fournisseur d'identités (conforme IDP Lite)
  • Autorité d'attributs
  • Fournisseur d'identités mandataire (Proxy IDP)

Cela a été rendu possible par l'utilisation de la librairie GPL Lasso (cf. article sur Lasso). L'interaction a été bénéfique aux deux logiciels puisque la dernière version de Lasso (2.3) a bénéficié de nombreux tests et rapports d'anomalies issus du développement de LemonLDAP::NG.

Il y en a un peu plus, je vous le mets quand même ?

L'enrichissement des modules d'authentification et de fournisseur d'identités est certes une avancée majeure pour LemonLDAP::NG, mais la nouvelle version apporte également d'autres améliorations notables :

  • Refonte de l'interface de configuration (Manager) et de l'explorateur de sessions, avec une utilisation intensive de jQuery et jQuery UI.
  • Nouveau thème (dark) pour le portail, ce qui porte à 3 le nombre de thèmes fournis par défaut.
  • Possibilité de configurer les paramètres de redirection (port et HTTPS) pour chaque hôte virtuel, et non plus de manière globale par serveur physique.
  • Configuration graphique du rejeu de formulaire, avec support des hôtes virtuels.
  • Handler Zimbra.
  • Choix d'authentification au niveau du portail.
  • Fusion des fichiers de configuration locaux dans un fichier unique au format INI.
  • Refonte du menu des applications pour une meilleure présentation des catégories et des applications.
  • Dépôts YUM et Debian.
  • Nouveau wiki.
  • ...

L'ensemble des changements est visible sur le projet JIRA.

Merci, merci

LemonLDAP::NG est avant tout le fruit de la collaboration entre la Gendarmerie Nationale et la société LINAGORA.Cette nouvelle version a monopolisé ces deux acteurs sur l'année qui vient de s'écouler.

Le support du SAML a été réalisé avec la collaboration de la société Entr'ouvert (éditrice de Lasso).

Bien évidemment, tous les utilisateurs qui ont pu tester les versions candidates et qui ont fait des retours précieux ont grandement contribué à la sortie de la version 1.0.

Vous pouvez retrouver LemonLDAP::NG à travers l'offre LinID de LINAGORA, par le module LinID Access Manager.

J'espère au nom de toute l'équipe de LemonLDAP::NG que cette nouvelle version comblera vos attentes, et vous donnera l'envie de parler de ce projet autour de vous. En attendant, n'hésitez pas à nous rejoindre !

Quelques liens pour la root

dimanche, novembre 28 2010

Les captures d'écran de LemonLDAP::NG 1.0, en avant première !

logo_lemonldap-ng.png

Cette semaine devrait sortir sur vos écrans retro-éclairés la nouvelle version de LemonLDAP::NG, et pas n'importe quelle version puisqu'il s'agira de la 1.0.

En effet, le logiciel a désormais acquis de la stabilité et s'est enrichi depuis la dernière version (0.9.4.1) de nombreuses fonctionnalités, en particulier le support de CAS, SAML et OpenID. J'aurai l'occasion de revenir en détail sur tous ces éléments lors de la sortie officielle.

En attendant, je vous laisse découvrir le nouveau site du projet ainsi que les captures d'écran de la 1.0 : http://lemonldap-ng.org/screenshots

vendredi, juin 18 2010

LemonLDAP::NG sur un nuage

Pas de fumée sans feu

Depuis quelques mois, les développements sur LemonLDAP::NG sont consacrés à l'implémentation du standard SAML2. Une première version candidate (1.0rc1) est sortie au mois d'avril, permettant de tester LemonLDAP::NG en tant que fournisseur de service SAML2 (SP).

Aujourd'hui, la fonctionnalité de fournisseur d'identités SAML2 est pratiquement implémentée à 100%, et les premiers tests grandeur nature commencent.

L'implémentation SAML de LemonLDAP::NG repose sur Lasso.

Le village dans les nuages

L'un de ces tests a porté sur Google Apps : la suite d'applications Google a destination des entreprises. Ce sont donc les premiers pas de LemonLDAP::NG dans le fameux cloud dont tout le monde parle .

SAML-Applications.png

Stairway to heaven

Je livre ici la recette pour faire fonctionner Google Apps avec LemonLDAP::NG (version de développement au 18/06/2010). Cela demande quelques manipulations qui seront certainement facilitées dans la version stable qui sortira cette année.

On suppose qu'on a investi chez Google Apps pour acheter des comptes pour le domaine entreprise.com. D'un autre côté, on a installé dans son réseau LemonLDAP::NG, dans le domaine mon-entreprise.net. Ce domaine peut-être accessible d'internet, ou réservé aux utilisateurs internes seulement (on préférera généralement le rendre accessible d'internet, pour accéder à Google Apps depuis l'extérieur de l'entreprise).

Du côté de LemonLDAP::NG

Après une installation standard du produit, il faut activer plusieurs paramètres depuis le Manager (http://manager.mon-entreprise.net) :

  • Portail : auth.mon-entreprise.net
  • Domaine : mon-entreprise.net
  • Authentification/Utilisateurs : LDAP (ou SSL, DB, Apache, ...)
  • Fournisseur : SAML

Toujours dans le Manager, configurer le service SAML, en particulier les clés de signature et de chiffrement, ainsi que tous les points d'accès SAML. Par exemple pour le point d'accès SSO HTTP-REDIRECT : http://auth.mon-entreprise.net/saml/singleSignOn. Un peu d'aide sur cette partie peut se trouver ici : http://wiki.lemonldap.ow2.org/xwiki/bin/view/NG/AuthSAML.

Reste à insérer les metadonnées de Google Apps en tant que fournisseur de service SAML dans le Manager. Google Apps ne fournit pas de metadonnées, il faut donc les générer soit-même. Pour cela, copier le fichier ci-dessous, en modifiant entreprise.com avec votre domaine Google Apps (paragraphe AssertionConsumerService) :

<EntityDescriptor entityID="google.com" xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
                <KeyDescriptor>
                        <ds:KeyInfo>
                                <ds:KeyValue>
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANZ2b5wb43eJRYnln2bfo+neq6ZQYksm
Ftn3juDB/UklfwVN0XPi8NBHXFQjfXPeVse6Ztjl+C443jRCkSawVZMCAwEAAQ==
                                </ds:KeyValue>
                        </ds:KeyInfo>
                </KeyDescriptor>
                <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
                <AssertionConsumerService index="1" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                        Location="https://www.google.com/a/entreprise.com/acs" />
        </SPSSODescriptor>
</EntityDescriptor>

La valeur de la clé publique est factice, mais nécessaire pour que les metadonnées soient reconnues par Lasso (ce ne sera peut-être plus le cas dans la version stable).

Depuis le Manager, insérer ces metadonnées dans un nouveau fournisseur de service, et configurer les options suivantes :

  • Format de NameID par défaut : email
  • Vérifier la signature des requêtes SSO : non

Du côté de Google Apps

Depuis l'interface d'administration de votre domaine, aller dans Outils avancés > Configurer l'authentification unique (SSO)

Google_Apps_1276952044490.png

Il suffit de faire pointer Google Apps vers les points d'accès définis dans LemonLDAP::NG :

  • Page de connexion : URL où est transmise la requête d'authentification SAML
  • Page de déconnexion : URL où est redirigé l'utilisateur lors de sa déconnexion depuis Google Apps (ce n'est pas du SLO SAML)
  • Page de changement de mot de passe : URL où l'utilisateur peut changer son mot de passe (ce sera le menu LemonLDAP::NG)

Il faut également charger un certificat qui contient la clé publique de notre fournisseur d'identité. On peut générer ce certificat à partir de la clé privée de signature disponible dans le Manager :

$ openssl req -new -key lemonldap-ng-key.pem -out cert.csr
$ openssl x509 -req -days 3650 -in cert.csr -signkey lemonldap-ng-key.pem -out cert.pem

C'est alors le fichier cert.pem qu'il faut charger dans Google Apps.

On enfonce le cloud

À présent tout est prêt, les utilisateurs peuvent accéder à un service Google Apps de l'entreprise, comme le calendrier : http://www.google.com/calendar/hosted/entreprise.com

Il sont alors redirigés avec un requête d'authentification SAML vers LemonLDAP::NG. Ils peuvent s'authentifier avec les ressources de l'entreprise (Annuaire LDAP, Active Directory, PKI, etc.) et reviennent alors sur Google Apps avec un jeton SAML qui est validé chez Google (en particulier la signature est contrôler à l'aide du certificat chargé précédemment).

L'utilisateur est alors authentifié sur Google Apps !

Des ombres au tableau

Google Apps supporte SAML et c'est une très belle opportunité pour le déploiement de ce standard.

Toutefois, on regrette certaines choses :

  • Les requêtes d'authentification de Google Apps ne sont pas signées, impossible de s'assurer que l'utilisateur n'est pas victime d'hameçonnage
  • Il n'y a pas de support du Single Logout (SLO) : on peut se déconnecter de Google Apps et être dirigé vers la page de déconnexion du fournisseur d'identité, mais pas l'inverse : si l'utilisateur ferme sa session SAML depuis un autre fournisseur d'identité, alors se session Google Apps ne sera pas fermée.

Lucy in the sky with diamonds

J'espère que cet article vous aura donné envie de tester la nouvelle version de LemonLDAP::NG. On se donne rendez-vous aux RMLL pour une démonstration IRL !

mercredi, mars 24 2010

Sortie de Perl-LDAP 0.40

Perl

Graham Barr a annoncé récemment la disponibilité de la version 0.40 de Perl-LDAP, l'une des bibliothèque les plus abouties pour interagir avec un annuaire LDAP (en particulier pour son support de nombreux contrôles et opérations étendus).

Il l'annonce dans un message paru sur la liste le 11 mars: lire le message.

En particulier, les changements intéressants sont :

  • Correction de bugs sur le protocole Syncrepl
  • Correction de bugs sur les filtres
  • Ajout du contrôle Refresh

Cette nouvelle version est disponible sur le CPAN et devrait bientôt être mise en ligne sur le site officiel.

jeudi, décembre 17 2009

Des nouvelles du développement de LemonLDAP::NG

Cela fait quelques temps que la dernière version stable est sortie (v0.9.4 en juillet 2009), avec une mise à jour mineure (v0.9.4.1 en octobre 2009).

Le projet est toutefois très actif, avec en prévision la sortie d'une nouvelle version stable en 2010, probablement en début de second semestre. En particulier, les chantiers importants suivants sont actuellement menés :

  • Refonte du Manager avec intégration de l'ensemble des paramètres de configuration
  • Support SAML2 en tant que fournisseur d'identités et fournisseur de service
  • Support OpenID
  • Support DBI (bases de données via un connecteur DBI, comme MySQL, PostGreSQL, Oracle, ...)

Ci-dessous une vue du travail sur le nouveau Manager :

manager-preview.png

Les développements sont publiés régulièrement sur le dépôt du projet, permettant à chacun de venir tester les dernières fonctionnalités en avant-première.

samedi, novembre 14 2009

Le projet LDAP Tool Box

ltb-logo.png

J'ai présenté il y a quelques semaines sur le site LinuxFr le projet LDAP Tool Box : Article LinuxFR

Ce projet est une compilation des différents scripts et programmes que nous utilisons dans les projets de gestion d'identités basés sur des logiciels libres. On retrouve en particulier :

  • Scripts de supervision Nagios et Cacti
  • Script de lancement et d'arrêt d'OpenLDAP
  • Interface de changement de mot de passe
  • Script d'alerte d'expiration des comptes
  • RPMs OpenLDAP pour RHEL5
  • Convertisseur de CSV ou LDIF en LDIF

Depuis cet article, de nombreux messages de soutien sont arrivés, et également des contributions qui ont permis de sortir de nouvelles versions des différents programmes. En particulier ont été publiés les RPMs pour OpenLDAP 2.4.19 et une version 0.2 de l'interface de changement de mot de passe.

Merci donc aux développeurs, aux utilisateurs et contributeurs du projet LTB.

Site du projet LTB

- page 1 de 2