Bonnes ID ~ Clément Oudot

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

LDAP a lu lah

Fil des billets

mercredi, juillet 21 2010

Nouveaux RPMs pour OpenLDAP 2.4.23 sur LTB-project

ltb-logo.png

Ce mois-ci est sortie la version 2.4.23 d'OpenLDAP, étiquetée comme stable par ses développeurs.

Les RPMs ont été mis en ligne très rapidement sur LTB-project et sont téléchargeables ici.

Il est fortement conseillé de migrer vers cette version car les précédentes ont fait l'objet d'alertes de sécurité.

Les paquets fournis par LTB-Project incluent en plus d'OpenLDAP un script d'initialisation et un module de contrôle de mot de passe pour l'overlay ppolicy.

LTB-Project a également publié récemment une mise à jour des plugins LDAP Nagios et Cacti.

Liens :

jeudi, avril 1 2010

Le protocole LDAP sous brevet logiciel

Le protocole LDAP est né dans les années 90 (du siècle dernier) afin de fournir une alternative "légère" à X.500. Depuis, de nombreux éditeurs et communautés ont fourni des serveurs répondant à la norme LDAP, en particulier LDAPv3 publiée en 1998 (avant le bogue de l'an 2000).

L'un de ces éditeurs s'appelle Microsoft, et son produit Active Directory implémente, entre autres, le protocole LDAP.

En réaction au rachat de SUN par Oracle, qui détient l'un des produits LDAP concurrents les plus solides, Microsoft vient de décider d'engager des poursuites judiciaires en faisant jouer ses brevets sur le protocole LDAP.

L'idée derrière tout ça est bien entendu de s'imposer sur le marché des annuaires, mais surtout mettre en avant les innovations techniques d'Active Directory :

  • Encodage du mot de passe avec un format propriétaire, pour plus de sécurité, dans un attribut non standard (on laisse le champ userPassword en tant que "pot de miel" pour détecter les attaques par dictionnaire)
  • Protocole de réplication propriétaire et fermé, là aussi pour effrayer les éventuels pirates
  • Modification du schéma standard, en particulier suppression de la classe d'objet person qui ne sert vraiment à rien (on la remplace par account)
  • Gestion de la politique des mots de passe par Group Policy, sous format propriétaire, pour que l'on abandonne enfin le draft ppolicy (toujours pas passé en RFC !)
  • Fin de support pour un certain nombre d'extensions, en particulier les filtres étendus, afin de ne pas alourdir le protocole

En définitive, les idées de Microsoft sont bonnes et devraient permettre au protocole LDAP de mieux se diffuser dans les SI, pour offrir alors une alternative crédible aux bases de données.

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.

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

vendredi, septembre 26 2008

Sortie de Perl-LDAP 0.38

Une nouvelle version de la librairie Perl-LDAP est sortie fin septembre, essentiellement liée à des correctifs sur l'utilisation de la politique des mots de passe :

  • Utilisation d'un mauvais champ pour stocker l'erreur
  • Bug dans le décodage du contrôle
  • Possibilité d'utiliser le contrôle dans l'opération étendue modifypassword (nommée setPassword dans la librairie Perl)

Une des conséquences les plus importantes est l'utilisation de pp_error() au lieu de error() pour récupérer le message d'erreur du contrôle. Cela impose de modifier vos codes sources pour prendre en compte le renommage de la fonction. Le code de LemonLDAP::NG est bien entendu déjà corrigé sur le dépôt subversion.

Je recommande donc d'exiger au minimum la version 0.38 de Perl-LDAP si vous utilisez la politique des mots de passe.

lundi, mars 31 2008

Sortie de Perl-LDAP 0.35 et politique des mots de passe

Perl

Ce week-end une nouvelle version des bibliothèques Perl Net::LDAP est sortie en version 0.35, apportant un certain nombre d'améliorations (listées ici), dont un nouveau module dédié au contrôle LDAP Password Policy.

Rappelons que ce contrôle permet par exemple de bloquer des comptes suites à plusieurs authentifications ratées, de conserver un historique des mots de passe, d'avoir une taille minimale, de chiffrer à la volée, etc. Si vous souhaitez plus d'informations sur ce standard (qui n'en n'est pas vraiment un puisque la RFC n'est encore qu'un brouillon), vous trouverez une documentation ici.

L'installation se fait de manière très classique :

# perl Makefile.PL
# make
# make test
# make install

Ainsi, vous pouvez à présent dans vos programmes Perl récupérer les messages spécifiques de ce contrôle :

        use Net::LDAP;
        use Net::LDAP::Control::PasswordPolicy;
        use Net::LDAP::Constant qw( LDAP_CONTROL_PASSWORDPOLICY );

        $ldap = Net::LDAP->new( "ldap.example.com" );

        $pp = Net::LDAP::Control::PasswordPolicy->new;

        $mesg = $ldap->bind( "cn=Bob Smith,dc=example,dc=com",
                             password => "secret",
                             control => [ $pp ] );

        # Get password policy reponse
        my($resp)  = $mesg->control( LDAP_CONTROL_PASSWORDPOLICY );

        if (defined($resp)) {
          my $v = $resp->error;
          print "Password policy error $v\n" if defined $v;
          $v = $resp->time_before_expiration;
          print "Password expires in $v second(s)\n" if defined $v;
        }