Skip to main content

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

Quand vous utilisez Enterprise Managed Users, GitHub Enterprise Cloud suit certaines règles pour identifier le nom d'utilisateur de chaque compte d'utilisateur dans votre entreprise.

Remarque : cet article s'applique uniquement à 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 « À propos de la gestion de l'identité et de l'accès ».

GitHub crée automatiquement un nom d'utilisateur pour chaque personne lors du provisionnement de son compte d'utilisateur via SCIM, en normalisant un identificateur fourni par votre fournisseur d'identité, puis en ajoutant un trait de soulignement et un code court. 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 des problèmes de nom d'utilisateur en apportant une modification à votre fournisseur d'identité de sorte que les noms d'utilisateur normalisés soient uniques et limités à 39 caractères.

Remarque : Étant donné que GitHub ajoute un trait de soulignement et un code court à l’identificateur normalisé fourni par votre fournisseur d’identité lors de la création de chaque nom d’utilisateur, les conflits ne peuvent se produire qu’au sein de chaque entreprise avec utilisateurs managés. 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 noms d'utilisateur pour comptes d’utilisateur managés

Lors de la création de votre entreprise avec utilisateurs managés, vous choisissez un code court qui sera utilisé comme suffixe pour les noms d'utilisateur des membres de votre entreprise. Le code court doit être propre à votre entreprise, une chaîne alphanumérique de trois à huit caractères, et ne doit contenir aucun caractère spécial. L'utilisateur de configuration qui configure l'authentification unique SAML a un nom d'utilisateur au format @SHORT-CODE_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 . Le composant IDP-USERNAME est formé en normalisant la valeur d'attribut userName SCIM envoyée par le fournisseur d'identité.

Fournisseur d'identitéNom d'utilisateur GitHub
Microsoft Entra ID (actuellement appelé 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 d'identité à fournir 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 pour des comptes d'utilisateur sur GitHub.com ne peuvent contenir que des caractères alphanumériques et des tirets (-).

Lorsque vous configurez une authentification SAML, GitHub Enterprise Cloud utilise la valeur d'attribut userName SCIM envoyée par le fournisseur d'identité pour déterminer le nom d'utilisateur du compte d'utilisateur correspondant sur GitHub.com. Si cette valeur inclut des caractères non pris en charge, GitHub Enterprise Cloud normalise le nom d'utilisateur conformément aux règles suivantes.

  1. GitHub Enterprise Cloud normalise tout caractère non alphanumérique dans le nom d'utilisateur de votre compte en 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. 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 @.

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

  4. Si plusieurs comptes sont normalisés dans le même nom d'utilisateur GitHub Enterprise Cloud, seul le premier compte d'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

Identificateur sur le fournisseurNom d'utilisateur normalisé sur GitHubRésultats
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.Octocat!the-octocat-_SHORT-CODECe nom d'utilisateur n'est pas créé, car il se termine 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

Quand un nouvel utilisateur est provisionné, si le nom d'utilisateur est plus long que 39 caractères (trait de soulignement et code court inclus) ou en conflit avec un utilisateur existant dans l'entreprise, la tentative de provisionnement échoue avec une erreur 409.

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 Mappages, puis cliquez sur Approvisionner les utilisateurs d’ID Entra.
  5. Cliquez sur le mappage d'attributs GitHub userName.
  6. Enregistrez 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 obtenir plus d’informations sur les expressions, consulter Informations de référence sur l’écriture d’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 ».