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 más información, consulta Acerca de Enterprise Managed Users y Aspectos básicos de la administración de identidades y acceso.
GitHub crea automáticamente un nombre de usuario para cada persona cuando se aprovisiona su cuenta de usuario a través de SCIM.
- Para crear el nombre de usuario, GitHub normaliza un identificador proporcionado por el proveedor de identidades.
- En GitHub.com, GitHub también agrega un carácter de subrayado y el código corto de la empresa al final de cada nombre de usuario.
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.
Solamente los correos electrónicos dentro de la empresa pueden entrar en conflicto.
Acerca de los códigos cortos para cuentas de usuario administradas
Cada empresa que usa cuentas de usuario administradas está asociada a un código corto, que es una cadena alfanumérica de entre tres y ocho caracteres.
Códigos cortos en GitHub.com
Al crear una empresa con usuarios administrados en GitHub.com, eliges un código corto que se usará como sufijo para todos los nombres de usuario de los miembros de la empresa.
- El código corto debe ser único para tu empresa y no contener caracteres especiales.
- Elígelo con cuidado, ya que una vez creada tu empresa con usuarios administrados, no es posible modificar el código corto.
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. Por ejemplo, si el código corto de la empresa es "octo", el usuario de configuración será "octo_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 (por ejemplo, "mona-cat_octo").
Códigos cortos en GHE.com
Si usas Nube de GitHub Enterprise con residencia de datos, al crear una empresa con usuarios administrados en GHE.com, el código abreviado de tu empresa se genera aleatoriamente.
- En el caso de cuentas de usuario administradas con diferente residencia, el código corto está oculto, pero todavía se anexa como sufijo a los nombres de usuario de los usuarios aprovisionados.
- El único lugar en el que es probable que veas el código corto es en el nombre de usuario del administrador de configuración, que será parecido a:
2abvd19d_admin.
Nota:
Debido a la inclusión del código corto oculto, el límite de caracteres para los nombres de usuario se reduce de 39 a 30 caracteres para Nube de GitHub Enterprise con residencia de datos.
Acerca de los nombres de usuario normalizados
Los nombres de usuario se forman con la normalización del valor del atributo userName de SCIM que se envía desde el IdP.
| Proveedor de identidades | Nombre de usuario para 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. |
| Okta | IDP-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.combob@fabrikam.combob#EXT#fabrikamcom@contoso.combob_example#EXT#fabrikamcom@contoso.combob_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 en GitHub solo pueden contener caracteres alfanuméricos y guiones (-).
Al configurar la autenticación SAML, GitHub 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. Si este valor incluye caracteres no admitidos, GitHub normalizará el nombre de usuario según las reglas siguientes.
-
GitHub normalizará cualquier carácter no alfanumérico del nombre de usuario de su cuenta en un guion. Por ejemplo, un nombre de usuario de
mona.the.octocatse normalizará enmona-the-octocat. Nota que los nombres de usuarios normalizados tampoco pueden comenzar o terminar con una raya. Tampoco pueden contener dos rayas seguidas. -
El uso de mayúsculas y minúsculas en el valor proporcionado por el IdP se conserva en el nombre de usuario normalizado.
-
Los nombres de usuario creados a partir de direcciones de correo electrónico se crean con los caracteres normalizados que preceden al carácter
@. -
Los nombres de usuario creados a partir de cuentas de dominio se crean a partir de los caracteres normalizados después del separador
\\. -
Si se normalizan varias cuentas en el mismo nombre de usuario, solo se creará 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 proveedor | Nombre de usuario normalizado en GitHub.com | Resultado |
|---|---|---|
| The.Octocat | The-Octocat_SHORT-CODE | El nombre de usuario se ha creado con éxito. |
| !The.Octocat | -The-Octocat_SHORT-CODE | No se crea este nombre de usuario debido a que comienza con una raya. |
| The!!Octocat | The--Octocat_SHORT-CODE | No se crea este nombre de usuario debido a que contiene dos rayas seguidas. |
| The!Octocat | The-Octocat_SHORT-CODE | No se crea este nombre de usuario. A pesar de que el nombre de usuario normalizado es válido, ya existía. |
The.Octocat@example.com | The-Octocat_SHORT-CODE | No se crea este nombre de usuario. A pesar de que el nombre de usuario normalizado es válido, ya existía. |
internal\\The.Octocat | The-Octocat_SHORT-CODE | No 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.com | mona-lisa-the-octocat-from-github-united-states_SHORT-CODE | Este 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 entra en conflicto con un usuario existente en la empresa, se producirá un error 409 en el intento de aprovisionamiento. Si el nombre de usuario tiene más de 39 caracteres (incluido el carácter de subrayado y el código corto), el intento de aprovisionamiento producirá un error 400. Para obtener una lista completa de los posibles códigos de estado de aprovisionamiento de usuarios, consulta Puntos de conexión de API de REST para SCIM.
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
userNamepara usuarios individuales que están causando problemas - Cambiar la asignación de atributos
userNamepara todos los usuarios - Configurar un atributo
userNamepersonalizado 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.
- En Entra ID, abre la aplicación GitHub Enterprise Managed User.
- En la barra lateral de la izquierda, haz clic en Aprovisionamiento.
- Haz clic en Editar aprovisionamiento.
- Expande Asignaciones y, después, haz clic en Aprovisionar usuarios de Entra ID.
- Haz clic en la asignación del atributo
userNamede GitHub. - Cambia la asignación de atributos.
- Para asignar un atributo existente en Entra ID al atributo
userNameen 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 obtener más información, vea Reference para escribir expresiones para asignaciones de atributos en Microsoft Entra ID en Microsoft Learn.
- Para asignar un atributo existente en Entra ID al atributo
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.
- En Okta, abre la aplicación GitHub Enterprise Managed User.
- Haga clic en Sign on (Iniciar sesión).
- En la sección "Configuración", haz clic en Editar.
- Actualiza el "Formato de nombre de usuario de la aplicación".