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.

Wenn Du Benutzer authentifizieren möchtest, ohne sie Deinem Identitätsanbieter hinzuzufügen, kannst Du die integrierte Authentifizierung konfigurieren. 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. Beachte, 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 findest Du Beispiele dafür, wie Benutzernamen in GitHub Enterprise Server normalisiert werden:

BenutzernameNormalisierter BenutzernameErgebnis
Ms.Bubblesms-bubblesDieser Benutzername wird erfolgreich erstellt.
!Ms.Bubbles-ms-bubblesDieser 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!!Bubblesms--bubblesDieser Benutzername wird nicht erstellt, da er zwei aufeinanderfolgende Bindestriche enthält.
Ms!Bubblesms-bubblesDieser Benutzername wird nicht erstellt. Obwohl der normalisierte Benutzername gültig ist, ist er bereits vorhanden.
Ms.Bubbles@example.comms-bubblesDieser Benutzername wird nicht erstellt. Obwohl der normalisierte Benutzername gültig ist, ist er bereits vorhanden.

Zwei-Faktor-Authentifizierung

Bei Verwendung von LDAP oder integrierter Authentifizierung wird die Zwei-Faktor-Authentifizierung unterstützt. Organisationsadministratoren können festlegen, dass Mitglieder die Zwei-Faktor-Authentifizierung aktivieren müssen.

LDAP für your GitHub Enterprise Server instance 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 Du LDAP-Zugriff für Benutzer über die Managementkonsole konfigurierst, werden Deine Benutzerlizenzen erst verwendet, sobald sich ein Benutzer bei Deiner Instanz zum ersten Mal anmeldet. Wenn Du jedoch ein Konto manuell in den Website-Administratoreinstellungen erstellst, wird die Benutzerlizenz sofort gezählt.

Warnung: Stellen Sie sicher, dass Ihr LDAP-Dienst seitenweise Ergebnisse unterstützt, bevor Sie LDAP auf your GitHub Enterprise Server instance konfigurieren.

  1. From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page. Raumschiffsymbol für den Zugriff auf die Einstellungen des Websiteadministrators
  2. Klicke auf der linken Seitenleiste auf Managementkonsole. Registerkarte „Managementkonsole" in der linken Seitenleiste
  3. Klicke auf der linken Seitenleiste auf Authentication (Authentifizierung). Registerkarte „Authentication“ (Authentifizierung) auf der Seitenleiste mit den Einstellungen
  4. Wählen Sie LDAP unter „Authentication“ (Authentifizierung) aus. LDAP-Auswahl
  5. Wähle optional Allow built-in authentication (Integrierte Authentifizierung zulassen) um Benutzer zur Verwendung der integrierten Authentifizierung einzuladen, wenn sie nicht zum Identitätsanbieter von your GitHub Enterprise Server instance gehören. Aktivierung des Kontrollkästchen für integrierte LDAP-Authentifizierung
  6. Fügen Sie die gewünschten Konfigurationseinstellungen hinzu.

LDAP-Attribute

Verwenden Sie die folgenden Attribute, um die Konfiguration von LDAP für your GitHub Enterprise Server instance abzuschließen.

AttributnameTypBeschreibung
HostErforderlichDer 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 your GitHub Enterprise Server instance konfigurieren, damit der Hostname mithilfe Ihrer internen Nameserver aufgelöst werden kann.
PortErforderlichDer Port, der von den LDAP-Diensten des Hosts überwacht wird. Beispiele: 389 und 636 (für LDAPS).
EncryptionErforderlichDie 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 userOptionalThe LDAP user that looks up other users that sign in, to allow authentication. 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 passwordOptionalDas Passwort für den Benutzer der Domain-Suche.
Administrators groupOptionalBenutzer 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 baseErforderlichDer 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 groupsOptionalWenn 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 IDErforderlichDas 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.
ProfilnameOptionalDer 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.
EmailsOptionalDie E-Mail-Adressen für das GitHub Enterprise Server-Konto eines Benutzers.
SSH keysOptionalDie ö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 keysOptionalDie GPG-Schlüssel, die an das GitHub Enterprise Server-Konto eines Benutzers angehängt sind.
Disable LDAP authentication for Git operationsOptionalWenn 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 verificationOptionalWenn diese Option ausgewählt ist, wird die LDAP-Zertifikatsverifizierung aktiviert.
SynchronizationOptionalWenn 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.

Kontrollkästchen zum Deaktivieren der LDAP-Passwortauthentifizierung für Git

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.

Feld für die LDAP-Zertifikatsverifizierung

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

Note: Teams using LDAP Sync are limited to a maximum 1499 members.

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.

Kontrollkästchen für die Synchronisierung

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.

Im Rahmen der Optimierungskonfiguration wird LDAP Sync Deine verschachtelte Teamstruktur nicht übertragen. Um unter- und übergeordnete Teambeziehungen zu erstellen, musst Du die verschachtelte Teamstruktur manuell neu erstellen und mit der entsprechenden LDAP-Gruppe synchronisieren. Weitere Informationen findest Du unter „Teams erstellen"

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.

  1. Melde Dich unter http(s)://HOSTNAME/login bei your GitHub Enterprise Server instance an.
  2. From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page. Raumschiffsymbol für den Zugriff auf die Einstellungen des Websiteadministrators
  3. Klicken Sie auf der linken Seitenleiste auf LDAP users (LDAP-Benutzer). Registerkarte „LDAP users“ (LDAP-Benutzer)
  4. 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-Suche

LDAP-Konten aktualisieren

Sofern die LDAP-Synchronisierung nicht aktiviert ist, werden Änderungen an LDAP-Konten nicht automatisch mit GitHub Enterprise Server synchronisiert.

LDAP-Konten manuell synchronisieren

  1. Melde Dich unter http(s)://HOSTNAME/login bei your GitHub Enterprise Server instance an.
  2. From an administrative account on GitHub Enterprise Server, click in the upper-right corner of any page. Raumschiffsymbol für den Zugriff auf die Einstellungen des Websiteadministrators
  3. Gib im Suchfeld den Namen des Benutzers ein und klicke auf Search (Suchen). Suchfeld für die Einstellungen des Websiteadministrators
  4. Klicke in den Suchergebnissen auf den Namen des Benutzers. Suchoptionen für die Einstellungen des Websiteadministrator
  5. In the upper-right corner of the page, click Admin. Verwaltungswerkzeuge
  6. Klicke auf der linken Seitenleiste auf Admin. Verwaltungswerkzeuge
  7. Klicken Sie unter „LDAP“ auf Sync now (Jetzt synchronisieren), um das Konto mit den Daten Ihres LDAP-Servers manuell zu aktualisieren. Schaltfläche „Sync now“ (Jetzt synchronisieren) für LDAP

You can also use the API to trigger a manual sync.

Zugriff auf your GitHub Enterprise Server instance 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“.

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Oder, learn how to contribute.