Skip to main content

Consideraciones sobre el nombre de usuario para la autenticación externa

Cuando usas Enterprise Managed Users, GitHub Enterprise Cloud sigue ciertas reglas para determinar el nombre de usuario para cada cuenta de usuario en la empresa.

Nota: Este artículo solo se aplica a Enterprise Managed Users. Si usas GitHub Enterprise Cloud sin Enterprise Managed Users, son los usuarios quienes crean los nombres de usuario, no GitHub.

Acerca de los nombres de usuario con autenticación externa

Si usas una empresa con Enterprise Managed Users, los miembros de la empresa se autentican para acceder a GitHub mediante el proveedor de identidades (IdP) de SAML. Para obtener más información, vea «Acerca de Enterprise Managed Users» y «Acerca de la administración de identidad y de acceso».

GitHub crea automáticamente un nombre de usuario para cada persona cuando su cuenta de usuario se aprovisiona mediante SCIM, al normalizar un identificador que el IdP proporciona y agregar después un carácter de subrayado y un código corto. Si se normalizan varios identificadores en el mismo nombre de usuario, se produce un conflicto de nombre de usuario y solo se crea la primera cuenta de usuario. Para resolver problemas de nombre de usuario, realiza un cambio en el IdP para que los nombres de usuario normalizados sean únicos y tengan un límite de 39 caracteres.

Nota: Dado que GitHub agrega un carácter de subrayado y un código corto al identificador normalizado proporcionado por el IdP al crear cada nombre de usuario, solo se pueden producir conflictos dentro de cada empresa con usuarios administrados. Cuentas de usuario administradas puede compartir identificadores de IdP o direcciones de correo electrónico con otras cuentas de usuario en GitHub.com que están fuera de la empresa.

Acerca de los nombres de usuario para cuentas de usuario administradas

Cuando se cree tu empresa con usuarios administrados, deberás elegir un código corto que se usará como sufijo de los nombres de usuario de los miembros de tu empresa. 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 configura el inicio de sesión único de SAML tiene un nombre de usuario con el formato @SHORT-CODE_admin .

Al aprovisionar un nuevo usuario desde el proveedor de identidades, el nuevo cuenta de usuario administrada tendrá un nombre de usuario de GitHub con el formato @IDP-USERNAME_SHORT-CODE . El componente IDP-USERNAME se forma normalizando el valor del atributo userName de SCIM que se envía desde el IdP.

Proveedor de identidadesNombre de usuario de GitHub
Microsoft Entra ID (anteriormente conocido como Azure AD)IDP-USERNAME se forma normalizando los caracteres anteriores al carácter @ en el UPN (nombre principal de usuario), que no incluye el valor #EXT# para las cuentas de invitado.
OktaIDP-USERNAME es el atributo de nombre de usuario normalizado que proporciona el IdP.

Estas reglas pueden dar lugar a que el IdP proporcione el mismo IDP-USERNAME para varios usuarios. Por ejemplo, para Entra ID, los siguientes UPN darán como resultado el mismo nombre de usuario:

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

Esto provocará un conflicto de nombre de usuario y solo se aprovisionará el primer usuario. Para obtener más información, consulta "Resolución de problemas de nombre de usuario".

Los nombres de usuario, incluidos el carácter de subrayado y el código corto, no deben superar los 39 caracteres.

Acerca de la normalización del nombre de usuario

Los nombres de usuario de las cuentas de usuario de GitHub.com solo pueden contener caracteres alfanuméricos y guiones (-).

Al configurar la autenticación SAML, GitHub Enterprise Cloud usa el valor del atributo userName de SCIM que se envía desde el IdP para determinar el nombre de usuario de la cuenta de usuario correspondiente en GitHub.com. Si este valor incluye caracteres no admitidos, GitHub Enterprise Cloud normalizará el nombre de usuario según las reglas siguientes.

  1. GitHub Enterprise Cloud normalizará cualquier carácter no alfanumérico en el nombre de tu cuenta de usuario y lo convertirá en un guion. Por ejemplo, un nombre de usuario de mona.the.octocat se normalizará en 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 usuario creados a partir de direcciones de correo electrónico se crean con los caracteres normalizados que preceden al carácter @.

  3. Los nombres de usuario creados a partir de cuentas de dominio se crean a partir de los caracteres normalizados después del separador \\.

  4. Si varias 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. Para obtener más información, consulta "Resolución de problemas de nombre de usuario".

Ejemplos de normalización de nombres de usuario

Identificador en el proveedorNombre de usuario normalizado en 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.
internal\\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.
mona.lisa.the.octocat.from.github.united.states@example.commona-lisa-the-octocat-from-github-united-states_SHORT-CODEEste nombre de usuario no se crea porque supera el límite de 39 caracteres.

Resolución de problemas de nombre de usuario

Cuando se aprovisiona un usuario nuevo, si el nombre de usuario tiene más de 39 caracteres (incluido el carácter de subrayado y el guion bajo) o entra en conflicto con un usuario existente en la empresa, se producirá un error 409 en el intento de aprovisionamiento.

Para resolver este problema, debes realizar uno de los siguientes cambios en el IdP para que todos los nombres de usuario normalizados estén dentro del límite de caracteres y sean únicos.

  • Cambiar el valor del atributo userName para usuarios individuales que están causando problemas
  • Cambiar la asignación de atributos userName para todos los usuarios
  • Configurar un atributo userName personalizado para todos los usuarios

Si cambias la asignación de atributos, se actualizarán los nombres de usuario de las cuentas de usuario administradas existentes, pero no cambiará nada más de las cuentas, incluido el historial de actividad.

Nota: Soporte de GitHub no puede proporcionar ayuda para personalizar asignaciones de atributos ni configurar expresiones personalizadas. Puedes ponerte en contacto con tu IdP si tienes alguna duda.

Resolución de problemas de nombre de usuario con Entra ID

Para resolver problemas de nombre de usuario en Entra ID, modifica el valor de nombre principal del usuario en conflicto o la asignación de atributos para el atributo userName. Si modificas la asignación de atributos, puedes elegir un atributo existente o usar una expresión para asegurarte de que todos los usuarios aprovisionados tengan un alias normalizado único.

  1. En Entra ID, abre la aplicación GitHub Enterprise Managed User.
  2. En la barra lateral de la izquierda, haz clic en Aprovisionamiento.
  3. Haz clic en Editar aprovisionamiento.
  4. Expande Asignaciones y, después, haz clic en Aprovisionar usuarios de Entra ID.
  5. Haz clic en la asignación del atributo userName de GitHub.
  6. Cambia la asignación de atributos.
    • Para asignar un atributo existente en Entra ID al atributo userName en GitHub, haz clic en el campo de atributo deseado. Después, guarda y espera a que se produzca un ciclo de aprovisionamiento, en un plazo de unos 40 minutos.
    • Para usar una expresión en lugar de un atributo existente, cambia el tipo de asignación a "Expresión" y agrega una expresión personalizada que haga que este valor sea único para todos los usuarios. Por ejemplo, podrías usar [FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]. Para más información, consulta Referencia para escribir expresiones para la asignación de atributos en Microsoft Entra ID en Microsoft Learn.

Resolución de problemas de nombre de usuario con Okta

Para resolver problemas de nombre de usuario en Okta, actualiza la configuración de asignación de atributos para la aplicación GitHub Enterprise Managed User.

  1. En Okta, abre la aplicación GitHub Enterprise Managed User.
  2. Haga clic en Sign on (Iniciar sesión).
  3. En la sección "Configuración", haz clic en Editar.
  4. Actualiza el "Formato de nombre de usuario de la aplicación".