LDAP-Authentifizierung

LDAP (Lightweight Directory Access Protocol) ist ein Internetprotokoll für den Zugriff auf und die Verwaltung von verteilten Verzeichnisinformationsservices über ein Netz. Wenn Sie LDAP einsetzen, um Benutzer für Webanwendungen zu authentifizieren, nehmen Sie sich etwas Zeit und lesen Sie diesen Abschnitt durch, bevor Sie beginnen.

Richtlinien für die Programmierung

Wenn Sie die Authentifizierung mit LDAP durchführen, beachten Sie die folgenden Richtlinien:
  • Nur eine LDAP-Schnittstelle verwenden: Benutzer können nur über eine Verbindung mit einem LDAP-Server authentifiziert werden.
  • Active Directory: Die Verwendung einer Active Directory-Schnittstelle ist untersagt, jedoch wird die LDAP-Authentifizierung mit Active Directory unterstützt.
  • Administratoreigenschaften: Der LDAP-Administrator muss Zugriff auf alle LDAP-Eigenschaften des Benutzers haben.
Die folgenden LDAP-Attribute werden von IBM® API Connect gelesen:
Attribut Begriffsbestimmung
mail Die SMTP-E-Mail-Adresse des Benutzers.
cn Wird intern zur Festlegung des allgemeinen Namens des Benutzers verwendet.
sn Wird intern zur Festlegung des Nachnamens des Benutzers verwendet.
givenname Wird intern zur Festlegung des Vornamens des Benutzers verwendet.
Präfix aus Search dn Wird als Benutzername verwendet.

Verwenden eines LDAP-Servers zur Benutzerauthentifizierung

Jeder Eintrag in einem LDAP-Verzeichnisserver weist einen Distinguished Name (DN) auf. Der DN ist der Name, der einen Eintrag im Verzeichnis eindeutig identifiziert. Ein DN besteht aus Attribut/Wert-Paaren attribute=value, die durch Kommas voneinander getrennt sind. Zum Beispiel:
cn=Ben Gray,ou=editing,o=New York Times,c=US
cn=Lucille White,ou=editing,o=New York Times,c=US
cn=Tom Brown,ou=reporting,o=New York Times,c=US

Sämtliche im Verzeichnisschema definierten Attribute können zur Bildung eines DN verwendet werden. Die Reihenfolge der Komponentenattribut-Wertepaare ist wichtig. Der DN enthält jeweils eine Komponente für die einzelnen Ebenen der Verzeichnishierarchie vom Stammelement abwärts bis zur Ebene, auf der sich der Eintrag befindet. LDAP-DNs beginnen mit dem spezifischsten Attribut (im Allgemeinen eine Art von Name) und gehen mit zunehmend größeren Attributen weiter, die oft mit einem Länderattribut enden. Die erste Komponente des DN wird als Relative Distinguished Name (RDN) bezeichnet. Der RDN unterscheidet einen Eintrag eindeutig von anderen Einträgen, die dasselbe übergeordnete Element haben. In den vorherigen Beispielen trennt der RDN "cn=Ben Gray" den ersten vom zweiten Eintrag (mit dem RDN "cn=Lucille White"). Ansonsten sind diese beiden Beispiel-DNs äquivalent. Das attribute=value-Paar, das den RDN für einen Eintrag bildet, muss ebenso im Eintrag vorhanden sein. (Dies gilt nicht für die anderen Komponenten des DN.)

Beispiele

In den folgenden Beispielen wird eine Benutzersuche anhand einer Basis-DN durchgeführt. Die Suche erfolgt anonym oder es wird bei Verwendung von authentifiziertem Binden ein authentifizierter Benutzer verwendet. "Suchen (DN)" hängt das Präfix, den angegebenen Benutzernamen und den Suffix an. Wenn das verwendete Präfix (uid= und das Suffix ")" ist, wird uid zum Benutzernamensattribut. Der verwendet Standardsuchfilter lautet: (|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter})) und für das Präfix verwendete Attribute werden auch dem Suchfilter hinzugefügt. Für den Fall, dass '(uid=' das Präfix ist, ergibt sich beim Suchen nach Benutzern der folgende Suchfilter:
  (|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter}*)(uid={filter}*))
Dabei wird {filter} durch den tatsächlichen Text ersetzt.

Der authentifizierte Bindungs-DN ist ein Benutzer auf dem externen LDAP-Server mit der Berechtigung zum Abrufen von Basis-DNs und zum Durchsuchen des LDAP-Verzeichnisses innerhalb der definierten Suchbasis. Er sollte auch andere Benutzereigenschaften lesen und verwendet werden können, wenn anonymer Zugriff nicht zulässig ist, um Basis-DNs abrufen und Benutzerattribute durchsuchen bzw. darauf zugreifen zu können. Wenn eine Suche für Steve durchgeführt wird, wird der im folgenden Beispiel gezeigte LDAP-Abfragefilter verwendet und die Suche erfolgt anhand des in der Benutzerschnittstelle angegebenen Basis-DN. Wenn der DN des Benutzers zurückgegeben wird, dienen der DN und das Kennwort zur Authentifizierung des Benutzers:

(|(cn=Steve*)(sn=Steve*)(mail=Steve*)(givenName=Steve*)(uid=Steve*)).
Zur Bindung während Anmeldeaufrufen ist das Präfix der verwendete Suchbegriff. Beispiel: Wenn das Präfix '(uid=' lautet, ergibt sich der folgende verwendete Suchbegriff für die Suche nach einem Benutzer während der Anmeldung: (uid=Steve).
Verwenden des Mailattribut als Benutzername
Wenn Sie eine E-Mail-Adresse als Benutzernamen verwenden möchten (z. B. steve@company.com), verwenden Sie in der Regel das Mailattribut als Präfix '(mail='. Verwenden Sie in diesem Fall den folgenden Suchbegriff, um die Suche intern auszuführen (wobei '(mail=' als Präfix angenommen wird):
(|(cn=steve@company.com*)(sn=steve@company.com*)(mail=steve@company.com*)
(givenName=steve@company.com*)(mail=steve@company.com*))  
Für das vorherige Beispiel gilt: Wenn der DN gefunden wurde, wird das Kennwort mit dem DN zur Durchführung des Bindens verwendet. Das erste Ergebnis wird herangezogen. Vergewissern Sie sich also, dass Sie für den Benutzernamen ein eindeutiges Attribut verwenden. Als Nächstes werden die LDAP-Eigenschaften für den Benutzer gelesen (cn, sn, mail, givenName). Wenn LDAP-Eigenschaften nicht mit dem angemeldeten Benutzer gelesen werden können, werden sie mithilfe authentifizierter Bindungsberechtigungsnachweise aus dem DN des Benutzers gelesen. Wenn das Benutzernamensattribut unterschiedlich ist, wird es auch abgefragt. Beispiel: Wenn das Präfix '(uid=' lautet, wird das Attribut uid auch anhand des DN-Objekts des Benutzers gelesen:
(|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter}*))
Anmerkung : Das Präfix und das Suffix können nicht verwendet werden, um den DN eines Benutzers direkt abzurufen. Beispielsweise schlägt der folgende Versuch fehl, den DN eines Benutzers direkt abzurufen:
Prefix: "uid=", Suffix: ",ou=users,dc=company,dc=com"

LDAP-Verweise

LDAP-Verweise ermöglichen eine Verzeichnisstruktur, die partitioniert und zwischen mehreren LDAP-Servern verteilt werden soll. Ein LDAP-Verweis bezieht sich auf die Art und Weise, wie ein Domänencontroller eine Clientanwendung darauf hinweist, dass er nicht über die Kopie eines angeforderten Objekts verfügt und dabei dem Client einen Standort angibt, an dem das Objekt wahrscheinlicher zu finden ist. Der Client verwendet anschließend das Objekt als Basis für eine DNS-Suche nach einem Domänencontroller.

API Connect -Unterstützung für LDAP-Verweise:
  • Suchen nach Benutzern, die Teil mehrerer Active Directory-Baumstrukturen und -Gesamtstrukturen sind.
  • Authentifizierung von Benutzern im Cloud Manager, API Manager und dem CMS Portal.
Die Unterstützung von LDAP-Verweisen in Anmerkung: API Connect hängt von den folgenden Bedingungen ab:
  • Ein einzelner LDAP-Host/Port wird mit Administratorberechtigungsnachweisen konfiguriert und anhand der Basis-DN der Baumstruktur/des Servers wird auf alle Benutzer verwiesen.
  • Als Teil der Benutzersuche, die LDAP-Verweise berücksichtigt, werden dieselben Administratorberechtigungsnachweise in den Downstream-Baumstrukturen/Gesamtstrukturen verwendet.
  • Die LDAP-API-Authentifizierung unterstützt keine LDAP-Verweise. Die interne LDAP-Überweisung wird unterstützt.