====== Cours LDAP ====== ===== Cours à télécharger ===== * {{:lpro:cours-ldap2.pdf|Cours LDAP}} * {{:lpro:tp_ldap2014_slapd3.odt| TP LDAP }} * [[:lpro:ldap:ldif | Génération fichier LDIF en Java]] * {{:lpro:ldapconfig.pdf| Exemple de configuration LDAP}} * Installation des clients * Luma * Apache directory studio * phpldapadmin * Exercice 1 : Suivre les consignes du document "TP LDAP" * Exercice 2 : Installer Apache directory studio et phpldapAdmin * Pour phpldapadmin modifier le fichier /etc/phpldapadmin/config.php $servers->setValue('server','base',array('dc=univ-lehavre,dc=fr')); $servers->setValue('login','bind_id','cn=admin,dc=univ-lehavre,dc=fr'); * Exercice 3 : Decouverte de l'API LDAP en JAVA * [[:lpro:ldap:code_java| Exemple de code java]] * Exercice 4 : créer un portail d'authentification en PHP * Exercice 5 : Créer une page d'enregistrement (ajout compte) + modification de son mot de passe * Exercice 6 : Créer une ou plusieurs page web permettant de ajouter/supprimer/modifier un compte * Exercice 7 : Déporter l'authentification Unix d'un serveur sur LDAP avec creation des home à la première connexion * [[:lpro:ldap:code_php| Exemple de code PHP]] * [[:lpro:ldap:php2 | Exemples de code PHP 2]] * [[:lpro:ldap:shell | Ligne de commandes ]] * [[:lpro:ldap:application | Application]] * [[:lpro:ldap:lpro_corp | Données etude de cas ]] ===== Nouvelle version OpenLdap (nouvelle configuration) ===== * Doc OpenLdap : http://www.openldap.org/doc/admin24/slapdconf2.html * PHP & LDAP : http://www.commentcamarche.net/contents/php/phpldap.php3 ==== Quelques commandes utiles ==== * **Ajout** ldapadd -W -D -x -H ldap:// -f * **Recherche** ldapsearch -x -H ldap:// -b [-s portée] [filtre] [attributs] * **Suppression** ldapdelete -W -D -x -H ldap:// * **Modification** ldapmodify -W -D -x -H ldap:// -f * **Modification du rdn** ldapmodrdn -W -D -x -H ldap:// * **Supprimer les ACL** dn: olcDatabase={1}hdb,cn=config changetype: modify delete: olcAccess ===== Fichiers de données ===== # ldapadd -Y EXTERNAL -H ldapi:/// -f .ldif ==== Création de la base (falcutatif si dpkg-reconfigure slapd) ==== # Load dynamic backend modules dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulepath: /usr/lib/ldap olcModuleload: {0}back_hdb # Database settings dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {1}hdb olcSuffix: dc=univ-lehavre,dc=fr olcDbDirectory: /var/lib/ldap olcRootDN: cn=admin,dc=univ-lehavre,dc=fr olcRootPW: secret olcDbConfig: set_cachesize 0 2097152 0 olcDbConfig: set_lk_max_objects 1500 olcDbConfig: set_lk_max_locks 1500 olcDbConfig: set_lk_max_lockers 1500 olcDbIndex: objectClass eq olcLastMod: TRUE olcDbCheckpoint: 512 30 ==== Initialisation de l'annuaire (falcutatif si dpkg-reconfigure slapd) ==== dn: dc=univ-lehavre,dc=fr objectClass: dcObject objectClass: organization dc: univ-lehavre o: univ-lehavre description: univ-lehavre ==== Création de la structure ==== sudo ldapadd -x -D cn=admin,dc=univ-lehavre,dc=fr -W -f struct.ldif dn: ou=users,dc=univ-lehavre,dc=fr objectClass: top objectClass: organizationalUnit ou: users dn: ou=groups,dc=univ-lehavre,dc=fr objectClass: top objectClass: organizationalUnit ou: groups ==== Ajout des utilisateurs ==== sudo ldapadd -x -D cn=admin,dc=univ-lehavre,dc=fr -W -f users.ldif dn: cn=utilisateurs,ou=groups,dc=univ-lehavre,dc=fr objectClass: posixGroup cn: utilisateurs gidNumber: 2000 dn: uid=garfield,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: garfield uid: garfield uidNumber: 10001 gidNumber: 2000 homeDirectory: /home/garfield userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=julien,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: julien uid: julien uidNumber: 10002 gidNumber: 2000 homeDirectory: /home/julien userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=tom,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: tom uid: tom uidNumber: 10003 gidNumber: 2000 homeDirectory: /home/tom userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=dominique,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: garfield uid: garfield uidNumber: 10004 gidNumber: 2000 homeDirectory: /home/garfield userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=michel,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: michel uid: michel uidNumber: 1010 gidNumber: 2000 homeDirectory: /home/michel userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=stephane,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: stephane uid: stephane uidNumber: 1011 gidNumber: 2000 homeDirectory: /home/stephane userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=robert,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: robert uid: robert uidNumber: 1012 gidNumber: 2000 homeDirectory: /home/robert userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=jean,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: jean uid: jean uidNumber: 1013 gidNumber: 2000 homeDirectory: /home/jean userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=nicolas,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: nicolas uid: nicolas uidNumber: 1014 gidNumber: 2000 homeDirectory: /home/nicolas userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=camille,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: camille uid: camille uidNumber: 1015 gidNumber: 2000 homeDirectory: /home/camille userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=claire,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: claire uid: claire uidNumber: 1016 gidNumber: 2000 homeDirectory: /home/claire userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=nathalie,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: nathalie uid: nathalie uidNumber: 1017 gidNumber: 2000 homeDirectory: /home/nathalie userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=antoine,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: antoine uid: antoine uidNumber: 1018 gidNumber: 2000 homeDirectory: /home/antoine userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=yoann,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: yoann uid: yoann uidNumber: 1019 gidNumber: 2000 homeDirectory: /home/yoann userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE= dn: uid=gaetan,ou=users,dc=univ-lehavre,dc=fr objectClass: account objectClass: posixAccount cn: gaetan uid: gaetan uidNumber: 1020 gidNumber: 2000 homeDirectory: /home/gaetan userPassword:: e0NSWVBUfWRhSDJadHI4dElnZFE=