Archive

Posts Tagged ‘ldap’

Petite surprise en LDAP: last successful bind

April 28th, 2009 2 comments

Un rapide poste qui je l’espère fera suite à d’autres pour exposer une petite surprise que j’ai eu avec LDAP (enfin de manière plus précises avec les serveurs). Lors d’un projet pour mon nouvel employeur, on me demanda d’installer un OpenSSO pour authentifier des utilisateurs et obtenir leurs attributs LDAP. Bon, jusqu’ici rien d’anormal. Néanmoins, dans les attributs utilisateurs, il est demandé un attribut fournissant la date de la dernière connexion d’un utilisateur (en pratique la date d’un dernier bind opéré avec succès). Sur le moment, je n’ai pas percuté. Ce n’est qu’au moment de revenir sur mon poste, et par acquis de conscience, que j’ai commencé à me renseigner.

Et quelle ne fut pas ma surprise lorsque je me suis rendu que :

  • OpenSSO ne le permet pas de base. Après une rapide rechercher, il semblerait qu’une manière simple (c’est tout relatif) est d’écrire une classe (Java) qui sera exécutée après une authentification utilisateur.
  • Active Directory semble fournir cette fonctionnalité de base (via l’attribut lastlogon)
  • Sun Directory Directory Server Entreprise Edition (DSEE pour faire court) ne semble à priori pas le supporter dans toutes ses versions (>= 6.2 de mémoire, à prendre avec grande précaution) (tests en court)
  • OpenDS le supporte (tests en court)
  • Sun iPlanet 5.x ne le supporte tout simplement pas
  • Je n’ai pas regardé pour les autres serveurs, si jamais vous avez des retours dessus, je suis preneur.

Évidemment, je vous laisse deviner quel serveur j’utilise. Donc, je me suis retrouvé à écrire un plugin (en C) pour iPlanet, j’avoue que cela est assez intéressant (enfin il y a bien pire comme tâche :). Je vais mettre à disposition le code de ce plugin d’ici quelques jours, même si je doute qu’en Avril 2009 cela intéresse encore beaucoup de gens !

Pour information, pour obtenir cette fonctionnalité avec DSEE et OpenDS, il faut utiliser les password policies, et n’activer que la partie concernée. Cela va mettre à jour le champ ds-pwp-last-login-time (au moins vrai pour OpenDS).

Néannmoins, j’avoue que je suis assez surpris que cela ne soit pas de base, partout, dans tous les serveurs LDAP. Certes, cela demande un minimum de performances supplémentaires. En effet, cela provoque une écriture (opération considérée comme lente sur un annuaire LDAP) à chaque opération d’authentification réussie (mais on pourrait imaginer de vouloir l’équivalent pour un last failure). Mais au point de vue gestion d’identité, c’est quand même une information qui peut être très intéressante. Au hasard, sur un portail public, d’obtenir rapidement, et simplement, la liste des utilisateurs qui ne se sont pas connectés depuis une année.

Categories: IAM, Security, Sysadmin Tags: ,

(Open)Solaris et DSEE (LDAP)

December 15th, 2008 2 comments

Suite à ma présentation ce Mardi 9 Décembre sur LDAP et DSEE (Directory Server Enterprise Edition, le nouveau nom de iPlanet Directory Server, euh pardon, Sun Directory Server) pour l’association GUSES, voici le support de conférence. Une vidéo est également disponible, malheureusement, n’ayant pas (encore ?) de micro cravate/serre-tête le son n’est vraiment pas top, pour ne pas dire très mauvais.

Pour ceux qui n’ont pas le courage de suivre, voici (d’une manière très résumé) comment activer le support LDAP pour les comptes utilisateurs sur un Solaris.

Créer une entrée LDIF pour le profile ldapclient :

Sur le Solaris en question, activer ldapcilent via la commande suivante :

# ldapclient init -a profileName=default -a domainName=guses.org -a "proxyDN=cn=Directory Manager" -a proxyPassword=password host:port

Et finalement, un exemple PAM pour que cela fonctionne en login local, et via (fichier DIFF sur /etc/pam.conf)

23c23,24
< login auth required           pam_unix_auth.so.1
---
> login auth sufficient         pam_unix_auth.so.1
> login auth required           pam_ldap.so.1 try_first_pass
69c70,71
< other auth required           pam_unix_auth.so.1
---
> other auth sufficient         pam_unix_auth.so.1
> other auth required           pam_ldap.so.1 try_first_pass

Categories: Solaris, Sysadmin Tags: ,