Bonnes ID ~ Clément Oudot

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

jeudi, mai 16 2013

Utiliser un thème alternatif jQuery UI avec Tapestry jQuery

Hello java world

Une fois n'est pas coutume, je quitte le monde Perl pour parler de nos développements sur LinID et en particulier sur notre framework java LinID Directory Manager.

linid_logo.png

Ce framework est basé sur Tapestry 5 et permet de créer des interfaces web de gestion d'annuaire LDAP sans réinventer la roue. En effet, il possède un framework d'autorisation permettant de modéliser les droits d'accès aux entrées et aux attributs à travers l'interface, un schéma enrichi permettant de décrire comment un attribut sera visualisé et édité, et un certain nombre de composants comme des listes de sélection basées sur des recherches LDAP, des afficheurs de DN, de dates, etc.

tapestry.png

Afin d'améliorer le rendu graphique de l'application, nous avons intégré jQuery et jQuery UI grâce au module tapestry5-jquery fourni par nos amis de Ganf of Tapestry 5 (GoT5).

Cet article explique comment utiliser ce module, et que faire quand le thème graphique fourni par défaut ne vous convient pas.

Au début c'est facile

Oui, tout est expliqué sur le site du module tapestry5-jquery. La première étape consiste à modifier son fichier pom.xml pour charger la dépendance :

<dependency>
<groupId>org.got5</groupId>
<artifactId>tapestry5-jquery</artifactId>
<version>3.3.5</version>
</dependency>

Et en gros, voilà, on a ensuite accès dans son code Tapestry aux widgets jQuery UI. Par exemple dans l'application de démonstration de LinID Directory Manager, on utilise le widget dialog pour la confirmation de la suppression d'une entrée (fichier ActionBar.tml) :

	<t:if t:test="canDelete">
		<li>
			<span   title="${message:general.delete-label}">
			
			<t:jquery.dialoglink t:id="deleteDialog" t:dialog="delete-${dnHash}">
			<img src="${asset:context:layout/images/delete.gif}" alt="${message:general.delete-label}" />
			<span class="menumessage">${message:general.delete-label}</span>
			</t:jquery.dialoglink>
			
			</span>
			
			<t:jquery.dialog 
				t:clientId="delete-${dnHash}"
				t:params="deleteDialogParams"
				title="${message:general.delete-label}">
			
			<p>${message:confirm.deleteuser}</p>
			<a t:type="actionlink" t:id="delete" t:context="entryDn" t:mixins="jquery/button" t:params="literal:{icons:{primary:'ui-icon-circle-check'}}">
			${message:general.confirm-label}
			</a>

			</t:jquery.dialog>
			
		</li>
	</t:if>

Thème pas ?

Le thème jQuery UI fourni par défaut est lightness, avec une dominante orange. Nous utilisons ce thème dans LinID OpenLDAP Manager (application web de configuration d'OpenLDAP), mais pour l'application de démonstration, le thème jQuery UI smoothness est plus adapté (voir le theme roller de jQuery UI).

Pour utiliser ce thème, il faut d'abord le télécharger sur le site de jQuery UI, en demandant un bundle pour la version legacy (1.9). En effet, tapestry5-jquery n'inclus que le thème lightness, et se base sur jQuery 1.8.24.

Une fois l'archive jQuery téléchargée, prendre le répertoire smoothness situé dans CSS et le copier dans la webapp LinID, par exemple dans le répertoire layout.

Ensuite, comme indiqué plus, il faut récupérer le fichier CSS pour la version 1.8.24. On peut utiliser pour cela Google CDN. Le lien pour télécharger le CSS: http://ajax.googleapis.com/ajax/lib....

On remplace les CSS de l'archive jQuery UI par celui téléchargé, et il reste à indiquer dans la webapp d'utiliser le nouveau thème. Pour cela dans le fichier AppModule.java, on ajoute dans contributeApplicationDefaults :

configuration.add(JQuerySymbolConstants.JQUERY_UI_DEFAULT_THEME, "${linid.jqueryui.path}");

Et on renseigne la variable linid.jqueryui.path dans le fichier configuration.properties :

# Jquery UI theme
#linid.jqueryui.path=classpath:org/got5/tapestry5/jquery/themes/ui-lightness/jquery-ui.css
linid.jqueryui.path=context:layout/smoothness/jquery-ui.css

Et voilà le résultat :

Affichage_des_informations_20130516-162951.png

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 !

lundi, avril 1 2013

LemonLDAP::NG version entreprise sera en Java

La communauté du logiciel libre LemonLDAP::NG a longtemps hésité avant de prendre cette décision, mais cette dernière semble être la meilleure option pour faciliter l'implantation de LemonLDAP::NG dans le monde des entreprises : LemonLDAP::NG Pro Special Edition sera en Java ou ne sera pas.

Un échange de bons procédés avec Oracle

La version entreprise de LemonLDAP::NG sera développée en partenariat avec Oracle, qui fournira des extensions dédiées dans sa JVM (Je Vous Méprise). Les avantages sont clairs pour le produit :

  • Formulaire d'enregistrement avant de télécharger le logiciel, permettant d'établir une cartographie réaliste des utilisateurs
  • Paquets RPM binaires avec validation de la licence avant l'installation
  • Console d'administration en Java natif (nécessite un serveur X)
  • Utilisation d'une base de données Oracle pour le stockage de la configuration et des sessions (implémentation de triggers propriétaires à la clé)

Ceci n'est qu'un juste de retour des choses envers la société Oracle qui par sa conduite exemplaire a permis la migration vers le logiciel libre de nombreuses sociétés.

Des contraintes d'exploitation connues des entreprises

Pour déployer la version entreprise, il faudra disposer d'un serveur d'application JEE avec support EJB 3.0. Cela permet aux entreprises ayant investi dans des piles logicielles Java complètes de les rentabiliser au maximum.

On note d'ailleurs que LemonLDAP::NG sera diffusé sous forme d'EAR en plus des RPMs Oracle afin de complexifier le processus d'installation, trop simple avec la version communautaire (apt-get install lemonldap-ng ou yum install lemonldap-ng). Ainsi, les professions de chefs de projet et architectes J2EE seront valorisées.

Afin de faire tourner cette nouvelle version, des actions manuelles sur la base de données et sur les paramètres bas-niveau du système d'exploitation seront nécessaires quotidiennement. Elles nécessiteront le passage par une interface graphique, empêchant ainsi toute automatisation, et donc le maintien d'un certain nombre d'emplois informatiques.

Relance du marché du matériel informatique

La version entreprise de LemonLDAP::NG sera basée sur les fonctionnalités de la version communautaire, avec les améliorations suivantes :

  • Formulaire d'authentification sous forme d'applet java
  • Utilisation de frames dans l'interface utilisateur
  • Support de IE 5.5 et Mozaic

Ces améliorations sont aussi accompagnées de contraintes matérielles supplémentaires. Ainsi pour le support de 100 utilisateurs, il faudra prévoir :

  • 16 Go de RAM
  • 4 cœurs
  • 60 Go d'espace disque

On déconseillera la virtualisation afin de permettre aux entreprises d'investir dans du matériel performant directement fabriqué en Asie par des informaticiens en devenir.

Support de Microsoft Windows et autres

Enfin ! se diront les lecteurs assidus de la presse informatique spécialisée dans les technologies peu novatrices. La version entreprise de LemonLDAP::NG étant en Java, elle sera directement disponible pour les plate-formes professionnelles et sécurisées comme Windows Server, AIX et Solaris.

Fonctionnalité spéciale pour nos amis des plates-formes Windows, une version ASP du Handler LemonLDAP::NG nativement disponible sous IIS. Le cookie ne sera néanmoins compatible que pour Internet Explorer. L'authentification Active Directory sera également améliorée, avec la fourniture d'une sur-couche d'une sur-couche d'une sur-couche de la fenêtre d'authentification des postes de travail Windows, compatible Vista.

Disponibilité en 2014

La première version entreprise sera disponible en 2014, avec une version majeure tous les deux ans. Une version mineure sortira tous les 6 mois, incluant les correctifs de sécurité nécessaires à l'exposition du service sur Internet. Les processus de mises à jour seront industrialisés afin d'occuper prestataires et sous-traitants sur la gestion des régressions fonctionnelles. Les API évolueront également en profondeur afin de laisser la part belle aux développeurs.

Malgré ces innovations de taille, la version communautaire continuera d'être maintenue, en Perl sous GNU/Linux, pour les amateurs et les bricoleurs. Nous espérons toutefois que vous adhérerez rapidement à la version entreprise afin de rentrer dans les rangs de l’homogénéité informatique.

lundi, mars 25 2013

LDAP Synchronization Connector en mode 2.0

Des nouvelles pas très fraîches...

En effet, la version 2.0 de LSC est sortie en juillet 2012, il y a plus de 8 mois. Je profite de la sortie la semaine dernière de la version 2.0.2 (deuxième version mineure de la branche 2.0) pour présenter ce projet très bien connu des administrateurs LDAP qui savent installer des logiciels java, donc globalement inconnu...

LSC et toi tu le sais pas ?

Commençons par le début, c'est quoi LSC ? LSC signifie LDAP Synchronization Connector, ce qui devient plus significatif sur son utilité : c'est un moteur de synchronisation LDAP.

LSC permet de synchroniser des fichiers plats (CSV), des bases de données et des annuaires, dans les deux sens. Il s'agit d'une vraie synchronisation avec une phase de comparaison des données sources et des données cibles afin de calculer les modifications à appliquer sur la destination.

LSC permet par exemple de synchroniser une base de données RH avec son annuaire d'entreprise, de synchroniser OpenLDAP et Active Directory (et avec quelques subtilités, en incluant les mots de passe), de générer des mots de passe Samba, d'importer des fichiers CSV dans un annuaire ou encore de pousser des données LDAP dans une bases de données.

LSC ne propose pas d'interface graphique, tout se fait comme au siècle dernier, à la main, mais rassurez-vous il s'agit bien d'une technologie très évoluée !

LSC strikes back

La nouvelle version n'est pas une version 2.0 de complaisance, les évolutions depuis la version 1.2 sont assez significatives. Les plus importantes sont les suivantes :

  • Modification du format de configuration (fini le fichier de properties java, place au XML)
  • Support de la synchronisation au fil de l'eau avec un annuaire compatible SyncRepl en source
  • Script de démarrage et d'arrêt
  • Nouveaux scripts de supervision avec gestion des données de performances (oh les beaux graphiques)
  • Bases de données en destination
  • Support de groovy

La configuration en XML peut sembler un choix discutable, mais elle a le mérite de clarifier le paramétrage du connecteur et de permettre une meilleure séparation des informations de connexion et de la définition des tâches de synchronisation.

De plus, un validateur permet facilement de s'assurer que la configuration est consistante avant de lancer le connecteur.

La documentation en ligne détaille toutes les balises qui peuvent être utilisées.

Test me if you can

Vous n'êtes pas convaincu ? D'avance vaincu ? Allons, le plus simple est de tester. LSC propose un tutoriel très simple permettant de synchroniser un fichier CSV dans un annuaire LDAP OpenDJ.

Et comme vous m'êtes sympathiques, voici ce tutoriel en français.

Première étape, télécharger LSC. Là c'est très simple, il suffit d'aller sur la page de téléchargement. On suppose que vous avez java en version 6 minimale installée sur votre poste ou votre serveur de test.

Installer LSC :

$ unzip lsc-core-2.0*-dist.zip
$ cd lsc-2.0*

Maintenant on se rend dans le dossier du tutoriel :

$ cd sample/hsqldb

Le fichier sample.csv contient les données que nous allons synchroniser dans l'annuaire. Si, si, vous pouvez vérifier.

Ces données doivent être importées dans la base de données interne (HSQLDB) :

$ bin/lsc-sample --import sample.csv

À présent, lancer l'annuaire de démonstration dans une autre console (la commande ne rend pas la main) :

$ bin/lsc-sample --start-ldap-server

Puis lancer la synchronisation depuis la première console :

$ bin/lsc-sample --run

Et voilà, les données sont synchronisées. Si vous ne me croyez pas, ouvrez un navigateur LDAP sur l'annuaire de test, supprimez des données et relancez la synchronisation.

Et pour d'autres tests, vous pouvez également modifier le fichier CSV d'entrée. Dans ce cas il faut penser à le réinsérer dans la base avec :

$ bin/lsc-sample --import sample.csv

Voilà, LSC fini

Vous savez désormais qu'il existe une solution de remplacement pour tous vos scripts maison en Perl, Ruby, ou pire PHP qui synchronisent vos données entre votre annuaire et le reste du monde. Je ne peux que vous inviter à rejoindre la communauté et nous aider à améliorer le produit ou la documentation !

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 !

lundi, janvier 7 2013

Astuce OpenLDAP : Des groupes dynamiques ? Jamais sans tri des valeurs !

Dynamique de groupe

Les groupes dynamiques en LDAP sont une fonctionnalité très intéressante, permettant de lister les membres d'un groupe par rapport à un filtre LDAP, ce qui évite de maintenir la liste des membres de manière statique.

Par exemple :

dn: cn=test,ou=groups,dc=example,dc=com
objectClass: groupOfURLs
objectClass: top
cn: test
memberURL: ldap:///ou=users,dc=example,dc=com??one?(description=*test*)

Ce groupe contiendra toutes les entrées de la branche ou=users,dc=example,dc=com possédant test dans l'attribut description.

Au vert lait

Dans OpenLDAP, les groupes dynamiques ne sont pas activés par défaut, il faut pour les utiliser charger l'overlay dynlist. Et pour utiliser la classe d'objet groupOfURLs, il faut également charger un schéma.

Cela peut-être fait simplement dans cn=config avec le LDIF suivant :

dn: cn=dyngroup,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: dyngroup
olcObjectIdentifier: {0}NetscapeRoot 2.16.840.1.113730
olcObjectIdentifier: {1}NetscapeLDAP NetscapeRoot:3
olcObjectIdentifier: {2}NetscapeLDAPattributeType NetscapeLDAP:1
olcObjectIdentifier: {3}NetscapeLDAPobjectClass NetscapeLDAP:2
olcObjectIdentifier: {4}OpenLDAPExp11 1.3.6.1.4.1.4203.666.11
olcObjectIdentifier: {5}DynGroupBase OpenLDAPExp11:8
olcObjectIdentifier: {6}DynGroupAttr DynGroupBase:1
olcObjectIdentifier: {7}DynGroupOC DynGroupBase:2
olcAttributeTypes: {0}( NetscapeLDAPattributeType:198 NAME 'memberURL' DESC 'I
 dentifies an URL associated with each member of a group. Any type of labeled 
 URL can be used.' SUP labeledURI )
olcAttributeTypes: {1}( DynGroupAttr:1 NAME 'dgIdentity' DESC 'Identity to use
  when processing the memberURL' SUP distinguishedName SINGLE-VALUE )
olcAttributeTypes: {2}( DynGroupAttr:2 NAME 'dgAuthz' DESC 'Optional authoriza
 tion rules that determine who is allowed to assume the dgIdentity' EQUALITY a
 uthzMatch SYNTAX 1.3.6.1.4.1.4203.666.2.7 X-ORDERED 'VALUES' )
olcObjectClasses: {0}( NetscapeLDAPobjectClass:33 NAME 'groupOfURLs' SUP top S
 TRUCTURAL MUST cn MAY ( memberURL $ businessCategory $ description $ o $ ou $
  owner $ seeAlso ) )
olcObjectClasses: {1}( DynGroupOC:1 NAME 'dgIdentityAux' SUP top AUXILIARY MAY
  ( dgIdentity $ dgAuthz ) )

dn: olcOverlay=dynlist,olcDatabase={1}bdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcDynamicList
olcOverlay: dynlist
olcDlAttrSet: {0}groupOfURLs memberURL uniqueMember

Comme vous êtes des lecteurs avisés, vous aurez noté qu'on peut utiliser d'autres classes d'objet que groupOfURLs, puisque cela dépend de la configuration de l'overlay dynlist (attribut olcDlAttrSet). Pour plus de détails, voir la page de manuel de l'overlay dynlist (man slapo-dynlist).

Tri sélectif

Cet overlay fonctionne bien sur des petits volumes mais les performances s'écroulent dès le le groupe dynamique doit contenir plusieurs milliers d'utilisateurs.

Le secret réside dans l'option sortvals (olcSortVals dans cn=config) qui active le tri des valeurs sur certains attributs. D'après le manuel :

       olcSortVals <attr> [...]
              Specify  a  list  of  multi-valued attributes whose values will always be maintained in sorted order. Using
              this option will allow Modify, Compare, and filter evaluations on these attributes  to  be  performed  more
              efficiently.  The  resulting  sort  order  depends on the attributes' syntax and matching rules and may not
              correspond to lexical order or any other recognizable order.  This setting is only allowed in the  frontend
              entry.

Dans notre cas, nous allons trier les valeurs de l'attribut uniqueMember :

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcSortVals
olcSortVals: uniqueMember

Dès l'application de ce paramètre, l'affichage de groupes dynamiques de plusieurs milliers d'utilisateurs ne prendra que quelques secondes !

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, juin 12 2012

Mémoriser la dernière authentification dans OpenLDAP

Big Brother is watching you

Bien, pour débuter cet article, la première question qui se pose est : pourquoi mémoriser la date de dernière authentification ?

Une des raisons pourrait être de tracer l'activité des utilisateurs, pour être certain qu'ils se connectent au système et qu'ils travaillent... Mais le vrai intérêt est plutôt inverse : cette date permet d'identifier les comptes qui sont obsolètes dans l'annuaire, par exemple qui n'ont pas été utilisés pour s'authentifier depuis plusieurs mois.

Pas si simple

On pourrait croire que cette information est simple à récupérer, surtout dans OpenLDAP, l'annuaire LDAP de référence.

Jusqu'à récemment, les seules solutions étaient d'analyser les logs systèmes (avec un niveau de log OpenLDAP à 256), ou de mettre en place l'overlay accesslog, qui stocke dans une base LDAP les opérations effectuées sur l'annuaire. Cette base devait alors être analysée pour retrouver la date de dernière authentification (opération BIND).

Les contributions, c'est bon

OpenLDAP est avant tout un logiciel libre avec une communauté active. Il existe dans le code source d'OpenLDAP un répertoire dédié aux contributions : ces modules ne sont pas maintenus par l'équipe principale du projet, mais assez matures pour être distribués avec le logiciel. Toutefois, cela signifie que si vous ne compilez pas explicitement ces modules, il ne seront pas disponibles pour votre installation OpenLDAP.

Parmi ces modules contribués, il y a l'overlay lastbind. Cet overlay a été écrit par Jonathan Clarke, ancien salarié de Linagora et l'un des fondateurs de la société Normation. Cet overlay permet de stocker dans l'attribut authTimestamp la date dernière authentification.

Assez parlé

Il est temps de passer aux travaux pratiques. Certains modules contribués sont désormais disponibles dans les RPMs fournis par le projet LDAP Tool Box. Le paquet en question s'appelle openldap-ltb-contrib-overlays et peut être téléchargé ici.

Une fois installé, on peu alors modifier la configuration d'OpenLDAP pour charger cet overlay :

# vi /usr/local/openldap/etc/openldap/slapd.conf

Tout d'abord, modifier le répertoire de chargement des modules, et charger le module :

modulepath      /usr/local/openldap/lib:/usr/local/openldap/libexec/openldap
moduleload      lastbind.so

On notera qu'on peut indiquer plusieurs répertoires pour le chargement des modules. Dans notre cas, le premier sert à charger le module password policy checker, et le second pour l'overlay lastbind.

Ensuite, il reste à instancier l'overlay au niveau de la base LDAP souhaitée :

overlay lastbind

Et c'est tout ! Pour les plus assidus, on pourra ajouter un paramètre de configuration, permettant de ne pas mettre à jour la date à chaque authentification, mais de limiter la précision à un certain nombre de secondes :

lastbind-precision 60

Bien entendu, l'overlay peut aussi être configuré par la branche cn=config.

Initialisation

Une fois l'overlay chargé et OpenLDAP redémarré, pour toute nouvelle authentification, une date sera stockée dans l'attribut authTimestamp, par exemple :

authtimestamp: 20120612073806Z

Seulement, il s'agit d'un attribut opérationnel, et il n'est donc pas possible de le modifier, ou de l'ajouter aux entrées qui n'en possèdent pas encore.

Enfin, rien n'est jamais impossible... OpenLDAP a implémenté le contrôle relax, qui permet d'effectuer des opérations d'administration sur les données, en particulier modifier des attributs opérationnels.

Par exemple, on peut créer le fichier LDIF suivant :

dn: uid=coudot,ou=users,dc=example,dc=com
changetype: modify
replace: authtimestamp
authtimestamp: 20120511144318Z

Et importer ce fichier dans l'annuaire :

$ ldapmodify -D cn=manager,dc=example,dc=com -W -e relax -f authtimestamp.ldif

Finalement, c'est simple, non ?

vendredi, mars 16 2012

Configuration Apache : du bon usage de RedirectMatch et de mod_proxy

La configuration d'un serveur HTTP d'Apache est une source d'occupation sans limite tellement les possibilités d'utilisation sont nombreuses. Ma casquette de développeur et intégrateur LemonLDAP::NG m'amène souvent à les explorer.

Dernière découverte en date, l'utilisation conjointe de RedirectMatch et mod_proxy.

RedirectMatch

La clause RedirectMatch permet de faire des redirections basées sur une expression régulière. Le cas d'utilisation le plus classique quand on fait un proxy vers une application hébergée dans un serveur JEE est de rediriger la racine / vers le répertoire de l'application /appli/ :

RedirectMatch ^/$ /appli/

mod_proxy

Le module mod_proxy permet de passer les requêtes à un autre serveur, au hasard un serveur JEE :

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

Cohabitation

Si vous mettez les deux configurations présentées ci-dessus ensemble, la redirection vers /appli/ ne fonctionnera plus. Alors qu'elle fonctionne sans mod_proxy.

Et c'est parti pour quelques heures de doute sur la condition humaine, jusqu'à ce qu'une recherche sur internet vous amène sur cet article.

La clé du mystère est que quand ProxyPass est configuré sur "/", cette clause prévaut sur les autres, et donc la requête est transmise avant que la redirection ne soit effectuée.

La solution est donc de limiter le champ d'action du proxy :

RedirectMatch ^/$ /appli/
ProxyPass /appli/ http://localhost:8080/appli/
ProxyPassReverse /appli/ http://localhost:8080/appli/

En espérant que cela vous fera gagner du temps ;)

vendredi, février 10 2012

Actualités de l'activité LinID, la gestion des identités de LINAGORA

LinID

Le sigle LinID est apparu il y a quelques années pour agréger l'activité de LINAGORA dans le domaine de la gestion des identités autour d'une marque s'inscrivant dans la lignée des autres produits (LinShare, LinSign, LinPKI, etc.).

linid_logo.png

LinID, c'est aussi et avant tout une suite logicielle. Cette suite regroupe des logiciels sur lesquels les membres de l'équipe sont fortement impliqués, ainsi que des logiciels développés par LINAGORA :

  • LinID Directory Server : Annuaire OpenLDAP, avec les outils du projet LDAP Tool Box comme le script d'initialisation, le packaging RPM.
  • LinID Directory Manager : Framework web java bâti au-dessus de Spring et Tapestry 5 permettant de créer des interfaces de gestion des objets LDAP
  • LinID OpenLDAP Manager : Console web de configuration OpenLDAP, utilisant le framework LinID Directory Manager
  • LinID Access Manager : WebSSO LemonLDAP::NG permettant le contrôle d'accès aux applications Web et la fédération d'identités (SAML 2.0, OpenID)
  • LinID Provisionning Manager : Moteur de connecteurs LDAP Synchronization Connector permettant la synchronisation d'annuaires LDAP, de bases de données

LinID Directory Manager

LinID Directory Manager est un framework Java qui permet de créer des interfaces de gestion d'annuaire LDAP. Ces interfaces peuvent être très différentes, pour certaines très techniques (gestion de règles sudo, authentification unifiée PAM, etc.) ou d'autres très fonctionnelles (pages blanches, pages jaunes, modification de ses coordonnées personnelles, etc.)

display_user_anonymous.png

LinID Directory Manager est publié sous AGPLv3.

La version 1.0 du framework est sortie en janvier, fruit de plusieurs années de développement. Pour les connaisseurs, c'est la reprise du projet InterLDAP, enrichi des évolutions réalisées dans le cadre du projet de recherche FederID.

Pour avoir une idée des possibilités offertes par le framework, une application de démonstration est fournie. Après téléchargement et extraction, il suffit de cette commande pour lancer l'application sur votre poste :

mvn -Popends jetty:run

Plus de détails sont fournis sur le wiki du projet.

Si cette application vous a convaincu, l'étape suivante est de créer votre propre application, en démarrant avec les artefacts maven du framework !

Nous développons actuellement la version 2.0 qui contient la migration vers Tapestry 5.3 (la version 1.0 de LinID DM est basée sur Tapestry 5.1). Cette version peut-être testée dès maintenant en utilisant les artefacts déployés dans notre dépôt nexus ou directement en utilisant notre dépôt subversion.

LinID OpenLDAP Manager

Autre exemple d'utilisation du framework LinID Directory Manager, LinID OpenLDAP Manager est une application web de gestion de la configuration OpenLDAP. En effet, depuis la version 2.4, OpenLDAP peut stocker sa configuration dans un arbre LDAP (cn=config) et la modification peut donc être éditée par un client LDAP.

LinID OpenLDAP Manager propose donc des interfaces de gestion des backends, des overlays et du schéma :

linid-om-home.png

LinID OpenLDAP Manager est publié sous AGPLv3.

La version 0.6 de LinID OpenLDAP Manager est sortie le 10 février (voir l'annonce de la publication). Pour la tester, téléchargez, désarchivez puis :

./linid-om.sh start

La documentation complète est sur le wiki du projet.

Autres

Les autres produits sur lesquels nous travaillons sont également très actifs !

Charge

Charge est un logiciel utilisé pour des tests de performances d'annuaires LDAP. Développé en C avec les bibliothèques OpenLDAP, il permet d'injecter un très grand nombre de requêtes LDAP pour tester la montée en charge des annuaires.

La version 1.3 est sortie début janvier, amenant son lot de nouveautés, en particulier :

  • Support du SSL
  • Packaging RPM (CentOS 5 et CentOS 6)

LDAP Tool Box

Le projet LDAP Tool Box regroupe divers outils. En particulier, il fournit des RPMs d'OpenLDAP (CentOS 5 et CentOS 6) pour les versions les plus récentes publiées par le communauté. Un des autres outils phare est l'interface de changement et de réinitialisation de mot de passe appelée Self Service Password.

Pour plus de détails, consultez le site du projet ou parcourez les articles de ce blog.

LDAP Synchronization Connector

Une première version candidate de LSC 2.0 est sortie, la version stable devrait être publiée prochainement. Cette nouvelle version tranche véritablement avec les versions 1 :

  • Configuration en XML
  • Interface d'administration en java (Tapestry 5)
  • Connexion persistent sur OpenLDAP pour propagation en temps réel des mises à jour
  • Support des bases de données en destination

Pour plus de détails, consultez le site du projet.

LemonLDAP::NG

La version 1.2 présentée au FOSDEM est en préparation, comme cela est indiqué dans le précédent article.

Pour plus de détails, consultez le site du projet ou parcourez les articles de ce blog.

On recrute !

Toutes ces actualités montrent à quel point le sujet de la gestion d'identité Open Source est active. Si ce domaine vous intéresse, plusieurs annonces ont été publiées sur notre site pour des postes à pourvoir sur Paris ou sur Lyon :

J'attends de vos nouvelles !

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.

jeudi, décembre 22 2011

Sortie de Self Service Password 0.7

Présentation

Self Service Password est une interface web très simple permettant à un utilisateur de changer son mot de passe dans un annuaire LDAP. Cet annuaire peut être Active Directory ou un annuaire LDAP conforme au standard.

Le logiciel est en PHP, sous licence GPL.

recaptcha.png

Fonctionnalités principales

  • Mode Samba (pour les mots de passe NT et LM)
  • Mode Active directory (pour les mots de passe AD), avec déverrouillage et réinitialisation à la prochaine connexion
  • Mode Shadow account
  • Politique des mots de passe locale :
    • Taille minimale/maximale
    • Caractères interdits
    • Compteurs pour les majuscules, minuscules, chiffres et caractères spéciaux
    • Non réutilisation du mot de passe actuel
    • Complexité (nombre de classes de caractères différentes)
  • Messages d'aide
  • Réinitialisation par questions/réponses
  • Réinitialisation par un challenge par mail
  • reCAPTCHA (Google API)
  • Notification par mail après changement de mot de passe

L'application est désormais disponible en 8 langues : anglais, français, allemand, espagnol, brésilien, néerlandais, catalan et polonais !

Quelques liens

vendredi, décembre 2 2011

Sortie des RPMs OpenLDAP 2.4.28 sur LDAP Tool Box Project

OpenLDAPlogo.png

La version 2.4.28 d'OpenLDAP est sortie en début de semaine, et les RPMs du projet LDAP Tool Box ont suivi peu après.

Ces RPMs apportent les fonctionnalités suivantes:

  • Backend BDB, HDB, MDB et LDAP
  • Tous les overlays officiels
  • Certains overlays "contrib" (lastbind et smbk5pwd)
  • Support SSL (via OpenSSL)
  • Support de la délégation SASL
  • Support SLAPI
  • Autoconfiguration de la rotation des logs
  • Script d'initialisation en version 1.3
  • Module pwdChecker pour la politique des mots de passe

Le script d'initialisation propose de nombreuses fonctionnalités, comme la sauvegarde et la restauration des données. Ces simples commandes suffisent:

# service slapd backup
# service slapd restore

Il permet également de démarrer simplement OpenLDAP en mode debug:

# service slapd debug

Ce script est bien entendu compatible avec cn=config, et permettra dans sa prochaine version la sauvegarde et restauration de la configuration :

# service slapd backupconfig
# service slapd restoreconfig

Cette fonctionnalité sera fournie dans la prochaine version (1.4).

Pour télécharger tout ça, rendez-vous sur le site du projet LDAP Tool Box : http://ltb-project.org

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

mercredi, juillet 27 2011

Sortie de Self Service Password 0.6

Présentation

Self Service Password est une interface web très simple permettant à un utilisateur de changer son mot de passe dans un annuaire LDAP. Cet annuaire peut être Active Directory ou un annuaire LDAP conforme au standard.

Le logiciel est en PHP, sous licence GPL.

recaptcha.png

Fonctionnalités principales

  • Mode Samba (pour les mots de passe NT et LM)
  • Mode Active directory (pour les mots de passe AD)
  • Politique des mots de passe locale :
    • Taille minimale/maximale
    • Caractères interdits
    • Compteurs pour les majuscules, minuscules, chiffres et caractères spéciaux
    • Non réutilisation du mot de passe actuel
    • Complexité (nombre de classes de caractères différentes)
  • Messages d'aide
  • Réinitialisation par questions/réponses
  • Réinitialisation par un challenge par mail
  • reCAPTCHA (Google API)
  • Notification par mail après changement de mot de passe

L'application est désormais disponible en 6 langues : anglais, français, allemand, espagnol, brésilien et néerlandais.

Quelques liens

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.

dimanche, juillet 17 2011

Problème suite à la mise à jour du noyau dans Ubuntu

Si comme moi vous avez parfois des soucis après une mise à jour du noyau dans Ubuntu, voici la commande magique :

apt-get install linux-headers-$(uname -r)

Le paquet en s'installant exécutera automatiquement dkms pour recharger vos modules (comme nvidia ou virtualbox) :

Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 2.6.38-10-generic-pae /boot/vmlinuz-2.6.38-10-generic-pae
 * dkms: running auto installation service for kernel 2.6.38-10-generic-pae                                                                  
 *       nvidia-current (270.41.06)...                                                                                                [ OK ] 
 *       virtualbox-ose (4.0.4)...                                                                                                    [ OK ] 
run-parts: executing /etc/kernel/header_postinst.d/nvidia-common 2.6.38-10-generic-pae /boot/vmlinuz-2.6.38-10-generic-pae

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.

- page 1 de 4