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.

Diese Version von GitHub Enterprise wurde eingestellt am 2023-03-15. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. Für bessere Leistung, verbesserte Sicherheit und neue Features aktualisiere auf die neueste Version von GitHub Enterprise. Wende dich an den GitHub Enterprise-Support, um Hilfe zum Upgrade zu erhalten.

Referenz zur SAML-Konfiguration

Du kannst SAML-Metadaten für deine GitHub Enterprise Server-Instanz anzeigen, und du kannst mehr über die verfügbaren SAML-Attribute und Antwortanforderungen herausfinden.

Informationen zur SAML-Konfiguration

Wenn du das einmalige Anmelden (Single Sign-On, SSO) mit SAML zur Authentifizierung bei GitHub Enterprise Server verwenden möchtest, musst du sowohl deinen externen SAML-Identitätsanbieter (Identity Provider, IdP) und deine GitHub Enterprise Server-Instanz konfigurieren. In einer SAML-Konfiguration dient GitHub Enterprise Server als SAML-Dienstanbieter (Service Provider, SP).

Du musst eindeutige Werte für deinen SAML-IdP eingeben, wenn du SAML-SSO für GitHub Enterprise Server konfigurierst, und du musst auch eindeutige Werte aus GitHub Enterprise Server bei deinem IdP eingeben. Weitere Informationen zur Konfiguration von SAML-SSO für GitHub Enterprise Server findest du unter Konfigurieren von SAML Single Sign-On für dein Unternehmen.

SAML-Metadaten

Die Metadaten des Dienstanbieters für deine GitHub Enterprise Server-Instanz sind unter http(s)://HOSTNAME/saml/metadata verfügbar, wobei HOSTNAME der Name deiner Instanz ist. GitHub Enterprise Server verwendet die Bindung urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST.

WertAndere NamenBESCHREIBUNGBeispiel
Entitäts-ID des SPDienstanbieter-URL, Einschränkung der ZielgruppeDeine URL der obersten Ebene für GitHub Enterprise Serverhttp(s)://HOSTNAME
Assertionsverbraucherdienst-URL (ACS) des SPAntwort-, Empfänger- oder Ziel-URLURL, an die der IdP SAML-Antworten sendethttp(s)://HOSTNAME/saml/consume
SSO-URL (einmaliges Anmelden) des SPURL, an der der IdP mit dem SSO-Prozess beginnthttp(s)://HOSTNAME/sso

SAML-Attribute

Die folgenden SAML-Attribute sind für GitHub Enterprise Server verfügbar. Du kannst die Attributnamen in der Verwaltungskonsole ändern (mit Ausnahme des administrator-Attributs). Weitere Informationen findest du unter Verwalten Ihrer Instanz über die Verwaltungskonsole.

NameErforderlichBESCHREIBUNG
NameIDEin persistenter Benutzerkennzeichner. Es kann ein beliebiges Format für persistente Namenskennzeichner verwendet werden. GitHub Enterprise Server das NameID-Element, damit es als Benutzername verwendet wird, es sei denn, es wird eine der alternativen Assertionen angegeben. Weitere Informationen findest du unter Überlegungen zum Benutzernamen für die externe Authentifizierung.

Hinweis: Es ist wichtig, einen visuell lesbaren, beständigen Bezeichner zu verwenden. Die Verwendung eines vorübergehenden Bezeichnerformats urn:oasis:names:tc:SAML:2.0:nameid-format:transient führt dazu, dass Konten bei jeder Anmeldung erneut verknüpft werden, was sich nachteilig auf die Autorisierungsverwaltung auswirken kann.
SessionNotOnOrAfterDas Datum, an dem GitHub Enterprise Server die zugehörige Sitzung ungültig macht. Nach der Invalidierung muss die Person sich erneut authentifizieren, um auf deine GitHub Enterprise Server-Instanz zuzugreifen. Weitere Informationen findest du unter Sitzungsdauer und Timeout.

Verwende mehrere <saml2:AttributeValue>-Elemente, um mehrere Werte für ein Attribut anzugeben.

<saml2:Attribute FriendlyName="public_keys" Name="urn:oid:1.2.840.113549.1.1.1" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
    <saml2:AttributeValue>ssh-rsa LONG KEY</saml2:AttributeValue>
    <saml2:AttributeValue>ssh-rsa LONG KEY 2</saml2:AttributeValue>
</saml2:Attribute>

SAML-Antwortanforderungen

Bei GitHub Enterprise Server muss die Antwortnachricht von deinem IdP die folgenden Anforderungen erfüllen.

  • Dein IdP musst das Element <Destination> im Stammantwortdokument bereitstellen und nur dann mit der ACS-URL übereinstimmen, wenn das Stammantwortdokument signiert ist. Wenn dein IdP die Assertion signiert, ignoriert GitHub Enterprise Server die Assertion.

  • Dein IdP muss das <Audience>-Element immer als Teil des <AudienceRestriction>-Elements bereitstellen. Der Wert muss mit deiner EntityId für GitHub Enterprise Server übereinstimmen. Dieser Wert ist die URL, über die du auf deine GitHub Enterprise Server-Instanz zugreifst, z. B.http(s)://HOSTNAME.

  • Dein IdP muss jede Assertion in der Antwort mit einer digitalen Signatur schützen. Du kannst dies tun, indem du jedes einzelne <Assertion>-Element oder das <Response>-Element signierst.

  • Dein IdP muss ein <NameID>-Element als Teil des <Subject>-Elements bereitstellen. Du kannst ein beliebiges Format für beständige Namensbezeichner verwenden.

  • Dein IdP muss das Recipient-Attribut enthalten, das auf die ACS-URL festgelegt werden muss. Im folgenden Beispiel wird das Attribut veranschaulicht.

    <samlp:Response ...>
      <saml:Assertion ...>
        <saml:Subject>
          <saml:NameID ...>...</saml:NameID>
          <saml:SubjectConfirmation ...>
            <saml:SubjectConfirmationData Recipient="https://HOSTNAME/saml/consume" .../>
          </saml:SubjectConfirmation>
        </saml:Subject>
        <saml:AttributeStatement>
          <saml:Attribute FriendlyName="USERNAME-ATTRIBUTE" ...>
            <saml:AttributeValue>monalisa</saml:AttributeValue>
          </saml:Attribute>
        </saml:AttributeStatement>
      </saml:Assertion>
    </samlp:Response>
    

Sitzungsdauer und Timeout

Um zu verhindern, dass eine Person sich bei deinem IdP authentifiziert und auf unbestimmte Zeit autorisiert bleibt, macht GitHub Enterprise Server die Sitzung für jedes Benutzerkonto mit Zugriff auf deine GitHub Enterprise Server-Instanz in regelmäßigen Abständen ungültig. Nach der Invalidierung muss die Person sich erneut bei deinem IdP authentifizieren. Wenn dein IdP keinen Wert für das SessionNotOnOrAfter-Attribut angibt, macht GitHub Enterprise Server eine Sitzung zwei Wochen nach der erfolgreichen Authentifizierung bei deinem IdP standardmäßig ungültig.

Wenn du die Sitzungsdauer anpassen möchtest, kann du den Wert des SessionNotOnOrAfter-Attributs möglicherweise auf deinem IdP definieren. Wenn du einen Wert von weniger als 24 Stunden angibst, könnte es sein, dass GitHub Enterprise Server Personen dazu auffordert, sich jedes Mal zu authentifizieren, wenn GitHub Enterprise Server eine Umleitung initiiert.

Hinweise:

  • Bei Azure AD steuert die konfigurierbare Lebensdauerrichtlinie für SAML-Token nicht die Sitzungstimeouts für GitHub Enterprise Server.
  • Okta sendet das SessionNotOnOrAfter-Attribut bei der SAML-Authentifizierung bei GitHub Enterprise Server derzeit nicht. Wende dich an Okta, um weitere Informationen zu erhalten.