Erreur : « L’heure actuelle est antérieure à la condition NotBefore »
Cette erreur peut se produire lorsqu’il y a une trop grande différence de temps entre votre fournisseur d’identité et GitHub Enterprise Cloud, ce qui arrive souvent avec les fournisseurs d’identité auto-hébergés.
Si vous rencontrez cette erreur, assurez-vous que l’heure de votre fournisseur d’identité est correctement synchronisée avec votre serveur NTP.
Si vous utilisez ADFS comme fournisseur d’identité, définissez également NotBeforeSkew
dans ADFS sur 1 minute pour GitHub. Si NotBeforeSkew
est défini sur 0, même les différences de temps très petites, y compris de l’ordre de la milliseconde, peuvent entraîner des problèmes d’authentification.
Les utilisateurs sont redirigés à plusieurs reprises pour s’authentifier
Si les utilisateurs sont redirigés à plusieurs reprises vers l’invite d’authentification SAML dans une boucle, il peut être nécessaire d’augmenter la durée de la session SAML dans vos paramètres de fournisseur d’identité.
La valeur SessionNotOnOrAfter
envoyée dans une réponse SAML détermine quand un utilisateur est redirigé vers le fournisseur d’identité pour s’authentifier. Si une durée de session SAML est configurée pour 2 heures ou moins, GitHub va actualiser une session SAML 5 minutes avant son expiration. Si la durée de votre session est configurée pour 5 minutes ou moins, les utilisateurs peuvent être bloqués dans une boucle d’authentification SAML.
Pour résoudre ce problème, nous vous recommandons de configurer une durée minimale de session SAML de 4 heures. Pour plus d’informations, consultez « Référence de configuration SAML ».
Certains utilisateurs ne sont pas approvisionnés ni déprovisionnés par SCIM
Lorsque vous rencontrez des problèmes d’approvisionnement avec les utilisateurs, nous vous recommandons de vérifier si les utilisateurs ne disposent pas de métadonnées SCIM.
Si l’approvisionnement de SCIM est implémenté pour votre organisation, toutes les modifications apportées à l’appartenance à l’organisation d’un utilisateur devraient être déclenchées à partir du fournisseur d’identité. Si un utilisateur est invité à une organisation manuellement plutôt que par une intégration de SCIM existante, il se peut que son compte d’utilisateur ne soit pas correctement lié à son identité SCIM. Cela peut empêcher le déprovisionnement du compte d’utilisateur via SCIM à l’avenir. Si un utilisateur est supprimé manuellement plutôt que par une intégration SCIM existante, une identité liée obsolète subsiste, qui peut occasionner des problèmes si l’utilisateur a besoin de rejoindre à nouveau l’organisation.
Si un membre de l’organisation a des métadonnées SCIM manquantes, vous pouvez reprovisionner SCIM pour l’utilisateur manuellement via votre fournisseur d’identité.
Audit des utilisateurs pour les métadonnées SCIM manquantes
Si vous soupçonnez ou remarquez que tous les utilisateurs ne sont pas approvisionnés ou déprovisionnés comme prévu, nous vous recommandons d’auditer tous les utilisateurs de votre organisation.
Pour vérifier si les utilisateurs ont une identité SCIM (métadonnées SCIM) dans leur identité externe, vous pouvez consulter les métadonnées SCIM d’un membre de l’organisation à la fois sur GitHub ou vérifier programmatiquement tous les membres de l’organisation à l’aide de l’API GitHub.
Lorsque le fournisseur d’identité envoie un appel de provisionnement à l’API SCIM GitHub, le SCIM userName
dans cet appel d’API doit correspondre au nameID
SAML stocké dans l’identité SAML associée de l’utilisateur dans l’organisation. Si ces deux valeurs ne correspondent pas, les métadonnées SCIM ne sont pas renseignées et l’identité SCIM n’est pas correctement associée. Pour vérifier si ces valeurs correspondent, utilisez l’API GitHub.
Audit des membres de l’organisation sur GitHub
En tant que propriétaire de l’organisation, pour vérifier que les métadonnées SCIM existent pour un seul membre de l’organisation, visitez cette URL, en remplaçant <organization>
et <username>
:
https://github.com/orgs/<organization>/people/<username>/sso
Si l’identité externe de l’utilisateur inclut des métadonnées SCIM, le propriétaire de l’organisation doit voir une section d’identité SCIM sur cette page. Si leur identité externe n’inclut pas de métadonnées SCIM, la section Identité SCIM n’existe pas.
Audit des membres de l’organisation sur l’API GitHub
En tant que propriétaire de l’organisation, vous pouvez également interroger l’API REST SCIM ou GraphQL pour répertorier toutes les identités approvisionnées SCIM dans une organisation.
En utilisant l’API REST
L’API REST SCIM retourne uniquement des données pour les utilisateurs dont les métadonnées SCIM sont remplies sous leurs identités externes. Nous vous recommandons de comparer une liste d’identités approvisionnées par SCIM à une liste de tous les membres de votre organisation.
Pour plus d’informations, consultez l’article suivant :
- Points de terminaison d’API REST pour SCIM
- Points de terminaison d’API REST pour les membres de l’organisation
Utilisation de GraphQL
Cette requête GraphQL vous montre le SAML NameId
, le SCIM UserName
et le nom d’utilisateur GitHub nom d’utilisateur (login
) pour chaque utilisateur de l’organisation. Pour utiliser cette requête, remplacez ORG
par le nom de votre organisation.
{
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
Pour plus d’informations sur l’utilisation de l’API GraphQL, consultez :
Réapprovisionnement de SCIM pour les utilisateurs via votre fournisseur d’identité
Vous pouvez reprovisionner SCIM pour les utilisateurs manuellement via votre fournisseur d’identité. Par exemple, pour résoudre les erreurs d’approvisionnement pour Okta, dans le portail d’administration Okta, vous pouvez annuler l’affectation et réaffecter des utilisateurs à l’application GitHub. Cela doit déclencher Okta pour effectuer un appel d’API afin de remplir les métadonnées SCIM pour ces utilisateurs sur GitHub. Pour plus d’informations, consultez Annuler l’affectation d’utilisateurs à partir d’applications ou Affecter des utilisateurs à des applications dans la documentation Okta.
Pour vérifier que l’identité SCIM d’un utilisateur est créée, nous vous recommandons de tester ce processus avec un seul membre de l’organisation que vous avez confirmé qui n’a pas d’identité externe SCIM. Après avoir mis à jour manuellement les utilisateurs dans votre fournisseur d’identité, vous pouvez vérifier si l’identité SCIM de l’utilisateur a été créée à l’aide de l’API SCIM ou sur GitHub. Pour plus d’informations, consultez Audit des utilisateurs pour les métadonnées SCIM manquantes ou Points de terminaison d’API REST pour SCIM.
Si la reprovisionnement de SCIM pour les utilisateurs n’est pas utile, contactez le support technique GitHub.