deputat/ldap_search3.php
2023-04-25 13:25:59 +02:00

70 lines
1.8 KiB
PHP
Executable File

<?php
// Base DN bezeichnet die oberste OU unter der die User zu finden sind.
$basedn = "ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de";
$server = "localhost";
// da der Zugriff auch ohne Anmeldung möglich sein soll, hab ich einen extra User im AD angelegt, um mich mit dem Server zu verbinden.
$username = "cn=LDAPqueryUser,dc=hsnet,dc=hs-ludwigsburg,dc=de";
$password = "ldHS332";
$ldap_port = "389";
// LDAP Abfrage
// ich hab einen erweiterten Filter genommen, da ich nicht nur die User des AD haben wollte, sondern auch Kontakteinträge.
$filter = "(&(objectclass=person)(cn=*)(sAMAccountName=*))";
//$filter = "(&(|(objectClass=user)(objectClass=contact))(objectCategory=person)(cn=*))";
// Verbindung zum AD herstellen
$ds = @ldap_connect($server, $ldap_port);
if($ds){
echo "ds Erfolgreich<br>";
}else{
echo "ds Nicht erfolgreich<br>";
}
// Ihr könnt dies auch nutzen, um z.B. Usernamen und Passwort z.B. fürs Intranet zu verifizieren.
$binding = ldap_bind($ds,$username,$password) or die("Fehler");
if($binding){
echo "binding Erfolgreich<br>";
}else{
echo "binding Nicht erfolgreich<br>";
}
// AD auslesen
$sr = ldap_search($ds,$basedn,$filter);
$result = ldap_get_entries($ds,$sr);
$anzahl = ldap_count_entries($ds, $sr);
if($sr){
echo "search Erfolgreich<br>";
}else{
echo "search Nicht erfolgreich<br>";
}
if($result){
echo "result Erfolgreich<br>";
}else{
echo "result Nicht erfolgreich<br>";
}
// in $result sind nun alle User mit allen Informationen enthalten.
echo "<pre>";
for($i=0;$i<$anzahl;$i++){
$vorname = $result[$i]['givenname'][0];
$nachname = $result[$i]['sn'][0];
$uid = $result[$i]['samaccountname'][0];
echo "$vorname $nachname -> $uid<br>";
}
print_r($result);
echo "</pre>";
?>