Frage

Ich habe den folgenden Code:

$bind = new COM("LDAP://CN=GroupName,OU=Groups,OU=Division,DC=company,DC=local");

Wenn ich es von einer Eingabeaufforderung ausführen, es läuft gut. Wenn es läuft unter IIS / PHP / ISAPI, es barfs.

Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `LDAP://CN=...[cut]...,DC=local':
An operations error occurred. ' in index.php
Stack trace:
  #0 index.php: com->com('LDAP://CN=...')
  #1 {main} thrown

IIS für die Windows-Authentifizierung (ohne anonym, ohne grundlegend, ohne Digest) konfiguriert und ich als den gleichen Benutzer wie die Eingabeaufforderung anschließe. Ich kann keine spezifischen Fehler in dem IIS-Logfiles oder eventlog finden.

Der Hauptzweck dieser Übung ist von der Einhaltung Benutzerdaten in meinem Skript und unter Berufung auf dem IIS-Authentifizierung verzichten sie auf das aktive Verzeichnis durchlaufen. Ich verstehe, dass Sie LDAP zu erreichen, die gleiche Sache verwenden, aber soweit ich weiß, Anmeldeinformationen können nicht durchlaufen werden.

Vielleicht ist es in gewisser Weise auf den Fehler im Zusammenhang erhalte ich, wenn ich in dem Hafen versuchen, es zu ASP. Ich bekomme Fehler 80072020 (was ich zur Zeit bin auf der Suche nach oben).

Die Ereignisprotokolle zeigen, nichts aus dem Üblichen heraus. Keine Warnungen, keine Fehler. Volle Sicherheitsüberwachung aktiviert ist (Erfolg und Misserfolg auf jedem Element in der Sicherheitspolitik), und es zeigt erfolgreiche Windows-Anmeldungen für jeden Benutzer, den ich gegen die Webseite authentifizieren (was zu erwarten ist.)

War es hilfreich?

Lösung

Da Sie die Windows-Authentifizierung in IIS, können Sie einige Sicherheitsereignisse im Windows-Ereignisprotokoll haben. Ich würde das Ereignisprotokoll für Sicherheitsereignisse überprüfen sowie Anwendungsereignisse und sehen, ob Sie jede Art von Berechtigungsproblemen treffen sind.

Auch da sind Sie im Grunde nur über LDAP AD Kommunikation ... könnten Sie die eine native LDAP-Bibliothek in Verwendung für PHP eher als ein COM aussehen.

Sie finden die Erweiterung wahrscheinlich in der php.ini aktivieren müssen. Worth bei wahrscheinlich suchen.

Andere Tipps

Es scheint jetzt zu funktionieren.

ich enabled "diesen Computer Vertrauen für die Delegierung" für das Computerobjekt in Active Directory. Normalerweise IIS kann sowohl Sie nicht authentifiziert und dann anschließend imitieren Sie über das Netzwerk ohne die Delegation Vertrauen aktiviert (in meinem Fall zu einem Domänencontroller Active Directory abzufragen).

Sie müssen nur sicher sein, dass es mit Kerberos und nicht NTLM ist die Authentifizierung oder eine andere Digest-Authentifizierung, da der Auszug nicht vertrauenswürdig ist als Identitätstoken zu verwenden.

Es fixiert sowohl meine PHP und ASP-Skripten.

Nun, wenn Sie LDAP verwenden möchten, lassen Sie mich Ihnen an den LDAP-Authentifizierungscode verweisen wir für Maia Mailguard verwenden: suchen Sie die Funktion mit dem Namen lauth_ldap

Ich denke, es ldap Version 3 erfordert, so müssen Sie für ldap diesen Parameter festgelegt. Um das Passwort zu überprüfen, verwenden wir die LDAP-Bind-Funktion auf die LDAP-Server authentifizieren zu lassen.

Ich bin kein AD / COM / IIS-Experte, aber es könnte ein Berechtigungsproblem sein. Beispiel der IUSR_computername Benutzer hat nicht anwendbar Zugriff im Verzeichnis, oder Sie nicht als ein bestimmte Benutzer bindend?

Die Alarmglocke ist für mich die Tatsache, dass es von der Kommandozeile ok läuft (zum Beispiel mit Ihren Berechtigungen ausgeführt wird), aber nicht auf IIS (z nicht Ihre Berechtigungen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top