Fehler: „Current time is earlier than NotBefore condition“ (Aktuelle Zeit liegt vor notBefore-Bedingung)
Dieser Fehler kann auftreten, wenn der Zeitunterschiede zwischen deinem IdP und GitHub Enterprise Cloud zu groß ist, was bei selbstgehosteten IdPs häufig vorkommt.
Wenn dieser Fehler auftritt, achte darauf, dass die Zeit auf deinem IdP ordnungsgemäß mit deinem NTP-Server synchronisiert wird.
Wenn du ADFS als IdP verwendest, lege außerdem NotBeforeSkew
in ADFS für GitHub auf 1 Minute fest. Wenn NotBeforeSkew
auf 0 festgelegt ist, können selbst sehr kleine Zeitunterschiede, einschließlich Millisekunden, Authentifizierungsprobleme verursachen.
Benutzer werden wiederholt zur Authentifizierung umgeleitet
Wenn Benutzer wiederholt in einer Schleife zur SAML-Authentifizierungsaufforderung umgeleitet werden, musst du möglicherweise die SAML-Sitzungsdauer in deinen IdP-Einstellungen erhöhen.
Der in einer SAML-Antwort gesendete SessionNotOnOrAfter
-Wert bestimmt, wann ein Benutzer zur Authentifizierung zurück zum IdP umgeleitet wird. Wenn eine SAML-Sitzungsdauer für höchstens 2 Stunden konfiguriert ist, aktualisiert GitHub eine SAML-Sitzung 5 Minuten vor Ablauf. Wenn deine Sitzungsdauer für höchstens 5 Minuten konfiguriert ist, können Benutzer in einer SAML-Authentifizierungsschleife hängen bleiben.
Um dieses Problem zu beheben, sollte eine minimale SAML-Sitzungsdauer von 4 Stunden konfiguriert werden. Weitere Informationen findest du unter Referenz zur SAML-Konfiguration.
Bei einigen Benutzern funktioniert die Bereitstellung oder Aufhebung der Bereitstellung durch SCIM nicht.
Wenn Probleme mit der Bereitstellung bei Benutzern auftreten, wird empfohlen, zu überprüfen, ob den Benutzern SCIM-Metadaten fehlen.
Wenn SCIM-Bereitstellung für deine Organisation implementiert ist, sollten alle Änderungen an der Organisationsmitgliedschaft eines Benutzers vom Identitätsanbieter ausgelöst werden. Wenn ein Benutzer manuell anstelle einer vorhandenen SCIM-Integration zu einer Organisation eingeladen wird, wird sein Benutzerkonto möglicherweise nicht ordnungsgemäß mit seiner SCIM-Identität verknüpft. Dadurch kann verhindert werden, dass das Benutzerkonto in Zukunft über SCIM nicht mehr bereitgestellt werden kann. Wenn ein Benutzer manuell anstelle einer vorhandenen SCIM-Integration entfernt wird, bleibt eine veraltete verknüpfte Identität erhalten, was zu Problemen führen kann, wenn der Benutzer erneut an der Organisation teilnehmen muss.
Wenn einem Organisationsmitglied SCIM-Metadaten fehlen, kannst du SCIM über IdP manuell für den Benutzer bereitstellen.
Überwachen von Benutzern auf fehlende SCIM-Metadaten
Wenn du vermutest oder feststellst, dass Benutzer nicht wie erwartet bereitgestellt werden oder deine Bereitstellung aufgehoben wird, empfehlen wir, alle Benutzer in deiner Organisation zu überwachen.
Um zu überprüfen, ob Benutzer über eine SCIM-Identität (SCIM-Metadaten) in ihrer externen Identität verfügen, können Sie SCIM-Metadaten für ein Organisationsmitglied gleichzeitig auf GitHub überprüfen oder alle Organisationsmitglieder programmgesteuert mithilfe der GitHub-API überprüfen.
Wenn der IdP einen Bereitstellungsaufruf an die GitHub-SCIM-API sendet, muss der SCIM userName
in diesem API-Aufruf mit der gespeicherten SAML nameID
in der verknüpften SAML-Identität des Benutzers oder der Benutzerin in der Organisation übereinstimmen. Wenn diese beiden Werte nicht übereinstimmen, werden die SCIM-Metadaten nicht aufgefüllt, und die SCIM-Identität wird nicht erfolgreich verknüpft. Um zu überprüfen, ob diese Werte übereinstimmen, verwende die GitHub-API.
Überwachen von Organisationsmitgliedern auf GitHub
Um zu bestätigen, dass SCIM-Metadaten für ein einzelnes Organisationsmitglied vorhanden sind, besuchst du diese URL, und ersetzt <organization>
und <username>
:
https://github.com/orgs/<organization>/people/<username>/sso
Wenn die externe Identität des Benutzers SCIM-Metadaten enthält, sollte der Organisationsbesitzer einen SCIM-Identitätsabschnitt auf dieser Seite sehen. Wenn ihre externe Identität keine SCIM-Metadaten enthält, ist der SCIM Identity-Abschnitt nicht vorhanden.
Überwachen von Organisationsmitgliedern über die GitHub-API
Als Organisationsbesitzer kannst du auch die SCIM-REST-API oder GraphQL abfragen, um alle in einer Organisation bereitgestellten SCIM-Identitäten aufzulisten.
Verwenden der REST-API
Die SCIM REST-API gibt nur Daten für Benutzer zurück, deren SCIM-Metadaten in ihren externen Identitäten ausgefüllt sind. Es wird empfohlen, eine Liste der bereitgestellten SCIM-Identitäten mit einer Liste aller Mitglieder deiner Organisation zu vergleichen.
Weitere Informationen findest du unter:
Verwenden von GraphQL
Diese GraphQL-Abfrage zeigt dir die SAML-NameId
, den SCIM-UserName
und den GitHub-Benutzernamen (login
) für jeden Benutzer in der Organisation. Ersetze ORG
durch den Namen deiner Organisation, um diese Abfrage zu verwenden.
{
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
Weitere Informationen zur Verwendung der GraphQL-API findest du unter:
Erneute Bereitstellung von SCIM für Benutzer über deinen Identitätsanbieter
Du kannst SCIM für Benutzer manuell über dein IdP bereitstellen. Um z. B. Bereitstellungsfehler für Okta zu beheben, kannst du im Okta-Admin-Portal die Zuweisung von Benutzern zu GitHub aufheben und diese erneut zuweisen. Dies wird in Okta ein API-Aufruf ausgelöst, um die SCIM-Metadaten für diese Benutzer in GitHub auszufüllen. Weitere Informationen findest du unter Aufheben der Zuweisung von Benutzern zu Anwendungen oder Zuweisen von Benutzern zu Anwendungen in der Okta-Dokumentation.
Um zu bestätigen, dass die SCIM-Identität eines Benutzers erstellt wird, empfehlen wir, diesen Prozess mit einem einzelnen Organisationsmitglied zu testen, bei dem du überprüft hast, dass keine externe SCIM-Identität vorhanden ist. Nachdem du die Benutzer in deinem IdP manuell aktualisiert haben, kannst du überprüfen, ob die SCIM-Identität des Benutzers mithilfe der SCIM-API oder in GitHub erstellt wurde. Weitere Informationen findest du unter „Überprüfen von Benutzer*innen auf fehlende SCIM-Metadaten“ oder „REST-API-Endpunkte für SCIM“.
Wenn SCIM für Benutzer nicht erneut bereitgestellt wird, wende dich bitte an den GitHub-Support.