Skip to main content
Wir veröffentlichen regelmäßig Aktualisierungen unserer Dokumentation, und die Übersetzung dieser Seite ist möglicherweise noch nicht abgeschlossen. Aktuelle Informationen findest du in der englischsprachigen Dokumentation.

SAML-Authentifizierung

Wenn du SAML Single Sign-On (SSO) verwendest und sich Personen nicht authentifizieren können, um auf deine GitHub Enterprise Server-Instanz zuzugreifen, kannst du das Problem behandeln.

Informationen zu Problemen bei der SAML-Authentifizierung

GitHub Enterprise Server protokolliert Fehlermeldungen zu fehlgeschlagenen SAML-Authentifizierungen im Authentifizierungsprotokoll unter /var/log/github/auth.log. Du kannst Antworten in dieser Protokolldatei anzeigen und auch eine ausführlichere Protokollierung konfigurieren.

Weitere Informationen zu den Anforderungen für SAML-Anforderungen findest du unter Referenz zur SAML-Konfiguration.

Konfigurieren von SAML-Debugging

Du kannst GitHub Enterprise Server so konfigurieren, dass für jeden SAML-Authentifizierungsversuch ausführliche Debuggingprotokolle in /var/log/github/auth.log geschrieben werden. Möglicherweise kannst du fehlgeschlagene Authentifizierungsversuche mit dieser zusätzlichen Ausgabe beheben.

Warnungen:

  • Aktiviere SAML-Debugging nur vorübergehend, und deaktiviere das Debuggen unmittelbar nach Abschluss der Problembehandlung. Wenn du das Debuggen aktiviert lässt, erhöht sich die Größe des Protokolls möglicherweise viel schneller als üblich. Dies kann sich negativ auf die Leistung von GitHub Enterprise Server auswirken.
  • Teste neue Authentifizierungseinstellungen für deine GitHub Enterprise Server-Instanz in einer Stagingumgebung, bevor du die Einstellungen in deiner Produktionsumgebung anwendest. Weitere Informationen findest du unter Testinstanz einrichten.
  1. Klicke oben rechts auf GitHub Enterprise Server auf dein Profilfoto und dann auf Unternehmenseinstellungen.

    A screenshot of the drop-down menu that appears when you click the profile photo on GitHub Enterprise Server. The "Enterprise settings" option is highlighted in a dark orange outline.

  2. Wähle auf der Randleiste des Unternehmenskontos die Option Richtlinien aus. 1. Klicke unter Richtlinien auf Optionen.

  3. Wähle unter „SAML debugging“ die Dropdownliste aus, und klicke auf Enabled (Aktiviert).

  4. Versuche, sich über den SAML-IdP bei deine GitHub Enterprise Server-Instanz anzumelden.

  5. Überprüfe die Debugausgabe in /var/log/github/auth.log in deine GitHub Enterprise Server-Instanz.

  6. Wenn du mit der Problembehandlung fertig bist, wähle die Dropdownliste aus, und klicke auf Disabled (Deaktiviert).

Decodieren von Antworten in auth.log

Manche Ausgaben in auth.log sind möglicherweise Base64-codiert. Du kannst auf die Verwaltungsshell zugreifen und das base64-Hilfsprogramm in deine GitHub Enterprise Server-Instanz verwenden, um diese Antworten zu decodieren. Weitere Informationen findest du unter Auf die Verwaltungsshell (SSH) zugreifen.

$ base64 --decode ENCODED_OUTPUT

Fehler: „Another user already owns the account“ (Ein anderer Benutzer besitzt das Konto bereits)

Wenn sich eine Benutzerin/ein Benutzer zum ersten Mal mit der SAML-Authentifizierung bei deine GitHub Enterprise Server-Instanz anmeldet, erstellt GitHub Enterprise Server ein Benutzerkonto in der Instanz und ordnet die SAML-NameID und das SAML-nameid-format dem Konto zu.

Wenn sich die Benutzerin/der Benutzer erneut anmeldet, vergleicht GitHub Enterprise Server die Zuordnung der Werte des Kontos für NameID und nameid-format mit der Antwort des IdP. Wenn die Werte für NameID und nameid-format in der Antwort des IdP nicht mehr mit denen übereinstimmen, die GitHub Enterprise Server für die Benutzerin/den Benutzer erwartet, wird die Anmeldung nicht erfolgreich durchgeführt. Dem Benutzer wird die folgende Meldung angezeigt:

Another user already owns the account (Ein anderer Benutzer besitzt das Konto bereits) Bitte den Administrator, das Authentifizierungsprotokoll zu ü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. Vergewissere dich, dass die Zuordnung von NameID und nameid-format für das Benutzerkonto in GitHub Enterprise Server mit den NameID- und nameid-format-Werten beim IdP übereinstimmt. Weitere Informationen findest du unter Aktualisieren der SAML-NameID von Benutzer*innen.

Wenn die SAML-Antwort nicht signiert ist oder die Signatur nicht mit dem Inhalt übereinstimmt, wird im Authentifizierungsprotokoll die folgende Fehlermeldung angezeigt:

Wenn der Recipient nicht mit der ACS-URL für deine GitHub Enterprise Server-Instanz ü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.

Vergewissere dich, dass du den Wert für Recipient beim IdP auf die vollständige ACS-URL für deine GitHub Enterprise Server-Instanz festlegst. 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.

Konfiguriere die signierten Assertionen für die GitHub Enterprise Server-Anwendung bei deinem IdP.

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://<em>YOUR-INSTANCE-URL</em>

Lege den Wert für Audience bei deinem IdP auf die EntityId für deine GitHub Enterprise Server-Instanz fest. Dabei handelt es sich um die vollständige URL zu deiner 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 Zeitunterschiede zwischen deinem IdP und GitHub Enterprise Server zu groß ist, was bei selbstgehosteten IdPs 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.

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.