Bonjour,
J'aurais besoin de créer une solution d'authentification qui utiliserait en fait le login et password d'un utilisateur d'un serveur LDAP. Pour cela il faudrait que je me connecte à un serveur LDAP et que je valide ou non la connexion avec le combo login/password (j'imagine).
Le problème c'est que j'en suis quasiment au stade zéro. J'ai effectué beaucoup de recherches, sur ce forum, sur d'autres anglais et français, et je ne trouve rien de convaincant. Soit je n'arrive pas à mettre en oeuvre la solution, soit elle est dépassée et ne compile même plus.
De plus, j'aurais voulu que cette solution fonctionne à la fois sous windows, et à la fois sous linux, donc j'imagine que les solutions à base de activeds.dll sont donc à proscrire pour ce cas...
Ce qui m'a paru le plus intéressant pour le moment est le travail de Paul TOTH que voici. Malheureusement je n'arrive même pas à passer la case connexion (honte à moi ?).
J'ai trouvé un serveur LDAP de test sur le web, avec lequel j'arrive à me connecter avec Apache Studio. Voici le lien pour les curieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 procedure login(const user,pass:string; var id,FullName:string); var ldap:integer; dn :string; begin ldap:=LDAPOpen('ldap_serveur'); if (ldap=INVALID_SOCKET) then raise Exception.Create('Serveur de sécurité introuvable'); try dn:=LDAPSearch(ldap,user); if (dn='') then raise Exception.Create('Compte inconnu'); if LDAPBind(ldap,dn,pass)=false then raise Exception.Create('Mot de passe invalide'); id:=LDAPAttribute(ldap,dn,'EmployeeID'); if id='' then raise Exception.Create('Annuaire incomplet'); FullName:=LDAPAttribute(ldap,dn,'cn'); finally LDAPClose(ldap); end; end;
Donc dans le code ci-dessus je remplace 'ldap_serveur' par 'ldap.forumsys.com' mais erreur... Suis-je totalement à côté de la plaque ?
Merci beaucoup à ceux qui m'aideront.
Partager