Active Directory mit PHP über LDAPS abfragen.

Alles, was den Apache betrifft, kann hier besprochen werden.

Active Directory mit PHP über LDAPS abfragen.

Postby ekip » 15. April 2010 13:47

Als erstes muss ich sagen, dass dieser Thread eine absolute Hilfe-Verzweiflungs-NachAntwortenSuch-Aktion von mir ist.
Ich verbringe nämlich schon seit drei Tagen meine Zeit mit diesem Problem, welches sich trotz wilder Internetrecherche bisher nicht aus der Welt schaffen lies.

Mein Szenario und was ich bisher gemacht habe:
Im LAN steht ein Windows Server 2008 R2 Domänencontroller mit Benutzerdaten im AD.
Jene Benutzerdaten sollen von einem PHP-Skript abgefragt werden um eine Anmeldung zu authentifizieren.
Das Skript läuft auf einem Apache, der wiederum auf einem 2. Rechner(Windows 2008 Server R2) installiert ist.
Damit Verschlüsselt über LDAPS kommuniziert werden kann muss eine CA her. Diese läuft in Form von OpenSSL auf einem 3. Rechner(auch Windows).

Auf dem DC wurden Serverzertifikat(ldap_server.p12) sowie CA-Zertifikat (ca_cert.p12) erfolgreich importiert.
Zu den Zertifikaten ist zu sagen, dass sie von der CA auf dem 3. Rechner stammen. Und ich kann auch sagen, dass diese richtig erstellt, verifiziert und signiert worden sind, da ich lokal auf dem DC mit ldp.exe über port "636" und Häkchen bei "SSL" ein Verbindung hergestellt bekomme.

Das PHP-Skript enthält die Strandard LDAP-Befehle wie ldap_connect(), ldap_bind(), ldap_search() etc...nichts besonderes
Über "ldap_connect(ldap://ldapdc.testdomain.de)" läuft das Skript auch einwandfrei...sobald ich "ldaps://ldapdc.testdomain.de" eintrage gehts nich mehr.

ACHTUNG, AB HIER WEIß ICH NICHT MEHR OB ICH RICHTIG GEHANDELT GESCHWEIGE DENN RICHTIG GEDACHT HABE:
Ich habe also dem Apache das CA Zertifikat im .pem BASE64 Format zur verfügung gestellt (liegt direkt im apache ordner), weil ich mir dachte, dass der Apache ja wissen muss welcher Zertifizierungsstelle er vertrauen kann(und da das Serverzertifikat auch von dieser CA ausgestellt worden ist).

Dann habe ich noch in der httpd.conf einige Einstellungen vorgenommen, wobei ich mir nicht sicher bin inwiefern diese agieren bzw. ob diese von nöten sind:
Auszug aus der httpd.conf
Code: Select all
LDAPTrustedMode SSL
LDAPVerifyServerCert On                        // Der Apache erwartet ein Serverzertifikat.
LDAPTrustedGlobalCert CA_BASE64 cacert.pem  //Public-Zertifikat der CA

<Location /ldap-status>
   SetHandler ldap-status
   Order deny,allow
   Deny from all
   Allow from ldapdc.testdomain.de
   AuthLDAPURL ldaps://ldapdc.testdomain.de/CN=777666333,OU=Studenten,DC=testdomain,DC=de?uid?
         //WIESO MÜSSEN CN,OU und DC angegebenwerden??? und ist das von der Syntax so richtig?
         //Ich dachte das PHP-Skript sagt, welcher User die Abfrage startet!?!?!??!
   AuthzLDAPAuthoritative off
   Require valid-user   //er erwartet einen im AD vorhandenen User
</Location>


Sooooo....weiter bin ich noch nicht.
Ich bin wirklich überfragt was ich jetzt machen soll...Vielleicht hab ich an dem ganzen Prinzip mit der Verschlüsselten Verbindung etwas nicht verstanden...kp.
Ein paar Denkanstöße würden mir sehr sehr helfen! Ich verzweifle sonst ;)

PS: error.log und httpd.conf kann ich bei bedarf posten :)

Danke im voraus!
ekip
 
Posts: 2
Joined: 15. April 2010 12:11

Re: Active Directory mit PHP über LDAPS abfragen.

Postby erich.wanker » 15. April 2010 14:09

Hallo ekip..

ich weiß nicht, ob´s dir was hilft, aber hier ist ein sehr gut geschriebener Bericht:
http://www.serverhowto.de/Das-Active-Directory-mit-PHP-und-LDAP-abfragen.356.0.html

hth Erich
erich.wanker
 
Posts: 17
Joined: 11. November 2009 14:46

Re: Active Directory mit PHP über LDAPS abfragen.

Postby ekip » 15. April 2010 14:29

hey erich. danke für die fixe antwort :)

Mein PHP-Skript arbeitet ungefähr so wie es auf der Seite beschrieben ist.
Jedoch ist mein problem ein anderes. über das normale LDAP Protokoll funktioniert mein Skript auch einwandfrei.
-->Benutzerdaten eingeben --> ldap-anfrage mit den eingegebenen benutzerdaten --> authentifizierung erfolgreich :)

Mein Problem ist die Verschlüsselte Kommunikation zwischen DC und Webserver. -->LDAP over SSL oder auch LDAPS genannt.
Hab kein bock, dass die Userdaten im Klartext übers Netz gehen.
Das System richte ich an einer FH ein demnach sind die Benutzerdaten sehr sensibel.
ekip
 
Posts: 2
Joined: 15. April 2010 12:11

Re: Active Directory mit PHP über LDAPS abfragen.

Postby erich.wanker » 15. April 2010 14:47

ups .. SSL !

ich hoffe, das dir diese Anleitung weiterhilft:
http://greg.cathell.net/php_ldap_ssl.html

hth Erich
erich.wanker
 
Posts: 17
Joined: 11. November 2009 14:46


Return to Apache

Who is online

Users browsing this forum: No registered users and 5 guests