À 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 Protocole d'accès aux répertoires légers sur Wikipedia.
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 « Autorisation d’authentification intégrée pour les utilisateurs extérieurs à 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
- Ouvrir le répertoire
- 389-ds
Considérations relatives aux noms d’utilisateur avec LDAP
% data variables.product.github%} normalise une valeur de votre fournisseur d'authentification externe pour déterminer le nom d'utilisateur de chaque nouveau compte personnel à votre instance GitHub Enterprise Server. Pour plus d’informations, consultez Considérations relatives au nom d'utilisateur pour une authentification externe.
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 Console de gestion, 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 la pagination des résultats.
-
À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.
-
Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.
-
Dans la barre latérale « Site admin », cliquez sur Console de gestion.
-
Dans la barre latérale « Paramètres », cliquez sur Authentification.
-
Sous « Authentification », sélectionnez LDAP.
-
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 d’authentification intégrée pour les utilisateurs extérieurs à votre fournisseur ».
-
Ajoutez vos paramètres de configuration.
Attributs LDAP
Utilisez ces attributs pour terminer la configuration de LDAP pour votre instance GitHub Enterprise Server.
| Nom de l’attribut | Obligatoire | Description |
|---|---|---|
Host | Hô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. | ||
Port | Port sur lequel les services LDAP de l’hôte écoutent. Exemple : 389 ou 636 (pour LDAPS). | |
Encryption | Mé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 user | Utilisateur 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 également utiliser la syntaxe [DOMAIN]\[USERNAME] (par exemple, WINDOWS\Administrator) pour l’utilisateur de recherche de domaine avec Active Directory. | |
Domain search password | Mot de passe de l’utilisateur de la recherche de domaine. | |
Administrators group | Les 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 base |
`Distinguished Name` (nom unique) complet d’une sous-arborescence LDAP dans laquelle vous souhaitez rechercher des utilisateurs et des groupes. 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 seront pris en compte. 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. Vous pouvez configurer plusieurs bases de domaine. Toutefois, GitHub Enterprise Server recherche les utilisateurs et l’appartenance à un groupe par rapport à chaque base de domaine configurée de manière séquentielle, de sorte que la configuration de plusieurs bases de domaine peut augmenter le nombre de requêtes LDAP effectuées. Pour garantir les performances et la stabilité de votre instance, nous vous recommandons de ne pas configurer plus de trois bases de domaine. |
| Restricted user groups | | Si vous spécifiez cet attribut, seuls les utilisateurs de ces groupes sont autorisés à se connecter. Vous devez uniquement spécifier les noms communs (CN) des groupes. 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. Vous pouvez configurer plusieurs groupes d’utilisateurs avec accès restreint. Toutefois, chaque groupe augmente le nombre de requêtes LDAP sur l’appartenance à un groupe que GitHub Enterprise Server effectue pour chaque utilisateur. Pour éviter les délais d’authentification et les problèmes de synchronisation, nous vous recommandons de ne pas configurer plus de trois groupes. |
| User ID | | Attribut 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 être uid pour d’autres solutions LDAP, comme OpenLDAP. La valeur par défaut est uid. |
| Profile name | | Nom 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. |
| Emails | | Adresses e-mail du compte GitHub Enterprise Server d’un utilisateur. |
| SSH keys | | Clés SSH publiques attachées au compte GitHub Enterprise Server d’un utilisateur. Ces clés doivent être au format OpenSSH. |
| GPG keys | | Clés GPG attachées au compte GitHub Enterprise Server d’un utilisateur. |
| Disable LDAP authentication for Git operations | |Si 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 verification | |Si cette option est sélectionnée, elle permet la vérification de certificat LDAP. |
| Synchronization | | Si 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éer une équipe d’organisation ».
La synchronisation LDAP ne crée pas de comptes d’utilisateur sur votre instance GitHub Enterprise Server. Pour plus d’informations, consultez Affichage et création d’utilisateurs LDAP.
Remarque
L’utilisation de la synchronisation LDAP avec des groupes qui dépassent 1499 membres peut entraîner des échecs de synchronisation d’appartenance à l’équipe.
Si vous utilisez Active Directory spécifiquement, les recherches utilisateur et la synchronisation d’équipe peuvent échouer lorsque les groupes LDAP configurés pour les équipes ou dans le Console de gestion dépassent 1500 membres, en raison de la limite de MaxValRange dans Active Directory. Pour contourner ce problème, vous pouvez utiliser des groupes Active Directory qui contiennent moins de 1500 membres, ou utiliser votre administrateur Active Directory pour augmenter la valeur MaxValRange pour vos contrôleurs de domaine. Pour plus d’informations, consultez View 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 du MaxValRange est la bonne approche pour votre environnement de Active Directory, contactez Microsoft Support.
Pour activer la synchronisation LDAP, sélectionnez Synchronisation dans vos paramètres LDAP.
Pour choisir un intervalle de synchronisation pour tous les utilisateurs et toutes les équipes, cliquez sur les menus déroulants. Sélectionnez ensuite toutes les heures, toutes les 4 heures ou toutes les 24 heures.
Pour synchroniser automatiquement certains attributs à partir du protocole LDAP, sous « Synchroniser les e-mails utilisateur, les clés SSH et les clés GPG », cliquez sur Synchroniser les e-mails, Synchroniser les clés SSH et/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
mailLDAP 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 désactivées que si vous utilisez Active Directory et que l’attribut userAccountControl est présent et marqué avec ACCOUNTDISABLE. Certaines variantes de 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éer une équipe d’organisation
Avertissement
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 aux yeux 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.
groupgroupOfNamesgroupOfUniqueNamesposixGroup
Affichage et création d’utilisateurs LDAP
Lorsque vous utilisez LDAP, votre instance crée un compte d’utilisateur la première fois qu’une personne se connecte avec succès à l’aide des identifiants LDAP. Vous pouvez également approvisionner manuellement un compte d’utilisateur.
Vous pouvez afficher la liste complète des utilisateurs LDAP qui ont accès à votre instance et provisionner de nouveaux utilisateurs.
-
Connectez-vous à votre instance GitHub Enterprise Server à l’adresse
http(s)://HOSTNAME/login. -
À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.
-
Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.
-
Dans la barre latérale de gauche, cliquez sur Utilisateurs LDAP.
-
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.
- Pour utiliser un nouveau groupe d’administration LDAP, les utilisateurs doivent être promus et rétrogradés manuellement sur GitHub Enterprise Server pour refléter les modifications apportées à LDAP.
- Pour ajouter ou supprimer des comptes LDAP dans des groupes d’administration LDAP, promouvez ou rétrogradez les comptes sur GitHub Enterprise Server.
- Pour supprimer des comptes LDAP, suspendez les comptes GitHub Enterprise Server.
Synchronisation manuelle des comptes LDAP
-
Connectez-vous à votre instance GitHub Enterprise Server à l’adresse
http(s)://HOSTNAME/login. -
À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.
-
Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.
-
Sous « Rechercher dans les utilisateurs, organisations, équipes, dépôts, gists et applications », tapez le nom de l’utilisateur dans le champ de texte.
-
À droite du champ de texte, cliquez sur Rechercher.

- 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.

- 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.
-
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.

-
Dans le coin supérieur droit de la page, cliquez sur Admin.

-
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éactivation d’utilisateurs ».
À propos de la journalisation pour LDAP
Les événements de journalisation pour LDAP apparaissent dans les journaux du système sur votre instance GitHub Enterprise Server. Vous trouverez des événements liés aux opérations LDAP dans les journaux d’activité github-unicorn et github-resqued. Pour plus d’informations, consultez « À propos des journaux système ».
Limites du protocole LDAP sur GitHub Enterprise Server
Le paramètre de délai d’expiration de l’authentification LDAP GitHub Enterprise Server est de 10 secondes. Cela signifie que toutes les requêtes LDAP requises pour l’authentification utilisateur et les requêtes d’appartenance aux groupes d’utilisateurs (lorsque des administrateurs et des groupes d’utilisateurs avec accès restreint sont configurés dans la console de gestion) doivent se terminer en 10 secondes pour un utilisateur LDAP qui se connecte à GitHub Enterprise Server. GitHub Enterprise Server ne permet actuellement pas de prolonger le délai d'authentification LDAP de 10 secondes, car cela peut avoir un impact négatif sur d'autres services de l'appliance et entraîner de mauvaises performances ou des pannes inattendues. Nous vous recommandons de limiter le temps de réponse du réseau entre GitHub Enterprise Server et le(s) serveur(s) LDAP pour empêcher l’expiration des délais d’authentification.
GitHub Enterprise Server ne prend pas en charge les DN LDAP des utilisateurs contenant des caractères spéciaux. Si un utilisateur LDAP possède un caractère spécial dans son DN LDAP, GitHub Enterprise Server peut ne pas être en mesure de déterminer avec précision l’appartenance à un groupe d’un utilisateur qui s’authentifie ou est synchronisé par LDAP Sync.
Migration de LDAP vers SAML et SCIM
Si votre organisation a besoin de fonctionnalités automatisées d’approvisionnement et de gestion du cycle de vie des utilisateurs au-delà de ce que fournit LDAP, vous pouvez migrer de l’authentification LDAP vers l’authentification unique SAML avec le provisionnement SCIM. Cette migration permet le provisionnement et le déprovisionnement d'utilisateurs, et la synchronisation centralisés des attributs à partir de votre fournisseur d’identité.
Pour plus d’informations, consultez « Migration de LDAP vers SAML avec SCIM ».