LDAP verwenden
Mithilfe von LDAP können Sie GitHub Enterprise Server bei Ihren vorhandenen Konten authentifizieren und den Zugriff auf Repositorys zentral verwalten. LDAP ist ein beliebtes Anwendungsprotokoll für den Zugriff auf und die Verwaltung von Verzeichnisinformationsdiensten. Zudem ist es eines der gängigsten Protokolle zur Integration von Drittanbietersoftware in große Benutzerverzeichnisse von Unternehmen.
Inhalt dieses Artikels
- Unterstützte LDAP-Dienste
- Grundlegendes für Benutzernamen bei LDAP
- Zwei-Faktor-Authentifizierung
- LDAP für Ihre GitHub Enterprise Server-Instanz konfigurieren
- LDAP-Attribute
- LDAP-Benutzer anzeigen und erstellen
- LDAP-Konten aktualisieren
- Zugriff auf Ihre GitHub Enterprise Server-Instanz widerrufen
If you want to authenticate users without adding them to your identity provider, you can configure built-in authentication. Weitere Informationen finden Sie unter „Integrierte Authentifizierung für Benutzer außerhalb Ihres Identity Providers zulassen“.
Unterstützte LDAP-Dienste
GitHub Enterprise Server lässt sich in die folgenden LDAP-Dienste integrieren:
- Active Directory
- FreeIPA
- Oracle Directory Server Enterprise Edition
- OpenLDAP
- Open Directory
- 389-ds
Grundlegendes für Benutzernamen bei LDAP
GitHub Enterprise Server-Benutzernamen dürfen nur alphanumerische Zeichen und Bindestriche (-
) enthalten. GitHub Enterprise Server normalisiert nicht alphanumerische Zeichen im Benutzernamen Ihres Kontos zu einem Bindestrich. Beispielsweise wird der Benutzername gregory.st.john
zu gregory-st-john
normalisiert. Beachten Sie, dass die normalisierten Benutzernamen weder mit einem Bindestrich beginnen noch darauf enden können. Darüber hinaus können sie nicht zwei aufeinanderfolgende Bindestriche enthalten.
Anhand von E-Mail-Adressen erstellte Benutzernamen werden anhand der normalisierten Zeichen erstellt, die dem Zeichen @
vorangehen.
Wenn mehrere Konten zum selben GitHub Enterprise Server-Benutzernamen normalisiert werden, wird nur das erste Benutzerkonto erstellt. Nachfolgende Benutzer mit demselben Benutzernamen können sich nicht anmelden.
In dieser Tabelle finden Sie Beispiele dafür, wie Benutzernamen in GitHub Enterprise Server normalisiert werden:
Benutzername | Normalisierter Benutzername | Ergebnis |
---|---|---|
Ms.Bubbles | ms-bubbles |
Dieser Benutzername wird erfolgreich erstellt. |
!Ms.Bubbles | -ms-bubbles |
Dieser Benutzername wird nicht erstellt, da er mit einem Bindestrich beginnt. |
Ms.Bubbles! | ms-bubbles- |
Dieser Benutzername wird nicht erstellt, da er mit einem Bindestrich endet. |
Ms!!Bubbles | ms--bubbles |
Dieser Benutzername wird nicht erstellt, da er zwei aufeinanderfolgende Bindestriche enthält. |
Ms!Bubbles | ms-bubbles |
Dieser Benutzername wird nicht erstellt. Obwohl der normalisierte Benutzername gültig ist, ist er bereits vorhanden. |
Ms.Bubbles@example.com | ms-bubbles |
Dieser Benutzername wird nicht erstellt. Obwohl der normalisierte Benutzername gültig ist, ist er bereits vorhanden. |
Zwei-Faktor-Authentifizierung
When using LDAP or built-in authentication, two-factor authentication is supported. Organisationsadministratoren können festlegen, dass Mitglieder die Zwei-Faktor-Authentifizierung aktivieren müssen.
LDAP für Ihre GitHub Enterprise Server-Instanz konfigurieren
Nach der Konfiguration von LDAP können sich Benutzer mit ihren LDAP-Anmeldeinformationen bei Ihrer Instanz anmelden. Wenn sich Benutzer erstmals anmelden, werden ihre Profilnamen, E-Mail-Adressen und SSH-Schlüssel mit den LDAP-Attributen aus Ihrem Verzeichnis festgelegt.
Wenn Sie den LDAP-Zugriff über die Managementkonsole konfigurieren, werden Ihre Benutzer erst bei der ersten Anmeldung eines Benutzers bei Ihrer Instanz verwendet. Wenn Sie ein Konto jedoch manuell in den Einstellungen des Websiteadministrators erstellen, wird die Anzahl der verfügbaren Benutzer sofort erfasst.
Warnung: Stellen Sie sicher, dass Ihr LDAP-Dienst seitenweise Ergebnisse unterstützt, bevor Sie LDAP auf Ihre GitHub Enterprise Server-Instanz konfigurieren.
-
Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf .
-
Klicken Sie auf der linken Seitenleiste auf Managementkonsole.
-
Klicken Sie auf der linken Seitenleiste auf Authentication (Authentifizierung).
-
Wählen Sie LDAP unter „Authentication“ (Authentifizierung) aus.
-
Optionally, select Allow built-in authentication to invite users to use built-in authentication if they don’t belong to Ihre GitHub Enterprise Server-Instanz's identity provider.
-
Fügen Sie die gewünschten Konfigurationseinstellungen hinzu.
LDAP-Attribute
Verwenden Sie die folgenden Attribute, um die Konfiguration von LDAP für Ihre GitHub Enterprise Server-Instanz abzuschließen.
Attributname | Typ | Beschreibung |
---|---|---|
Host |
Erforderlich | Der LDAP-Host, z. B. ldap.example.com oder 10.0.0.30 . Wenn der Hostnamen nur in Ihrem internen Netzwerk verfügbar ist, müssen Sie möglicherweise zunächst den DNS von Ihre GitHub Enterprise Server-Instanz konfigurieren, damit der Hostname mithilfe Ihrer internen Nameserver aufgelöst werden kann. |
Port |
Required | Der Port, der von den LDAP-Diensten des Hosts überwacht wird. Beispiele: 389 und 636 (für LDAPS). |
Encryption |
Erforderlich | Die Verschlüsselungsmethode, die verwendet wird, um Kommunikationen zum LDAP-Server zu schützen. Dazu zählen beispielsweise Nur-Text (keine Verschlüsselung), SSL/LDAPS (von Anfang an verschlüsselt) und StartTLS (Upgrade auf verschlüsselte Kommunikation nach dem Herstellen der Verbindung). |
Domain search user |
Optional | Der LDAP-Benutzer, der Benutzernachschlagevorgänge durchführt, um andere Benutzer bei ihrer Anmeldung zu authentifizieren. In der Regel handelt es sich dabei um ein Dienstkonto, das speziell für Drittanbieterintegrationen erstellt wird. Verwenden Sie einen vollqualifizierten Namen, beispielsweise cn=Administrator,cn=Users,dc=Example,dc=com . Mit Active Directory können Sie zudem die Syntax [DOMAIN]\[USERNAME] (z. B. WINDOWS\Administrator ) für den Benutzer der Domain-Suche mit Active Directory verwenden. |
Domain search password |
Optional | Das Passwort für den Benutzer der Domain-Suche. |
Administrators group |
Optional | Benutzer in dieser Gruppe werden auf Websiteadministratoren hochgestuft, wenn sie sich bei Ihrer Appliance anmelden. Wenn Sie keine Gruppe für LDAP-Administratoren konfigurieren, wird das erste LDAP-Benutzerkonto, das sich bei Ihrer Appliance anmeldet, automatisch auf einen Websiteadministrator hochgestuft. |
Domain base |
Erforderlich | Der vollqualifizierte Distinguished Name (DN) einer LDAP-Unterstruktur, die auf Benutzer und Gruppen durchsucht werden soll. Sie können beliebig viele hinzufügen. Jede Gruppe muss jedoch in derselben Domain-Basis definiert sein wie die zugehörigen Benutzer. Wenn Sie eingeschränkte Benutzergruppen angeben, befinden sich nur die diesen Gruppen zugehörigen Benutzer im Geltungsbereich. Zum Steuern des Zugriffs sollten Sie die oberste Ebene Ihrer LDAP-Verzeichnisstruktur als Ihre Domain-Basis angeben und eingeschränkte Benutzergruppen verwenden. |
Restricted user groups |
Optional | Wenn diese Option angegeben ist, können sich nur die Benutzer dieser Gruppen anmelden. Sie müssen nur die allgemeinen Namen (Common Names, CNs) der Gruppen angeben. Zudem können Sie beliebig viele Gruppen hinzufügen. Sind keine Gruppen angegeben, können sich alle Benutzer im Geltungsbereich der angegebenen Domain-Basis bei Ihrer GitHub Enterprise Server-Instanz anmelden. |
User ID |
Erforderlich | Das LDAP-Attribut, das den LDAP-Benutzer identifiziert, der versucht, sich zu authentifizieren. Nach dem Herstellen einer Zuordnung können Benutzer ihre GitHub Enterprise Server-Benutzernamen ändern. Dieses Feld sollte für die meisten Active Directory-Installationen sAMAccountName lauten. Für andere LDAP-Lösungen wie OpenLDAP lautet es ggf. uid . Der Standardwert lautet uid . |
Profilname |
Optional | Der Name, der auf der GitHub Enterprise Server-Profilseite des Benutzers angezeigt wird. Sofern die LDAP-Synchronisierung nicht aktiviert ist, können Benutzer ihre Profilnamen ändern. |
Emails |
Optional | Die E-Mail-Adressen für das GitHub Enterprise Server-Konto eines Benutzers. |
SSH keys |
Optional | Die öffentlichen SSH-Schlüssel, die an das GitHub Enterprise Server-Konto eines Benutzers angehängt sind. Die Schlüssel müssen im OpenSSH-Format vorliegen. |
GPG keys |
Optional | Die GPG-Schlüssel, die an das GitHub Enterprise Server-Konto eines Benutzers angehängt sind. |
Disable LDAP authentication for Git operations |
Optional | Wenn diese Option ausgewählt ist, wird die Möglichkeit der Benutzer deaktiviert, LDAP-Passwörter zur Authentifizierung von Git-Vorgängen zu verwenden. |
Enable LDAP certificate verification |
Optional | Wenn diese Option ausgewählt ist, wird die LDAP-Zertifikatsverifizierung aktiviert. |
Synchronization |
Optional | Wenn diese Option ausgewählt ist, wird die LDAP-Synchronisierung aktiviert. |
Passwortauthentifizierung für Git-Vorgänge deaktivieren
Aktivieren Sie Disable username and password authentication for Git operations (Authentifizierung mittels Benutzername und Passwort für Git-Vorgänge deaktivieren) in Ihren LDAP-Einstellungen, um die Verwendung von persönlichen Zugriffstoken oder SSH-Schlüsseln für den Git-Zugriff zu erzwingen, wodurch verhindert werden kann, dass Ihr Server von LDAP-Authentifizierungsanforderungen überladen wird. Diese Einstellung wird empfohlen, da ein langsam reagierender LDAP-Server, insbesondere in Kombination mit einer Vielzahl an Anforderungen (infolge des automatischen Abrufens) häufig für Leistungsprobleme und Ausfälle verantwortlich ist.
Wenn ein Benutzer bei Auswahl dieser Option versucht, ein Passwort für Git-Vorgänge an der Befehlszeile zu verwenden, wird die Fehlermeldung Password authentication is not allowed for Git operations. You must use a personal access token
angezeigt.
LDAP-Zertifikatsverifizierung aktivieren
Wählen Sie Enable LDAP certificate verification (LDAP-Zertifikatsverifizierung aktivieren) in Ihren LDAP-Einstellungen aus, um das von Ihnen verwendete LDAP-Serverzertifikat mit TLS zu validieren.
Wenn diese Option ausgewählt ist, wird das Zertifikat validiert, um Folgendes sicherzustellen:
- Wenn das Zertifikat mindestens einen Subject Alternative Name (SAN) enthält, stimmt einer der SANs mit dem LDAP-Hostnamen überein. Andernfalls stimmt der allgemeine Name (Common Name, CN) mit dem LDAP-Hostnamen überein.
- Das Zertifikat ist nicht abgelaufen.
- Das Zertifikat wurde von einer vertrauenswürdigen Zertifizierungsstelle (CA) signiert.
LDAP-Synchronisierung aktivieren
Mithilfe der LDAP-Synchronisierung können Sie GitHub Enterprise Server-Benutzer und die -Teammitgliedschaft mit Ihren festgelegten LDAP-Gruppen synchronisieren. Dadurch können Sie eine rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC) für Benutzer von Ihrem LDAP-Server aus einrichten, anstatt manuell innerhalb von GitHub Enterprise Server. Weitere Informationen finden Sie unter „Teams erstellen“.
Wählen Sie Synchronize Emails (E-Mails synchronisieren), Synchronize SSH Keys (SSH-Schlüssel synchronisieren) oder Synchronize GPG Keys (GPG-Schlüssel synchronisieren) aus, um die LDAP-Synchronisierung zu aktivieren.
Nach der Aktivierung der LDAP-Synchronisierung wird ein Synchronisierungsauftrag entsprechend dem angegebenen Zeitintervall ausgeführt, um die folgenden Vorgänge in jedem Benutzerkonto durchzuführen:
- Wenn Sie die integrierte Authentifizierung für Benutzer außerhalb Ihres Identity Providers erlaubt haben und der Benutzer die integrierte Authentifizierung verwendet, können Sie zum nächsten Benutzer wechseln.
- Wenn für den Benutzer keine LDAP-Zuordnung vorliegt, sollten Sie versuchen, den Benutzer einem LDAP-Eintrag im Verzeichnis zuzuordnen. Wenn es nicht möglich ist, den Benutzer einem LDAP-Eintrag zuzuordnen, sperren Sie den Benutzer, und wechseln Sie zum nächsten Benutzer.
- Wenn eine LDAP-Zuordnung vorliegt, der entsprechende LDAP-Eintrag im Verzeichnis jedoch fehlt, sperren Sie den Benutzer, und wechseln Sie zum nächsten Benutzer.
- Wenn der entsprechende LDAP-Eintrag als deaktiviert markiert wurde und der Benutzer nicht bereits gesperrt ist, sperren Sie den Benutzer, und wechseln Sie zum nächsten Benutzer.
- Wenn der entsprechende LDAP-Eintrag nicht als deaktiviert markiert ist, der Benutzer gesperrt ist und Reactivate suspended users (Gesperrte Benutzer erneut aktivieren) im Admin-Center aktiviert ist, entsperren Sie den Benutzer.
- Wenn der entsprechende LDAP-Eintrag das Attribut
name
enthält, aktualisieren Sie den Profilnamen des Benutzers. - Wenn sich der entsprechende LDAP-Eintrag in der Gruppe „Administrators“ (Administratoren) befindet, stufen Sie den Benutzer auf einen Websiteadministrator hoch.
- Wenn sich der entsprechende LDAP-Eintrag nicht in der Gruppe „Administrators“ (Administratoren) befindet, stufen Sie den Benutzer auf ein normales Konto zurück.
- Wenn das Feld „LDAP User“ (LDAP-Benutzer) für E-Mails festgelegt ist, synchronisieren Sie die E-Mail-Einstellungen des Benutzers mit dem LDAP-Eintrag. Legen Sie den ersten LDAP-Eintrag vom Typ
mail
als die primäre E-Mail fest. - Wenn das Feld „LDAP User“ (LDAP-Benutzer) für öffentliche SSH-Schlüssel festgelegt ist, synchronisieren Sie die öffentlichen SSH-Schlüssel des Benutzers mit dem LDAP-Eintrag.
- Wenn das Feld „LDAP User“ (LDAP-Benutzer) für GPG-Schlüssel festgelegt ist, synchronisieren Sie die GPG-Schlüssel des Benutzers mit dem LDAP-Eintrag.
Hinweis: LDAP-Einträge können nur dann als deaktiviert markiert werden, wenn Sie Active Directory verwenden und das Attribut userAccountControl
vorhanden und mit ACCOUNTDISABLE
gekennzeichnet ist.
Darüber hinaus wird ein Synchronisierungsauftrag im angegebenen Zeitintervall ausgeführt, um die folgenden Aktionen für jedes Team durchzuführen, das einer LDAP-Gruppe zugeordnet wurde:
- Wenn die entsprechende LDAP-Gruppe eines Teams entfernt wurde, entfernen Sie alle Mitglieder aus dem Team.
- Wenn Einträge von LDAP-Mitgliedern aus der LDAP-Gruppe entfernt wurden, entfernen Sie die entsprechenden Benutzer aus dem Team. Wenn der Benutzer den Zugriff auf die Repositorys verloren hat, löschen Sie die privaten Forks, die der Benutzer für diese Repositorys besitzt.
- Wenn die LDAP-Mitgliedereinträge zur LDAP-Gruppe hinzugefügt wurden, fügen Sie die entsprechenden Benutzer dem Team hinzu. Wenn der Benutzer den Zugriff auf Repositorys zurückerlangt, sollten Sie die privaten Forks der Repositorys wiederherstellen, die gelöscht wurden, weil der Benutzer den Zugriff in den vergangenen 90 Tagen verloren hat.
As part of its optimization configuration, LDAP Sync will not transfer your nested team structure. To create child and parent team relationships, you must manually recreate the nested team structure and sync it with the corresponding LDAP group. For more information, see "Creating teams"
Sicherheitswarnung:
Wenn die LDAP-Synchronisierung aktiviert ist, können Websiteadministratoren und Organisationsinhaber das LDAP-Verzeichnis nach Gruppen durchsuchen, um sie dem Team zuzuordnen.
Dadurch können sensible Organisationsinformationen potenziell Vertragsnehmern oder anderen nicht privilegierten Benutzern offengelegt werden, darunter
- die Verfügbarkeit von spezifischen LDAP-Gruppen, die für den Benutzer der Domain-Suche sichtbar sind,
- Mitglieder der LDAP-Gruppe, die über GitHub Enterprise Server-Benutzerkonten verfügen, die beim Erstellen eines Teams offengelegt werden, das mit dieser LDAP-Gruppe synchronisiert ist.
Wenn die Offenlegung solcher Informationen nicht gewünscht wird, sollte Ihr Unternehmen oder Ihre Organisation in der Administratorkonsole die Berechtigungen des konfigurierten Benutzers der Domain-Suche einschränken. Ist eine solche Einschränkung nicht möglich, wenden Sie sich an GitHub Enterprise-Support oder GitHub Premium-Support.
Unterstützte LDAP-Gruppenobjektklassen
GitHub Enterprise Server unterstützt die folgenden LDAP-Gruppenobjektklassen. Gruppen können verschachtelt werden.
Gruppe
groupOfNames
groupOfUniqueNames
posixGroup
LDAP-Benutzer anzeigen und erstellen
Sie können die vollständige Liste der LDAP-Benutzer anzeigen, die Zugriff auf Ihre Instanz besitzen, und neue Benutzer bereitstellen.
-
Sign in to Ihre GitHub Enterprise Server-Instanz at
http(s)://HOSTNAME/login
. -
Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf .
-
Klicken Sie auf der linken Seitenleiste auf LDAP users (LDAP-Benutzer).
-
Geben Sie bei der Suche nach einem Benutzer einen vollständigen oder den Teil eines Benutzernamens ein, und klicken Sie auf Search (Suchen). Die vorhandenen Benutzer werden in den Suchergebnissen angezeigt. Wenn ein Benutzer nicht vorhanden ist, klicken Sie auf Create (Erstellen), um das neue Benutzerkonto bereitzustellen.
LDAP-Konten aktualisieren
Sofern die LDAP-Synchronisierung nicht aktiviert ist, werden Änderungen an LDAP-Konten nicht automatisch mit GitHub Enterprise Server synchronisiert.
- Zum Verwenden einer neuen LDAP-Administratorgruppe müssen die Benutzer manuell auf GitHub Enterprise Server hoch- und zurückgestuft werden, um die Änderungen in LDAP zu berücksichtigen.
- Stufen Sie die Konten auf GitHub Enterprise Server hoch und zurück, um LDAP-Konten in LDAP-Administratorgruppen hinzuzufügen oder zu entfernen.
- Sperren Sie die GitHub Enterprise Server-Konten, wenn Sie die LDAP-Konten entfernen möchten.
LDAP-Konten manuell synchronisieren
-
Sign in to Ihre GitHub Enterprise Server-Instanz at
http(s)://HOSTNAME/login
. -
Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf .
-
In the search field, type the name of the user and click Search.
-
In the search results, click the name of the user.
-
Klicken Sie in der oberen rechte Ecke der Seite auf Admin.
-
Klicken Sie auf der linken Seitenleiste auf Admin.
-
Klicken Sie unter „LDAP“ auf Sync now (Jetzt synchronisieren), um das Konto mit den Daten Ihres LDAP-Servers manuell zu aktualisieren.
Darüber hinaus können Sie die API verwenden, um eine manuelle Synchronisierung auszulösen.
Zugriff auf Ihre GitHub Enterprise Server-Instanz widerrufen
Bei aktivierter LDAP-Synchronisierung wird beim Entfernen der LDAP-Anmeldeinformationen eines Benutzers dessen Konto nach der nächsten Synchronisierungsausführung gesperrt.
Bei nicht aktivierter LDAP-Synchronisierung müssen Sie das GitHub Enterprise Server-Konto nach dem Entfernen der LDAP-Anmeldeinformationen manuell sperren. Weitere Informationen finden Sie unter „Benutzer sperren und entsperren“.