Einleitung
Im vorherigen Teil haben wir gezeigt, wie mehrere Datenquellen integriert und eine übergreifende Suche ermöglicht werden kann. Sobald eine solche übergreifende Suche verfügbar ist, ergibt sich jedoch eine neue Herausforderung: die Steuerung, welche Informationen angezeigt werden dürfen und welche nicht.
Es wäre problematisch, wenn vertrauliche Unterlagen der Personalabteilung in den Suchergebnissen aller Mitarbeiter erscheinen würden. In diesem Artikel erläutern wir, wie Sie mithilfe der rollenbasierten Suche von Fess die Suchergebnisse entsprechend der Zugehörigkeit und den Berechtigungen der Benutzer steuern können.
Zielgruppe
Personen, die eine Zugriffskontrolle für Suchergebnisse benötigen
Personen, die eine Suchinfrastruktur unter Berücksichtigung der Informationssicherheit im Unternehmen aufbauen möchten
Personen mit grundlegenden Kenntnissen in Active Directory oder LDAP
Szenario
Ein Unternehmen verfügt über drei Abteilungen:
Vertrieb: Verwaltung von Kundeninformationen, Angeboten und Präsentationen
Entwicklung: Verwaltung von Entwurfsdokumenten, Quellcode-Spezifikationen und Besprechungsprotokollen
Personalabteilung: Verwaltung von Leistungsbeurteilungen, Gehaltsinformationen und Betriebsordnungen
Darüber hinaus gibt es Dokumente, die allen Abteilungen gemeinsam zur Verfügung stehen (z. B. interne Richtlinien, Informationen zu Sozialleistungen).
Folgendes Sucherlebnis soll realisiert werden:
Mitarbeiter des Vertriebs können nur Dokumente des Vertriebs und gemeinsame Dokumente durchsuchen
Mitarbeiter der Entwicklung können nur Dokumente der Entwicklung und gemeinsame Dokumente durchsuchen
Mitarbeiter der Personalabteilung können nur Dokumente der Personalabteilung und gemeinsame Dokumente durchsuchen
Die Geschäftsleitung kann alle Dokumente durchsuchen
Funktionsweise der rollenbasierten Suche
Die rollenbasierte Suche von Fess funktioniert nach folgendem Prinzip:
Beim Crawling: Dokumente werden mit Rolleninformationen versehen (welche Rollen Zugriff haben)
Beim Login: Die Rolleninformationen des Benutzers werden abgerufen (interne Fess-Authentifizierung oder externe Authentifizierungsanbindung)
Bei der Suche: Nur Dokumente, die mit den Rollen des Benutzers übereinstimmen, werden in den Suchergebnissen angezeigt
Durch dieses Verfahren wird die Zugriffskontrolle auf der Ebene der Suchmaschine durchgesetzt.
Rollendesign
Benutzer- und Gruppendesign
Zunächst werden die Zusammenhänge zwischen Benutzern, Gruppen und Rollen in Fess erläutert.
Gruppen- und Rollenkonfiguration in Fess
Rollen erstellen
Wählen Sie in der Verwaltungsoberfläche [Benutzer] > [Rollen]
Erstellen Sie die folgenden Rollen:
sales_roleengineering_rolehr_rolemanagement_role
Gruppen erstellen
Wählen Sie [Benutzer] > [Gruppen]
Erstellen Sie die folgenden Gruppen:
salesengineeringhrmanagement
Benutzer erstellen und Rollen zuweisen
Wählen Sie [Benutzer] > [Benutzer]
Weisen Sie jedem Benutzer Gruppen und Rollen zu
Berechtigungen in der Crawling-Konfiguration zuweisen
Um Dokumenten Zugriffskontrollinformationen zuzuweisen, geben Sie Berechtigungen in der Crawling-Konfiguration an. Berechtigungen werden im Format {role}Rollenname, {group}Gruppenname, {user}Benutzername eingegeben, jeweils durch einen Zeilenumbruch getrennt.
Crawling-Konfiguration pro Abteilung
Dateiserver des Vertriebs
[Crawler] > [Dateisystem] > [Neu erstellen]
Konfigurieren Sie Folgendes:
Pfad:
smb://fileserver/sales/Berechtigungen:
{role}sales_roleund{role}management_role, jeweils in einer separaten Zeile eingeben
Durch diese Konfiguration können nur Benutzer mit sales_role und management_role die vom Dateiserver des Vertriebs gecrawlten Dokumente in den Suchergebnissen sehen.
Dateiserver der Entwicklung
[Crawler] > [Dateisystem] > [Neu erstellen]
Konfigurieren Sie Folgendes:
Pfad:
smb://fileserver/engineering/Berechtigungen:
{role}engineering_roleund{role}management_role, jeweils in einer separaten Zeile eingeben
Dateiserver der Personalabteilung
[Crawler] > [Dateisystem] > [Neu erstellen]
Konfigurieren Sie Folgendes:
Pfad:
smb://fileserver/hr/Berechtigungen:
{role}hr_roleund{role}management_role, jeweils in einer separaten Zeile eingeben
Gemeinsame Dokumente
[Crawler] > [Web] oder [Dateisystem] > [Neu erstellen]
Berechtigungen: Belassen Sie den Standardwert
{role}guest
Standardmäßig wird {role}guest automatisch eingetragen. Da alle Benutzer, einschließlich Gastbenutzer, die Rolle guest besitzen, können alle Benutzer die Suchergebnisse einsehen.
Anbindung an externe Authentifizierung
In realen Unternehmensumgebungen ist es üblich, nicht die interne Benutzerverwaltung von Fess zu verwenden, sondern eine Anbindung an bestehende Verzeichnisdienste herzustellen.
Active Directory / LDAP-Anbindung
Fess unterstützt die LDAP-Anbindung und kann die Benutzerinformationen von Active Directory für Authentifizierung und Rollenzuweisung verwenden.
Um die LDAP-Anbindung zu aktivieren, konfigurieren Sie die LDAP-Verbindungsinformationen in der Konfigurationsdatei von Fess.
Die wichtigsten Konfigurationsparameter sind:
URL des LDAP-Servers
Bind-DN (Konto für die Verbindung)
Suchbasis-DN für Benutzer
Suchbasis-DN für Gruppen
Zuordnung der Benutzerattribute
Wenn die LDAP-Anbindung aktiviert ist, können sich Benutzer mit ihrem Active Directory-Konto bei Fess anmelden. Da die Informationen zur Gruppenzugehörigkeit automatisch als Rollen übernommen werden, ist eine manuelle Rollenzuweisung pro Benutzer in Fess nicht erforderlich.
SSO-Anbindung
Als weitergehende Konfiguration ist auch eine Anbindung an Single Sign-On (SSO) möglich. Fess unterstützt die folgenden SSO-Protokolle:
OpenID Connect (OIDC): Entra ID (Azure AD), Keycloak und weitere
SAML: Anbindung an verschiedene Identity Provider
SPNEGO/Kerberos: Integrierte Windows-Authentifizierung
Durch die SSO-Anbindung können Benutzer mit ihren gewohnten Anmeldedaten automatisch auf Fess zugreifen, wobei die Rolleninformationen ebenfalls automatisch übernommen werden. Details zur SSO-Anbindung werden in Teil 15 „Sichere Suchinfrastruktur“ ausführlich behandelt.
Funktionsprüfung
Nachdem die Konfiguration der rollenbasierten Suche abgeschlossen ist, sollten Sie die Funktionsweise überprüfen.
Prüfungsschritte
Melden Sie sich als Benutzer des Vertriebs an und suchen Sie nach „Angebot“ → Überprüfen Sie, dass nur Dokumente des Vertriebs und gemeinsame Dokumente angezeigt werden
Melden Sie sich als Benutzer der Entwicklung an und suchen Sie mit demselben Suchbegriff → Überprüfen Sie, dass keine Dokumente des Vertriebs angezeigt werden
Melden Sie sich als Benutzer der Geschäftsleitung an und suchen Sie mit demselben Suchbegriff → Überprüfen Sie, dass Dokumente aller Abteilungen angezeigt werden
Prüfungskriterien
Dokumente, für die keine Berechtigung vorliegt, dürfen in den Suchergebnissen überhaupt nicht erscheinen
Gemeinsame Dokumente werden für alle Benutzer angezeigt
Suchverhalten im nicht angemeldeten Zustand (Umfang der Gastanzeige)
Designüberlegungen
Granularität der Rollen
Die Granularität der Rollen wird entsprechend der Organisationsstruktur und den Sicherheitsanforderungen festgelegt.
Grobe Granularität: Rollen auf Abteilungsebene (Szenario dieses Artikels)
Vorteil: Einfache Konfiguration, leichte Verwaltung
Nachteil: Keine feingranulare Zugriffskontrolle innerhalb einer Abteilung möglich
Feine Granularität: Rollen auf Projekt- oder Teamebene
Vorteil: Feingranulare Zugriffskontrolle möglich
Nachteil: Die Anzahl der Rollen steigt und die Verwaltung wird komplexer
Es wird empfohlen, zunächst mit grober Granularität zu beginnen und bei Bedarf feiner zu untergliedern.
Anbindung an die ACL des Dateiservers
Beim Crawlen eines Dateiservers ist es auch möglich, die ACL-Informationen (Access Control List) der Dateien für die Berechtigungssteuerung zu nutzen. In diesem Fall werden die Berechtigungseinstellungen des Dateisystems direkt in der Anzeigekontrolle der Suchergebnisse widergespiegelt.
Wenn Sie die ACL des Dateiservers nutzen möchten, überprüfen Sie die berechtigungsrelevanten Konfigurationsoptionen in der Crawling-Konfiguration.
Zusammenfassung
In diesem Artikel haben wir die abteilungsbezogene Steuerung der Suchergebnisse mithilfe der rollenbasierten Suche von Fess konzipiert und aufgebaut.
Design und Registrierung von Rollen, Gruppen und Benutzern
Rollenzuweisung in der Crawling-Konfiguration
Automatische Rollenübernahme durch Active Directory / LDAP-Anbindung
SSO-Anbindungsoptionen (OIDC, SAML, SPNEGO)
Durch die rollenbasierte Suche können Sie die Informationssicherheit gewährleisten und gleichzeitig den Komfort einer übergreifenden Suche bieten. Damit endet der Grundlagenteil. Ab dem nächsten Teil behandeln wir im Praxislösungsteil den Aufbau eines Wissens-Hubs für Entwicklungsteams.