Skip to main content

Solución de problemas de administración de acceso e identidad para la organización

Revisa y resuelve los errores comunes de las soluciones de problemas para administrar el SSO de SAML de tu organización, la sincronización de equipos o la conexión con el proveedor de identidad (IdP).

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 Cloud, lo que suele ocurrir con IdP auto hospedados.

Si te aparece este error, asegúrate de que la hora del IdP 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.

Los usuarios se redirigen repetidamente para autenticarse

Si los usuarios se redirigen repetidamente al símbolo del sistema de autenticación de SAML en un bucle, es posible que tenga que aumentar la duración de la sesión de SAML en la configuración de IdP.

El valor SessionNotOnOrAfter enviado en una respuesta SAML determina cuándo se redirigirá un usuario de nuevo al IdP para autenticarse. Si se configura una duración de sesión de SAML de 2 horas o menos, GitHub actualizará una sesión de SAML 5 minutos antes de que expire. Si la duración de la sesión está configurada como 5 minutos o menos, los usuarios pueden quedarse bloqueados en un bucle de autenticación SAML.

Para solucionar este problema, se recomienda configurar una duración mínima de la sesión de SAML de 4 horas. Para obtener más información, vea «Referencia de configuración de SAML».

Algunos usuarios no están aprovisionados o desaprovisionados por SCIM

Cuando encuentras problemas de aprovisionamiento con los usuarios, te recomendamos que verifiques si estos no tienen metadatos de SCIM.

Si el aprovisionamiento de SCIM se implementa para su organización, los cambios en la pertenencia a la organización de un usuario se deben desencadenar desde el proveedor de identidades. Si se invita a un usuario manualmente a una organización en lugar de mediante una integración de SCIM existente, es posible que su cuenta de usuario no se vincule correctamente a su identidad de SCIM. Esto puede impedir que la cuenta de usuario se desaprovisione a través de SCIM en el futuro. Si un usuario se quita manualmente en lugar de mediante una integración de SCIM existente, permanecerá una identidad vinculada obsoleta, lo que puede provocar problemas si el usuario necesita volver a unirse a la organización.

Si a un miembro de la organización el faltan metadatos de SCIM, entonces puedes volver a aprovisionar el SCIM para este de forma manual mediante tu IdP.

Auditar usarios para los metadatos perdidos de SCIM

Si sospechas o notas que cualquier usuario no se aprovisionó o desaprovisionó como lo esperabas, te recomendamos que audites a todos los usuarios de tu organización.

Para comprobar si los usuarios tienen una identidad de SCIM (metadatos de SCIM) en su identidad externa, puedes revisar los metadatos de SCIM para un miembro de la organización por vez en GitHub o puedes revisar mediante programación a todos los miembros utilizando la API de GitHub.

Cuando el IdP envía una llamada de aprovisionamiento a la API SCIM de GitHub, el SCIM userName de esa llamada API debe coincidir con la SAML nameID almacenada en la identidad de SAML vinculada del usuario en la organización. Si estos dos valores no coinciden, los metadatos de SCIM no se rellenarán y la identidad de SCIM no se vinculará correctamente. Para comprobar si estos valores coinciden, use la API de GitHub.

Auditar a los miembros de tu organización en GitHub

Como propietario de la organización, para confirmar que existen metadatos de SCIM para un único miembro de la organización, visita esta dirección URL, reemplazando <organization> y <username>:

https://github.com/orgs/<organization>/people/<username>/sso

Si la identidad externa del usuario incluye metadatos de SCIM, el propietario de la organización debería ver una sección de identidad de SCIM en esa página. Si su identidad externa no incluye cualquier metadato de SCIM, la sección de identidad de SCIM no existirá.

Auditar a los miembros de la organización mediante la API de GitHub

Como propietario de la organización, también puedes consultar la API de REST de SCIM o GraphQL para que listen todas las identidades de SCIM aprovisionadas en una organización.

Mediante la API de REST

La API de REST de SCIM solo devolverá datos para los usuarios que tengan metadatos de SCIM ya llenos en sus identidades externas. Te recomendamos comparar una lista de identidades aprovisionadas de SCIM con una lista de todos tus miembros organizacionales.

Para más información, consulte:

Utilizar GraphQL

Esta consulta de GraphQL muestra el NameId de SAML, el UserName de SCIM y el nombre de usuario de GitHub (login) de cada usuario en la organización. Para usar esta consulta, reemplaza ORG por el nombre de la organización.

{
  organization(login: "ORG") {
    samlIdentityProvider {
      ssoUrl
      externalIdentities(first: 100) {
        edges {
          node {
            samlIdentity {
              nameId
            }
            scimIdentity {
              username
            }
            user {
              login
            }
          }
        }
      }
    }
  }
}
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" -d '{ "query": "{ organization(login: \"ORG\") { samlIdentityProvider { externalIdentities(first: 100) { pageInfo { endCursor startCursor hasNextPage } edges { cursor node { samlIdentity { nameId } scimIdentity {username}  user { login } } } } } } }" }'  https://api.github.com/graphql

Para obtener más información sobre cómo utilizar la API de GraphQL, consulta:

Volver a aprovisionar SCIM para los usuarios mediante tu proveedor de identidad

Puedes volver a aprovisionar SCIM para los usuarios manualmente a través de tu IdP. Por ejemplo, para resolver los errores de aprovisionamiento para Okta, en el portal de administración de Okta, puedes desasignar y reasignar usuarios a la app de GitHub. Esto debería activar a Okta para hacer una llamada a la API para llenar los metadatos de SCIM para estos usuarios en GitHub. Para obtener más información, consulta "Cancelar la asignación de usuarios de aplicaciones" o "Asignar usuarios a aplicaciones" en la documentación de Okta.

Para confirmar que la identidad de SCIM de un usuario se creó, te recomendamos probar este proceso con un solo miembro organizacional de quien hayas confirmado que no existe una identidad externa de SCIM. Después de actualizar los usuarios manualmente en tu IdP, puedes verificar si la identidad de SCIM del usuario se creó utilizando la API de SCIM o en GitHub. Para obtener más información, consulta "Auditar usuarios para los metadatos perdidos de SCIM" o "Puntos de conexión de API de REST para SCIM".

Si volver a aprovisionar el SCIM para los usuarios no funciona, por favor, contacta al Soporte de GitHub.

Información adicional