Secure Fusion: Nutzung von LDAP

Dies ist der dritte Artikel in einer Reihe von Artikeln über die Sicherung Ihrer Daten in Lucidworks Fusion. Secure Fusion:…

Dies ist der dritte Artikel in einer Reihe von Artikeln über die Sicherung Ihrer Daten in Lucidworks Fusion. Secure Fusion: SSL-Konfiguration behandelt die Sicherheit der Transportschicht und Secure Fusion: Authentifizierung und Autorisierung behandelt allgemeine Sicherheitsmechanismen auf Anwendungsebene in Fusion. Dieser Artikel zeigt Ihnen, wie Fusion so konfiguriert werden kann, dass es einen LDAP-Server für die Authentifizierung und Autorisierung verwendet.

Bevor wir besprechen, wie Sie Fusion für LDAP konfigurieren, sollten Sie wissen, wann und warum Sie dies tun sollten. Warum sollten Sie LDAP verwenden, wenn der systemeigene Sicherheitsbereich von Fusion die Authentifizierung und Passwörter direkt verwalten kann? Und umgekehrt: Wenn Sie LDAP für die Authentifizierung und Autorisierung verwenden können, warum dann nicht immer LDAP verwenden?

Die Antwort auf die letztgenannte Frage lautet, dass der systemeigene Sicherheitsbereich von Fusion erforderlich ist, um Fusion zu starten. Da alle Anfragen an Fusion eine Authentifizierung und Autorisierung erfordern, müssen Sie mit der Erstellung einer Fusion-Anwendung beginnen, indem Sie sich zunächst als der native Benutzer „admin“ anmelden. Die integrierte Authentifizierung bietet einen Fallback-Mechanismus für den Fall, dass der LDAP-Server oder die Kommunikation ausfällt.

Warum LDAP verwenden? Die Verwendung von LDAP vereinfacht die Aufgabe der Benutzerverwaltung. Einzelne Benutzerkonten werden direkt über LDAP verwaltet. Der Zugriff auf Dienste und Daten wird durch die Zuordnung von LDAP-Benutzern und -Gruppen zu Fusion-Rollen und -Berechtigungen verwaltet.

Ein häufiger Anwendungsfall für einen LDAP-Sicherheitsbereich ist die Suche über eine Sammlung von Dokumenten mit ACLs, die den Zugriff auf bestimmte Benutzer oder Gruppen beschränken, z.B. die Indizierung eines von Active Directory verwalteten MS Sharepoint-Repository. Um sicherzustellen, dass die Suche die Zugriffsrechte auf diese Dokumente beachtet, müssen Sie bei der Indizierung dieser Dokumente sowohl die Zugriffsrechte als auch den Inhalt der Dokumente berücksichtigen. Zum Zeitpunkt der Abfrage werden die Informationen zum Benutzerkonto zusammen mit der Suchanfrage gesendet und Fusion schränkt die Suchergebnismenge auf die Dokumente ein, auf die der Benutzer zugreifen darf.

LDAP für Einsteiger

Wenn Sie sich mit LDAP auskennen und mit der Konfiguration von LDAP-basierten Systemen vertraut sind, können Sie diesen Abschnitt überspringen und mit dem Abschnitt Fusion-Konfiguration fortfahren.

Das LDAP-Protokoll wird für den Austausch von Informationen über Benutzer, Systeme, Netzwerke und Dienste zwischen Servern im Internet verwendet. LDAP-Server werden als zentraler Speicher für Benutzernamen, Passwörter sowie Benutzer- und Gruppenberechtigungen verwendet. Anwendungen und Dienste verwenden das LDAP-Protokoll, um Benutzeranmeldeinformationen und Kennwörter an den LDAP-Server zu senden. Der Server führt die Namenssuche und die Passwortüberprüfung durch. LDAP-Server speichern auch Zugriffskontrolllisten (Access Control Lists, ACLs) für Datei- und Verzeichnisobjekte, in denen die für diese Objekte zulässigen Benutzer und Gruppen sowie die Art des Zugriffs festgelegt sind.

LDAP ist ein offenes Standardprotokoll und es gibt viele kommerzielle und Open-Source LDAP-Server. Microsoft-Umgebungen verwenden im Allgemeinen Active Directory. *nix-Server verwenden AD oder andere LDAP-Systeme wie OpenLDAP, obwohl viele *nix-Systeme überhaupt kein LDAP verwenden. Um Fusion für LDAP zu konfigurieren, benötigen Sie Informationen über den/die LDAP-Server, die auf Ihrem System laufen, entweder von Ihrem Systemadministrator oder über Systemdienstprogramme.

Verzeichnisse und Distinguished Names

Ein LDAP-Informationsspeicher ist ein Verzeichnisinformationsbaum (DIT). Der Baum besteht aus Eintragsknoten; jeder Knoten hat einen einzelnen Elternknoten und null oder mehr Kindknoten. Jeder Knoten muss mindestens ein Attribut haben, das ihn eindeutig von seinen Geschwistern unterscheidet und als Relative Distinguished Name (RDN) des Knotens verwendet wird. Der Distinguished Name (DN) eines Knotens ist ein weltweit eindeutiger Bezeichner.

Die String-Darstellung eines DN ist in RFC 4514 festgelegt. Sie besteht aus dem RDN des Knotens, gefolgt von einem Komma, gefolgt von dem DN des übergeordneten Knotens. Die String-Darstellung des RDN ist das Attribut-Wert-Paar name, verbunden durch ein Gleichheitszeichen („=“). Diese rekursive Definition bedeutet, dass der DN eines Knotens zusammengesetzt wird, indem man vom Knoten zurück über seine Eltern- und Vorgängerknoten bis zum Wurzelknoten arbeitet.

Hier ist ein kleines Beispiel für ein DIT:

Beispiel

Der Personeneintrag in diesem Baum hat die DN: „uid=babs, ou=people, dc=example, dc=com“.

Attributnamen enthalten viele kurze Zeichenfolgen, die auf englischen Wörtern und Abkürzungen basieren, z.B.:

Name Beschreibung

cn

commonName

dc

domainKomponente

Mail

E-Mail Adresse

ou

organizationalUnitName

sn

Nachname

uid

userId

LDAP-Eintragsattribute können auf andere LDAP-Einträge verweisen, indem sie den DN des Eintrags als Wert des Attributs verwenden. Das folgende Beispiel eines Verzeichnisses, das Benutzer- und Gruppeninformationen enthält, zeigt, wie dies funktioniert:

Beispiel 2

Dieser Baum enthält zwei Organisationseinheiten: „ou=people“ und „ou=groups“. Die Kinder der Organisationseinheit „group“ sind bestimmte benannte Gruppen, so wie die Kindknoten der Organisationseinheit „people“ bestimmte Benutzer sind. Es gibt drei Benutzereinträge mit den RDNs „uid=bob“, „uid=alice“, „uid=bill“ und zwei Gruppen mit den RDNs „cn=user“ und „cn=admin“. Die gestrichelten Linien und Gruppenbeschriftungen um die Personenknoten zeigen die Gruppenzugehörigkeit an. Diese Beziehung wird auf den Gruppenknoten durch Hinzufügen eines Attributs namens „member“ deklariert, dessen Wert ein Benutzer-DN ist. Im LDAP-Datenaustauschformat (LDIF) wird dies so geschrieben:

cn=user,ou=groups,dc=acme,dc=org
    member: uid=bob,ou=people,dc=acme,dc=org
    member: uid=alice,ou=people,dc=acme,dc=org
cn=admin,ou=groups,dc=acme,dc=org
    member: uid=bill,ou=people,dc=acme,dc=org

Siehe den LDAP-Eintrag in der Wikipedia für weitere Details.

LDAP Protokoll Operationen

Zu Authentifizierungszwecken sendet Fusion Bind-Operationsanfragen an den LDAP-Server. Die Bind-Operation authentifiziert Clients (und die dahinter stehenden Benutzer oder Anwendungen) gegenüber dem Verzeichnisserver, legt die Autorisierungsidentität fest, die für nachfolgende Operationen auf dieser Verbindung verwendet wird, und gibt die LDAP-Protokollversion an, die der Client verwenden wird.

Je nachdem, wie das Hostsystem LDAP verwendet, um Anmeldeinformationen über Benutzer und Gruppen zu speichern, kann es erforderlich sein, auch Suchanfragen an den LDAP-Server zu senden. Der Suchvorgang ruft partielle oder vollständige Kopien von Einträgen ab, die einer bestimmten Gruppe von Kriterien entsprechen.

LDAP-Filter geben an, welche Einträge zurückgegeben werden sollen. Diese werden in Präfix-Notation angegeben. Boolesche Operatoren sind „&“ für logisches UND, „|“ für logisches ODER, z.B. „A UND B“ wird „(&(A)(B))“ geschrieben. Um Suchfilter für ein *nix-basiertes LDAP-System abzustimmen und zu testen, lesen Sie die Dokumentation des Befehlszeilenprogramms ldapsearch. Für Active Directory-Systeme siehe AD Syntax-Filter.

 

Fusion-Konfiguration für einen LDAP-Realm

Um Fusion für LDAP zu konfigurieren, benötigen Sie Informationen über den/die LDAP-Server, die auf Ihrem System laufen, entweder von Ihrem System oder Ihrem Systemadministrator.

Um einen LDAP-Realm über die Fusion-Benutzeroberfläche zu konfigurieren, müssen Sie als Benutzer mit Administratorrechten angemeldet sein. Klicken Sie im Menü „Anwendungen“, Menüpunkt „Zugriffskontrolle“, Panel „Sicherheitsbereiche“, auf die Schaltfläche „Sicherheitsbereich hinzufügen“:

neues Reich hinzufügen

Dies öffnet ein Editor-Panel für einen neuen Security Realm, das Steuerelemente und Eingaben für alle erforderlichen und optionalen Konfigurationsinformationen enthält.

Erforderliche Konfiguration Schritt Eins: Name und Typ

Der erste Schritt bei der Einrichtung eines LDAP-Sicherheitsbereichs ist das Ausfüllen der erforderlichen Informationen im oberen Bereich des Bereichs Realm Config:

Name wählen

Die ersten drei erforderlichen Konfigurationselemente sind:

  • Name – muss eindeutig sein, sollte beschreibend aber kurz sein
  • Typ – Auswahl von „LDAP“ oder „Kerberos“.
  • Kontrollkästchen „aktiviert“ – Standard ist true (d.h. das Kästchen ist aktiviert). Die Einstellung „aktiviert“ steuert, ob Fusion Benutzeranmeldungen für diesen Sicherheitsbereich zulässt oder nicht.

Erforderliche Konfiguration Schritt zwei: Server und Port

Sie müssen den Namen und den Port des LDAP-Servers eingeben und angeben, ob der Server über SSL läuft oder nicht. In diesem Beispiel konfiguriere ich einen hypothetischen LDAP-Server für das Unternehmen „Acme.org“, auf dem ein Server namens „ldap.acme.org“ über SSL an Port 636 läuft:

Verbindungsdetails

Erforderliche Konfiguration Schritt drei: Authentifizierungsmethode und DN-Vorlagen

Als nächstes müssen Sie die Authentifizierungsmethode angeben. Es stehen drei Möglichkeiten zur Auswahl:

  • Bind – die LDAP-Authentifizierung wird über einen einzigen „Bind“-Vorgang durchgeführt.
  • Suche – Die LDAP-Authentifizierung erfolgt indirekt über einen Suchvorgang gefolgt von einem Bind-Vorgang.
  • Kerberos – Kerberos authentifiziert Fusion und es wird eine LDAP-Suche durchgeführt, um Berechtigungen auf Gruppenebene zu finden.

Die Authentifizierungsmethode Bind wird verwendet, wenn der Fusion-Benutzername mit einem Teil des LDAP-DN übereinstimmt. Der Rest des LDAP DN wird im Konfigurationseintrag „DN-Vorlage“ angegeben, der ein einzelnes Paar geschweifter Klammern („{}“) als Platzhalter für den Wert des Fusion-Benutzernamens verwendet.

Die Authentifizierungsmethode Suchen wird verwendet, wenn der für die Fusion-Anmeldung verwendete Benutzername nicht mit einem Teil des LDAP-DN übereinstimmt. Die Suchanfrage gibt einen gültigen Benutzer-DN zurück, der zusammen mit dem Benutzerpasswort für die Authentifizierung über eine Bind-Anfrage verwendet wird.

Die Authentifizierungsmethode Suche ist in der Regel erforderlich, wenn Sie mit Microsoft Active Directory-Servern arbeiten. In diesem Fall müssen Sie den Benutzernamen und das Kennwort eines Benutzers kennen, der über ausreichende Rechte verfügt, um den LDAP-Server nach Benutzer- und Gruppenmitgliedschaften abzufragen; dieser Benutzer muss nicht der Superuser sein. Zusätzlich zu einem privilegierten Benutzer-DN und einem Passwort erfordert die Authentifizierungsmethode Suche die Erstellung einer Suchanfrage. Die Anfrage besteht aus zwei Teilen: Der erste Teil ist der Basis-DN des LDAP-Verzeichnisbaums, der die Benutzerkontoobjekte enthält. Der zweite Teil der Anfrage ist ein Suchfilterobjekt, das die Ergebnisse auf eine passende Teilmenge der Informationen einschränkt.

Als einfaches Beispiel konfiguriere ich Fusion für den Linux-basierten LDAP-Server von acme.org über die Authentifizierungsmethode Bind:

DN-Vorlage

Im obigen LDAP-Verzeichnisbeispiel für die Organisation „acme.org“ lauten die DNs für die drei Knoten in der Organisationseinheit „people“: „uid=bob,ou=people,dc=acme,dc=org“, „uid=alice,ou=people,dc=acme,dc=org“, und „uid=bill,ou=people,dc=acme,dc=org“. Dies entspricht dem DN Template String:

uid={},ou=people,dc=acme,dc=org

Testen der konfigurierten Verbindung

Im letzten Teil des Formulars können Sie die Konfiguration des LDAP-Bereichs mit einem gültigen Benutzernamen und Passwort testen:

Testverbindung

Wenn Sie auf die Schaltfläche „Einstellungen aktualisieren und testen“ klicken, wird der Benutzername aus dem Formular entsprechend der DN-Vorlage in einen DN umgewandelt und eine Bind-Operationsanfrage an den konfigurierten LDAP-Server gesendet. Fusion meldet, ob die Authentifizierung erfolgreich war oder nicht:

Testerfolg

Optionale Konfiguration: Rollen- und Gruppenzuordnungen

Eine Fusion-Rolle ist ein Bündel von Berechtigungen, die auf die Zugriffsanforderungen verschiedener Arten von Benutzern zugeschnitten sind. Der Zugriff auf Dienste und Daten für LDAP-verwaltete Benutzer wird durch Zuordnungen von LDAP-Benutzern und -Gruppen zu Fusion-Rollen gesteuert.

Rollen können global zugewiesen oder auf bestimmte LDAP-Gruppen beschränkt werden. Das Konfigurationspanel für den Sicherheitsbereich enthält eine Liste aller Fusion-Rollen mit einem Kontrollkästchen für jede Rolle, mit der diese Rolle allen Benutzern in diesem Bereich zugewiesen wird. LDAP-Gruppennamen können direkt bestimmten Fusion-Rollen zugeordnet werden, und LDAP-Gruppensuch- und Filterabfragen können auch verwendet werden, um bestimmte LDAP-Benutzer bestimmten Fusion-Rollen zuzuordnen.

Alles zusammenfügen

Um zu sehen, wie das funktioniert, bearbeite ich den LDAP-Sicherheitsbereich mit dem Namen „test-LDAP“, während ich als Administrator des nativen Fusion-Bereichs angemeldet bin, so dass alle Benutzer dieses Bereichs über Administratorrechte verfügen:

Fusion Rollen

Zu diesem Zeitpunkt enthält meine Fusion-Instanz zwei Benutzer:

zwei Benutzer

Ich melde mich als Admin-Benutzer ab:

Admin Logout

Jetzt melde ich mich mit dem Realm „test-LDAP“ an:

Anmeldung

Da alle Benutzer des Bereichs „test-LDAP“ über Administratorrechte verfügen, kann ich die Anwendung Zugriffskontrolle verwenden, um alle Systembenutzer zu sehen. Wenn ich das Bedienfeld BENUTZER erneut überprüfe, sehe ich, dass es jetzt einen neuen Eintrag für den Benutzernamen „mitzi.morris“ gibt:

drei Benutzer

Der Eintrag für den Benutzernamen „mitzi.morris“ im Fenster BENUTZER zeigt keine Rollen, API- oder UI-Berechtigungen an, da diese Informationen nicht im internen ZooKeeper von Fusion gespeichert sind. Die einzigen Informationen, die in Fusion gespeichert werden, sind der Benutzername, der Realm und die uuid. Die Berechtigungen werden über LDAP verwaltet. Wenn sich der Benutzer anmeldet, weist die LDAP-Realm-Konfiguration von Fusion die Rollen entsprechend dem aktuellen LDAP-Status des Benutzers zu.

Fusion verwaltet alle Ihre Solr-Daten. Die Sicherheitsmechanismen von Fusion stellen sicher, dass nur Ihre Benutzer alle ihre Daten sehen und nur ihre Daten, nicht mehr und nicht weniger. In diesem Beitrag erfahren Sie, wie Fusion für die Verwendung eines externen LDAP-Servers zur Authentifizierung konfiguriert werden kann und wie Sie Benutzer- und Gruppenmitgliedschaften den Fusion-Berechtigungen und -Rollen zuordnen. In künftigen Beiträgen dieser Serie wird gezeigt, wie Sie Fusion-Datenquellen so konfigurieren, dass Berechtigungssätze auf Dokumentenebene (ACLs) indiziert werden
und wie Sie Suchpipelines so konfigurieren, dass die Ergebnismenge nur die Dokumente enthält, die der Benutzer sehen darf.

You Might Also Like

Vom Suchunternehmen zum praktischen KI-Pionier: Unsere Vision für 2025 und darüber hinaus

CEO Mike Sinoway gibt Einblicke in die Zukunft der KI und stellt...

Read More

Wenn KI schief geht: Fehlschläge in der realen Welt und wie man sie vermeidet

Lassen Sie nicht zu, dass Ihr KI-Chatbot einen 50.000 Dollar teuren Tahoe...

Read More

Lucidworks Kernpakete: Branchenoptimierte KI-Such- und Personalisierungslösungen

Entdecken Sie unsere umfassenden Core Packages, die Analytics Studio, Commerce Studio und...

Read More

Quick Links