Skip to main content

Considérations relatives au nom d'utilisateur pour une authentification externe

Lorsque vous utilisez Enterprise Managed Users, GitHub suit certaines règles pour déterminer le nom d’utilisateur pour chaque compte d’utilisateur dans votre entreprise.

Remarque

Cet article ne s'applique qu'à Enterprise Managed Users. Si vous utilisez GitHub Enterprise Cloud sans Enterprise Managed Users, les noms d'utilisateur sont créés par les utilisateurs, pas par GitHub.

À propos des noms d'utilisateur avec une authentification externe

Si vous utilisez une entreprise avec Enterprise Managed Users, les membres de celle-ci s'authentifient pour accéder à GitHub via votre fournisseur d'identité SAML. Pour plus d’informations, consultez « À propos d’Enterprise Managed Users » et « Notions de base de la gestion des identités et des accès ».

GitHub crée automatiquement un nom d'utilisateur pour chaque personne lors de l’approvisionnement du compte utilisateur de celle-ci via SCIM.

  • Pour créer le nom d’utilisateur, GitHub normalise un identificateur fourni par votre fournisseur d’identité.
  • Sur GitHub.com, GitHub ajoute également un trait de soulignement et le code court de votre entreprise à la fin de chaque nom d’utilisateur.

Si plusieurs identificateurs sont normalisés dans le même nom d'utilisateur, un conflit de nom d'utilisateur se produit et seul le premier compte est créé. Vous pouvez résoudre les problèmes de nom d'utilisateur en modifiant la configuration de votre fournisseur d'identité afin que les noms d'utilisateur normalisés soient uniques et ne dépassent pas 39 caractères.

Remarque

Des conflits peuvent uniquement se produire entre utilisateurs au sein de la même entreprise. Les Comptes d’utilisateur managés peuvent partager des identificateurs d’IdP ou des adresses e-mail avec d’autres comptes d’utilisateur sur GitHub.com qui se trouvent en dehors de l’entreprise.

À propos des codes abrégés pour comptes d’utilisateur managés

Chaque entreprise qui utilise comptes d’utilisateur managés est associée à un code court, qui est une chaîne alphanumérique comprise entre trois et huit caractères.

Codes abrégés sur GitHub.com

Lorsque vous créez un entreprise avec utilisateurs managés sur GitHub.com, vous choisissez un code court qui sera utilisé en tant que suffixe pour tous les noms d'utilisateur de vos membres d'entreprise.

  • Le code court doit être propre à votre entreprise et ne doit pas contenir de caractères spéciaux.
  • Faites votre choix avec soin, car il n'est pas possible de modifier le shortcode après la création de votre entreprise avec utilisateurs managés.

L’utilisateur de configuration qui configure l’authentification unique SAML a un nom d’utilisateur au format SHORT–CODE_admin. Par exemple, si le code court de votre entreprise est « octo », l’utilisateur de configuration sera « octo_admin ».

Quand vous provisionnez un nouvel utilisateur à partir de votre fournisseur d'identité, le nouvel compte d’utilisateur managé a un nom d'utilisateur GitHub au format @IDP-USERNAME_SHORT-CODE (par exemple, « mona-cat_octo »).

Codes courts sur GHE.com

Si vous utilisez GitHub Enterprise Cloud avec résidence des données, lorsque vous créez un entreprise avec utilisateurs managés sur GHE.com, le code court de votre entreprise est généré de façon aléatoire.

  • Pour comptes d’utilisateur managés avec différente, le shortcode est masqué, mais il est toujours ajouté en tant que suffixe aux noms d’utilisateur des utilisateurs provisionnés.
  • Le seul endroit où vous êtes susceptible de voir le code court se trouve dans le nom d’utilisateur de l’administrateur d’installation, qui ressemblera à 2abvd19d_admin.

Remarque

En raison de l’inclusion du shortcode masqué, la limite de caractères pour les noms d’utilisateur est réduite de 39 à 30 caractères pour GitHub Enterprise Cloud avec résidence des données.

À propos des noms d’utilisateur normalisés

Les noms d’utilisateur sont formés en normalisant la valeur d’attribut SCIM userName envoyée par l'IdP.

Fournisseur d'identitéNom d'utilisateur GitHub
Microsoft Entra ID (anciennement Azure AD)IDP-USERNAME est formé en normalisant les caractères précédant le caractère @ dans l'UPN (nom d'utilisateur principal), ce qui n'inclut pas l'#EXT# pour des comptes invités.
OktaIDP-NOMUTILISATEUR est l'attribut de nom d'utilisateur normalisé fourni par l'IdP.

Ces règles peuvent conduire votre fournisseur de service d'identité (IdP) à attribuer le même IDP-USERNAME pour plusieurs utilisateurs. Par exemple, pour Entra ID, les UPN suivants donneront le même nom d'utilisateur :

  • bob@contoso.com
  • bob@fabrikam.com
  • bob#EXT#fabrikamcom@contoso.com
  • bob_example#EXT#fabrikamcom@contoso.com
  • bob_example.com#EXT#fabrikamcom@contoso.com

Cela occasionnera un conflit de nom d'utilisateur et seul le premier utilisateur sera approvisionné. Pour plus d’informations, consultez Résolution des problèmes de nom d’utilisateur.

Les noms d'utilisateur, trait de soulignement et code court compris, ne doivent pas dépasser 39 caractères.

À propos de la normalisation du nom d'utilisateur

Les noms d’utilisateur des comptes d’utilisateur sur GitHub ne peuvent contenir que des caractères alphanumériques et des tirets (-).

Lorsque vous configurez l'authentification SAML, GitHub utilise l’attribut SCIM userName envoyé par l'IdP pour déterminer le nom d'utilisateur du compte utilisateur correspondant sur GitHub. Si cette valeur comprend des caractères non pris en charge, GitHub normalisera le nom d'utilisateur selon les règles suivantes.

  1. GitHub normalisera tout caractère non alphanumérique dans le nom d'utilisateur de votre compte en un tiret. Par exemple, le nom d'utilisateur mona.the.octocat est normalisé en mona-the-octocat. Notez que les noms d'utilisateur normalisés ne peuvent ni commencer ni se terminer par un tiret. Ils ne peuvent pas non plus contenir deux tirets consécutifs.

  2. La casse des lettres dans la valeur fournie par le fournisseur d'identité est conservée dans le nom d'utilisateur normalisé.

  3. Les noms d'utilisateur créés à partir d'adresses e-mail sont créés à partir des caractères normalisés qui précèdent le caractère @.

  4. Les noms d'utilisateur créés à partir de comptes de domaine sont créés à partir des caractères normalisés après le séparateur \\.

  5. Si plusieurs comptes sont normalisés sous le même nom d'utilisateur, seul le premier compte utilisateur est créé. Les utilisateurs suivants ayant le même nom d'utilisateur ne pourront pas se connecter. Pour plus d’informations, consultez Résolution des problèmes de nom d’utilisateur.

Exemples de normalisations de nom d'utilisateur

Identifiant du prestataireNom d'utilisateur normalisé sur GitHub.comRésultat
The.OctocatThe-Octocat_SHORT-CODECe nom d'utilisateur est créé avec succès.
!The.Octocat-The-Octocat_SHORT-CODECe nom d'utilisateur n'est pas créé, car il commence par un tiret.
The!!OctocatThe--Octocat_SHORT-CODECe nom d’utilisateur n’est pas créé, car il contient deux tirets consécutifs.
The!OctocatThe-Octocat_SHORT-CODECe nom d'utilisateur n'est pas créé. Bien que le nom d'utilisateur normalisé soit valide, il existe déjà.
The.Octocat@example.comThe-Octocat_SHORT-CODECe nom d'utilisateur n'est pas créé. Bien que le nom d'utilisateur normalisé soit valide, il existe déjà.
internal\\The.OctocatThe-Octocat_SHORT-CODECe nom d'utilisateur n'est pas créé. Bien que le nom d'utilisateur normalisé soit valide, il existe déjà.
mona.lisa.the.octocat.from.github.united.states@example.commona-lisa-the-octocat-from-github-united-states_SHORT-CODECe nom d'utilisateur n'est pas créé, car il dépasse la limite de 39 caractères.

Résolution des problèmes de nom d'utilisateur

Lorsqu’un nouvel utilisateur est approvisionné, si le nom d’utilisateur entre en conflit avec celui d’un utilisateur existant dans l’entreprise, la tentative d’approvisionnement échoue et génère une erreur 409. Si le nom d’utilisateur comporte plus de 39 caractères (y compris les traits de soulignement et les codes courts), la tentative d’approvisionnement échouera avec une erreur 400. Pour obtenir la liste complète des codes d’état d’approvisionnement des utilisateurs possibles, consultez Points de terminaison d’API REST pour SCIM.

Pour résoudre ce problème, vous devez apporter l’une des modifications suivantes à votre fournisseur d’identité afin que tous les noms d’utilisateur normalisés soient uniques et respectent la limite de caractères.

  • Modifier la valeur de l'attribut userName pour les utilisateurs individuels entraînant des problèmes
  • Modifier le mappage d'attributs userName pour tous les utilisateurs
  • Configurer un attribut personnalisé userName pour tous les utilisateurs

Quand vous modifiez le mappage d'attributs, les noms d'utilisateur de comptes d’utilisateur managés existants sont mis à jour, mais rien d'autre ne change sur les comptes, notamment l'historique des activités.

Remarque

Support GitHub ne peut pas fournir d'assistance pour la personnalisation des mappages d'attributs ou la configuration d'expressions personnalisées. Si vous avez des questions, vous pouvez contacter votre fournisseur d'identité.

Résolution des problèmes de nom d'utilisateur avec Entra ID

Pour résoudre les problèmes de nom d'utilisateur dans Entra ID, modifiez la valeur du nom d'utilisateur principal de l'utilisateur en conflit, ou modifiez le mappage pour l'attribut userName. Si vous modifiez le mappage d'attributs, vous pouvez choisir un attribut existant ou utiliser une expression pour vous assurer que tous les utilisateurs approvisionnés ont un alias normalisé unique.

  1. Dans Entra ID, ouvrez l'application GitHub Enterprise Managed User.
  2. Dans la barre latérale gauche, cliquez sur Approvisionnement.
  3. Accédez à Modifier l'approvisionnement.
  4. Étendez les Mappages, puis cliquez sur Approvisionner les utilisateurs d’Entra ID.
  5. Cliquez sur le mappage d'attributs GitHub userName.
  6. Modifiez le mappage d'attributs.
    • Pour mapper un attribut existant dans Entra ID à l'attribut userName dans GitHub, cliquez sur le champ d’attribut souhaité. Ensuite, enregistrez et attendez qu'un cycle d'approvisionnement se produise dans les 40 minutes environ.
    • Pour utiliser une expression au lieu d'un attribut existant, modifiez le type de mappage en « Expression », puis ajoutez une expression personnalisée qui rend cette valeur unique pour tous les utilisateurs. Par exemple, vous pourriez utiliser [FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]. Pour plus d’informations, consultez Reference pour écrire des expressions pour les mappages d’attributs dans Microsoft Entra ID sur Microsoft Learn.

Résolution des problèmes de nom d'utilisateur avec Okta

Pour résoudre les problèmes de nom d'utilisateur dans Okta, mettez à jour les paramètres de mappage d'attributs pour l'application GitHub Enterprise Managed User.

  1. Dans Okta, ouvrez l'application GitHub Enterprise Managed User
  2. Cliquez sur Se connecter.
  3. Dans la section « Paramètres », cliquez sur OK.
  4. Mettez à jour le « format de nom d'utilisateur de l'application ».