Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Referenz zur SAML-Konfiguration

Du kannst SAML-Metadaten für deine Organisation oder dein Unternehmen auf GitHub Enterprise Cloud 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 Cloud verwenden möchtest, musst du sowohl deinen externen SAML-Identitätsanbieter (Identity Provider, IdP) und dein Unternehmen oder deine Organisation auf GitHub.com konfigurieren. In einer SAML-Konfiguration dient GitHub Enterprise Cloud als SAML-Dienstanbieter (Service Provider, SP).

Du musst eindeutige Werte für deinen SAML-IdP eingeben, wenn du SAML-SSO für GitHub Enterprise Cloud konfigurierst, und du musst auch eindeutige Werte aus GitHub Enterprise Cloud bei deinem IdP eingeben. Weitere Informationen zur Konfiguration von SAML-SSO für GitHub Enterprise Cloud findest du unter Konfigurieren des einmaligen Anmeldens mit SAML für dein Unternehmen oder Aktivieren und Testen des einmaligen Anmeldens mit SAML für deine Organisation.

SAML-Metadaten

Die Metadaten des Dienstanbieters für GitHub Enterprise Cloud sind entweder für Organisationen oder Unternehmen mit SAML-SSO verfügbar. GitHub Enterprise Cloud verwendet die Bindung urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST.

Organisationen

Du kannst SAML-SSO auch für eine einzelne Organisation in deinem Unternehmen konfigurieren. Du kannst SAML-SSO auch für eine Organisation konfigurieren, wenn du eine einzelne Organisation auf GitHub Enterprise Cloud und kein Unternehmenskonto verwendest. Weitere Informationen findest du unter Verwalten von SAML-SSO für deine Organisation.

Die Metadaten des Dienstanbieters für eine Organisation auf GitHub.com sind unter https://github.com/orgs/ORGANIZATION/saml/metadata verfügbar, wobei ORGANIZATION der Name deiner Organisation auf GitHub.com ist.

WertAndere NamenBESCHREIBUNGBeispiel
Entitäts-ID des SPDienstanbieter-URL, Einschränkung der ZielgruppeDie übergeordnete URL für deine Organisation auf GitHub.comhttps://github.com/orgs/ORGANIZATION
Assertionsverbraucherdienst-URL (ACS) des SPAntwort-, Empfänger- oder Ziel-URLURL, an die der IdP SAML-Antworten sendethttps://github.com/orgs/ORGANIZATION/saml/consume
SSO-URL (einmaliges Anmelden) des SPURL, an der der IdP mit dem SSO-Prozess beginnthttps://github.com/orgs/ORGANIZATION/saml/sso

Unternehmen

Die Metadaten des Dienstanbieters für ein Unternehmen auf GitHub.com sind unter https://github.com/enterprises/ENTERPRISE/saml/metadata verfügbar, wobei ENTERPRISE der Name deiner Organisation auf GitHub.com ist.

WertAndere NamenBESCHREIBUNGBeispiel
Entitäts-ID des SPDienstanbieter-URL, Einschränkung der ZielgruppeDie übergeordnete URL für dein Unternehmen auf GitHub.comhttps://github.com/enterprises/ENTERPRISE
Assertionsverbraucherdienst-URL (ACS) des SPAntwort-, Empfänger- oder Ziel-URLURL, an die der IdP SAML-Antworten sendethttps://github.com/enterprises/ENTERPRISE/saml/consume
SSO-URL (einmaliges Anmelden) des SPURL, an der der IdP mit dem SSO-Prozess beginnthttps://github.com/enterprises/ENTERPRISE/saml/sso

SAML-Attribute

Die folgenden SAML-Attribute sind für GitHub Enterprise Cloud verfügbar.

NameErforderlich?BESCHREIBUNG
NameIDJaEin persistenter Benutzerkennzeichner. Es kann ein beliebiges Format für persistente Namenskennzeichner verwendet werden. Wenn du ein Unternehmen mit Enterprise Managed Users verwendest, normalisiert GitHub Enterprise Cloud 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 zu Benutzernamen zur externen 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.
SessionNotOnOrAfterNeinDas Datum, an dem GitHub Enterprise Cloud die zugehörige Sitzung ungültig macht. Nach der Invalidierung muss die Person sich erneut authentifizieren, um auf die Ressourcen deines Unternehmens 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 Cloud 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 Cloud 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 Cloud übereinstimmen.

    • Wenn du SAML für eine Organisation konfigurierst, lautet dieser Wert https://github.com/orgs/ORGANIZATION.
    • Wenn du SAML für ein Unternehmen konfigurierst, lautet diese URL https://github.com/enterprises/ENTERPRISE.
  • 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://github.com/enterprises/ENTERPRISE/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 Cloud die Sitzung für jedes Benutzerkonto mit Zugriff auf die Ressourcen deines Unternehmens 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 Cloud eine Sitzung 24 Stunden 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 Cloud Personen dazu auffordert, sich jedes Mal zu authentifizieren, wenn GitHub Enterprise Cloud eine Umleitung initiiert.

Um Authentifizierungsfehler zu verhindern, wird eine Mindestsitzungsdauer von vier Stunden empfohlen. Weitere Informationen findest du unter Problembehandlung bei der SAML-Authentifizierung.

Hinweise:

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