INFO: Wie mit ADSI einen Drittanbieter-LDAP-Server Abfragen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 251195 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Der Anbieter (LIGHTWEIGHT Directory Access Protocol) für Active Directory Service Interfaces (ADSI) wird verwendet, um Informationen von Drittanbieter-LDAP-Server abzurufen. Dieser Artikel beschreibt verschiedene Probleme, die auftreten können und wie diese zu überwinden.

Weitere Informationen

Wenn Sie die ADSI, verwenden um Informationen von einem Fremdanbieter-LDAP-Server abzurufen, müssen Sie:
  • Bestimmen Sie die Verfügbarkeit von Schemainformationen.
  • Rufen Sie die erforderliche Authentifizierung.
  • Verhindern, dass eine Suche auf einen nicht vorhandenen Container.

Bestimmen der Verfügbarkeit der Schemainformationen

In Übereinstimmung mit der Request for Comments (RFC) 2251 werden LDAP Version 3-Server erwartet, dass ein SubSchemaSubEntry -Attribut vom Stammverzeichnis Verzeichnisdienstorganisation (RootDSE) verfügbar machen. ADSI verwendet dieses Attribut, um Subschema Informationen suchen, dann versucht wird, überprüfen und Zwischenspeichern.

Weitere Informationen wie ADSI der Subschema zwischenspeichert folgendem Artikel der Microsoft Knowledge Base:
251189INFO: Suchen einer LDAP-Server-Schema über ADSI-Cache
ADSI verwendet die Subschema Informationen, um die erforderlichen Schnittstellen für eine bestimmte Klasse verfügbar zu machen und Attribute in der korrekten Syntax aus dem Eigenschaftencache abzurufen.

Wenn ADSI nicht gefunden bzw. Subschema Informationen einwandfrei überprüft ist, wird das Standardschema für LDAP-Version 2 verwendet. Da LDAP Version 2-Server keinem Subschema offen legen, verwaltet die ADSI Schemainformationen intern über viele standard Attribute und Klassen. Wenn ADSI das Standardschema für Version 2 verwendet, er keinen Zugriff auf nicht dem Standard entsprechende Schemainformationen, einschließlich benutzerdefinierte Klassen oder Attribute, die auf dem Server erstellt wurden.

Wenn keine Schemainformationen über ein Attribut Syntax verfügbar ist, kann die ADSI das Attribut aus dem Eigenschaftencache abzurufen. In diesem Fall können die IADsPropertyList.GetPropertyItem -Methode Sie eine Syntax des Attributs für die angeforderte Eigenschaft angeben. Wenn Sie einen ADsTYPE-Wert angeben, vermeiden Sie die Notwendigkeit Syntaxinformationen über das Attribut.

Wenn Sie Microsoft ActiveX Data Objects (ADO) verwenden und Sie keine Schemainformationen verfügbar sind haben, müssen Sie das Objekt die ADsPath Zeichenfolge abrufen, auf das Objekt in das Verzeichnis binden Sie, und verwenden Sie die IADsPropertyList.GetPropertyItem -Methode. Es gibt keine Problemumgehung für die Verwendung ADO direkt ohne Schemainformationen.

Korrekte Authentifizierung erhalten

Es gibt mehrere Möglichkeiten, einen LDAP-Client mit einem LDAP-Server mit ADSI zu authentifizieren. Zwischen diesen Methoden wird nur eine einfache Bindung von LDAP Anmeldeinformationen an den Server übermitteln systemintern unterstützt. In anderen Fällen der Client und Server müssen einigen der Methode in der Regel mit der anderen Sicherheitsautorität oder proprietäres Protokoll.

Beispielsweise verwendet die GetObject -Methode (oder die ADsGetObject -Funktion in C#) das ADS_SECURE_AUTHENTICATION-Flag, das eine LDAP-Bindung führen kann, die Microsoft Windows NT Herausforderung/Rückmeldung (NTLM) verwendet. Dieser Bindung ist wahrscheinlich fehl, weil viele Server von Drittanbietern NTLM nicht annehmen. Wenn die Authentifizierung fehlschlägt, wird die sichere Bindung heruntergestuft, um eine anonyme Bindung; z. B. eine einfache binden, ohne alle Benutzeranmeldeinformationen. An diesem Punkt kann die Anwendung nur Zugriff auf eine Teilmenge der Informationen (oder auch keine Informationen), abhängig von der Serverkonfiguration verfügen.

Um diese Situation zu vermeiden, führen Sie eine einfache Bindung mithilfe der OpenDSObject -Methode (oder die ADsOpenObject -Funktion in C# aus) und geben Sie 0 (keine Flags) oder ADS_FAST_BIND (siehe unten) für den LnReserved -Parameter. Mit der einfachen Bindung übergeben Sie einen gültigen Benutzernamen attributierten (Cn = UserName, Cn =...) und das Kennwort der LDAP-Server für die Überprüfung. Um eine einfache Bindung mit ADO zu erzielen, legen Sie die Verschlüsselung Password -Eigenschaft ADODB.Connection -Objekts auf FALSE und weisen Sie der attributierten Benutzername und das Kennwort die Eigenschaften BENUTZERKENNUNG und Kennwort bzw. .

Verhindern, dass eine Suche auf einen Container nicht vorhanden

Standardmäßig führt ADSI eine ObjectClass-Suche des Basis-Objekts in einer Abfrage oder die Bindung angegeben. Diese Suche fehlschlägt, wenn der DN, der gewährt wird nicht im Verzeichnis vorhanden ist.

Z. B. angenommen, eine Suche in beginnen festgelegt wird "o = corp, c = US" für alle Benutzer im Verzeichnis. Die Struktur des Verzeichnisses ist, wie die keine tatsächlichen "Corp" Container vorhanden ist, aber vielmehr zwei am Stamm des Verzeichnisses mit den definierten Namen Objekte "Ou = Nordamerika, o = corp, c = US"und"Ou = Europe, o = corp, c = US". ADSI stellt eine ObjectClass-Suche nach "o = corp, c = US" welche fehlschlägt, Anhalten der Suche für Benutzer, bevor er beginnt.

Die einfachste Lösung dieses Problems ist ein Basis Objekt, das tatsächlich existiert in das Verzeichnis angeben. Wenn nicht möglich, da die Verzeichnis-Implementierung ist, müssen zum Durchführen der gewünschten Suche mit einem gültigen Basis-Objekt ADSI verhindern eine anfängliche ObjectClass-Suche.

Übergeben Sie damit eine ObjectClass-Suche auf das Objekt, das ADS_FAST_BIND-Flag der LnReserved -Parameter der OpenDSObject -Methode (oder die ADsOpenObject -Funktion in C#). Da dieses Flag des ADSI-Aktionen, bestimmt nachdem die Bindung aufgetreten ist, wirkt es sich nicht ordnungsgemäße Authentifizierung. Beachten Sie, dass dieses Flag nicht vor zu ADSI 2.5 verfügbar ist.

Der ADO-Provider für Microsoft Windows 2000 macht ADSI-Flag -Eigenschaften für das ADODB.Connection -Objekt verfügbar. Sie können das ADS_FAST_BIND-Flag für diese Eigenschaft damit ADO-Abfragen ObjectClass Suche festlegen. Die ADSI-Flag -Eigenschaft ist nicht vorhanden in ADSI 2.5 für Microsoft Windows NT Version 4.0 oder Microsoft Windows 9 X. Eine mögliche Lösung finden Sie im folgenden Artikel:

223049So wird 's gemacht: Fragen Sie Exchange 5.x-anonym über ADSI ab

Informationsquellen

Weitere Informationen auf ADSI finden Sie unter die folgenden Artikeln der Microsoft Knowledge Base:
233023So wird 's gemacht: Suchen Sie alle ADSI-Anbieter auf einem System
187529So wird 's gemacht: Verwenden von ADO zu Access-Objekten über einen ADSI-LDAP-Provider
251189INFO: Suchen einer LDAP-Server-Schema über ADSI-Cache
223049So wird 's gemacht: Fragen Sie Exchange 5.x-anonym über ADSI ab

Allgemeine Informationen auf ADSI finden Sie unter den folgenden Website:
http://msdn2.microsoft.com/library/aa772170.aspx

Eigenschaften

Artikel-ID: 251195 - Geändert am: Freitag, 28. September 2007 - Version: 1.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Active Directory Service Interfaces 2.5
Keywords: 
kbmt kbinfo kbmsg KB251195 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 251195
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com