Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Active Directory, dostep przez LDAP - pobieranie danych, czyli jak uruchomic wsparcie dla LDAP w PHP oraz jak pobierac dane
idas
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.03.2007

Ostrzeżenie: (0%)
-----


Witam,

Mam taki problem do rozwiazania. Jest domena Active Directory, uzyskujemy do niej dostep poprzez LDAP.
Chcialbym [za pomoca odpowiedniej strony php] pobierac odpowiednie dane o uzytkownikach, ktore sie znajduja w Active Directory [np. imie, nazwisko] i wyswietlac je na stronie internetowej.
Wie ktos jak sie do tego zabrac?
Jak uruchomic wsparcie LDAP w PHP?

Dzieki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


Widzę, że zaniedbałem temat (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) .

Postaram się teraz to wynagrodzić.

oto klasa napisana przeze mnie której używam do komunikacji z ldap
  1. <?php
  2. class Ldap
  3. {
  4. private $ds;
  5. private $ldapHost;
  6. private $ldapRdn;
  7. private $ldapPass;
  8. private $ldapBind;
  9. private $compare;
  10. private $bind;
  11. public $error;
  12.  
  13. //----------------------------------------------------------------------------
  14. //  Constructor
  15. //----------------------------------------------------------------------------
  16. public function Ldap()
  17. {
  18. $this->ldapHost="ldap://host";
  19. $this->ldapRdn="twoj_rdn";
  20. $this->ldapPass="twoj_haslo";
  21.  
  22. $this->ds=ldap_connect($this->ldapHost);
  23. if(!$this->ds)
  24. {
  25.  $this->error="Błąd połączenia z serwerem LDAP";
  26.  return false;
  27. } 
  28. else
  29. {
  30.  ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3);
  31.  if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3))
  32.  {
  33. $this->error="Failed to set LDAP Protocol version to 3, TLS not supported.";
  34. return false;
  35.  }
  36.  
  37.  return true;
  38. } 
  39. }
  40. //----------------------------------------------------------------------------
  41. //  Getting connection
  42. //----------------------------------------------------------------------------
  43. private function isConnected() {if (!$this->ds) return false; return true;}
  44.  
  45. //----------------------------------------------------------------------------
  46. //  Reconnect
  47. //----------------------------------------------------------------------------
  48. private function reconnect()
  49. {
  50. $this->ds=ldap_connect($this->ldapHost);
  51. if(!$this->ds)
  52. {
  53.  $this->error="Błąd połączenia z serwerem LDAP";
  54.  return false;
  55. } 
  56. else
  57. {
  58.  ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3);
  59.  if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3))
  60.  {
  61. $this->error="Failed to set LDAP Protocol version to 3, TLS not supported.";
  62. return false;
  63.  }
  64.  
  65.  return true;
  66. } 
  67. }
  68. //----------------------------------------------------------------------------
  69. //  Bind
  70. //----------------------------------------------------------------------------
  71. private function ldapBind($rdn='',$pass='')
  72. {
  73.  if(!$this->isConnected())
  74. $this->reconnect();
  75.  if($rdn=='' && $pass=='')
  76. $this->bind=ldap_bind($this->ds,$this->ldapRdn,$this->ldapPass);
  77.  else
  78. $this->bind=ldap_bind($this->ds,$rdn,$pass);
  79.  
  80.  return $this->bind;
  81. }
  82. //----------------------------------------------------------------------------
  83. //  Login
  84. //----------------------------------------------------------------------------
  85. public function ldapLogin($user,$password)
  86. {
  87.  $filtr="uid=".$user;
  88.  $search=$this->ldapSearch($filtr);
  89.  
  90.  $info = $this->ldapEntries($search);
  91.  
  92.  if($info && $info['count']==1)
  93. if($this->ldapBind($info[0]['dn'],$password))
  94.  return $info[0]['uidnumber'][0];
  95.  
  96.  return false;
  97. }
  98. //----------------------------------------------------------------------------
  99. //  Search
  100. //----------------------------------------------------------------------------
  101. private function ldapSearch($filtr)
  102. {
  103.  if(!$this->bind)
  104. $this->ldapBind();
  105.  
  106.  return ldap_search($this->ds,"ciag_dla_twojego_ldapa",$filtr);
  107. }
  108. //----------------------------------------------------------------------------
  109. //  Get entries
  110. //----------------------------------------------------------------------------
  111. private function ldapEntries($search)
  112. {
  113.  return ldap_get_entries($this->ds, $search);
  114. }
  115. //----------------------------------------------------------------------------
  116. //  Search
  117. //----------------------------------------------------------------------------
  118. public function ldapWyszukaj($filtr)
  119. {
  120.  if(!$this->bind)
  121. $this->ldapBind();
  122.  
  123.  $szukaj=$this->ldapSearch($filtr);
  124.  return $this->ldapEntries($szukaj);
  125. }
  126. }//class
  127. ?>


Jest na tyle prosta, że chyba obędzie się bez zbędnych pytań, jeżeli ktoś jednak będzie chciał się czegoś więcej dowiedzieć proszę napisz pytanie tutaj i daj znak na PW żebym wszedł tutaj i odpowiedział ( w miarę możliwości ).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 05:29