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

57 lines
2.2 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";
$name_user = "schwaral";
$password_user = "15879";
$ldap_port = "389";
$ds = @ldap_connect($server, $ldap_port);
#ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
if ($ds) {
# bind wird benötigt, sonst werden die Umlaute bei Namen nicht richtig angezeigt ?!!?
$r = ldap_bind($ds, $username, $password);
if($r){
echo "bind erfolgreich<br>";
}else{
echo "bind fehlgeschlagen<br>";
}
$_ldap_dn = "dc=hsnet,dc=hs-ludwigsburg,dc=de";
$sr = ldap_search($ds, $_ldap_dn, "sAMAccountName=$name_user");
$info = ldap_get_entries($ds, $sr);
$anzahl = ldap_count_entries($ds, $sr);
echo "Anzahl: $anzahl<br>";
$vorname = $info[0]['givenname'][0];
$nachname = $info[0]['sn'][0];
$mail = $info[0]['mail'][0];
$first = @ldap_first_entry($ds, $sr);
$distinguishedName = @ldap_get_dn($ds, $first);
echo $distinguishedName."<br>";
################################
# Bind geht im hsnet nur über den DN "CN=Schwarz\, Alexander, OU=Externe Benutzer, ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de"
##!!!!! IM STUDNET MIT DEM USERNAMEN BINDEN, IM HSNET MIT DEM DISTINGUISHEDNAME !!!!!!#################
if ($bind = @ldap_bind($ds, $distinguishedName, $password_user) AND $anzahl > 0) {
#echo "hsnet: Bind funktioniert: $anzahl |$distinguishedName|<br>";
$login = "0";
$login_ad = "hsnet";
} else {
# Bind funktioniert nicht
$login = "1";
ldap_close($ds);
#echo "hsnet: Bind funktioniert nicht: $anzahl <br>";
}
}else{
echo "kein connect";
}
echo $login;
?>