Note: Dans le monde des coding dojo, ceci est la donnée d'un "kata" dans le sens d'un exercice de programmation. Il est destiné à toute personne voulant apprendre et parfaire ses connaissances sur le sujet.
Ce document est en cours d'élaboration, toutes propositions, idées, pull request, etc... seront très appréciées.
Kata d'exploration d'un annuaire LDAP (ldapsearch).
Note: les exercices qui suivent sont basés sur le LDAP de l'EPFL. Par conséquent, ils est possible que certains champs ne soient pas présents dans d'autres annuaires. Une adaptation des exercices ci-dessous en fonction du schéma de votre annuaire est probablement nécessaire, bien que les principes de base restent les mêmes.
Cet exercice permet de travailler les requêtes sur un annuaire LDAP.
-
Forker le repo et créer une branche portant le nom de votre username (
git checkout -b username
par exemplegit checkout -b ponsfrilus
, depuis votre fork). -
Ajouter un fichier
solution_username.md
(par exemplesolution_ponsfrilus.md
) dans lequel vous indiquer les réponses aux différents questions. -
Ajouter votre nom d'utilisateur au fichier CONTRIBUTORS.md.
-
Faites ensuite une "pull request" pour ajouter vos solutions à ce repo.
- Que signifie LDAP ? (wikipedia)
- Les annuaires LDAP ont des champs
c
,o
,dc
,ou
,dn
,cn
etsn
.
Que signifient-ils ? - Quels sont les sujets des RFC 4511 et suivantes ?
- Avec la commande
ldapsearch
, se connecter sur leldapuri
'ldaps://ldap.epfl.ch' avec unesearchbase
égale à 'c=ch' et le paramètre '-x' (Use simple authentication instead of SASL). Que constate-t-on ? - Ajouter un filtre
uniqueIdentifier=
égale à votre numéro sciper à la commande précédente. - Ajouter le paramètre
-LLL
à la commande précédente. Que fait-il ? - Spécifier les attributs que vous souhaitez obtenir à la fin de votre
commande, par exemple
personalTitle gecos mail
. - Comment modifier cette requête pour rechercher des personnes avec leur nom de famille exact ?
- Comment modifier cette requête pour rechercher une personne avec son email exact ?
- Quel est le caractère "wildcard" utilisé dans les filtres LDAP ?
- Donner 2 requêtes basées sur celles de l'exercice précédent utilisant le caractère wildcard.
- Trouver tous les emails des personnes dans l'unité IDEV-FSD.
- Trouver tous les usernames des personnes dans le groupe epfl-dojo.
- Expliquer les différents types d'organisation que donne la requête
ldapsearch -x -H ldaps://ldap.epfl.ch -b 'c=ch' -LLL 'objectclass=organization' dn
- Trouver toutes les personnes ayant un compte "guest" présentent dans le groupe epfl-dojo.
- Trouver les personnes de l'unité IDEV-FSD qui ne sont pas dans le groupe epfl-dojo.
- Compter le nombre de personnes avant le nom de famille "Dupont" dans l'annuaire.
- Extraire la liste d'email du groupe "epfl-dojo", vérifier qu'il n'y a pas de doublon, la trier par ordre alphabétique et la sauver dans un fichier.
- Compter le nombre d'unité à l'EPFL.
- Compter le nombre de Professeurs dans l'école.
- Trouver la personne avec le numéro sciper le plus élevé.
- Les paquets
krb5-usr
,libsasl2-2
,libsasl2-modules-gssapi-mit
- Le royaume (REALM) Kerberos de l'EPFL est "
INTRANET.EPFL.CH
" .) Cela devrait configurer le
default_realm = INTRANET.EPFL.CH
de la séction[libdefaults]
du fichier de configuration/etc/krb5.conf
.) Pour éviter l'erreur "Server not found in Kerberos database" de GSSAPI, spécifier les adresses des serveurs intranet de l'école dans/etc/hosts
, e.g.128.178.15.229 ad3.intranet.epfl.ch ad3
- Optenir un ticket Kerberos avec la commande
kinit username
- Tester une requête avec:
ldapsearch -O maxssf=0 -Y GSSAPI -H ldap://ad3.epfl.ch -LLL -b "dc=intranet,dc=epfl,dc=ch" '(uid=username)'