Skip to main content

Cette version de GitHub Enterprise a été abandonnée le 2023-01-18. 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 your GitHub Enterprise Server instance.

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 your GitHub Enterprise Server instance. Pour plus d’informations, consultez « Autorisation de l’authentification intégrée pour les utilisateurs en dehors de votre fournisseur ».

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 your GitHub Enterprise Server instance. Pour plus d’informations, consultez « Considérations relatives au nom d’utilisateur pour l’authentification externe ».

Configuration de LDAP avec your GitHub Enterprise Server instance

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 your GitHub Enterprise Server instance, 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 dans le coin supérieur droit de n’importe quelle page.

    Capture d’écran de l’icône représentant une fusée qui donne accès aux paramètres d’administration du site

  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.

    Capture d’écran du lien « Administrateur du site » 1. Dans la barre latérale gauche, cliquez sur Management Console . Onglet Management Console dans la barre latérale gauche 1. Dans la barre latérale gauche, cliquez sur Authentification. Onglet Authentification dans la barre latérale des paramètres

  3. Sous « Authentification », sélectionnez LDAP. Sélection de LDAP

  4. 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 « Autorisation de l’authentification intégrée pour les utilisateurs en dehors de votre fournisseur ». Sélection de la case d’authentification intégrée LDAP

  5. Ajoutez vos paramètres de configuration.

Attribut LDAP

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

Nom de l’attributTypeDescription
HostObligatoireHô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 your GitHub Enterprise Server instance pour qu’il puisse résoudre le nom d’hôte en utilisant vos serveurs de noms internes.
PortObligatoirePort sur lequel les services LDAP de l’hôte écoutent. Exemple : 389 ou 636 (pour LDAPS).
EncryptionObligatoireMé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 userFacultatifUtilisateur 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 passwordFacultatifMot de passe de l’utilisateur de la recherche de domaine.
Administrators groupFacultatifLes 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 baseObligatoireDistinguished 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 groupsFacultatifSi 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 IDObligatoireAttribut 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 nameFacultatifNom 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.
EmailsFacultatifAdresses e-mail du compte GitHub Enterprise Server d’un utilisateur.
SSH keysFacultatifClés SSH publiques attachées au compte GitHub Enterprise Server d’un utilisateur. Ces clés doivent être au format OpenSSH.
GPG keysFacultatifClés GPG attachées au compte GitHub Enterprise Server d’un utilisateur.
Disable LDAP authentication for Git operationsFacultatifSi 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 verificationFacultatifSi cette option est sélectionnée, elle permet la vérification de certificat LDAP.
SynchronizationFacultatifSi 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

Sélectionnez Désactiver l’authentification par nom d’utilisateur et mot de passe pour les opérations Git dans vos paramètres LDAP 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. 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.

Case à cocher Désactiver l’authentification par mot de passe pour Git

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

Sélectionnez Activer la vérification de certificat LDAP dans vos paramètres LDAP pour valider le certificat de serveur LDAP que vous utilisez avec TLS.

Case de vérification de certificat 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

Remarque : Les équipes utilisant la synchronisation LDAP sont limitées à un maximum de 1 499 membres.

La synchronisation LDAP vous permet de synchroniser les utilisateurs GitHub Enterprise Server et l’appartenance aux équipes par rapport à vos groupes LDAP établis. Cela vous permet d’établir un contrôle d’accès en fonction du rôle pour les utilisateurs de votre serveur LDAP au lieu de le faire manuellement dans GitHub Enterprise Server. Pour plus d’informations, consultez « Création d’équipes ».

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.

Case à cocher de synchronisation

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’équipes »

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 le GitHub Enterprise Support.

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 à your GitHub Enterprise Server instance à l’adresse http(s)://HOSTNAME/login. 1. À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur dans le coin supérieur droit de n’importe quelle page.

    Capture d’écran de l’icône représentant une fusée qui donne accès aux paramètres d’administration du site

  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.

    Capture d’écran du lien « Administrateur du site »

  3. Dans la barre latérale de gauche, cliquez sur Utilisateurs LDAP. Onglet Utilisateurs LDAP

  4. 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. Recherche LDAP

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 à your GitHub Enterprise Server instance à l’adresse http(s)://HOSTNAME/login. 1. À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur dans le coin supérieur droit de n’importe quelle page.

    Capture d’écran de l’icône représentant une fusée qui donne accès aux paramètres d’administration du site

  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.

    Capture d’écran du lien « Administrateur du site » 1. Dans le champ de recherche, tapez le nom de l’utilisateur, puis cliquez sur Rechercher. Champ de recherche des paramètres d’administration de site 1. Dans les résultats de la recherche, cliquez sur le nom de l’utilisateur. Options de recherche des paramètres d’administration de site 1. En haut à droite de la page, cliquez sur Admin. Outils d’administration 1. Dans la barre latérale gauche, cliquez sur Administrateur. Outils d’administration

  3. Sous « LDAP », cliquez sur Synchroniser maintenant pour mettre à jour manuellement le compte avec les données de votre serveur LDAP. Bouton Synchroniser maintenant LDAP

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

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

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établissement d’utilisateurs ».