robinHood (./16) :
d'accord je comprend mieux, concrètement LDAP permet la liaison entre une "bdd" d'users associé à des champs divers et variés pour paramétrer tout et n'importe quoi ?
donc si je gère tout avec, je pourrais donc aussi par exemple gérer la connections admin de mes sites ? et la "fiche" LDAP de chaque utilisateur contiendrais les droit d’accès de chaque sites ainsi que sont répertoire ftp et autre joyeusetés ?
En gros, c'est ça. Après, ça n'est pas magique : si tes applications/services ne savent pas communiquer avec un annuaire LDAP (ou de façon limitée : par exemple, certains services ne l'utilisent que pour l'authentification, la gestion des droits se faisant "localement" dans un fichier de paramètres ou une base propre à l'application).
C'est un annuaire, au sens large : tu as des fiches d'individus (ça peut aussi être des ordinateurs, des groupes, des tables ou ce que tu veux hein). Certains individus ont la possibilité de s'authentifier (il faut qu'ils aient un mot de passe pour ça), sinon ça peut être juste un dénombrement "mort" (comme pour un annuaire téléphonique à consulter ; d'ailleurs la plupart des clients modernes de messagerie permettent d'avoir un annuaire dynamique connecté sur un annuaire LDAP).
robinHood (./16) :
par création automatique, j'entendais créer des users ftp sans intervention manuelle de ma part, ici ça dépendrais donc du stockage choisi de la "liste" LDAP ?
Non, en fait ça pourrait dépendre de deux choses (je vais essayer d'être clair, mais c'est plus facile en expliquant avec des schémas en direct).
La première chose à savoir, c'est que LDAP est un protocole d'interrogation/réponse. Il ne se soucie pas de la façon dont sont stockées les données. En général on utilise un système de base de données orienté lecture (par défaut BerkeleyDB pour OpenLDAP [mais il y a des connecteurs pour d'autres bases], JET Blue pour ActiveDirectory, etc.). Tu ne vas pas te soucier de cette base de données, tu ne vas jamais t'y connecter ni la modifier en direct (une structure LDAP est particulièrement peu adaptée à une base relationnelle, parce qu'elle est dynamique, avec des notions d'objets et de classes qui ne sont que peu compatibles avec de l'objet-relationnel, donc chaque service LDAP a sa façon de faire sa cuisine, on n'y touche pas).
Donc il y a une seule façon de créer un compte d'utilisateur LDAP : avec une requête LDAP.
Cela dit, ton système tout entier (Unix, Linux, MacOS, Windows...) peut s'asseoir sur un annuaire, pour peu qu'il dispose de la structure (on parle de schéma) adapté à ce système (il y a des classes d'objets pour Samba, pour les utilisateurs Unix ; Microsoft a des schémas spécifiques pour ActiveDirectory [AD], etc.). De ce fait, ton système dispose alors de connecteurs pour gérer ses utilisateurs dans l'annuaire de façon transparente. Par exemple, si tu as un AD, quand tu vas créer un utilisateur Windows classique, il va être enregistré dans l'AD directement via une requête LDAP, ça sera transparent. De la même façon, si tu as correctement paramétré Linux pour utiliser un annuaire LDAP (avec PAM, NSCD et tutti quanti), quand tu vas faire un useradd, il ne va pas le créer dans les fichiers passwd ou shadow mais directement dans l'annuaire. Du coup, toute application qui va gérer ses utilisateurs en s'appuyant sur les outils Unix classiques (useradd, usermod et tout ce qui tourne autour de PAM) pourra interagir avec l'annuaire de façon transparente, sans savoir qu'elle "parle" en LDAP.
Et tu peux créer un utilisateur LDAP avec PHP, il y a une API LDAP assez complète (j'en ai développé une surcouche objet encore plus complète, le cas échéant), c'est pas un problème. Ou directement avec un fichier LDIF en appelant la commande binaire d'exécution de requête LDAP.