LDAP-Authentifizierung für die Cloud Foundry Enterprise Environment konfigurieren

Zur Benutzerauthentifizierung können Sie in der Cloud Foundry Enterprise Environment die LDAP-Authentifizierung verwenden.

Sie können die LDAP-Authentifizierung gemäß diesen Anwendungen jederzeit vor oder nach der Installation der Cloud Foundry Enterprise Environment konfigurieren (siehe Cloud Foundry Enterprise Environment installieren). Die Konfiguration wird durch Hinzufügen der eingeschlossenen Erweiterung cfp-ext-ldap zur Hauptbereitstellung der Cloud Foundry Enterprise Environment durchgeführt. Weitere Informationen finden Sie in Verwenden von Erweiterungen in der Cloud Foundry Enterprise Environment. Durch die Erweiterung cfp-ext-ldap werden die Bereitstellungseigenschaften für den UAA-Server (UAA - User Account and Authentication) geändert.

Bevor Sie die LDAP-Authentifizierung konfigurieren, müssen Sie die Benutzer in Ihrer LDAP- oder Active Directory-Domäne erstellen. Sie können Gruppen verwenden, um den Zugriff auf die Cloud Foundry Enterprise Environment zu filtern.

Konfiguration vorbereiten

Die LDAP-Konfiguration wird in einer Datei im YAML-Format gespeichert, deren Bezeichnung in diesen Anweisungen <ldap_config_file> lautet. Erstellen Sie die Datei, zum Beispiel mit dem Namen ldapconfig.yml, und platzieren Sie die Konfigurationsdetails wie in der Beispielkonfiguration dargestellt in Abschnitt uiconfig:.

Wenn Sie die Verwendung des Cloud Foundry-Bereitstellungstools bevorzugen, bietet die Erweiterung cfp-ext-ldap eine Anleitung zum Bearbeiten der Konfigurationswerte. Klicken Sie auf der Seite Zustände auf Erweiterung hinzufügen, wählen Sie cfp-ext-ldapaus und machen Sie anschließend die erforderlichen Angaben in dem Dialog. Rufen Sie die Seite Konfiguration auf und suchen Sie in der Liste der Erweiterungen den Eintrag cfp-ext-ldap. Wählen Sie den Konfigurationstyp Simple Binding, Search and Bind, Groups Map to Scopes oder Groups as Scopes aus. Im Cloud Foundry-Bereitstellungstool werden die erforderlichen und optionalen Konfigurationswerte für das ausgewählte Szenario angezeigt. Außerdem werden im Cloud Foundry-Bereitstellungstool Beispielwerte und die Validierung der Konfigurationswerte bereitgestellt. Informationen zu Erweiterungen finden Sie im Abschnitt Erweiterungen verwenden.

Zum Konfigurieren der LDAP-Authentifizierung müssen Sie folgende Auswahlen treffen:

Hinweis: Wenn Sie LDAP für die Cloud Foundry Enterprise Environment nach einer Erstbereitstellung hinzufügen, müssen Sie für die Aktion des Installationsprogramms upgrade auswählen.

Beispielkonfiguration

uiconfig:
  enabled: true
  url: 'ldap://ldap.local.bluemix.net'  # URL des LDAP-Servers (zulässig ist eine durch Leerzeichen getrennte Liste)
  add_shadow_user_on_login: true        # Zur Anmeldung von LDAP-Benutzern aktivieren; andernfalls müssen Konten
                                        # manuell erstellt werden (Standardwert ist true)

# ANFANG Folgende Zeilen zur Verwendung von simple-binding einschließen und anpassen
            profile_type: simple-bind
            userDNPattern: 'cn={0},dc=local,dc=bluemix,dc=net;cn={0},dc=example,dc=org'
# ENDE

# ANFANG Folgende Zeilen zur Verwendung von search-and-bind einschließen und anpassen
            profile_type: search-and-bind
            userDN: 'cn=admin,dc=local,dc=bluemix,dc=net'
            userPassword: '**********'
  searchBase: 'dc=local,dc=bluemix,dc=net'  # Angeben, wenn nur Teil des Verzeichnisses durchsucht werden soll
  searchFilter: 'cn={0}'                    # Benutzername wird in diesen Filter anstatt {0} eingefügt
# ENDE

# ANFANG Folgende Zeilen einschließen, um anzupassen, welche LDAP-Attribute zum Füllen des UAA-Benutzerdatensatzes verwendet werden
  mailAttributeName: emailAddress       # Attribut enthält E-Mail-Adresse des Benutzers (Standardeinstellung ist 'mail')
  mailSubstitute: 'generated-{0}@ldap'  # Format für generierte E-Mail-Adresse, wenn keine im LDAP-Datensatz enthalten ist
                                        # (Standard ist {0}@user.from.ldap.cf)
  mailSubstituteOverridesLdap: false    # Aktivieren, damit immer der Wert von mailSubstitute als Benutzer-E-Mail-Adresse verwendet wird
  attributeMappings:
    family_name: lastName               # LDAP-Attribut für den Nachnamen (Standardwert ist sn)
    given_name: preferredName           # LDAP-Attribut für den Vornamen (Standardwert ist givenName)
# ENDE

# ANFANG Folgende Zeilen zum Verwenden von groups-map-to-scopes oder groups-as-scopes einschließen und anpassen
# (Erfordert die Verwendung der Bindungsmethode search-and-bind)
  groups:
   groupSearchFilter: 'member={0}'           # Wird zum Suchen von Gruppen verwendet, zu denen ein Benutzer (oder bei verschachtelter Suche eine Gruppe) gehört
   searchBase: 'dc=local,dc=bluemix,dc=net'  # Angeben, wenn nur ein Teil des Verzeichnisses nach Gruppen durchsucht werden soll
                                             # Festgelegt werden kann 'memberOf', wenn Active Directory zum Überspringen der Gruppensuche verwendet wird
                                             # und das berechnete Feld 'memberOf' für Benutzerdatensätze verwendet wird
   maxSearchDepth: 2                         # Anzahl der Ebenen zum Durchsuchen der Gruppen (Standardwert ist 1 - keine verschachtelte Suche)
   searchSubtree: true                       # Aktivieren zum Durchsuchen unterhalb der Suchbasis (Standardwert ist true)

    # ANFANG Folgende Zeilen zur Verwendung von groups-map-to-scopes einschließen
              profile_type: groups-map-to-scopes
    # ENDE

    # ANFANG Folgende Zeilen zur Verwendung von groups-as-scopes einschließen und anpassen
              profile_type: groups-as-scopes
              groupRoleAttribute: cloudFoundryScope  # Name des LDAP-Attributs, in dem eine Liste der (durch Kommas getrennten)
                                                     # Bereichsnamen enthalten ist, die auf Mitglieder der Gruppe angewendet werden
    # ENDE

# ENDE

  ssl:
              skipverification: false  # Aktivieren, um Überprüfung des Serverzertifikats zu überspringen, wenn LDAPS verwendet wird
              tls: none                # Wert 'simple' zum Aktivieren von StartTLS verwenden (Standardwert ist none)
            sslCertificate: |+         # Selbst signiertes Serverzertifikat, dem bei Verwendung von LDAPS vertraut werden soll
              -----BEGIN CERTIFICATE-----
              <BASE64_ENCODED_CERT>
              -----END CERTIFICATE-----

Diese Anweisungen und Beispielkonfigurationen decken die gängigsten Optionen für die LDAP-Authentifizierung ab. Eine vollständige Liste der gültigen Eigenschaften finden Sie in den uaa.ldap-Eigenschaften für den BOSH-uaa-Job. Weitere Details finden Sie unter User Account and Authentication LDAP Integration.

Erweiterung cfp-ext-ldap durch Verwendung der Konfigurationsmanager-CLI aktivieren

  1. Übertragen Sie die Konfigurationsdatei mit einer Push-Operation in den Inception-Container. <ldap_config_file> ist der Name der LDAP-Konfigurationsdatei, die Sie erstellt haben:

    ./cm extension -e cfp-ext-ldap save -c <ldap_config_file>
    
  2. Fügen Sie die Erweiterung in die Hauptbereitstellung der Cloud Foundry Enterprise Environment ein. Mit dem folgenden Befehl wird die Bereitstellung der LDAP-Erweiterung vor der Bereitstellung der Komponenten der Cloud Foundry Enterprise Environment hinzugefügt. Die LDAP-Erweiterung wird automatisch an der richtigen Stelle in der Statusdatei eingefügt.

    ./cm states insert -i cfp-ext-ldap
    
  3. Setzen Sie die Engine zurück:

    ./cm engine reset
    

Cloud Foundry mit cfp-ext-ldap-Erweiterung bereitstellen

Nachdem Sie die Erweiterung cfp-ext-ldap unter Verwendung der CLI des Cloud Foundry-Bereitstellungstools oder des Konfigurationsmanagers aktiviert und konfiguriert haben, müssen Sie die Bereitstellung von Cloud Foundry erneut starten, um die betroffenen Komponenten zu aktualisieren.

Verwenden Sie das Cloud Foundry-Bereitstellungstool um Aktion des Installationsprogramms in der Hauptkonfiguration in Upgrade zu ändern. Klicken Sie auf der Seite Zustände auf die Option Bereitstellung starten.

Benutzer aktivieren

Wenn Sie sich für die manuelle Aktivierung von Benutzern entschieden haben, führen Sie für jeden Benutzer, der auf die Cloud Foundry Enterprise Environment zugreifen muss, den folgenden Befehl aus. <username> ist eine LDAP-Benutzer-ID, die abhängig von der ausgewählten Bindungsmethode mit der Eigenschaft userDNPattern oder searchFilter in der LDAP-Konfiguration übereinstimmt:

cf create-user <username> --origin ldap

Benutzerzugriff widerrufen

Wenn Sie sich für die manuelle Aktivierung von Benutzern entschieden haben, können Sie den Zugriff auf einen Benutzer durch Löschen seines Kontos widerrufen:

cf delete-user <username>

Andernfalls muss zusätzlich zum Löschen des Benutzers mit der Befehlszeilenschnittstelle cf zum Widerrufen des Benutzerzugriffs noch der Benutzer aus der LDAP entfernt werden. Oder die Gruppenzugehörigkeit des Benutzers muss so geändert werden, dass sie nicht mehr den Kriterien entspricht, die in der LDAP-Bindungskonfiguration definiert sind.

Benutzer zu Organisationen und Bereichen zuordnen

LDAP-Benutzern kann zwar nicht automatisch Zugriff auf bestimmte Organisationen oder Bereiche erteilt werden, aber Sie können die Berechtigung vor dem ersten Anmelden erteilen, indem Sie den Benutzer zuerst mit dem Befehl cf create-user <username> --origin ldap aktivieren und anschließend wie gewohnt die Rollen für Organisation und Bereich zuordnen. Weitere Informationen hierzu enthält der Abschnitt Benutzerberechtigungen für Organisationen und Bereiche verwalten. Diese Aktionen können auf Scripts basieren, falls die Anzahl der LDAP-Benutzer groß ist, die Sie bestimmten Organisationen und Bereichen auf der Basis der Informationen in ihren LDAP-Datensätzen zuordnen möchten.

LDAP-Gruppen zu Bereichen zuordnen

Falls Sie groups-map-to-scopes zum automatischen Zuordnen zusätzlicher Berechtigungsbereiche zu LDAP-Benutzern auf der Basis der Gruppenzugehörigkeit verwenden möchten, können Sie die Befehlszeilenschnittstelle uaac zum Verwalten der Zuordnungen verwenden.

  1. Installieren Sie das Ruby Gem uaac mit dem folgenden Befehl:
    gem install cf-uaac
    
  2. Verwenden Sie den UAA-Server der Installation als Ziel. Ersetzen Sie <bluemix_env_domain> durch die Umgebungsdomäne, die für die Installation verwendet wird. Fügen Sie die Option --skip-ssl-validation zum Befehl hinzu, wenn das Umgebungsdomänenzertifikat selbst signiert ist.
    uaac target https://uaa.<bluemix_env_domain>
    
  3. Suchen Sie den geheimen Schlüssel des UAA-Verwaltungsclients. Rufen Sie den Wert für <uaa_admin_client_secret> mit dem folgenden Befehl ab:

    kubectl get -n uaa secret secrets -o jsonpath='{.data.uaa-admin-client-secret}' | base64 --decode
    

    Geben Sie den geheimen Schlüssel des UAA-Verwaltungsclients im folgenden Befehl an:

    uaac token client get admin -s <uaa_admin_client_secret>
    

Jetzt können Sie Gruppenzuordnungen durch Absetzen von Befehlen wie im folgenden Beispiel verwalten:

uaac group mappings                      # Alle Gruppenzuordnungen auflisten
uaac group map --name <scope> <groupDN>  # Eine neue Gruppenzuordnung durch Angeben des Berechtigungsbereichs
                                         #   und des definierten Namens (DN) der LDAP-Gruppe erstellen
uaac group unmap <scope> <groupDN>       # Eine Gruppenzuordnung durch Angeben des Berechtigungsbereichs und
                                         #   des definierten Namens (DN) der LDAP-Gruppe löschen
uaac user get <username>                 # Benutzerinformationen abrufen, um zu überprüfen, welche Gruppen zugeordnet wurden