Sie können den Arbeitsbereich „Authentifizierung“ verwenden, um Verzeichnisdienste für SaltStack Config mithilfe des LDAP-Protokolls zu konfigurieren. Dieses Protokoll wird für die Verbindung mit Diensten wie Active Directory oder Microsoft Azure verwendet.

Hinweis: Sie können gleichzeitig mehrere Systeme zum Authentifizieren von Benutzern in SaltStack Config verwenden. Sie können beispielsweise sowohl einen SAML-basierten als auch einen LDAP-basierten Identitätsanbieter verwenden und gleichzeitig bestimmte Benutzeranmeldedaten nativ auf dem RaaS-Server speichern. Allerdings ist es in SaltStack Config nicht möglich, mehr als zwei SAML-Provider oder zwei LDAP-Provider gleichzeitig zu konfigurieren.

SaltStack Config verwendet den folgenden Backend-Prozess zur Authentifizierung von LDAP-basierten Systemen:

  • Vorschau – Wenn Sie Ihre Verbindungseinstellungen in der Vorschau anzeigen, ruft SaltStack Config eine Beispielliste mit Benutzern und Gruppen vom LDAP-Server ab, damit Sie überprüfen können, ob Sie die richtigen Konfigurationsparameter eingegeben haben.
  • Anmelden – Wenn ein Benutzer Anmeldedaten im SaltStack Config-Anmeldeformular eingibt, prüft der Backend-Server, ob zu diesem Zeitpunkt eine Übereinstimmung in der Datenbank vorliegt. Anschließend wird ein mehrstufiger Suchvorgang initiiert, und der Benutzer wird bei Auffinden einer Übereinstimmung authentifiziert. Aufgrund dieses Suchvorgangs werden aktivierte einzelne Benutzer in aktivierten Gruppen erst bei der ersten Anmeldung des Benutzers im Arbeitsbereich „Rollen“ angezeigt.
  • Hintergrundaufgaben – SaltStack Config führt regelmäßig einen Hintergrundauftrag aus, um nach allen verknüpften Gruppen und Benutzern in der Verzeichnisdienstverbindung zu suchen und sicherzustellen, dass sie noch vorhanden sind. Wenn die Gruppe oder der Benutzer entfernt wurde, deaktiviert der Backend-Server seinen Link in der Datenbank.
  • Archivierte Gruppen und Benutzer – Alle Gruppen, die Sie aus der Verzeichnisdienstverbindung entfernen, werden archiviert. Obwohl diese Gruppen inaktiv sind und Benutzer sich nicht anmelden können, werden sie weiterhin im Arbeitsbereich „Rollen“ angezeigt und können ausgewählt werden. Dies gilt auch für alle entfernten Benutzer, die zuvor im Arbeitsbereich „Rollen“ angezeigt wurden.
  • Geschachtelte Gruppen – Beim Arbeiten mit geschachtelten Gruppen aktivieren Sie neben einer übergeordneten Gruppe standardmäßig auch alle untergeordneten Gruppen.

Konfigurieren einer LDAP-Verbindung

Zum Konfigurieren von LDAP erstellen Sie zunächst eine Verbindung und aktivieren dann bestimmte LDAP-Benutzer und -Gruppen für die Authentifizierung bei SaltStack Config. Nach dem Aktivieren von Gruppen oder Benutzern können Sie deren Einstellungen für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) definieren.

Sie können die Felder mit den Standardeinstellungen vorab befüllen, die an Ihren Verzeichnisdienst angepasst sind, wie z. B. Active Directory oder OpenLDAP.

Hinweis: Die folgenden Schritte sollten von einem erfahrenen LDAP- oder Active Directory-Administrator durchgeführt werden, der mit dem gesamten Layout des LDAP-Systems vertraut ist. Wenden Sie sich an Ihren Administrator.

So richten Sie einen LDAP-Verzeichnisdienst ein:

  1. (Optional) Vor der Konfiguration von LDAP kann es hilfreich sein, die Verbindung und die Abfragen mithilfe eines Drittanbietertools zu testen. Für AD-Benutzer können Sie LDP oder ADSI Edit verwenden. Für Linux-Benutzer wird das Tool ldapsearch empfohlen.
    Hinweis: Weitere Informationen zu Tests mit diesen Tools finden Sie unter Vorgehensweise zur Überprüfung und Fehlerbehebung einer Verzeichnisdienstverbindung im Support Center.
  2. Klicken Sie im seitlichen Menü auf Verwaltung > Authentifizierung.
  3. Klicken Sie auf Erstellen.
  4. Wählen Sie im Menü Konfigurationstyp die Option LDAP aus.
  5. (Optional) Klicken Sie unter Einstellungen auf Standardeinstellungen vorab befüllen und wählen Sie Ihren Verzeichnisdienst in der Dropdown-Liste aus.

    Die Standardeinträge werden entsprechend Ihrer Auswahl befüllt. Bestimmte Einträge, wie z. B. Such-DN des Benutzers sind jedoch unvollständig. Stellen Sie sicher, dass die Einträge mit Ihrem Verzeichnisdienstschema übereinstimmen, und ersetzen Sie Platzhaltertext durch die korrekten Werte für Ihren Dienst.

  6. Geben Sie die Informationen für Ihre LDAP-Verbindung ein oder überprüfen Sie sie.

    Einfach

    Feld Beschreibung
    Name Name der LDAP-Verbindung. Da es sich hierbei lediglich um einen Anzeigenamen handelt, eignet sich die Eingabe eines beliebigen Namens, um dieses Authentifizierungs-Backend von anderen unterscheiden zu können.
    Host Adresse des LDAP-Hostservers, die als FQDN oder IP-Adresse formatiert ist.
    Port Port, auf dem der LDAP-Server konfiguriert ist. Die Standardeinstellung lautet 389 für nicht verschlüsseltes LDAP und 636 für LDAP über SSL.
    Hintergrundsynchronisierung SaltStack Config validiert alle Benutzer und Gruppen für das Authentifizierungs-Backend in einem hier festgelegten Intervall (in Minuten).
    SSL
    SSL aktivieren
    Wählen Sie diese Option aus, um mithilfe des in den RaaS-Servereinstellungen angegebenen Zertifikats eine Verbindung mit dem LDAP-Server über SSL (Secure Sockets Layer) herzustellen. Bei fehlender Konfiguration wird der Zertifikatspeicher des Systems verwendet, um die SSL-Verbindung zu validieren. Weitere Informationen zum Einrichten des RaaS-Servers finden Sie unter Einrichten von SSL-Zertifikaten im Handbuch „Installieren und Konfigurieren von SaltStack Config“.
    Wichtig: Wir empfehlen die Auswahl der Option „SSL aktivieren“. Wenn diese Option nicht ausgewählt ist, überträgt SaltStack Config Informationen im Klartext über eine unsichere Verbindung.
    Zertifikat validieren
    Wählen Sie diese Option aus, um sicherzustellen, dass die SSL-Zertifikate beim Herstellen der Verbindung validiert werden. Wählen Sie diese Option nicht aus, wenn die Validierung übersprungen werden soll, wie z. B. bei Verwendung von selbstsignierten Zertifikaten (nicht für die Produktion empfohlen).

    Authentifizierung

    Feld Beschreibung
    Basis-DN für Authentifizierung

    LDAP-Basis-DN (Distinguished Name). Hierbei handelt es sich um den Standort, über den Gruppen und Benutzer abgefragt werden, wie z. B. DC=sse,DC=example,DC=com.

    Hinweis: Die Seite „LDAP-Details“ enthält separate Eingabefelder für Objektklasse der Person, Name des Kontoattributs, Gruppenklasse, Name des Gruppenattributs und Synchronisierungszeitplan (Beschreibung siehe unten). Geben Sie diese Objekte daher nicht im Feld „Basis-DN“ ein.
    Admin-Bind-DN Für den LDAP-Server konfigurierter Administrator-DN. SaltStack Config verwendet diese Angabe für die Authentifizierung beim Verzeichnis für Benutzer- und Gruppen-Lookups. Nehmen Sie die Eingabe basierend auf der folgenden Syntax vor: cn=Administrator,cn=Users,dc=example,dc=com.
    Kennwort des Admin-Bind-DN

    Das individuelle Kennwort des Administrators.

    Dieses wird verschlüsselt in der Datenbank gespeichert. Das Kennwort wird nicht im Klartext gespeichert.

    Bind-DN-Filter für Authentifizierung

    Filter angewendet, um einen bestimmten Benutzer auszuwählen. Das Ergebnis dieser Suche ist ein Benutzer-DN, der von SaltStack Config zur Bindung an das Verzeichnis verwendet wird und dem Benutzer Zugriff auf SaltStack Config gewährt. Dies ist nützlich, um die Anzahl der Ergebnisse zu begrenzen, die in einem bestimmten Suchlauf zurückgegeben werden.

    Hinweis: Aufgrund der möglicherweise sehr komplexen Filtersyntax wird empfohlen, den Eintrag mithilfe von LDP, ldapsearch oder eines ähnlichen Tools zu testen, um Ihren Eintrag zu überprüfen und vor dem Befüllen dieses Felds Anpassungen vorzunehmen.

    Der folgende Beispielfilter gibt nur ein Konto zurück, das mit dem angegebenen Benutzernamen der DevOps- oder Level II-Gruppen übereinstimmt.

    (&(objectclass=user)(sAMAccountName={username})(|(memberOf=CN=DevOps,OU=Groups,OU=TestCompanyHQ,DC=adtest,DC=com)(memberOf=LevelII,OU=Groups,DC=adtest,DC=com)))

    Wenn Sie vorab befüllte Standardwerte verwenden, stellen Sie sicher, dass Sie Platzhaltertext durch die korrekten Werte für Ihren Verzeichnisdienst ersetzen.

    Hinweis: Lassen Sie dieses Feld beim Konfigurieren einer Baumstruktur leer.
    Remotename des eindeutigen ID-Attributs Name des Werts, der zur Identifizierung eindeutiger Einträge verwendet wird. Dies ist das eindeutige ID-Attribut für alle Einträge. In AD ist dies ObjectGUID.

    Gruppen

    Feld Beschreibung
    Such-DN für Gruppen Die Suchbasis für Gruppen. In AD kann dies beispielsweise cn=Groups,dc=example,dc=com sein. Gibt an, wo im Verzeichnis nach Gruppen gesucht werden soll. Verwendung mit dem folgenden Suchbereich für Gruppen.
    Suchbereich für Gruppen

    Gibt die Suchtiefe des Verzeichnisses gemäß der im Such-DN für Gruppen angegebenen Basis an, die einen von vier Werten aufweisen kann:

    baseObject
    Wert 0, häufig bezeichnet als base. Verwenden Sie diesen Wert, um ausschließlich nach diesem Objekt zu suchen.
    singleLevel
    Wert 1, häufig bezeichnet als one. Verwenden Sie diesen Wert, um nur unmittelbar untergeordnete Elemente des Basiseintrags bei Übereinstimmungen zu berücksichtigen.
    wholeSubtree
    Wert 2 (oder SUBTREE in ldap3), häufig bezeichnet als sub. Verwenden Sie diesen Wert, um die Basis und alle untergeordneten Elemente in beliebiger Tiefe zu durchsuchen.
    subordinateSubtree
    Wert 3, häufig bezeichnet als subordinates. Dies entspricht wholeSubtree, der Basissucheintrag wird jedoch ignoriert.
    DN-Filter für Gruppensuche Suchfilter zum Extrahieren von Gruppen aus dem Verzeichnis. Hierbei handelt es sich in der Regel um (objectClass=group), bei bestimmten AD-Konfigurationen jedoch möglicherweise um (objectCategory=group). Verwenden Sie diese Option zusätzlich zur Gruppenklasse für mehr Granularität.
    Gruppenklasse Name der Objektklasse, der zum Definieren von Gruppen verwendet wird, z. B. groupOfNames.
    Attribut des Gruppennamens Der Name des Attributs, das Sie für den Gruppennamen verwenden möchten. Geben Sie ein Einzelwertattribut statt eines Mehrwertattributs ein.
    Attribut der Gruppenmitgliedschaft Der Name des Attributs im Benutzereintrag, der den Gruppennamen enthält, z. B. memberOf.

    Benutzer

    Feld Beschreibung
    Such-DN für Benutzer Die Suchbasis für Benutzer, z. B. cn=Users,dc=example,dc=com in AD oder cn=people,cn=accounts,dc=example,dc=com in anderen Verzeichnisdiensten. Gibt an, wo im Verzeichnis nach Benutzern gesucht werden soll. Verwendung mit dem folgenden Benutzersuchbereich.
    Benutzersuchbereich Gibt die Suchtiefe des Verzeichnisses gemäß der im Such-DN für Benutzer angegebenen Basis an, die einen von vier Werten aufweisen kann: Zeigen Sie die vier Werte an, die im Gruppensuchbereich beschrieben werden.
    DN-Filter für Benutzersuche Suchfilter zum Extrahieren von Benutzern aus dem Verzeichnis. Hierbei handelt es sich in der Regel um (objectClass=person), bei bestimmten AD-Konfigurationen jedoch möglicherweise um (objectCategory=user).
    Personenklasse Der Klassenname des Verzeichnisdiensts mit Benutzern, die Sie für die Anmeldung aktivieren möchten. Die meisten Systeme (einschließlich Active Directory) verwenden person, einige bevorzugen jedoch user oder inetOrgPerson.
    Attribut der Benutzer-ID Der eindeutige Name des Benutzerkontoattributs. Für AD ist dies sAMAccountName. Für andere Dienste ist dies häufig uid oder memberUid.
    Attribut der Benutzermitgliedschaft Der Name des Attributs im Gruppeneintrag, der den Benutzernamen enthält. Zu dem möglichen Beispielen gehören member oder uniquemember.
  7. Klicken Sie zum Anzeigen der Einstellungen in einer temporären Vorschau auf Vorschau aktualisieren.

    Im Vorschaufenster werden die für Ihre Verbindung ausgewählten Benutzer und Gruppen angezeigt. Sie können entweder die Registerkarte Gruppen oder Benutzer auswählen, um mit dem Dienst verknüpfte Benutzer und Gruppen nach Bedarf in der Vorschau anzuzeigen.

  8. Klicken Sie auf Speichern.

    Ihre LDAP-Konfiguration wurde gespeichert. Um sicherzustellen, dass die Konfiguration korrekt ist, möchten Sie sich unter Umständen über ein Testbenutzerkonto bei SaltStack Config anmelden. Wenn Sie sich nicht erfolgreich anmelden können, finden Sie unter Fehlerbehebung weitere Tipps.

    Hinweis: Bei LDAP-Konfigurationen speichert SaltStack Config die Verbindungseinstellungen, einschließlich der angegebenen Gruppen und Benutzer. Es ruft nur Gruppen und Benutzer innerhalb des von Ihnen definierten Geltungsbereichs ab und synchronisiert nicht das gesamte Verzeichnis.

    Mit der Zeit müssen Sie Ihr LDAP-Verzeichnis möglicherweise aktualisieren oder neu synchronisieren. Sie sollten Ihr Verzeichnis beispielsweise aktualisieren, wenn Sie neue Benutzer hinzugefügt haben und diese in SaltStack Config aktivieren möchten.

Aktivieren von Gruppen und Benutzern

Nach dem Einrichten der LDAP-Verbindung müssen Sie Verzeichnisdienstgruppen konfigurieren und sicherstellen, dass sich die Benutzer bei SaltStack Config anmelden können. So konfigurieren Sie Verzeichnisdienstgruppen:

  1. Wählen Sie im Arbeitsbereich „Authentifizierung“ die erforderliche LDAP-Konfiguration aus.
  2. Klicken Sie auf die Registerkarte Gruppen, um eine Liste der Gruppen anzuzeigen, die aus Ihrer LDAP-Konfiguration abgerufen wurden.
    Hinweis: Wenn Sie eine große Anzahl von Gruppen abrufen, kann das Laden der Seite bis zu einer Minute dauern.
  3. Wählen Sie die Gruppen aus, die Sie in SaltStack Config aktivieren möchten.
  4. Wählen Sie die Registerkarte Benutzer aus, um eine Liste der Benutzer anzuzeigen, die aus Ihrer LDAP-Konfiguration abgerufen wurden.
    Hinweis: Wenn Sie eine große Anzahl von Benutzern abrufen, kann das Laden der Seite bis zu einer Minute dauern.
  5. Wählen Sie die Benutzer aus, die Sie in SaltStack Config aktivieren möchten.
    Hinweis: Alle Benutzer, die in aktivierten Gruppen enthalten sind, sind bereits ausgewählt und können nicht deaktiviert werden.
    directory-service-users-enabled-group
  6. Klicken Sie auf Speichern.

    Sie können jetzt die Einstellungen für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) für die ausgewählten Gruppen definieren. Über den Arbeitsbereich „Rollen“ können Sie Einstellungen für einzelne Benutzer, die in einer Verzeichnisdienstgruppe enthalten sind, erst nach der ersten Anmeldung des Benutzers verwalten. Deaktivieren Sie zum Löschen von Gruppen oder Benutzern die Gruppe oder den Benutzer und klicken Sie dann auf Speichern.

    Weitere Informationen zu RBAC in SaltStack Config finden Sie unter Vorgehensweise zum Definieren von Benutzerrollen.

Fehlerbehebung bei Ihrer LDAP-Verbindung

Wenn Sie Ihre Verbindung nicht erfolgreich in der Vorschau anzeigen können, führen Sie folgende Schritte zur Fehlerbehebung durch.
Problem Beschreibung Lösung
Ich kann keine Vorschau von meiner Verbindung anzeigen

Wenn Sie keine Vorschau Ihrer Gruppen und Benutzer anzeigen können, ist dies in vielen Fällen auf ein Verbindungsproblem zwischen dem LDAP-Server und SaltStack Config oder auf einen ungültigen Eintrag im LDAP-Konfigurationsformular zurückzuführen.

  1. Stellen Sie sicher, das TCP-Verbindungen von SaltStack Config zum ausgewählten Port auf dem LDAP-Server zulässig sind.
  2. Überprüfen Sie die Formulareinträge und validieren Sie die Syntax mithilfe eines Drittanbietertools. Weitere Informationen finden Sie unter Vorgehensweise zum Überprüfen einer Verzeichnisdienstverbindung und zur Fehlerbehebung.
  3. Wenn keines der vorherigen Angebote zur Behebung des Problems beiträgt, finden Sie weitere Informationen im Abschnitt „Andere Probleme“.
  4. Wenn keines der oben genannten Angebote hilft, wenden Sie sich an den Kundensupport.
Beim Versuch, eine Vorschau meiner Verbindung anzuzeigen, bleibt die Seite beim Laden hängen Wenn das Laden der Seite mehr als zwei Minuten in Anspruch nimmt, starten Sie den RaaS-Dienst neu. Löschen Sie anschließend die Konfiguration und erstellen Sie sie neu.
  1. Öffnen Sie das RaaS-Protokoll.
    tail -f /var/log/raas/raas

    Das Protokoll enthält sinngemäß die folgende Fehlermeldung:

    [ERROR    :256][ForkPoolWorker-2:10253][ldap_preview_background_task(some_uuid)]
    Task ldap preview_background_task[some_uuid]raised unexpected: KeyError('ad-1_preview')
  2. Beenden Sie den RaaS-Dienst und starten Sie ihn dann neu.
    systemctl stop raas
    systemctl start raas
  3. Kehren Sie zur SaltStack Config-Benutzeroberfläche zurück und löschen Sie die LDAP-Verbindung.
    Hinweis:

    Wenn Sie möchten, können Sie die Konfigurationseinträge kopieren und in eine Sicherungstextdatei einfügen, bevor Sie sie löschen.

  4. Erstellen Sie die LDAP-Konfiguration erneut.
Sonstige Probleme

Wenn Sie die LDAP-Verbindung bereits konfiguriert und gespeichert haben, die Benutzer sich jedoch nicht anmelden können, oder wenn andere Probleme auftreten, überprüfen Sie die raas-Protokolle mit aktiviertem erweiterten Debugging, um die Hauptursache zu ermitteln.

So aktivieren Sie erweitertes Debugging:

  1. Öffnen Sie /etc/raas/raas unter RaaS.
  2. Nehmen Sie die folgenden Änderungen vor:
    • Entfernen Sie unter Loggingoptions den log_file_loglevel:debug-Kommentar.
    • Entfernen Sie unter AD/LDAPdriverconfiguration den Kommentar log_level und legen Sie die Einstellung log_level:EXTENDED fest.
  3. Beenden Sie den RaaS-Dienst und starten Sie ihn dann neu.
    systemctl stop raas
    systemctl start raas
  4. Zeigen Sie das raas-Protokoll an.
    tail -f /var/log/raas/raas

Es folgt eine Liste häufig in den Protokollen aufgezeichneter Fehler:

  • Falsche Einstellungen für Verbindung (SSL). Passen Sie die SSL-Einstellungen an.
    [raas.utils.validation.schemas.settings][DEBUG   :546 ][Webserver:9096]
    Error while connecting to AD/LDAP Server. SSL connection issues: socket
    ssl wrapping error: [Errno 104] Connection reset by peer
  • Falsches Kennwort für Admin-BIND-DN. Überprüfen Sie das Kennwort und geben Sie es erneut ein.
    [raas.utils.rpc   ][DEBUG   :284 ][Webserver:9095]
    Processed RPC request(129360670417695). Response:
    {'riq': 129360670417695, 'ret': None, 'error': {'code': 3004, 'message':
    'Request validation failure.', 'detail': {'_schema':
    ['Credentials are not valid']}}, 'warnings': []}
  • Der automatisch eingetragene standardmäßige Auth-Bind-DN-Filter ruft einen Konflikt hervor. Lassen Sie das Feld leer oder verwenden Sie anstelle von {{username}} den Benutzernamen {username}.
    Hinweis:

    Dieser Fehler tritt möglicherweise auf, wenn Sie die LDAP-Verbindung bereits gespeichert haben, die Benutzer sich jedoch nicht anmelden können.

    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :903 ][Webserver:9096]
    Running _get_auth_backend_user with this search_filter: (&(objectclass=person)(sAMAccountName={username}))
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :931 ][Webserver:9096]
    Could not find any user using '(&(objectclass=person)(sAMAccountName={username}))'
    as the search filter in the ldap backend under the ad-1 configuration.
    Trying remote_uid 'None'
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :963 ][Webserver:9096]
    Could not find any user using '(&(objectClass=person)(objectGUID=None))'
    as the search filter in the ldap backend under the ad-1 configuration.