Code Monkey home page Code Monkey logo

kata-ldap's Introduction

Kata LDAP

Kata d'exploration d'un annuaire LDAP (ldapsearch).

À propos

ⓘ Ceci est la donnée d'un kata, un exercice de programmation qui se déroule généralement dans le cadre d'un coding dojo. Il est proposé aux membres du dojo de l'EPFL et fait partie d'une collection de différents katas identifiés par le tag epfl-dojo-kata sur GitHub.
Vous êtes plus que bienvenu·e d'essayer de le réaliser dans le langage de programmation de votre choix. Lorsque c'est terminé, ajoutez-vous à la liste de ceux qui l'ont fait dans ce document en proposant une Pull Request. Vous pouvez également partager votre intérêt pour ce dépôt en le «stargazant», c'est à dire en lui ajoutant une ⭐.
Bonne lecture et bon code !

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.

But

Cet exercice permet de travailler les requêtes sur un annuaire LDAP.

Comment procéder

  1. Forker le repo et créer une branche portant le nom de votre username (git checkout -b username par exemple git checkout -b ponsfrilus, depuis votre fork).

  2. Ajouter un fichier solution_username.md (par exemple solution_ponsfrilus.md) dans lequel vous indiquer les réponses aux différents questions.

  3. Ajouter votre nom d'utilisateur au fichier CONTRIBUTORS.md.

  4. Faites ensuite une "pull request" pour ajouter vos solutions à ce repo.

Données

Question générales

  1. Que signifie LDAP ? (wikipedia)
  2. Les annuaires LDAP ont des champs c, o, dc, ou, dn, cn et sn.
    Que signifient-ils ?
  3. Quels sont les sujets des RFC 4511 et suivantes ?

Requêtes de base

  1. Avec la commande ldapsearch, se connecter sur le ldapuri 'ldaps://ldap.epfl.ch' avec une searchbase égale à 'c=ch' et le paramètre '-x' (Use simple authentication instead of SASL). Que constate-t-on ?
  2. Ajouter un filtre uniqueIdentifier= égale à votre numéro sciper à la commande précédente.
  3. Ajouter le paramètre -LLL à la commande précédente. Que fait-il ?
  4. Spécifier les attributs que vous souhaitez obtenir à la fin de votre commande, par exemple personalTitle gecos mail.
  5. Comment modifier cette requête pour rechercher des personnes avec leur nom de famille exact ?
  6. Comment modifier cette requête pour rechercher une personne avec son email exact ?

Filtres de recherche

  1. Quel est le caractère "wildcard" utilisé dans les filtres LDAP ?
  2. Donner 2 requêtes basées sur celles de l'exercice précédent utilisant le caractère wildcard.

Base de recherche, groupe et unité organisationnelle

  1. Trouver tous les emails des personnes dans l'unité IDEV-FSD.
  2. Trouver tous les usernames des personnes dans le groupe epfl-dojo.
  3. 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

Filtres avancés

  1. Trouver toutes les personnes ayant un compte "guest" présentent dans le groupe epfl-dojo.
  2. Trouver les personnes de l'unité IDEV-FSD qui ne sont pas dans le groupe epfl-dojo.

Pour aller plus loin

  1. Compter le nombre de personnes avant le nom de famille "Dupont" dans l'annuaire.
  2. 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.
  3. Compter le nombre d'unité à l'EPFL.
  4. Compter le nombre de Professeurs dans l'école.
  5. Trouver la personne avec le numéro sciper le plus élevé.

Requêtes sur Active Directory avec un ticket Kerberos

  1. Les paquets krb5-usr, libsasl2-2, libsasl2-modules-gssapi-mit
  2. 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
  3. Optenir un ticket Kerberos avec la commande kinit username
  4. 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)'

kata-ldap's People

Contributors

ponsfrilus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.