php und domain controller
manalishi 04.04.2004 - 16:32 794 5
manalishi
tl;dr
|
hallo leute! ich habe ein ganz spezielles problem mit php und ldap. ich versuche schon seit längerer zeit, einen benutzer gegen einen windows 2000 (oder 2003, wwi) domain controller zu verifizieren. es kann zwar eine verbindung hergestellt werden, der bind auf den server schlägt aber leider immer fehl. was muss ich tun? ldaps? wenn ja: was für ein zertifikat brauche ich? woher bekomme ich es? der webserver, auf dem ich herumexperimentiere ist eine win2k kiste, auf der apache2 und mod_php laufen. ist eine stinknormale xampp installation ohne jeglichen cache oder sowas. besten dank
|
spunz
Super ModeratorSuper Moderator
|
|
manalishi
tl;dr
|
|
BuSHidO
ist süß
|
quatsch ... php hat ein LDAP modul integriert http://www.perlunity.de/php/manual/ref.ldap.shtmlHinweis für Win32 Benutzer: Um dieses Modul unter Windows nutzen zu können, müssen Sie libsasl.dll aus dem DLL Ordner des PHP/Win32 Packets in den SYSTEM32 Ordner Ihres Systems kopieren (z.B.: C:\WINNT\SYSTEM32 oder C:\WINDOWS\SYSTEM32). Wichtig ist dabei das du zu deinem userobjekt mit dem du dich gegen das AD authentifizieren willst 100%ig den richtige Pfad angibst. Ob du generell hinkommst überprüfst du mit einem anonymen bind. Beispiel von http://www.perlunity.de<?php
// Grundlegende Abfolge bei LDAP ist verbinden, binden, suchen,
// interpretieren des Sucheergebnisses, Verbindung schließen
echo "<h3>LDAP query Test</h3>";
echo "Verbindung ...";
$ds=ldap_connect("localhost"); // muss ein gültiger LDAP Server
// sein!
echo "Ergebnis der Verbindung: ".$ds."<p>";
if ($ds) {
echo "Bindung ...";
$r=ldap_bind($ds); // das ist ein "anonymer" bind,
// typischerweise nur Lese Zugriff
echo "Ergebnis der Bindung ".$r."<p>";
echo "Suche nach (sn=S*) ...";
// Suchen des Nachnamen-Eintrags
$sr=ldap_search($ds,"o=Meine Firma, c=DE", "sn=S*");
echo "Ergebnis der Suche ".$sr."<p>";
echo "Anzahl gefundenen Einträge ".ldap_count_entries($ds,$sr)."<p>";
echo "Einträge holen ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "Daten für ".$info["count"]." Items gefunden:<p>";
for ($i=0; $i<$info["count"]; $i++) {
echo "dn ist: ". $info[$i]["dn"] ."<br>";
echo "erster cn Eintrag: ". $info[$i]["cn"][0] ."<br>";
echo "erster email Eintrag: ". $info[$i]["mail"][0] ."<p>";
}
echo "Verbindung schließen";
ldap_close($ds);
} else {
echo "<h4>Verbindung zum LDAP Server nicht möglich</h4>";
}
?>
LDAPS http://php3.de/manual/de/function.ldap-connect.php (Den Kommentar ganz oben durchlesen) cheers, edit.: einfacheres beispiel: <PHP
$basedn = "OU=RootDSE, DC=domain, DC=de";
$lh = ldap_connect("www.mustermann.eu");
if ($lh) echo "Verbindung erfolgreich...<br>";
$id = ldap_bind($lh, $basedn,"") | die "Authentifizierung fehlgeschlagen";
PHP>
Bearbeitet von BuSHidO am 06.04.2004, 16:00
|
manalishi
tl;dr
|
glaubst du ich bin unfähig, die ldap erweiterung einzubinden? lol.
|
BuSHidO
ist süß
|
nein, aber sie zu verwenden
|