Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit PHP die OU eines Users im AD auslesen

Frage Entwicklung PHP

Mitglied: andste72

andste72 (Level 1) - Jetzt verbinden

23.11.2009, aktualisiert 02.12.2009, 7468 Aufrufe, 6 Kommentare

Probleme mit LDAP und PHP.

Hallo, ich muss über PHP die OU eines Users per LDAP auslesen können.
Es funktioniert eigentlich alles, die Windows-Authentifiziereung und das auslesen der Benutzerdaten.

Mein Problem ist jetzt, dass ich die OU nicht auslesen kann, bzw. ich nicht weiss, wie ich es abfragen kann.

Kann mir da jemand Hilfestellung geben was ich abfragen muss?

Danke
Andreas
Mitglied: dog
23.11.2009 um 20:46 Uhr
öhm....
01.
(&(objectCategory=person)(objectClass=user)(sAMAccountName=$username))
Jeder LDAP Entry, der mit PHP abgefragt wird enthält auch automatisch die DN.
Bitte warten ..
Mitglied: andste72
24.11.2009 um 12:36 Uhr
In meiner PHP-Datei sieht es in etwa so aus:
01.
$benutzer = 'benutzename'; 
02.
 
03.
if($bind = @ldap_bind($connect, "user@domäne.com", "passwort")) 
04.
                 $search = @ldap_search($connect, $ldap_base, "(samaccountname=$benutzer)"); 
05.
                 $anzahl = @ldap_count_entries($connect,$search); 
06.
                 $info = @ldap_get_entries($connect,$search); 
07.
                 $datum  = strtotime("NOW"); 
08.
                 $nicht = 0; 
09.
                 for($i=0; $i<$anzahl; $i++){ 
10.
                         $vorn = $info[$i]["givenname"][0]; 
11.
                         $nnam = $info[$i]["sn"][0]; 
12.
                         $logi = $info[$i]["samaccountname"][0]; 
13.
                         $mail = $info[$i]["mail"][0]; 
14.
                         $tele = $info[$i]["telephonenumber"][0]; 
15.
                         $stan = $info[$i]["physicaldeliveryofficename"][0]; 
16.
                         $deak = $info[$i]["useraccountcontrol"][0]; 
17.
                 ......
Wie muss ich den die OU abfragen?
Bitte warten ..
Mitglied: dog
24.11.2009 um 14:57 Uhr
Die OU ist kein eigenes Attribut!
Die OU eines Benutzers ist der DN minus den ersten Teil.

Benutzer Horst hat z.B. den DN:
01.
cn=Horst,ou=buchhaltung,dc=domain,dc=local
Wenn du jetzt den CN und den DC-Teil rausstreichst erhälst du die OU (Buchhaltung)

Siehe: http://www.php.net/manual/en/function.ldap-explode-dn.php
Bitte warten ..
Mitglied: andste72
25.11.2009 um 12:50 Uhr
Das ist mir soweit schon klar, ich beschreibe vielleciht mal kurz das problem:

unsere AD-Struktur sieht etwa so aus

Domäne (DC)
--- Standorte (OU)
--------StandortA (OU)
------------Benutzer (OU)
-----------------Sonstige(OU)
--------StandortB (OU)
.....

Ich muss im Intranet die Möglichkeit geben, das Windows Passwort für einen User ändern zu können, ohne dass er sich selbst am Rechner anmelden muss.
Das funktioniert soweit ja auch. Den entsprechenden Standort kann ich aus den Attributen auslesen. Mein Problem ist, das der eine User unter

"CN=USER,OU=Benutzer,OU=StandortA,....

liegt und der nächste unter

"CN=USER,OU=Sonstige,OU=Benutzer,OU=StandortA,....

Da der DN aber komplett hinterlegt werden muss, würde ich den Pfad gerne in eine Variable schreiben, damit ich mit dieser weiterarbeiten kann.

Ich hoffe es wird jetzt ein bischen verständlicher
Bitte warten ..
Mitglied: dog
25.11.2009 um 12:59 Uhr
Du musst erst über den sAMAccountName den Benutzer suchen und dann die DN, die du so als Ergebnis bekommst als Base DN benutzen, dann kannst du ldap_read verwenden.
Bitte warten ..
Mitglied: andste72
25.11.2009 um 17:13 Uhr
Ich Stand irgendwie auf dem Schlauch!

Habe in der for-Schleife noch folgendes eingetragen:

01.
$base = $info[$i]["dn"];
und schon hat es funktionert. Ich habe es vorher immer mit der [0] versucht, das ging aber nicht.

Danke für die Hilfe.
Bitte warten ..
Neuester Wissensbeitrag
Windows Update

Windows Update-Suche nach Win7 Neuinstallation wieder schneller

(1)

Erfahrungsbericht von the-buccaneer zum Thema Windows Update ...

Ähnliche Inhalte
Windows Netzwerk
gelöst Powershell skript zum Auslesen der im AD angemeldeten User (2)

Frage von jan.kleinel zum Thema Windows Netzwerk ...

JavaScript
gelöst Dropdownfeld auslesen und mit AJAX und JS an PHP senden (7)

Frage von ITFlori zum Thema JavaScript ...

Windows Server
AD Bestimmten Benutzer (Hilfsadmin) nur Zugriff auf eine OU geben (1)

Frage von conym18 zum Thema Windows Server ...

PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

Heiß diskutierte Inhalte
Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (21)

Frage von Winuser zum Thema Hyper-V ...

Exchange Server
Bestehende eMails autoamatisch weiterleiten (21)

Frage von metal-shot zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (16)

Frage von ProfessorZ zum Thema Router & Routing ...