Acerca de los problemas con la autenticación SAML
GitHub Enterprise Server registra mensajes de error de autenticación SAML no completada en registro de autenticación en /var/log/github/auth.log. Puedes revisar las respuestas en este archivo de registro, y también puedes 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
Puedes configurar GitHub Enterprise Server a fin de escribir registros detallados de depuración en 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 del archivo de registro aumenta mucho más rápido de lo habitual, lo que puede afectar negativamente al rendimiento de GitHub Enterprise Server.
- Prueba la configuración de autenticación nueva de tu instancia de GitHub Enterprise Server en un entorno de ensayo antes de aplicarla en el entorno de producción. Para obtener más información, vea «Configurar una instancia de preparación».
-
En la esquina superior derecha de GitHub Enterprise Server, haga clic en la foto de perfil y luego en Configuración de empresa.
-
En la barra lateral de la cuenta de empresa, haz clic en Directivas.
-
En Directivas, haga clic en Opciones.
-
En "SAML debugging" (Depuración de SAML), seleccione la lista desplegable y haga clic en Enabled (Habilitado).
-
Intenta iniciar sesión en tu instancia de GitHub Enterprise Server mediante tu IdP de SAML.
-
Revisa la salida de depuración en /var/log/github/auth.log en tu instancia de GitHub Enterprise Server.
-
Cuando haya terminado de solucionar problemas, seleccione la lista desplegable y haga clic en Disabled (Deshabilitado).
Descodificación de respuestas
Algunos resultados de /var/log/github/auth.log pueden estar codificados en Base64. Puedes acceder al shell administrativo y utilizar la utilidad de base64
en tu instancia de GitHub Enterprise Server para descodificar estas respuestas. Para obtener más información, vea «Acceder al shell administrativo (SSH)».
base64 --decode ENCODED_OUTPUT
Error: "Another user already owns the account"
Cuando un usuario inicia sesión en tu instancia de GitHub Enterprise Server por primera vez con la autenticación SAML, GitHub Enterprise Server crea una cuenta de usuario en la instancia y asigna los elementos NameID
y nameid-format
de SAML a la cuenta.
Cuando el usuario vuelve a iniciar sesión, GitHub Enterprise Server compara la asignación de NameID
y nameid-format
de la cuenta con la respuesta del IdP. Si elemento NameID
o nameid-format
de la respuesta del IdP ya no coinciden con los valores que espera GitHub Enterprise Server 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 de NameID
y nameid-format
de la cuenta de usuario en GitHub Enterprise Server coincida con los elementos NameID
y nameid-format
del usuario en el IdP. Para obtener más información, vea «Actualización de 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 Recipient
no coincide con la URL de ACS para tu instancia de GitHub Enterprise Server, 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 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 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://YOUR-INSTANCE-URL
Asegúrate de establecer el valor de Audience
del IdP en EntityId
para tu instancia de GitHub Enterprise Server, 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.