Hochladen aller Dateien des Projekts.

This commit is contained in:
2024-06-13 22:21:23 +02:00
parent 8af145816f
commit 2e0cd7dee3
650 changed files with 97218 additions and 0 deletions

205
LDAP_erstes_beispiel.php Executable file
View File

@@ -0,0 +1,205 @@
<?php
echo "<html><head>";
echo "<title>LDAP-Zugriff auf ein Active Directory</title>";
echo "</head><body>";
// *** Parameter für den LDAP-Zugriff ***
// Adresse des Domänencontrollers:
$ldap_server = "ldap://10.11.35.1";
// Konto für den Zugriff:
$auth_user = "condecco@dms01.local";
$auth_pass = "Kx32?t21qay";
// Mit Server verbinden:
if (!($connect=@ldap_connect($ldap_server))) {
die("Keine Verbindung zum Verzeichnis-Server möglich.");
}
// Diese Parameter sind nötig für den Zugriff auf ein Active Directory:
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
// An Server binden:
if (!($bind=@ldap_bind($connect, $auth_user, $auth_pass))) {
die("Bind fehlgeschlagen.");
}
$person="Christ";
//$dn = utf8_encode( "OU=Technik,OU=Münster,OU=Mitarbeiter,DC=DMS01,DC=local");
$dn = utf8_encode( "DC=DMS01,DC=local");
$filter="(CN=calbers)";
$justthese = array( "ou", "sn", "cn", "givenName", "mail", "vorname", "memberOf", "badPasswordTime");
$sr=ldap_search($connect, $dn, $filter, $justthese);
ldap_get_option($connect,LDAP_OPT_ERROR_STRING,$error);
echo $error;
$info = ldap_get_entries($connect, $sr);
print $info["count"]." gefundene Einträge<p>";
echo "name: ".$info[ 0 ][ "sn" ][ 0 ]."<br />";
echo "benutzer_anmeldename: ".$info[ 0 ][ "cn" ][ 0 ]."<br />";
echo "vorname: ".$info[ 0 ][ "givenname" ][ 0 ]."<br />";
echo "Email: ".$info[ 0 ][ "mail" ][ 0 ]."<br />";
foreach( $info[ 0 ][ "memberof" ] as $key=>$element )
{
if ( is_int( $key) )
{ echo "schluessel: ".$key." gruppe: ".$element."<br />";
}
}
echo "<hr />";
var_dump( $info );
//var_dump( $info );
/*
foreach( $info as $key=>$element )
{
if ( is_array( $element ) )
{
foreach( $element as $key_2=>$element_2 )
{
if ( is_array( $element_2 ) )
{
foreach( $element_2 as $key_3=>$element_3 )
{
echo "===>".$key_3."|".$element_3."<===<br />";
}
}
else
{
echo "==>".$key_2."|".$element_2."<==<br />";
}
}
}
else
{
echo "=>".$key."|".$element."<=<br />";
}
}
*/
$username = "calbers";
$passwort = "Lichterc!";
echo "Versuch";
//echo checkNTUser ($username,$passwort);
echo "fertig";
/*
// BaseDN festlegen:
$base_dn = "OU=Vertrieb,DC=dms01,DC=local";
//$base_dn = "";
// LDAP filter setzen: Nur Kontakt- und Benutzer-Objekte sollen zurückgegeben werden
//$filter = "(|(objectClass=contact)(objectClass=user))";
$filter = "uid=*";
// Suche starten:
if (!($search=@ldap_search($connect,$base_dn,$filter))) {
ldap_get_option($connect,LDAP_OPT_ERROR_STRING,$error);
echo $error;
die("Durchsuchen des LDAP-Servers fehlgeschlagen.");
}
*/
$sr=ldap_search($connect, $dn, $filter, $justthese);
$anzahl = ldap_count_entries($connect,$sr);
// Ergebnis der Suche in der Variablen $info ablegen:
$info = ldap_get_entries($connect, $sr);
// Nur die relevanten Teile des $info-Arrays in ein $ergebnis-Array übernehmen:
// (Verbessert die Übersichtlichkeit)
// Hinweis: utf8_decode dekodiert Umlaute richtig.
for ($i=0; $i<$anzahl; $i++) {
$ergebnis[$i]["objectclass"] = $info[$i]["objectclass"][3];
$ergebnis[$i]["displayname"] = utf8_decode($info[$i]["displayname"][0]);
$ergebnis[$i]["givenname"] = utf8_decode($info[$i]["givenname"][0]);
$ergebnis[$i]["sn"] = utf8_decode($info[$i]["sn"][0]);
$ergebnis[$i]["mail"] = $info[$i]["memberOf"][0];
$ergebnis[$i]["telephonenumber"]= $info[$i]["telephonenumber"][0];
// Der distinguishedName, also z.B. CN=blub,OU=...,DC=test,DC=local
// soll dazu verwendet werden, aus den OU-Angaben die Abteilung
// zu erzeugen:
$ergebnis[$i]["abteilung"] = utf8_decode( erzeuge_abteilung($info[$i][dn]) );
}
// Array alphabetisch sortieren, usort erwartet dazu eine Vergleichsfunktion:
//usort($ergebnis, 'vergleich');
// Array $ergebnis in einer Tabelle ausgeben:
echo "<table border=1>";
for ($i=0; $i<$anzahl; $i++) {
echo "<tr>";
echo "<td width=200>displayname" . $ergebnis[$i]["displayname"] . "</td>";
echo "<td width=200>abteilung " . $ergebnis[$i]["abteilung"] . "</td>";
/*
if (empty($ergebnis[$i]["mail"]))
echo "<td width=200> - </td>";
else
echo "<td width=200> " . $ergebnis[$i]["mail"] . "</td>";
*/
if (empty($ergebnis[$i]["telephonenumber"]))
echo "<td width=100> - </td>";
else
echo "<td width=100>telefon" . $ergebnis[$i]["telephonenumber"] . "</td>";
echo "</tr>";
}
echo "</table>";
echo "</body></html>";
function erzeuge_abteilung ($dn) {
// $dn ist z.B.: CN=blub,OU=Nord,OU=Verkauf,OU=Benutzer,DC=test,DC=local
$pos = strpos($dn, ',DC=');
$dn = substr($dn, 0, $pos);
// -> $dn: CN=blub,OU=Nord,OU=Verkauf,OU=Benutzer
$pos = strpos($dn, ',OU=');
$dn = substr($dn, $pos);
// -> $dn: ,OU=Nord,OU=Verkauf,OU=Benutzer
$abteilung = "";
$abteilungen = explode(',OU=', $dn);
// -> $abteilungen: Nord, Verkauf, Benutzer
for ($j = count($abteilungen)-1; $j > 0; $j--) {
$abteilung = $abteilung . "-" . $abteilungen[$j];
}
// -> $abteilung: - Benutzer - Verkauf - Nord
$abteilung = substr($abteilung, 1);
// -> $abteilung: Benutzer - Verkauf - Nord
return $abteilung;
}
function vergleich($wert_a, $wert_b)
{
// Sortierung nach dem displayname
$a = $wert_a["displayname"];
$b = $wert_b["displayname"];
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : +1;
}
?>