Skip to main content

Esta versión de GitHub Enterprise se discontinuará el 2023-01-18. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Autenticación SAML

Si usas el inicio de sesión único (SSO) de SAML y los usuarios no pueden autenticarse para acceder a your GitHub Enterprise Server instance, puedes solucionar el problema.

Acerca de los problemas con la autenticación SAML

GitHub Enterprise Server registra mensajes de error para la autenticación de SAML con errores en el registro de autenticación en /var/log/github/auth.log. Puedes revisar las respuestas en este archivo de registro, así como configurar un registro más detallado.

Para obtener más información sobre los requisitos de respuesta de SAML, consulta "Referencia de configuración de SAML".

Configurar la depuración de SAML

Puede configurar GitHub Enterprise Server a fin de escribir registros detallados de depuración en /var/log/github/auth.log para cada intento de autenticación de SAML. Es posible que puedas solucionar los problemas de los intentos de autenticación fallidos con esta salida adicional.

Advertencias:

  • Habilita la depuración de SAML solo temporalmente e inhabilita la depuración inmediatamente después de que termines de solucionar los problemas. Si dejas habilitada la depuración, el tamaño de tu bitácora podría incrementarse mucho más rápido de lo habitual, lo cual podría impactar negativamente el rendimiento de GitHub Enterprise Server.
  • Prueba la configuración de autenticación nueva de your GitHub Enterprise Server instance en un entorno de ensayo antes de aplicarla en el entorno de producción. Para más información, vea "Configuración de una instancia de ensayo".
  1. En la esquina superior derecha de GitHub Enterprise Server, haga clic en la foto de perfil y luego en Configuración de empresa. "Configuración de empresa" en el menú desplegable de la foto de perfil de GitHub Enterprise Server 1. En la barra lateral de la empresa, haz clic en Directivas. Pestaña Directivas en la barra lateral de la cuenta de empresa 1. En Directivas, haga clic en Opciones. Pestaña Opciones en la barra lateral de configuración de la cuenta de empresa

  2. En "SAML debugging" (Depuración de SAML), seleccione la lista desplegable y haga clic en Enabled (Habilitado).

    Captura de pantalla del menú desplegable para habilitar la depuración de SAML

  3. Intenta iniciar sesión en your GitHub Enterprise Server instance mediante tu IdP de SAML.

  4. Revisa la salida de depuración en /var/log/github/auth.log en your GitHub Enterprise Server instance.

  5. Cuando haya terminado de solucionar problemas, seleccione la lista desplegable y haga clic en Disabled (Deshabilitado).

    Captura de pantalla del menú desplegable para inhabilitar la depuración de SAML

Descodificación de respuestas en auth.log

Algunos resultados de auth.log pueden estar codificados en Base64. Puedes acceder al shell administrativo y utilizar la utilidad de base64 en your GitHub Enterprise Server instance para descodificar estas respuestas. Para obtener más información, consulte "Acceso al shell administrativo (SSH)".

$ base64 --decode ENCODED_OUTPUT

Error: "Another user already owns the account"

Cuando un usuario inicia sesión en your GitHub Enterprise Server instance por primera vez con la autenticación de SAML, GitHub Enterprise Server crea una cuenta de usuario en la instancia y asigna el elemento NameID de SAML a la cuenta.

Cuando el usuario vuelve a iniciar sesión, GitHub Enterprise Server compara la asignación de NameID de la cuenta con la respuesta del IdP. Si elemento NameID de la respuesta del IdP ya no coincide con el elemento NameID que GitHub Enterprise Server espera para el usuario, se producirá un error en el inicio de sesión. El usuario verá el siguiente mensaje.

Another user already owns the account. Please have your administrator check the authentication log.

Este mensaje habitualmente indica que el nombre de usuario o dirección de correo electrónico cambió en el IdP. Asegúrese de que la asignación NameID de la cuenta de usuario en GitHub Enterprise Server coincide con el elemento NameID del usuario en el IdP. Para más información, vea "Actualizar el NameID del SAML de un usuario".

Si la respuesta SAML no está firmada o la firma no coincide con los contenidos, se presentará el siguiente mensaje de error en el registro de autenticación:

Si Recipient no coincide con la URL de ACS para your GitHub Enterprise Server instance, cuando un usuario intente autenticarse aparecerá uno de los dos mensajes de error siguientes.

Recipient in the SAML response must not be blank.
Recipient in the SAML response was not valid.

Asegúrate de establecer el valor de Recipient en el IdP en la URL completa de ACS para your GitHub Enterprise Server instance. Por ejemplo, https://ghe.corp.example.com/saml/consume.

Error: "SAML Response is not signed or has been modified"

Si tu IdP no firma la respuesta de SAML, o si la firma no empata con el contenido, se mostrará el siguiente mensaje de error en la bitácora de autenticación.

SAML Response is not signed or has been modified.

Asegúrate de configurar aserciones firmadas para la aplicación de GitHub Enterprise Server en tu IdP.

Error: "Audience is invalid" or "No assertion found"

Si la respuesta del IdP tiene un valor que falta o que es incorrecto Audience, se mostrará el mensaje de error siguiente en el registro de autenticación.

Audience is invalid. Audience attribute does not match https://<em>YOUR-INSTANCE-URL</em>

Asegúrate de establecer el valor de Audience del IdP en EntityId para your GitHub Enterprise Server instance, que es la dirección URL completa de la instancia. Por ejemplo, https://ghe.corp.example.com.

Error: "La hora actual es anterior a la condición NotBefore"

Este error puede producirse cuando hay una diferencia de tiempo demasiado grande entre el IdP y GitHub Enterprise Server, lo que suele ocurrir con IdP auto hospedados.

Para evitar este problema, se recomienda apuntar el dispositivo al mismo origen del Protocolo de tiempo de red (NTP) que el IdP, si es posible. Si te aparece este error, asegúrate de que la hora del appliance esté sincronizada correctamente con el servidor NTP.

Si se usa ADFS como idP, también se establece NotBeforeSkew en ADFS en 1 minuto para GitHub. Si NotBeforeSkew se establece en 0, hasta diferencias de tiempo muy pequeñas, incluidos milisegundos, puede causar problemas de autenticación.