Skip to main content

Autenticación SAML

If you use SAML single sign-on (SSO) and people are unable to authenticate to access tu instancia de GitHub Enterprise Server, you can troubleshoot the problem.

About problems with SAML authentication

GitHub Enterprise Server logs error messages for failed SAML authentication in the authentication log at /var/log/github/auth.log. You can review responses in this log file, and you can also configure more verbose logging.

For more information about SAML response requirements, see "SAML configuration reference."

Configurar la depuración de SAML

Puedes configurar GitHub Enterprise Server para escribir bitácoras de depuración verbosas 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 los ajustes de autenticación nuevos de tu instancia de GitHub Enterprise Server en un ambiente de pruebas antes de aplicar los ajustes en tu ambiente de producción. Para obtener más información, consulta "Configurar una instancia de preparación."
  1. En la esquina superior derecha de GitHub Enterprise Server, da clic en tu foto de perfil y luego en Configuración de empresa. "Configuración de empresa" en el menú desplegable de la foto de perfil en GitHub Enterprise Server

  2. En la barra lateral de la cuenta de empresa, haz clic en Policies (Políticas). Pestaña Policies (Políticas) en la barra lateral de la cuenta de empresa

  3. Debajo de Políticas, da clic en Opciones. Pestaña Options (Opciones) en la barra lateral de parámetros de la cuenta de empresa

  4. Debajo de "depuración de SAML", selecciona el menú desplegable y haz clic en Habilitado.

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

  5. Intenta iniciar sesión en tu instancia de GitHub Enterprise Server mediante tu IdP de SAML.

  6. Revisa la salida de depuración en /var/log/github/auth.log en tu instancia de GitHub Enterprise Server.

  7. Cuando termines de solucionar los problemas, selecciona el menú desplegable y haz clic en Inhabilitado.

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

Decodificar respuestas en auth.log

Alguna salida en auth.log podría estar cifrada en Base64. Puedes acceder al shell administrativo y utilizar la utilidad de base64 en tu instancia de GitHub Enterprise Server para decodificar estas respuestas. Para obtener más información, consulta "Acceder al shell administrativo (SSH)".

$ base64 --decode ENCODED OUTPUT

Error: "Another user already owns the account"

When a user signs into tu instancia de GitHub Enterprise Server for the first time with SAML authentication, GitHub Enterprise Server creates a user account on the instance and maps the SAML NameID to the account.

Cuando el usuario vuelve a ingresar, GitHub Enterprise Server compara el mapeo de la NameID de la cuenta con la respuesta del IdP. Si la NameID en la respuesta del IdP ya no empata con la NameID que GitHub Enterprise Server espera para el usuario, el inicio de sesión fallará. 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úrate de que el mapeo de la NameID de la cuenta de usuario de GitHub Enterprise Server coincida con la NameID en tu IdP. Para obtener más información, consulta la sección "Actualizar la NameID de 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 el Recipient no empata con la URL de ACS para tu instancia de GitHub Enterprise Server, uno de los siguientes dos mensajes de error se mostrará en la bitácora de autenticación cuando un usuario intenta autenticarse.

El destinatario en la respuesta SAML no debe estar en blanco.
El destinatario en la respuesta SAML no era válido.

Asegúrate de que hayas configurado el valor de Recipient en tu IdP en la URL completa de ACS para tu instancia de GitHub Enterprise Server. 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 haber configurado 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 carece o tiene un valor incorrecto para Audience, se mostrará el siguiente mensaje de error en la bitácora de autenticación.

La audiencia es no válida. Audience attribute does not match https://<em>YOUR-INSTANCE-URL</em>

Ensure that you set the value for Audience on your IdP to the EntityId for tu instancia de GitHub Enterprise Server, which is the full URL to your instance. Por ejemplo, https://ghe.corp.example.com.

Error: "Current time is earlier than NotBefore condition"

This error can occur when there's too large of a time difference between your IdP and GitHub Enterprise Server, which commonly occurs with self-hosted IdPs.

To prevent this problem, we recommend pointing your appliance to the same Network Time Protocol (NTP) source as your IdP, if possible. If you encounter this error, make sure the time on your appliance is properly synced with your NTP server.

If you use ADFS as your IdP, also set NotBeforeSkew in ADFS to 1 minute for GitHub. If NotBeforeSkew is set to 0, even very small time differences, including milliseconds, can cause authentication problems.