Skip to main content

Solución de problemas de autenticación SAML

Si usa el inicio de sesión único (SSO) con SAML y los usuarios no pueden autenticarse para acceder a GitHub, puede solucionar el problema.

Acerca de los problemas con la autenticación SAML

GitHub Enterprise Server registra mensajes de error de los fallos de autenticación SAML en el diario de systemd para el contenedor github-unicorn. Puedes revisar las respuestas en este 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 para escribir registros de depuración detallados 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.

Advertencia

  • Habilita la depuración de SAML solo temporalmente e inhabilita la depuración inmediatamente después de que termines de solucionar los problemas. Si deja habilitada la depuración, el tamaño de los registros aumenta mucho más rápido de lo habitual, lo que puede afectar negativamente al rendimiento de GitHub Enterprise Server.
  • Pruebe la nueva configuración de autenticación para tu instancia de GitHub Enterprise Server en un entorno de ensayo antes de aplicar la configuración en el entorno de producción. Para más información, consulta Configurar una instancia de preparación.
  1. En la esquina superior derecha de GitHub Enterprise Server, haz clic en la foto de perfil y luego en Enterprise settings.

  2. En la parte superior de la página, haga clic en Directivas.

  3. En Policies, haz clic en Opciones.

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

  5. Intente iniciar sesión en tu instancia de GitHub Enterprise Server a través del IdP de SAML.

  6. Revise la salida de depuración en el systemd registro para github-unicorn en tu instancia de GitHub Enterprise Server. Para más información, consulta Acerca de los registros del sistema.

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

Descodificación de respuestas

Algunos resultados en el diario de systemd para github-unicorn podrían estar codificados en Base64. Puede acceder a la consola administrativa y usar la utilidad base64 en tu instancia de GitHub Enterprise Server para decodificar estas respuestas. Para más información, consulta Acceder al shell administrativo (SSH).

Para descodificar la salida, ejecuta el comando siguiente, reemplazando ENCODED_OUTPUT por la salida codificada del registro.

base64 --decode ENCODED_OUTPUT

Error: "Otro usuario ya posee la cuenta"

Cuando un usuario inicia sesión en tu instancia de GitHub Enterprise Server por primera vez con la autenticación SAML, GitHub crea una cuenta de usuario en la instancia y asocia el NameID y el nameid-format de SAML con la cuenta.

Cuando el usuario vuelve a iniciar sesión, GitHub Enterprise Server compara el NameID y la asignación de nameid-format de la cuenta con la respuesta del IdP. Si el NameID o nameid-format de la respuesta del IdP ya no coincide con los valores que GitHub espera para el usuario, el inicio de sesión fallará. El usuario verá el siguiente mensaje.

Otro usuario ya posee la cuenta. Haga que el administrador compruebe el registro de autenticación.

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 de NameID y nameid-format de la cuenta de usuario en GitHub Enterprise Server coincida con los valores de NameID y nameid-format del usuario en su IdP. Para más información, consulta Actualización de NameID de SAML de un usuario.

Error: El destinatario en la respuesta SAML estaba en blanco o no era válido

Recipient Si no coincide con la dirección URL de ACS para tu instancia de GitHub Enterprise Server, uno de los dos mensajes de error siguientes aparecerá en el registro de autenticación cuando un usuario intente autenticarse.

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

Asegúrese de establecer el valor de Recipient en el IdP en la dirección URL completa de ACS para tu instancia de GitHub Enterprise Server. Por ejemplo: https://ghe.corp.example.com/saml/consume.

Error: "La respuesta SAML no está firmada o se ha modificado"

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úrese de configurar aserciones firmadas para la aplicación GitHub en su IdP.

Error: "Audiencia no es válida" o "No se encontró ninguna aserción"

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://YOUR-INSTANCE-URL

Asegúrese de establecer en su IdP el valor de Audience en EntityId para tu instancia de GitHub Enterprise Server, que es la URL completa de su 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, 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. Puedes utilizar el comando chronyc en el shell administrativo para sincronizar la hora de inmediato. Para más información, consulta Configuración de la sincronización de la hora.

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.

Error: "error: la validación de SAML actualizada ha devuelto un resultado no válido"

Este error puede producirse en la versión 3.17.0 o posterior de tu instancia de GitHub Enterprise Server. Indica que GitHub no puede procesar correctamente la respuesta SAML que recibió del proveedor de identidades. Abra una GitHub incidencia de soporte técnico para que los GitHub equipos de soporte técnico e ingeniería puedan investigar y solucionar el problema.

Error: el resumen no coincide

Un error de "incompatibilidad de resumen" indica que su IdP de SAML está usando un certificado de firma SAML distinto del que ha cargado en GitHub, o bien que el Método de firma o el Método de resumen configurado en GitHub es distinto del que utiliza su IdP.

Vuelva a descargar este certificado SAML desde el IdP y validelo mediante una herramienta en línea, como la herramienta Format a x509 cert de OneLogin. A continuación, vuelva a cargar el certificado SAML en la sección "Autenticación" de GitHub Enterprise Server la consola de administración. Consulte Administrar la instancia desde la interfaz del usuario web.