Skip to main content

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

Lorsque vous utilisez CAS, LDAP ou SAML pour l’authentification, GitHub suit certaines règles pour déterminer le nom d’utilisateur de chaque compte sur votre instance.

À propos des noms d'utilisateur avec une authentification externe

Vous pouvez configurer l’authentification externe pour GitHub Enterprise Server à l’aide de CAS, LDAP ou SAML. Pour plus d’informations, consultez « Notions de base de la gestion des identités et des accès ».

Lorsque vous utilisez l’authentification externe, votre instance GitHub Enterprise Server crée automatiquement un nom d’utilisateur pour chaque personne lorsque la personne se connecte votre instance GitHub Enterprise Server via votre système d’authentification externe pour la première fois.

Les noms d’utilisateur, y compris le ne doivent pas dépasser 39 caractères.

Remarque

Si vous utilisez SAML avec l’approvisionnement SCIM, les utilisateurs doivent être approvisionnés par SCIM avant de pouvoir utiliser l’authentification unique SAML. Si un utilisateur n’a pas été approvisionné, il ne pourra pas terminer l’authentification sur votre GitHub Enterprise Server instance. Pour plus d’informations, consultez « À propos de l’approvisionnement d’utilisateurs avec SCIM sur GitHub Enterprise Server ».

À propos de la normalisation du nom d'utilisateur

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

Lorsque vous configurez l’authentification CAS, LDAP ou SAML (sans SCIM), GitHub Enterprise Server utilisez un identificateur du compte d’utilisateur sur votre fournisseur d’authentification externe pour déterminer le nom d’utilisateur du compte d’utilisateur correspondant sur votre GitHub Enterprise Server instance. Lorsque l’authentification SAML est configurée avec SCIM, GitHub utilise la valeur d’attribut SCIM userName envoyée à partir du fournisseur d’identité pour déterminer le nom d’utilisateur du compte d’utilisateur correspondant. Si l’identificateur inclut des caractères non pris en charge, GitHub normalise le nom d’utilisateur conformément aux règles suivantes.

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

Exemples de normalisations de nom d'utilisateur

Identifiant du prestataireNom d’utilisateur normalisé sur GitHub.comRésultat
The.OctocatThe-OctocatCe nom d'utilisateur est créé avec succès.
!The.Octocat-The-OctocatCe nom d'utilisateur n'est pas créé, car il commence par un tiret.
The!!OctocatThe--OctocatCe nom d’utilisateur n’est pas créé, car il contient deux tirets consécutifs.
The!OctocatThe-OctocatCe nom d'utilisateur n'est pas créé. Bien que le nom d'utilisateur normalisé soit valide, il existe déjà.
The.Octocat@example.comThe-OctocatCe nom d'utilisateur n'est pas créé. Bien que le nom d'utilisateur normalisé soit valide, il existe déjà.
internal\\The.OctocatThe-OctocatCe 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-statesCe nom d'utilisateur n'est pas créé, car il dépasse la limite de 39 caractères.

À propos de la normalisation du nom d'utilisateur avec SAML

Si vous configurez l’authentification SAML pour votre instance GitHub Enterprise Server, GitHub détermine le nom d’utilisateur de chaque personne par l’une des assertions suivantes dans la réponse SAML, classées en priorité décroissante.

  1. L'attribut username personnalisé, s'il est défini et présent
  2. Une assertion http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, si elle est présente
  3. Une assertion http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress, si elle est présente
  4. Élément NameID

GitHub nécessite l’élément NameID même si d’autres attributs sont présents. Pour plus d’informations, consultez « Référence de configuration SAML ».

GitHub établit une correspondance entre le NameID provenant de l’IdP et le nom d’utilisateur sur votre instance GitHub Enterprise Server ; le NameID doit donc être persistant, unique et ne pas être sujet à modification pendant toute la durée de vie de l’utilisateur.

Remarque

Si le NameID d’un utilisateur change dans l’IdP, la personne verra un message d’erreur lors de la connexion à votre instance GitHub Enterprise Server. Pour restaurer l’accès de la personne, vous devez mettre à jour le mappage de NameID du compte d’utilisateur. Pour plus d’informations, consultez « Mise à jour du paramètre NameID SAML d’un utilisateur ».