Skip to main content

Cette version de GitHub Enterprise Server ne sera plus disponible le 2023-12-20. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Utilisation de LDAP

Si vous utilisez le protocole LDAP (Lightweight Directory Access Protocol) pour centraliser l’accès entre les applications, vous pouvez intégrer GitHub Enterprise Server en configurant l’authentification LDAP pour votre instance.

À propos de l’authentification LDAP pour GitHub Enterprise Server

LDAP est un protocole d’application populaire pour l’accès aux services d’information d’annuaire et la gestion de ces derniers ; il s’agit de l’un des protocoles les plus courants utilisés pour intégrer des logiciels tiers aux annuaires d’utilisateurs de grandes entreprises. Pour plus d’informations, consultez « Lightweight Directory Access Protocol » sur Wikipédia.

Si vous utilisez un annuaire LDAP pour l’authentification centralisée, vous pouvez configurer l’authentification LDAP pour les personnes qui utilisent votre instance GitHub Enterprise Server.

Remarque : Vous pouvez utiliser SAML ou LDAP, mais pas les deux.

Si vous souhaitez autoriser l’authentification pour certaines personnes qui n’ont pas de compte sur votre fournisseur d’authentification externe, vous pouvez autoriser l’authentification de secours au niveau des comptes locaux sur votre instance GitHub Enterprise Server. Pour plus d’informations, consultez « Allowing built-in authentication for users outside your provider ».

Services LDAP pris en charge

GitHub Enterprise Server s’intègre à ces services LDAP :

  • Active Directory
  • FreeIPA
  • Oracle Directory Server Enterprise Edition
  • OpenLDAP
  • Open Directory
  • 389-ds

Considérations relatives aux noms d’utilisateur avec LDAP

GitHub Enterprise Server normalise une valeur de votre fournisseur d’authentification externe pour déterminer le nom d’utilisateur pour chaque nouveau compte personnel sur votre instance GitHub Enterprise Server. Pour plus d’informations, consultez « Username considerations for external authentication ».

Configuration de LDAP avec votre instance GitHub Enterprise Server

Une fois LDAP configuré, les utilisateurs pourront se connecter à votre instance avec leurs informations d’identification LDAP. Au moment de se connecter pour la première fois, le nom de profil, l’adresse e-mail et la clé SSH des utilisateurs sont définis avec les attributs LDAP de votre répertoire.

Quand vous configurez l’accès LDAP pour les utilisateurs via la Management Console, vos licences utilisateur ne sont pas utilisées jusqu’à la première connexion d’un utilisateur à votre instance. Cependant, si vous créez un compte manuellement à l’aide des paramètres d’administrateur de site, la licence utilisateur est immédiatement prise en compte.

Avertissement : Avant de configurer LDAP sur votre instance GitHub Enterprise Server, vérifiez que votre service LDAP prend en charge les résultats paginés.

  1. À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.
  2. Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.
  3. Dans la barre latérale «  Administrateur de site », cliquez sur Management Console .
  4. Dans la barre latérale « Paramètres », cliquez sur Authentification.
  5. Sous « Authentification », sélectionnez LDAP.
  6. Pour autoriser les personnes sans compte sur votre système d’authentification externe à se connecter avec l’authentification intégrée, sélectionnez Autoriser l’authentification intégrée. Pour plus d’informations, consultez « Allowing built-in authentication for users outside your provider ».
  7. Ajoutez vos paramètres de configuration.

Attribut LDAP

Utilisez ces attributs pour terminer la configuration de LDAP pour votre instance GitHub Enterprise Server.

Nom de l’attributObligatoireDescription
HostHôte LDAP, par exemple ldap.example.com ou 10.0.0.30. Si le nom d’hôte est disponible uniquement sur votre réseau interne, vous devrez peut-être d’abord configurer le DNS de votre instance GitHub Enterprise Server
pour qu’il puisse résoudre le nom d’hôte en utilisant vos serveurs de noms internes.
PortPort sur lequel les services LDAP de l’hôte écoutent. Exemple : 389 ou 636 (pour LDAPS).
EncryptionMéthode de chiffrement utilisée pour sécuriser les communications vers le serveur LDAP. Vous pouvez opter pour une méthode brute (aucun chiffrement), SSL/LDAPS (chiffrement dès le début) et StartTLS (chiffrement de la communication dès la connexion établie).
Domain search userUtilisateur LDAP qui recherche d’autres utilisateurs se connectant pour autoriser l’authentification. Il s’agit généralement d’un compte de service spécialement créé pour des intégrations tierces. Utilisez un nom complet tel que cn=Administrator,cn=Users,dc=Example,dc=com. Avec Active Directory, vous pouvez aussi utiliser la syntaxe [DOMAIN]\[USERNAME] (par exemple WINDOWS\Administrator) pour l’utilisateur de la recherche de domaine avec Active Directory.
Domain search passwordMot de passe de l’utilisateur de la recherche de domaine.
Administrators groupLes utilisateurs de ce groupe sont promus administrateurs de site quand ils se connectent à votre appliance. Si vous ne configurez pas de groupe Administrateurs LDAP, le premier compte d’utilisateur LDAP qui se connecte à votre appliance est automatiquement promu administrateur de site.
Domain baseDistinguished Name (nom unique) complet d’une sous-arborescence LDAP dans laquelle vous souhaitez rechercher des utilisateurs et des groupes. Vous pouvez en ajouter autant que vous le voulez, mais chaque groupe doit être défini dans la même base de domaine que les utilisateurs qui y appartiennent. Si vous spécifiez des groupes d’utilisateurs restreints, seuls les utilisateurs appartenant à ces groupes se trouveront dans l’étendue. Nous vous recommandons de spécifier le niveau supérieur de votre arborescence d’annuaire LDAP comme base de domaine et d’utiliser des groupes d’utilisateurs restreints pour contrôler l’accès.
Restricted user groupsSi vous spécifiez cet attribut, seuls les utilisateurs de ces groupes sont autorisés à se connecter. Vous devez uniquement spécifier les noms communs des groupes, et vous pouvez ajouter autant de groupes que vous le souhaitez. Si aucun groupe n’est spécifié, tous les utilisateurs de l’étendue de la base de domaine spécifiée peuvent se connecter à votre instance GitHub Enterprise Server.
User IDAttribut LDAP qui identifie l’utilisateur LDAP qui tente l’authentification. Une fois qu’un mappage est établi, les utilisateurs peuvent changer leur nom d’utilisateur GitHub Enterprise Server. Ce champ doit être sAMAccountName pour la plupart des installations Active Directory, mais il peut s’agir de uid pour d’autres solutions LDAP, comme OpenLDAP. La valeur par défaut est uid.
Profile nameNom qui figure dans la page de profil GitHub Enterprise Server de l’utilisateur. À moins que la synchronisation LDAP soit activée, les utilisateurs peuvent changer leur nom de profil.
EmailsAdresses e-mail du compte GitHub Enterprise Server d’un utilisateur.
SSH keysClés SSH publiques attachées au compte GitHub Enterprise Server d’un utilisateur. Ces clés doivent être au format OpenSSH.
GPG keysClés GPG attachées au compte GitHub Enterprise Server d’un utilisateur.
Disable LDAP authentication for Git operationsSi cette option est sélectionnée, elle empêche les utilisateurs d’utiliser des mots de passe LDAP pour authentifier les opérations Git.
Enable LDAP certificate verificationSi cette option est sélectionnée, elle permet la vérification de certificat LDAP.
SynchronizationSi cette option est sélectionnée, elle permet la synchronisation LDAP.

Désactivation de l’authentification par mot de passe pour les opérations Git

Pour appliquer l’utilisation de personal access token ou de clés SSH pour l’accès Git, ce qui peut empêcher votre serveur d’être surchargé par les demandes d’authentification LDAP, vous pouvez désactiver l’authentification par mot de passe pour les opérations Git.

Nous recommandons ce paramètre, car un serveur LDAP peu réactif est une source fréquente de problèmes de performances et de pannes, qui sont aggravés s’il fait l’objet d’un grand nombre de demandes du fait de l’interrogation.

Pour désactiver l’authentification par mot de passe pour les opérations Git, sélectionnez Désactiver l’authentification par nom d’utilisateur et mot de passe pour les opérations Git dans vos paramètres LDAP.

Quand cette option est sélectionnée, si un utilisateur tente d’utiliser un mot de passe pour les opérations Git via la ligne de commande, il reçoit le message d’erreur Password authentication is not allowed for Git operations. You must use a personal access token.

Activation de la vérification de certificat LDAP

Vous pouvez valider le certificat de serveur LDAP que vous utilisez avec TLS en activant la vérification des certificats LDAP.

Pour activer la vérification des certificats LDAP, sélectionnez Activer la vérification des certificats LDAP dans vos paramètres LDAP.

Quand cette option est sélectionnée, le certificat est validé pour vérifier les points suivants :

  • Si le certificat contient au moins un autre nom d’objet (SAN), un de ces noms doit correspondre au nom d’hôte LDAP. Sinon, le nom commun (CN) correspond au nom d’hôte LDAP.
  • Le certificat n'a pas expiré.
  • Le certificat est signé par une autorité de certification de confiance.

Activation de la synchronisation LDAP

Vous pouvez établir un contrôle d’accès en fonction du rôle pour les utilisateurs de votre serveur LDAP en synchronisant les utilisateurs GitHub Enterprise Server et l’appartenance aux équipes avec vos groupes LDAP établis. Pour plus d’informations, consultez « Création d’une équipe ».

Remarque : l’utilisation de la synchronisation LDAP avec des groupes qui dépassent 1 499 membres peut entraîner des échecs de synchronisation d’appartenance à l’équipe.

Si vous utilisez Active Directory en particulier, les recherches d’utilisateurs et la synchronisation des équipes peuvent échouer lorsque les groupes LDAP configurés pour les équipes ou dans Management Console comptent plus de 1 500 membres, en raison de la limite MaxValRange dans Active Directory. Pour contourner ce problème, vous pouvez utiliser des groupes Active Directory qui comptent moins de 1 500 membres, ou vous pouvez travailler avec votre administrateur Active Directory pour augmenter la valeur MaxValRange pour vos contrôleurs de domaine. Pour plus d’informations, consultez Afficher et définir une stratégie LDAP dans Active Directory à l’aide de Ntdsutil.exe dans Microsoft Learn.

Si vous avez besoin d’aide pour déterminer si la modification de MaxValRange est la bonne approche pour votre environnement Active Directory, contactez le Support Microsoft.

Pour activer la synchronisation LDAP, dans vos paramètres LDAP, sélectionnez Synchroniser les e-mails, Synchroniser les clés SSH ou Synchroniser les clés GPG.

Après avoir activé la synchronisation LDAP, un travail de synchronisation s’exécute pendant l’intervalle de temps spécifié pour effectuer les opérations suivantes sur chaque compte d’utilisateur :

  • Si vous avez autorisé l’authentification intégrée pour les utilisateurs extérieurs à votre fournisseur d’identité et que l’utilisateur utilise l’authentification intégrée, passez à l’utilisateur suivant.
  • S’il n’existe pas de mappage LDAP pour l’utilisateur, essayez de mapper l’utilisateur à une entrée LDAP de l’annuaire. Si l’utilisateur ne peut pas être mappé à une entrée LDAP, suspendez-le et passez à l’utilisateur suivant.
  • S’il existe un mappage LDAP et que l’entrée LDAP correspondante ne figure pas dans l’annuaire, suspendez l’utilisateur et passez à l’utilisateur suivant.
  • Si l’entrée LDAP correspondante a été marquée comme étant désactivée et que l’utilisateur n’est pas déjà suspendu, suspendez-le et passez à l’utilisateur suivant.
  • Si l’entrée LDAP correspondante n’est pas marquée comme étant désactivée, que l’utilisateur est suspendu et que Réactiver les utilisateurs suspendus est activé dans le Centre d’administration, rétablissez l’utilisateur.
  • Si un ou plusieurs groupes d’utilisateurs restreints sont configurés sur l’instance et que l’entrée LDAP correspondante ne se trouve pas dans l’un de ces groupes, suspendez l’utilisateur.
  • Si un ou plusieurs groupes d’utilisateurs restreints sont configurés sur l’instance, que l’entrée LDAP correspondante se trouve dans l’un de ces groupes et que Réactiver les utilisateurs suspendus est activé dans le Centre d’administration, rétablissez l’utilisateur.
  • Si l’entrée LDAP correspondante comporte un attribut name, mettez à jour le nom du profil de l’utilisateur.
  • Si l’entrée LDAP correspondante se trouve dans le groupe Administrateurs, promouvez l’utilisateur en administrateur de site.
  • Si l’entrée LDAP correspondante ne se trouve pas dans le groupe Administrateurs, rétrogradez l’utilisateur en compte normal, sauf si le compte est suspendu. Les administrateurs suspendus ne sont pas rétrogradés et ils restent listés dans les pages « Administrateurs de site » et « Propriétaires d’entreprise ».
  • Si un champ Utilisateur LDAP est défini pour les e-mails, synchronisez les paramètres de messagerie de l’utilisateur avec l’entrée LDAP. Définissez la première entrée mail LDAP comme e-mail principal.
  • Si un champ Utilisateur LDAP est défini pour des clés publiques SSH, synchronisez les clés SSH publiques de l’utilisateur avec l’entrée LDAP.
  • Si un champ Utilisateur LDAP est défini pour des clés GPG, synchronisez les clés GPG de l’utilisateur avec l’entrée LDAP.

Remarque : les entrées LDAP ne peuvent être marquées comme étant désactivées que si vous utilisez Active Directory et que l’attribut userAccountControl est présent et marqué ACCOUNTDISABLE. Certaines variantes d’Active Directory, telles que AD LDS et ADAM, ne prennent pas en charge l’attribut userAccountControl.

Un travail de synchronisation s’exécute aussi selon l’intervalle de temps spécifié pour exécuter les opérations suivantes sur chaque équipe qui a été mappée à un groupe LDAP :

  • Si le groupe LDAP correspondant d’une équipe a été supprimé, supprimez tous les membres de l’équipe.

  • Si les entrées de membres LDAP ont été supprimées du groupe LDAP, supprimez les utilisateurs correspondants de l’équipe. Si l’utilisateur n’est plus membre d’une équipe de l’organisation et qu’il n’est pas propriétaire de l’organisation, supprimez l’utilisateur de l’organisation. Si, par voie de conséquence, l’utilisateur perd l’accès à tous les dépôts, supprimez les duplications (forks) privées de ces dépôts éventuellement détenues par l’utilisateur.

    Remarque : La synchronisation LDAP ne supprime pas un utilisateur d’une organisation si celui-ci est propriétaire de cette organisation. À la place, un autre propriétaire de l’organisation devra supprimer manuellement l’utilisateur.

  • Si des entrées de membres LDAP ont été ajoutées au groupe LDAP, ajoutez les utilisateurs correspondants à l’équipe. Si, à la suite de cela, l’utilisateur récupère l’accès à des dépôts, restaurez les duplications (forks) privées des dépôts qui ont été supprimées suite à la perte d’accès de l’utilisateur au cours des 90 derniers jours.

Dans le cadre de sa configuration d’optimisation, la synchronisation LDAP ne transfère pas votre structure d’équipe imbriquée. Pour créer des relations d’équipe parent-enfant, vous devez recréer manuellement la structure d’équipe imbriquée et la synchroniser avec le groupe LDAP correspondant. Pour plus d’informations, consultez « Création d’une équipe ».

Avertissement de sécurité :

Quand la synchronisation LDAP est activée, les administrateurs de site et les propriétaires d’organisation peuvent rechercher dans l’annuaire LDAP des groupes auxquels mapper l’équipe.

Cela peut potentiellement entraîner la divulgation d’informations organisationnelles sensibles à des sous-traitants ou à d’autres utilisateurs non privilégiés, notamment :

  • Existence de groupes LDAP spécifiques visibles de l’Utilisateur de la recherche de domaine.
  • Membres du groupe LDAP qui ont des comptes d’utilisateur GitHub Enterprise Server, qui sont divulgués lors de la création d’une équipe synchronisée avec ce groupe LDAP.

Si la divulgation de telles informations n’est pas souhaitée, votre entreprise ou votre organisation doit restreindre les autorisations de l’Utilisateur de la recherche de domaine configuré dans la console d’administration. S’il n’est pas possible de définir cette restriction, contactez-nous en visitant Support GitHub Enterprise.

Classes d’objets de groupe LDAP prises en charge

GitHub Enterprise Server prend en charge ces classes d’objets de groupe LDAP. Les groupes peuvent être imbriqués.

  • group
  • groupOfNames
  • groupOfUniqueNames
  • posixGroup

Affichage et création d’utilisateurs LDAP

Vous pouvez afficher la liste complète des utilisateurs LDAP qui ont accès à votre instance et provisionner de nouveaux utilisateurs.

  1. Connectez-vous à votre instance GitHub Enterprise Server à l’adresse http(s)://HOSTNAME/login.
  2. À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.
  3. Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.
  4. Dans la barre latérale de gauche, cliquez sur Utilisateurs LDAP.
  5. Pour rechercher un utilisateur, tapez un nom d’utilisateur complet ou partiel, puis cliquez sur Rechercher. Les utilisateurs existants s’affichent dans les résultats de la recherche. Si un utilisateur n’existe pas, cliquez sur Créer pour provisionner le nouveau compte d’utilisateur.

Mise à jour des comptes LDAP

À moins que la synchronisation LDAP soit activée, les modifications apportées aux comptes LDAP ne sont pas synchronisées automatiquement avec GitHub Enterprise Server.

Synchronisation manuelle des comptes LDAP

  1. Connectez-vous à votre instance GitHub Enterprise Server à l’adresse http(s)://HOSTNAME/login.
  2. À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.
  3. Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.
  4. Sous « Rechercher dans les utilisateurs, organisations, équipes, dépôts, gists et applications », tapez le nom de l’utilisateur dans le champ de texte.
  5. À droite du champ de texte, cliquez sur Rechercher. Capture d’écran de la page « Rechercher » des paramètres « Administrateur de site ». Le bouton pour rechercher dans les utilisateurs, intitulé « Rechercher », est mis en évidence avec un encadré orange
    • Si une correspondance exacte de nom de compte est introuvable, sous « Résultats de la recherche – Comptes », dans la section « Correspondances approximatives », cliquez sur le nom de l’utilisateur que vous souhaitez gérer. Capture d’écran des résultats de recherche dans les paramètres « Administrateur de site ». Dans la section « Correspondances approximatives », un exemple de nom d’utilisateur est mis en évidence avec un encadré orange.
  6. Passez en revue les détails utilisateur dans la page de l’administrateur de site pour vérifier que vous avez identifié le bon utilisateur. Capture d’écran de la page Vue d’ensemble du compte d’administrateur de site.
  7. Dans le coin supérieur droit de la page, cliquez sur Administrateur. Capture d’écran de l’en-tête de la page « Administrateur de site » pour un utilisateur ou un dépôt. L’onglet « Administrateur » est mis en évidence avec un encadré orange.
  8. Sous « LDAP », cliquez sur Synchroniser maintenant pour mettre à jour manuellement le compte avec les données de votre serveur LDAP.

Vous pouvez aussi utiliser l’API pour déclencher une synchronisation manuelle.

Révocation de l’accès à votre instance GitHub Enterprise Server

Si la synchronisation LDAP est activée, la suppression des informations d’identification LDAP d’un utilisateur aura pour effet de suspendre son compte une fois la prochaine exécution de la synchronisation effectuée.

Si la synchronisation LDAP n’est pas activée, vous devez suspendre manuellement le compte GitHub Enterprise Server après avoir supprimé les informations d’identification LDAP. Pour plus d’informations, consultez « Suspension et réhabilitation d’utilisateurs ».

À propos de la journalisation pour LDAP

Les événements de journal pour LDAP apparaissent dans fichiers des journaux sur votre instance GitHub Enterprise Server. Vous trouverez des événements liés aux opérations LDAP dans auth.log, ldap-sync.log et ldap.log. Pour plus d’informations, consultez « À propos des journaux système ».