Skip to main content

Referenz zur SAML-Konfiguration

Du kannst SAML-Metadaten für deine Organisation oder dein Unternehmen anzeigen und mehr über die verfügbaren SAML-Attribute und -Antwortanforderungen herausfinden.

Informationen zur SAML-Konfiguration

Wenn du Single Sign-On (SSO) mit SAML zur Authentifizierung bei GitHub verwenden möchtest, musst du deinen externen SAML-Identitätsanbieter und dein Unternehmen oder deine Organisation auf GitHub konfigurieren. In einer SAML-Konfiguration dient GitHub als SAML-Dienstanbieter. Weitere Informationen zur Authentifizierung für dein Unternehmen findest du unter Grundlagen der Identitäts- und Zugriffsverwaltung.

GitHub stellt die Integration gemäß der SAML 2.0-Spezifikation bereit. Weitere Informationen findest du im SAML-Wiki auf der OASIS-Website.

Es müssen eindeutige Werte von dem SAML-IdP eingegeben werden, wenn SAML-SSO für GitHub konfiguriert wird, und es müssen auch eindeutige Werte aus GitHub bei demIdP eingegeben werden.

SAML-Metadaten

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

Wenn du Enterprise Managed Users verwendest, kannst du SAML-SSO nur auf Unternehmensebene aktivieren.

Organisationen

Du kannst SAML-SSO auch für eine einzelne Organisation in deinem Unternehmen konfigurieren. Sie können SAML-SSO auch für eine Organisation konfigurieren, wenn Sie eine einzelne Organisation auf GitHub Enterprise Cloud verwenden und kein Unternehmenskonto nutzen. Weitere Informationen finden Sie unter SAML Single Sign-On für deine Organisation verwalten.

Die SP-Metadaten für eine Organisation auf GitHub findest du unter https://github.com/orgs/ORGANIZATION/saml/metadata, wobei ORGANIZATION der Name deiner Organisation auf GitHub ist.

WertAndere NamenBESCHREIBUNGBeispiel
Entitäts-ID des SPSP-URL, ZielgruppeneinschränkungDie ü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 SP
URL, an der der IdP mit dem SSO-Prozess beginnthttps://github.com/orgs/ORGANIZATION/sso

Unternehmen

Abhängig von deiner Umgebung sind die SP-Metadaten für ein Unternehmen in GitHub Enterprise Cloud hier verfügbar:

  •         `https://github.com/enterprises/ENTERPRISE/saml/metadata`, wenn es sich bei **ENTERPRISE** um den Namen des Unternehmens handelt
    
  •         `https://SUBDOMAIN.ghe.com/enterprises/SUBDOMAIN/saml/metadata`, wenn es sich bei **SUBDOMAIN** um die Unterdomäne des Unternehmens handelt
    
WertAndere NamenBESCHREIBUNGBeispiel
Entitäts-ID des SPSP-URL, ZielgruppeneinschränkungDie ü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 SP
URL, an der der IdP mit dem SSO-Prozess beginnthttps://github.com/enterprises/ENTERPRISE/sso

SAML-Attribute

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

NameErforderlichBESCHREIBUNG
NameIDEin persistenter Benutzerkennzeichner. Es kann ein beliebiges Format für persistente Namenskennzeichner verwendet werden. Wenn du ein Unternehmen mit Enterprise Managed Users verwendest, normalisiert GitHub das NameID-Element so, dass es als Benutzername verwendet wird, es sei denn, eine der alternativen Behauptungen wird angegeben. Weitere Informationen finden Sie unter Überlegungen zum Benutzernamen für die externe Authentifizierung.

          > 
          [!NOTE] 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.  |

| SessionNotOnOrAfter | | Das Datum, an dem GitHub 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. | | | | full_name | | Wenn Sie SAML-SSO für ein Unternehmen konfigurieren und Enterprise Managed Users verwenden, wird der vollständige Name des Benutzer bzw. der Benutzerin auf der Benutzerprofilseite angezeigt. | | emails | | Die E-Mail-Adressen für die Benutzenden. Wenn du die Lizenznutzung zwischen GitHub Enterprise Server und GitHub Enterprise Cloud synchronisierst, verwendet GitHub Connect emails, um eindeutige Benutzende in Produkten zu identifizieren. Weitere Informationen finden Sie unter Synchronisieren der Lizenznutzung von GitHub Enterprise Server in die Cloud. | | public_keys | | Wenn Sie SAML-SSO für ein Unternehmen konfigurieren und Enterprise Managed Users verwenden, werden die öffentlichen SSH-Schlüssel für dendie Benutzerin angezeigt. Du kannst mehr als einen Schlüssel angeben. | | gpg_keys | | Wenn Sie SAML-SSO für ein Unternehmen konfigurieren und Enterprise Managed Users verwenden, werden die GPG-Schlüssel für dendie Benutzerin angezeigt. Du kannst mehr als einen Schlüssel angeben. |

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 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 die Assertion.

  • Dein IdP muss das <Audience>-Element immer als Teil des <AudienceRestriction>-Elements bereitstellen. Der Wert muss mit deiner EntityId für GitHub ü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 oder https://SUBDOMAIN.ghe.com/enterprises/SUBDOMAIN.
  • Dein IdP muss eine einzelne Assertion in der Antwort mit einer digitalen Signatur schützen. Hierfür kannst du das <Assertion>-Element oder das <Response>-Element signieren.

  • 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 Identitätsanbieter authentifiziert und auf unbestimmte Zeit autorisiert bleibt, macht GitHub 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 Ihrem IdP authentifizieren.

Wenn dein Identitätsanbieter keinen Wert für das SessionNotOnOrAfter-Attribut angibt, macht GitHub eine Sitzung 24 Stunden nach der erfolgreichen Authentifizierung bei deinem Identitätsanbieter standardmäßig ungültig.

GitHub unterstützt eine angepasste Sitzungsdauer, wenn dein Identitätsanbieter die Möglichkeit bietet, ein SessionNotOnOrAfter-Attribut und einen Wert zu konfigurieren verwendet.

Wenn du einen angepassten Sitzungsdauerwert von weniger als 24 Stunden angibst, könnte es sein, dass GitHub Personen dazu auffordert, sich jedes Mal zu authentifizieren, wenn GitHub eine Umleitung initiiert.

Um Authentifizierungsfehler zu verhindern, wird eine Mindestsitzungsdauer von vier Stunden empfohlen. Weitere Informationen finden Sie unter Fehlerbehebung bei der SAML-Authentifizierung.

Hinweis

Microsoft Entra ID (früher als Azure AD bezeichnet) ** unterstützt das attribut SessionNotOnOrAfter** nicht. Darüber hinaus steuert die konfigurierbare Lebensdauerrichtlinie für SAML-Token, die von Entra ID ausgestellt werden, kein Sitzungstimeout für GitHub.