Fehler: „Current time is earlier than NotBefore condition“ (Aktuelle Zeit liegt vor notBefore-Bedingung)
Dieser Fehler kann auftreten, wenn der Zeitunterschied zwischen deinem Identitätsanbieter und GitHub zu groß ist, was bei selbstgehosteten Identitätsanbietern 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 finden Sie 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 finden Sie 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 Benutzern 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.
Fehler bei in Konflikt stehenden SAML-Identitäten
Wenn Benutzende versuchen, sich zum ersten Mal beim SAML-Identitätsanbieter (Identity Provider, IdP) für den Zugriff auf eine GitHub-Organisation oder ein GitHub-Unternehmen zu authentifizieren, wird möglicherweise die folgende Fehlermeldung angezeigt.
Your GitHub user account [GitHub-Benutzername] is currently unlinked. However, you are attempting to authenticate with your Identity Provider using [Benutzerkonto des Identitätsanbieters] SAML identity which is already linked to a different GitHub user account in the [Organisation/Unternehmen]. Please reach out to one of your GitHub [Organisation/Unternehmen] owners for assistance.
Wenn es sich bei dem Identitätsanbieter um Entra ID handelt, enthält die Fehlermeldung das User Object ID
-Element der verknüpften Identität in Entra ID, die von GitHub als External ID
bezeichnet wird.
Diese Fehlermeldung tritt auf, weil eine externe Identität in einer Organisation oder einem Unternehmen nur mit einem einzelnen GitHub-Benutzerkonto verknüpft werden kann.
Identifizieren des Benutzers mit einer im Konflikt stehenden Identität
Wenn Benutzende dich mit diesem Fehler kontaktieren, kannst du die folgenden Schritte ausführen, um die in Konflikt stehenden Konten zu ermitteln.
- Verwende die GitHub GraphQL-API, um zu bestimmen, welcher Benutzer mit der in Konflikt stehenden externen Identität verknüpft ist.
- Wenn SAML auf GitHub-Organisationsebene konfiguriert ist: Ein Organisationsbesitzender muss die vorhandenen externen Identitäten auf Organisationsebene abfragen und diese nach dem SAML-
NameID
-Element des Identitätsanbieterkontos filtern, mit dem der Benutzer authentifiziert wird, wenn dieser Fehler auftritt. Im Repositoryplatform-samples
ist das Beispiel org-saml-identities-filtered-by-nameid-username.graphql enthalten. - Wenn SAML auf GitHub-Unternehmensebene konfiguriert ist: Ein Unternehmensbesitzender muss die vorhandenen externen Identitäten auf Unternehmensebene abfragen und diese nach dem SAML-
NameID
-Element des Identitätsanbieterkontos filtern, mit dem der Benutzer authentifiziert wird, wenn dieser Fehler auftritt. Im Repositoryplatform-samples
ist das Beispiel enterprise-saml-identities-filtered-by-nameid.graphql enthalten.
- Wenn SAML auf GitHub-Organisationsebene konfiguriert ist: Ein Organisationsbesitzender muss die vorhandenen externen Identitäten auf Organisationsebene abfragen und diese nach dem SAML-
- Um zu überprüfen, ob der Benutzer noch im Unternehmen und allen darin enthaltenen Organisationen aktiv ist, kann ein Unternehmensbesitzender die Schritte in Anzeigen von Personen in deinem Unternehmen ausführen, wenn du einen GitHub-Benutzer ermittelt hast, der der im Konflikt stehenden externen Identität zugeordnet ist.
Beheben des Konflikts
Wenn du die Schritte zum Identifizieren in Konflikt stehender Konten befolgt hast, bestehen je nach Ergebnis verschiedene Möglichkeiten zur Lösung. Wenn beim Versuch, diese Schritte auszuführen, Probleme auftreten oder Fragen vorliegen, kannst du mit dem GitHub-Supportportalein GitHub-Supportticket erstellen.
- Im Konflikt stehender GitHub-Benutzer benötigt keinen Zugriff mehr
- Im Konflikt stehender GitHub-Benutzer benötigt weiterhin Zugriff
- Kein im Konflikt stehender GitHub-Benutzer gefunden
Im Konflikt stehender GitHub-Benutzer benötigt keinen Zugriff mehr
Wenn ein GitHub-Benutzerkonto der im Konflikt stehenden externen Identität zugeordnet ist, die auf die GitHub-Organisation oder das GitHub-Unternehmen keinen Zugriff mehr benötigt, entferne es als Mitglied. Wenn der Benutzer ordnungsgemäß entfernt wird, sollten dadurch ebenfalls seine verknüpfte SAML- und SCIM-Identität entfernt werden, sofern diese auf Organisationsebene vorhanden sind.
- Wenn du die Organisationsmitgliedschaft mit SCIM-Bereitstellung verwaltest, musst du den Benutzer von deinem Identitätsanbieter über SCIM entfernen, anstatt die Schritte auf GitHub auszuführen. Andernfalls verbleibt die verknüpfte SAML- und SCIM-Identität des Benutzers in der Organisation, wodurch der Fehler weiterhin auftreten kann.
- Weitere Informationen zum Verwalten der Organisationsmitgliedschaft ohne SCIM-Bereitstellung findest du unter Entfernen eines Mitglieds aus deiner Organisation oder Entfernen eines Mitglieds aus deinem Unternehmen. Stelle sicher, dass du in deinem Identitätsanbieter außerdem den Zugriff des Benutzers über die GitHub-App für die Organisation oder das Unternehmen entfernst.
Weitere Informationen zum Überprüfen, ob eine SAML- oder SCIM-Identität erfolgreich aus einer GitHub-Organisation für einen Benutzer entfernt wurde, findest du unter Problembehandlung bei der Identitäts- und Zugriffsverwaltung deiner Organisation.
Im Konflikt stehender GitHub-Benutzer benötigt weiterhin Zugriff
Wenn ein GitHub-Benutzerkonto mit der im Konflikt stehenden externen Identität verknüpft ist und dieser Benutzer für die Organisation oder das Unternehmen weiterhin Zugriff benötigt, musst du für Folgendes die verknüpfte Identität ändern: das Benutzerkonto oder den Benutzer mit dem Fehler zum Authentifizieren mit einer anderen Identitätsanbieteridentität.
- Wenn du die Mitgliedschaft einer Organisation mit SCIM-Bereitstellung verwaltest und die externe Identität ändern musst, die mit dem GitHub-Konto des Mitglieds verknüpft ist, entferne den Benutzer von deinem Identitätsanbieter, und füge ihn anschließend wieder hinzu (z. B. Zuweisung des Benutzers aufheben und den Benutzer der App erneut zuweisen).
- Wenn der Identitätsanbieterbenutzer entfernt wird, wird sein GitHub-Konto und die verknüpfte SAML- bzw. SCIM-Identität aus der GitHub-Organisation entfernt.
- Wenn der Identitätsanbieterbenutzer der GitHub-Organisation neu hinzugefügt wird, wird eine neue ausstehende Organisationseinladung und eine neue, nicht verknüpfte SCIM-Identität erstellt. Dadurch kann sich die Benutzenden mit diesem GitHub-Benutzerkonto anmelden, sich über SAML authentifizieren und die neue Identitätsanbieteridentität mit dem Konto verknüpfen. Mit diesen Schritten wird sichergestellt, dass die neue SAML- und SCIM-Identität in der Organisation ordnungsgemäß mit dem GitHub-Benutzerkonto verknüpft sind.
- Wenn du die Organisationsmitgliedschaft ohne SCIM-Bereitstellung verwaltest oder SAML auf Unternehmensebene konfiguriert ist, kannst du die verknüpfte externe Identität für den Benutzer widerrufen, indem du die Schritte in einem der folgenden Artikel ausführst:
Kein im Konflikt stehender GitHub-Benutzer gefunden
Wenn der im Konflikt stehenden externen Identität kein GitHub-Benutzerkonto zugeordnet ist, kannst du die externe Identität widerrufen.
- Wenn du die Mitgliedschaft der Organisation ohne SCIM-Bereitstellung verwaltest, entferne die veraltete, nicht verknüpfte Identität von deinem Identitätsanbieter (z. B. Zuweisung des Benutzers in der Identitätsanbieter-App aufheben).
- Wenn der Identitätsanbieter den entsprechenden SCIM-API-Aufruf nicht an GitHub sendet, verbleibt die Identität in der Organisation, wodurch der Fehler weiterhin auftreten kann.
- Weitere Informationen zum Überprüfen, ob eine SAML- oder SCIM-Identität erfolgreich aus einer GitHub-Organisation für einen Benutzer entfernt wurde, findest du unter Problembehandlung bei der Identitäts- und Zugriffsverwaltung deiner Organisation.
- Wenn du die Mitgliedschaft in der Organisation ohne SCIM-Bereitstellung verwaltest, navigiere zum Widerrufen der verknüpften externen Identität zu einer der folgenden URLs, um die externe Identität zu widerrufen. Ersetze
USERNAME
durch den GitHub-Benutzernamen der Benutzenden, die sich nicht anmelden können, undORGANIZATION
oderENTERPRISE
durch den entsprechenden Wert.https://github.com/orgs/ORGANIZATION/people/USERNAME/sso
https://github.com/enterprises/ENTERPRISE/people/USERNAME/sso