Skip to main content
Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Username considerations for external authentication

Cuando utilizas Usuarios Administrados de Enterprise, GitHub Enterprise Cloud sigue reglas específicas para determinar el nombre de usuario de cada cuenta de usuario en tu empresa.

Note: This article only applies to Usuarios Administrados de Enterprise. If you use Nube de GitHub Enterprise without Usuarios Administrados de Enterprise, usernames are created by users, not GitHub.

About usernames with external authentication

If you use an enterprise with Usuarios Administrados de Enterprise, members of your enterprise authenticate to access GitHub through your SAML identity provider (IdP). Para obtener más información, consulta las secciones"Acerca de las Usuarios Administrados de Enterprise" y "Acerca de la autenticación para tu empresa".

GitHub Enterprise Cloud automatically creates a username for each person when their user account is provisioned via SCIM, by normalizing an identifier provided by your IdP. If multiple identifiers are normalized into the same username, a username conflict occurs, and only the first user account is created. You can resolve username conflicts by making a change in your IdP so that the normalized usernames will be unique.

About usernames for cuentas de usuarios adminsitrados

When your empresa con usuarios administrados is created, you will choose a short code that will be used as the suffix for your enterprise members' usernames. El código corto debe ser único para tu empresa, debe ser una secuencia de tres a ocho caracteres alfanuméricos que no contenga caracteres especiales. El usuario de configuración que configure el SSO de SAML tendrá un nombre de usuario en el formato @SHORT-CODE_admin.

Cuando aprovisionas un usuario nuevo desde tu proveedor de identidad, el cuenta de usuario administrado nuevo tendrá un nombre de usuario de GitHub en el formato de @IDP-USERNAME_SHORT-CODE. The IDP-USERNAME component is formed by normalizing the SCIM userName attribute value sent from the IdP.

Proveedor de identidadNombre de usuario de GitHub
Azure Active Directory (Azure AD)IDP-USERNAME is formed by normalizing the characters preceding the @ character in the UPN (User Principal Name), which does not include the #EXT# for guest accounts.
OktaIDP-USERNAME is the normalized username attribute provided by the IdP.

These rules may result in your IdP providing the same IDP-USERNAME for multiple users. For example, for Azure AD, the following UPNs will result in the same username:

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

This will cause a username conflict, and only the first user will be provisioned. For more information, see "Resolving username conflicts."

Usernames, including underscore and short code, must not exceed 39 characters.

About username normalization

Usernames for user accounts on GitHub.com can only contain alphanumeric characters and dashes (-).

When you configure SAML authentication, GitHub Enterprise Cloud uses the SCIM userName attribute value sent from the IdP to determine the username for the corresponding user account on GitHub.com. If this value includes unsupported characters, GitHub Enterprise Cloud will normalize the username per the following rules.

  1. El GitHub Enterprise Cloud convertirá en raya cualquier caracter no alfanumérico en el nombre de tu cuenta de usuario. For example, a username of mona.the.octocat will be normalized to mona-the-octocat. Nota que los nombres de usuarios normalizados tampoco pueden comenzar o terminar con una raya. Tampoco pueden contener dos rayas seguidas.

  2. Los nombres de usuarios creados a partir de direcciones de correo electrónico se crean con los caracteres normalizados que preceden al caracter @.

  3. Si múltiples cuentas se normalizan en el mismo nombre de usuario de GitHub Enterprise Cloud, solo se crea la primera cuenta de usuario. Los siguientes usuarios con el mismo nombre de usuario no podrán registrarse. For more information, see "Resolving username conflicts."

Examples of username normalization

Identifier on providerNormalized username on GitHubResultado
The.Octocatthe-octocat_SHORT-CODEEl nombre de usuario se crea correctamente.
!The.Octocat-the-octocat_SHORT-CODENo se crea este nombre de usuario debido a que comienza con una raya.
The.Octocat!the-octocat-_SHORT-CODENo se crea este nombre de usuario debido a que termina con una raya.
The!!Octocatthe--octocat_SHORT-CODENo se crea este nombre de usuario debido a que contiene dos rayas seguidas.
The!Octocatthe-octocat_SHORT-CODENo se crea este nombre de usuario. A pesar de que el nombre de usuario normalizado es válido, ya existía.
The.Octocat@example.comthe-octocat_SHORT-CODENo se crea este nombre de usuario. A pesar de que el nombre de usuario normalizado es válido, ya existía.
mona.lisa.the.octocat.from.github.united.states@example.commona-lisa-the-octocat-from-github-united-states_SHORT-CODEThis username is not created, because it exceeds the 39-character limit.

Resolving username conflicts

When a new user is being provisioned, if the user's normalized username conflicts with an existing user in the enterprise, the provisioning attempt will fail with a 409 error.

To resolve this problem, you must make a change in your IdP so that the normalized usernames will be unique. If you cannot change the identifier that's being normalized, you can change the attribute mapping for the userName attribute. If you change the attribute mapping, usernames of existing cuentas de usuarios adminsitrados will be updated, but nothing else about the accounts will change, including activity history.

Note: Soporte de GitHub cannot provide assistance with customizing attribute mappings or configuring custom expressions. You can contact your IdP with any questions.

Resolving username conflicts with Azure AD

To resolve username conflicts in Azure AD, either modify the User Principal Name value for the conflicting user or modify the attribute mapping for the userName attribute. If you modify the attribute mapping, you can choose an existing attribute or use an expression to ensure that all provisioned users have a unique normalized alias.

  1. In Azure AD, open the Usuario Administrado de GitHub Enterprise application.
  2. In the left sidebar, click Provisioning.
  3. Click Edit Provisioning.
  4. Expand Mappings, then click Provision Azure Active Directory Users.
  5. Click the GitHub userName attribute mapping.
  6. Change the attribute mapping.
    • To map an existing attribute in Azure AD to the userName attribute in GitHub, click your desired attribute field. Then, save and wait for a provisioning cycle to occur within about 40 minutes.
    • To use an expression instead of an existing attribute, change the Mapping type to "Expression", then add a custom expression that will make this value unique for all users. For example, you could use [FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]. For more information, see Reference for writing expressions for attribute mappings in Azure Active Directory in Microsoft Docs.

Resolving username conflicts with Okta

To resolve username conflicts in Okta, update the attribute mapping settings for the Usuario Administrado de GitHub Enterprise application.

  1. In Okta, open the Usuario Administrado de GitHub Enterprise application.
  2. Haz clic en Iniciar sesión.
  3. In the "Settings" section, click Edit.
  4. Update the "Application username format."