Top-Themen

Aktuelle Themen (A bis Z)

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

LDAP - Bind funktioniert nicht

Frage Entwicklung PHP

Mitglied: Mean1312

Mean1312 (Level 1) - Jetzt verbinden

19.06.2007, aktualisiert 20.06.2007, 10343 Aufrufe, 8 Kommentare

Will auf AD-Server zugreifen; Admin-Rechte vorhanden; LDAP_Connect() erfolgreich; Bind: "Invalid Credentials"

Hallo

ich versuche gerade per PHP-Script auf die AD über das Intranet (von einem Testserver: ISS, PHP5) zuzugreifen.

Wenn ich lediglich ldap_connect() mache meldet mir ldap_errors "success". Will ich dann an den Server binden kommt die Meldung "Invalid Credentials".

Ich habe Admin-Rechte auf die AD und komme über RDC problemlos auf den Server.

Die Struktur der Test-AD sieht folgendermaßen aus:

Domain: domain.test
1. OU in domain.test: DE
1. OU in DE: Standort
1. OU in Standort: Users

Hat jemand eine Idee, woran das liegt (denke mal an dem Domain-OU-Pfad); hab auch schon Beispielklassen für die Verbindung verwendet, aber ging alles irgendwie nicht.

01.
 
02.
 
03.
// LDAP variables 
04.
 
05.
$ldap['user']              = 'ldapUser'; 
06.
 
07.
$ldap['pass']              = 'ldapPass'; 
08.
 
09.
$ldap['host']              = '00.00.00.00'; 
10.
 
11.
$ldap['port']              = 389; 
12.
 
13.
$ldap['dn']          		= 'cn='.$ldap['user'].',ou=Users,ou=Standort,dc=domain,dc=test'; 
14.
 
15.
$ldap['base']              = ''; 
16.
 
17.
  
18.
 
19.
// connecting to ldap 
20.
 
21.
$ldap['conn'] = ldap_connect($ldap['host'], $ldap['port']) 
22.
 
23.
       or die( "Could not connect to {$ldap['host']}" ); 
24.
 
25.
  
26.
 
27.
// binding to ldap 
28.
 
29.
$ldap['bind'] = ldap_bind( $ldap['conn'], $ldap['dn'], $ldap['pass'] ); 
30.
 
31.
  
32.
 
33.
 
34.
echo ldap_error($ldap['conn']);
Vielen Dank und Grüße,

Dirk
Änderungen:
Hab den Code in einen Codeblock gepackt
masterG(Moderator) 19.06.2007
Mitglied: Mean1312
19.06.2007 um 11:30 Uhr
Hallo nochmal,

also: War mein Fehler, da ich ausversehen, statt benutzer@domain.test nur benutzer als Benutzername verwendet habe. In VBScript ging das, deshalb war ich der Meinung, daß es auch in PHP gehen würde...

Also das binden funktioniert jetzt schon mal. Was ich jetzt aber noch lösen muß (dachte, daß sich das mehr oder weniger ergeben würde, wenn der Login klappt):

Das ganze soll als Autentisierung für bestimmte Bereiche des Intranet benutzt werden. Nun sollen aber z.B. nur die Leute, die in der Netzwerker- und die, die in der Softwaregruppe sind (bei der Abfrage müßte ich irgendwie vermerken, in welcher Gruppe der Login-User ist). Wie kann ich das denn aus den Gruppen auslesen/test? Geht das irgendwie?

Danke und Grüße,

Dirk
Bitte warten ..
Mitglied: sihelpdesk
19.06.2007 um 11:37 Uhr
HI..

Also erstens solltest du schauen, dass deine Verbindung zur LDAP DB überhaupt funktioniert.

Am besten mit:

01.
 
02.
// LDAP Konfiguration 
03.
$ldapadmin         = "user@domain-name"; //Admin-Abfragebenutzer 
04.
$ldapadminpw       = ""; //Admin-Passwort 
05.
$ds                = "testserver1"; //LDAP-Server 
06.
$dn                = "ou=Ordner,dc=google,dc=ch"; //LDAP-Root OU  
07.
$ldapport          = 389;  //LDAP-Port 
08.
 
09.
// LDAP Verbindung aufbauen 
10.
$ldapconn = ldap_connect($ds, $ldapport)or die("Could not connect to LDAP server."); 
11.
 
12.
// Verbindungs-Test 
13.
  if ($ldapconn
14.
15.
  	  // LDAP Bind herstellen 
16.
	  ldap_set_option($ldapconn, LDAPPT_PRTCL_VERSIN,3); 
17.
	  ldap_set_option($ldapconn, LDAPPT_REFERRALS,0); 
18.
	  $ldapbind = ldap_bind($ldapconn, $ldapadmin, $ldapadminpw); 
19.
 
20.
	  // Authorisierungs-Test 
21.
	  if ($ldapbind
22.
23.
                 echo "cool"
24.
 
25.
          } else
26.
          
27.
                 echo "nicht cool"
28.
 
29.
30.
 
Nun wenn das funktioniert, kannst du weiter mit Filter und der Funktion ldap_search(), ldap_sort() und ldap_get_entries() arbeiten.

Liebe Grüsse

Goran
[EDIT 19.06.2007]
Hab den Code in einen Codeblock gepackt!
masterG(Moderator)
Bitte warten ..
Mitglied: sihelpdesk
19.06.2007 um 11:54 Uhr
Hallo nochmal,

also: War mein Fehler, da ich ausversehen,
statt benutzer@domain.test nur benutzer als
Benutzername verwendet habe. In VBScript ging
das, deshalb war ich der Meinung, daß
es auch in PHP gehen würde...

Also das binden funktioniert jetzt schon
mal. Was ich jetzt aber noch lösen
muß (dachte, daß sich das mehr
oder weniger ergeben würde, wenn der
Login klappt):

Das ganze soll als Autentisierung für
bestimmte Bereiche des Intranet benutzt
werden. Nun sollen aber z.B. nur die Leute,
die in der Netzwerker- und die, die in der
Softwaregruppe sind (bei der Abfrage
müßte ich irgendwie vermerken, in
welcher Gruppe der Login-User ist). Wie kann
ich das denn aus den Gruppen auslesen/test?
Geht das irgendwie?

Danke und Grüße,

Dirk

Damit du das hinkriegst,
musst du im Filter einen User definieren, dessen Gruppenangehörigkeiten auslesen, und diese Auf die Gewünschte Gruppe überprüfen.
$filter = "(&(|(objectClass=user)(objectClass=contact))(objectCategory=person)(samaccountname=".$userid."))";
$fields = array("memberof");
$sr = ldap_search($ldapconn, $dn, $filter, $fields);
$data = ldap_get_entries($ldapconn, $sr);
Nun solltest du in $data[0]["memberof"] die Liste aller Gruppen dessen der Benutzer angehört haben.

Lg.
Bitte warten ..
Mitglied: Mean1312
19.06.2007 um 12:25 Uhr
Hi sihelpdesk und Goran,

vielen Dank für eure Antworten!

@sihelpdesk: Super, das ist ja (fast) schon die fertige Lösung ;)

@Goran: Danke für den Tipp! So eine Prüfung habe ich bereits drin - hab das aber nur weggelassen, weil ich alles (für die Anfrage) unnötige aus dem Script raushalten wollte...

Vielen Dank nochmals und Grüße,

Dirk
Bitte warten ..
Mitglied: sihelpdesk
19.06.2007 um 12:28 Uhr
ahja.. dabei noch sehr wichtig bei ADS!

Vor dem ldap_connect()

solltest du noch folgende zwei optionen setzten

ldap_set_option($ldapconn, LDAPPT_PRTCL_VERSIN,3);
ldap_set_option($ldapconn, LDAPPT_REFERRALS,0);

Ohne die habe ichs nicht hingekriegt ^^
viel spass
Bitte warten ..
Mitglied: Mean1312
19.06.2007 um 13:37 Uhr
Hi sihelpdesk,

danke für den Tipp - muß das aber doch hinter den connect setzen -> sonst habe ich das $ldapconn ja noch nicht?!?! Hab's übrigens schon in der gefundenen Klasse drin stehen... ;)

Noch eine Frage: Und zwar liest er mir die Benutzer nur dann aus, wenn ich ihn bei mind. 2 Gruppen eingetragen habe. Kann ich das irgendwie umgehen?

Zu deinem Filter noch eine Frage: mit $userid meinst du doch einen Namen, im Aufbau meines Login-Namens (wenn ich z.B. mich in der AD suche, dann mache ich dh@domain.test?!?!) weil irgendwie findet er da nie was...

Wenn ich es so mache: $filter = "(&(|(objectClass=user))(objectCategory=person)(cn=Vorname Nachname))"; dann findet er die Gruppenzugehörigkeiten. Ich will aber ja, daß sich die User mit ihrem Windows-Login einloggen können - also müßte ich schon die $userid nehmen...

Danke und Grüße,

Dirk
Bitte warten ..
Mitglied: sihelpdesk
19.06.2007 um 13:43 Uhr
Hi Dirk

Wegen dem Filter:
01.
$filter = "(&(|(objectClass=user)(objectClass=contact))(objectCategory=person)(samaccountname=".$userid."))";
smaaccountname steht für den effektiven LOGIN-Namen (Der Anmeldename beim Logon)

Hier findest du die Feldbezeichnungen von ADS Objekten:
http://www.faq-o-matic.net/content/view/60/45/

Wegen deiner Frage betreffend den Gruppen.
Du hast geschrieben: "Und zwar liest er mir die Benutzer nur dann aus, wenn ich ihn bei mid. 2".
Mit diesem Vorgehen liest du ja keine Benutzer aus, sondern nur die Gruppen des Benutzers.

Lg.
Bitte warten ..
Mitglied: Mean1312
20.06.2007 um 09:34 Uhr
Hi,

habe die Attribut-Bezeichnung für den Benutzernamen gefunden. Das Zauberwort heißt "userPrincipalName" - falls nochmal jemand per Suchfunktion danach sucht... ;)

Grüße,

Dirk
Bitte warten ..
Ähnliche Inhalte
Firewall
Bind auf Pfsense: Namensauflösung funktioniert nicht
Frage von WarrenderFirewall

Hallo, ich habe Pfsense in der aktuellsten Version installiert und möchte, dass die Clients "test.test.intra" auflösen. Folgendermaßen bin ich ...

Linux Userverwaltung
Bekomme immer folgende Meldungen in der Auth.log: nss-ldap: failed to bind to LDAP server ldap:. Invalid credentials
gelöst Frage von VoosjeyLinux Userverwaltung9 Kommentare

Guten Morgen, ich habe das Problem das ich die Fehlermeldung: nss_ldap: failed to bind to LDAP server ldap://192.168.0.1 Invalid ...

Apache Server
Apache 2 LDAP Gruppen Zuordnung Funktioniert nicht
gelöst Frage von Phill93Apache Server2 Kommentare

Hallo, habe ein kleines Problem mit der Apache Authentifizierung. Der Admin Bereich eines Server soll über LDAP geschützt werden. ...

Mac OS X
OpenDirectory an Windows binden
Frage von nordcleanMac OS X2 Kommentare

Hallo ich suche eine Möglichkeit wie ich einen Windows Server 2008 R2 an einen Yosemite Server mit Open Directory ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 8 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 15 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 17 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 20 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...