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.
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:
LDAP-Bindungsmethode
simple-binding
Falls das Format des definierten Namens (Distinguished Name, DN) für Benutzer bekannt ist und die Kennung enthält, die Sie als Benutzername verwenden möchten, verwenden Sie die Konfiguration simple-binding, und geben Sie mindestens ein DN-Muster an, das erstellt werden soll. Vom UAA-Server werden die DNs erstellt und anschließend wird versucht, eine Authentifizierung mit dem vom Benutzer bereitgestellten Kennwort durchzuführen. Die anwendbaren Zeilen sind in der Beispielkonfiguration markiert.
search-and-bind
Wenn das Format des DN für die Benutzer unbekannt oder unterschiedlich ist, können Sie die Konfiguration search-and-bind verwenden, von der das Lightweight Directory Access Protocol auf einen übereinstimmenden Benutzer durchsucht wird.
Ein gängiger Grund zur Verwendung von search-and-bind ist der Wunsch, E-Mail-Adressen als Benutzernamen zu verwenden, wenn die allgemeinen Namen (Common Names, CNs) für Benutzerdatensätze auf dem LDAP-Server nicht die E-Mail-Adresse
enthalten. In diesem Fall müssen Sie den Benutzernamen und das Kennwort für einen LDAP-Benutzer angeben, der über Zugriff (vorzugsweise Lesezugriff) auf den Server verfügt, um Datensätze abzurufen und nach einer Übereinstimmung für den Benutzer
zu suchen. Falls vom Suchfilter genau eine Übereinstimmung gefunden wird, wird vom UAA-Server versucht, eine Authentifizierung mit dem vom Benutzer angegebenen Kennwort durchzuführen. Die anwendbaren Zeilen sind in der Beispielkonfiguration
markiert. Testen Sie Ihre Konfigurationswerte, indem Sie sie im Befehl ldapsearch -H <url> -D <userDN> -w <userPassword> -b <searchBase> <searchFilter> verwenden und indem Sie '{0}' im <searchFilter>-Wert
durch einen tatsächlichen Benutzernamen ersetzen.
Gruppenzuordnung
Standardmäßig verfügen LDAP-Benutzer über die folgenden Berechtigungsbereiche:
cloud_controller.read
cloud_controller.write
cloud_controller_service_permissions.read
notification_preferences.read
notification_preferences.write
oauth.approvals
openid
password.write
profile
roles
scim.me
uaa.offline_token
uaa.user
user_attributes
Falls Sie einem LDAP-Benutzer auf der Basis einer Gruppenzugehörigkeit weitere Berechtigungsbereiche gewähren möchten, haben Sie hierzu zwei Möglichkeiten:
groups-map-as-scopes
Verwenden Sie die Befehlszeilenschnittstelle uaac zum Verwalten der Zuordnung der LDAP-Gruppen zu den Berechtigungsbereichen. Da Bereiche bei jeder Benutzeranmeldung erneut berechnet werden, können Sie Berechtigungen durch die
Aufhebung von Gruppenzuordnungen mit uaac entfernen.
groups-as-scopes
Geben Sie die Berechtigungsbereiche in dem Wert eines Attributs der LDAP-Gruppe an. Hierfür ist Verwaltungszugriff auf den LDAP-Server erforderlich.
add_shadow_user_on_login den Wert false fest.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.
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.
cfp-ext-ldap durch Verwendung der Konfigurationsmanager-CLI aktivierenÜ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>
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
Setzen Sie die Engine zurück:
./cm engine reset
cfp-ext-ldap-Erweiterung bereitstellenNachdem 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.
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
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.
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.
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.
uaac mit dem folgenden Befehl:gem install cf-uaac
<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>
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