Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [LDAP] Autentyfikacja uzytkownika
Forum PHP.pl > Forum > Bazy danych
foxmark
Witam!

Niestety dla mnie musze w pracy przygotowac skrypt logowania oparty na autentyfikacji LDAP
Przy uzyciu google smile.gif przygotowalem skrypt.
Niestety skryp dzial tylko na poziomie sprawdzenia Usera i Hasla
ale nie sprawdza juz czy user nalezy do grupy TrainingSiteAdmin
Czy ktos wie wiecej na temat LDAP

Pozdrawiam!


  1. <form id="form1" name="form1" method="post" action="">
  2. <p><label>User:</label>&nbsp;&nbsp;<input type="text" id="log" name="log" /></p>
  3. <p><label>Password</label>&nbsp;&nbsp;<input type="password" id="pass" name="pass" /></p>
  4. <p>
  5. <input type="submit" name="Go" id="Go" value="Submit" />
  6. </p>
  7. </form>
  8. <?php
  9. $log = $_POST['log'];
  10. $pass = $_POST['pass'];
  11. if ((isset($pass)) && (isset($log))) {
  12. $server = "ldap://127.0.0.1";
  13. $port = "389";
  14. $loginPassword = $pass;
  15. $loginBase = "uid=". $log .",ou=Users,ou=Domain,ou=XX,o=UK,dc=YY-online,dc=com";
  16.  
  17. $ds = ldap_connect($server, $port);
  18.  
  19. if ($ds) {
  20. $ldapbind = @ldap_bind($ds, $loginBase, $loginPassword);
  21. if ($ldapbind) {
  22. $ds = ldap_connect($server, $port);
  23. $dn = "dc=sbe-online,dc=com";
  24. $filter = "(&(cn=TrainingSiteAdmin)(memberUid=".$log."))";
  25. $justthese = array("cn");
  26. $sr = ldap_search($ds, $dn, $filter, $justthese);
  27. $info = ldap_get_entries($ds, $sr);
  28. $resultat = true;
  29. echo "$log<br>";
  30. echo "---->".$info["count"]." entries returned<br>";
  31. echo "$info";
  32. } else {
  33. $resultat = false;
  34. echo "not ok";
  35. }
  36. } else {
  37. $resultat = false;
  38. echo "Connection Problem";
  39. }
  40.  
  41. return ($resultat);
  42.  
  43.  
  44.  
  45. }
  46. ?>
misi3kk
Możesz wkleić jak wygląda struktura LDAP? Niedawno robiłem coś podobnego, ale z tego co widzę było to zupełnie inaczej podzielone.

Sprawdzałeś $filter poza PHP? Np. w Apache Directory Studio.
foxmark
Cytat(misi3kk @ 6.10.2011, 11:46:35 ) *
Możesz wkleić jak wygląda struktura LDAP? Niedawno robiłem coś podobnego, ale z tego co widzę było to zupełnie inaczej podzielone.

Sprawdzałeś $filter poza PHP? Np. w Apache Directory Studio.


Witam,

Zagadnienie Lightweight Directory Access Protocol jest mi nie znane, pierwszy raz sie z tym spotykam, filtr jak i elementy zapytan zostaly mi dostarczone przez administratora serwer, ja mam tylko uzyc tego przy tworzeniu aplikacji interentowej.

Zaraz sprawdze Apache Directory Studio i zobacze czy bede w stanie cos z tym zrobic. Nie jestem pewnien czy sie doprosze o strukture LDAP (moze to zajac jakis czas)


Pozdrawiam
misi3kk
Struktura będzie widoczna w ADS - akurat filtrów nie używałem, ale struktura na której pracowałem była bardzo prosta i tego nie wymagała. Jeśli szukasz kodu na którym można się wzorować to dobrym pomysłem może być moodle - jest w nim integracja z LDAP i jest mocno rozbudowana.
foxmark
Cytat(misi3kk @ 6.10.2011, 14:29:40 ) *
Struktura będzie widoczna w ADS - akurat filtrów nie używałem, ale struktura na której pracowałem była bardzo prosta i tego nie wymagała. Jeśli szukasz kodu na którym można się wzorować to dobrym pomysłem może być moodle - jest w nim integracja z LDAP i jest mocno rozbudowana.


Ostatecznie po rozmowie z administratorem sieci dowiedzialem sie ze zeby przeszukac grupe w poszukiwaniu uzytkowniaka, dany uzytkownik musi miec przypisane prawo do szukania w grupie, istnieja dwa rozwiazania albo sprawdzic login i pass i potem uzyc drugiego usera z prawem do szukania zeby psrawdzic czy pierwszy user nalezy do grupy, lub tak jak ja uzyc LDAP tylko do identyfikacji uzytkownika a nastepnie juz z poziomu bazy danych dodac uzytkownika do grupy lokalnej dla serwisu www.

Wyglada na to ze z powodow mi nie znanych administrator sieci nie ulatwi mi pracy - moim zalozeniem bylo stworzenie globlanego skryptu i "zwalic"
autentyfikacje i przynaleznosc do grupy na LDAP - co jest chyba bezpieczniejsze i stabilniejsze bo wszystkie strony w sieci korzystalyby z tego samego skryptu. jak rowniez wyklucza potrzebe tworzenia wewnetrzych praw i grup. jedyne co musialbym zrobic to dodac usera do grupy w LDAP. Szkoda ale tymczasem projekt zostaje zawieszony i uzywam wewnetrznego skryptu do zarzadzania uzytkownikami.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.