Informationen zu Problemen bei der SAML-Authentifizierung
GitHub Enterprise Server protokolliert Fehlermeldungen für die fehlgeschlagene SAML-Authentifizierung in den systemd Journalprotokollen für den github-unicorn Container. Du kannst Antworten in diesem Protokoll überprüfen und auch eine ausführlichere Protokollierung konfigurieren.
Weitere Informationen zu den Anforderungen für SAML-Antworten findest du unter Referenz zur SAML-Konfiguration.
Konfigurieren von SAML-Debugging
Sie können GitHub Enterprise Server so konfigurieren, dass bei jedem SAML-Authentifizierungsversuch ausführliche Debugprotokolle protokolliert werden. Möglicherweise kannst du fehlgeschlagene Authentifizierungsversuche mit dieser zusätzlichen Ausgabe beheben.
Warnung
- Aktiviere SAML-Debugging nur vorübergehend, und deaktiviere das Debuggen unmittelbar nach Abschluss der Problembehandlung. Wenn Sie das Debuggen aktiviert lassen, nimmt die Größe der Protokolle viel schneller als üblich zu, was sich negativ auf die Leistung GitHub Enterprise Serverauswirken kann.
- Testen Sie neue Authentifizierungseinstellungen für Ihre GitHub Enterprise Server-Instance in einer Stagingumgebung, bevor Sie die Einstellungen in Ihrer Produktionsumgebung anwenden. Weitere Informationen finden Sie unter Testinstanz einrichten.
-
Klicke in der oberen rechten Ecke von GitHub Enterprise Server auf dein Profilbild und dann auf Enterprise settings.
-
Klicken Sie oben auf der Seite auf "Richtlinien".
-
Klicke unter Policies auf Options.
-
Wähle unter „SAML debugging“ die Dropdownliste aus, und klicke auf Enabled (Aktiviert).
-
Versuchen Sie, sich bei Ihre GitHub Enterprise Server-Instance über Ihren SAML-IdP anzumelden.
-
Überprüfen Sie die Debugausgabe im Journal von
systemdfürgithub-unicornauf Ihre GitHub Enterprise Server-Instance. Weitere Informationen finden Sie unter Informationen zu Systemprotokollen. -
Wenn du mit der Problembehandlung fertig bist, wähle die Dropdownliste aus, und klicke auf Disabled (Deaktiviert).
Decodieren von Antworten
Einige Ausgaben im systemd-Journal für github-unicorn können Base64-codiert sein. Sie können auf die Administrations-Shell zugreifen und auf Ihre GitHub Enterprise Server-Instance das Dienstprogramm base64 verwenden, um diese Antworten zu dekodieren. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.
Führe zum Decodieren der Ausgabe den folgenden Befehl aus, und ersetze ENCODED_OUTPUT durch die codierte Ausgabe aus dem Protokoll.
base64 --decode ENCODED_OUTPUT
Fehler: „Another user already owns the account“ (Ein anderer Benutzer besitzt das Konto bereits)
Wenn sich ein Benutzer zum ersten Mal mit SAML-Authentifizierung anmeldet Ihre GitHub Enterprise Server-Instance , GitHub erstellt ein Benutzerkonto auf der Instanz und ordnet die SAML NameID und nameid-format dem Konto zu.
Wenn sich der Benutzer erneut anmeldet, vergleicht GitHub Enterprise Server die NameID- und nameid-format-Zuordnung des Kontos mit der Antwort des IdP. Wenn die NameID oder nameid-format in der Antwort des IdP nicht mehr mit dem Wert übereinstimmt, den GitHub für den Benutzer erwartet, schlägt die Anmeldung fehl. Dem Benutzer wird die folgende Meldung angezeigt:
Another user already owns the account (Ein anderer Benutzer besitzt das Konto bereits) Lassen Sie bitte Ihren Administrator das Authentifizierungsprotokoll überprüfen.
In der Nachricht wird in der Regel angegeben, dass sich der Benutzername oder die E-Mail-Adresse der Person beim IdP geändert hat. Stellen Sie sicher, dass die Zuordnung von NameID und nameid-format für das Benutzerkonto auf GitHub Enterprise Server mit den NameID und nameid-format des Benutzers in Ihrem IdP übereinstimmt. Weitere Informationen finden Sie unter Aktualisieren der SAML-NameID von Benutzer*innen.
Fehler: Empfänger in der SAML-Antwort war leer oder nicht gültig.
Wenn die Recipient ACS-URL nicht mit der ACS-URL Ihre GitHub Enterprise Server-Instanceübereinstimmt, wird eine der folgenden beiden Fehlermeldungen im Authentifizierungsprotokoll angezeigt, wenn ein Benutzer versucht, sich zu authentifizieren.
Recipient in the SAML response must not be blank.
Recipient in the SAML response was not valid.
Stellen Sie sicher, dass Sie den Wert für Recipient in Ihrem IdP auf die vollständige ACS-URL für Ihre GitHub Enterprise Server-Instance festlegen. Beispiel: https://ghe.corp.example.com/saml/consume.
Fehler: „SAML Response is not signed or has been modified“ (SAML-Antwort ist nicht signiert oder wurde geändert)
Wenn der IdP die SAML-Antwort nicht signiert oder die Signatur nicht mit dem Inhalt übereinstimmt, wird die folgende Fehlermeldung im Authentifizierungsprotokoll angezeigt.
SAML Response is not signed or has been modified.
Stellen Sie sicher, dass Sie signierte Assertionen für die GitHub Anwendung auf Ihrem IdP konfigurieren.
Fehler: „Audience is invalid“ (Zielgruppe ist ungültig) oder „No assertion found“ (Keine Assertion gefunden)
Wenn die Antwort des IdP einen fehlenden oder falschen Wert für Audience aufweist, wird die folgende Fehlermeldung im Authentifizierungsprotokoll angezeigt.
Audience is invalid. Audience attribute does not match https://YOUR-INSTANCE-URL
Stellen Sie sicher, dass Sie den Wert für Audience auf Ihrem IdP auf EntityId für Ihre GitHub Enterprise Server-Instance festlegen, also die vollständige URL Ihrer Instanz. Beispiel: https://ghe.corp.example.com.
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.
Um dieses Problem zu verhindern, wird empfohlen, die Appliance möglichst auf dieselbe NTP-Quelle (Network Time Protocol) wie den IdP zu verweisen. Wenn dieser Fehler auftritt, achte darauf, dass die Zeit auf deiner Appliance ordnungsgemäß mit deinem NTP-Server synchronisiert wird. Mit dem Befehl chronyc in der Verwaltungsshell können Sie die Zeit sofort synchronisieren. Weitere Informationen findest du unter Zeitsynchronisierung konfigurieren.
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.
Fehler: „Fehler - Aktualisierte SAML-Validierung ergab ein ungültiges Ergebnis“
Dieser Fehler kann in Version 3.17.0 oder höher von Ihre GitHub Enterprise Server-Instance auftreten. Es weist darauf hin, dass GitHub die SAML-Antwort, die sie vom Identitätsanbieter empfangen hat, nicht ordnungsgemäß verarbeitet werden kann. Bitte öffnen Sie ein GitHub Supportticket, damit die GitHub Support- und Entwicklungsteams das Problem untersuchen und beheben können.
Fehler: Digest-Abgleichsfehler
Ein Fehler aufgrund eines nicht übereinstimmenden Digest weist darauf hin, dass Ihr SAML-IdP ein anderes SAML-Signaturzertifikat verwendet als das, das Sie in GitHub hochgeladen haben, oder dass die auf GitHub konfigurierte Signaturmethode oder Digest-Methode von der Methode abweicht, die Ihr IdP verwendet.
Laden Sie dieses SAML-Zertifikat von Ihrem IdP erneut herunter, und überprüfen Sie es mit einem Onlinetool, z. B. dem Tool "Format a x509 cert " von OneLogin. Laden Sie dann das SAML-Zertifikat erneut im Abschnitt "Authentifizierung" in Der GitHub Enterprise Server Verwaltungskonsole hoch. Siehe Verwalten Ihrer Instanz über die Web-Benutzeroberfläche.