Informationen zur SAML-Konfiguration
Um SAML Single Sign-On (SSO) für die Authentifizierung zu GitHubverwenden, müssen Sie sowohl Ihren externen SAML-Identitätsanbieter (IdP) als auch Ihr Unternehmen oder Ihre Organisation auf GitHubkonfigurieren. In einer SAML-Konfiguration GitHub fungiert sie als SAML-Dienstanbieter (SP). Weitere Informationen zur Authentifizierung für dein Unternehmen findest du unter Grundlagen der Identitäts- und Zugriffsverwaltung.
GitHub bietet die Integration gemäß der SAML 2.0-Spezifikation. Weitere Informationen findest du im SAML-Wiki auf der OASIS-Website.
Sie müssen eindeutige Werte aus Ihrem SAML-IdP eingeben, wenn Sie SAML SSO für GitHubkonfigurieren, und Sie müssen auch eindeutige Werte aus GitHub Ihrem IdP eingeben.
SAML-Metadaten
Die SP-Metadaten für GitHub Enterprise Cloud sind für sowohl Organisationen als auch Unternehmen mit SAML SSO verfügbar.
GitHub verwendet die urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST Bindung.
Wenn Sie verwenden Enterprise Managed Users, können Sie 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 auf GitHub Enterprise Cloud eine eigenständige Organisation verwenden und kein Enterprise-Konto nutzen. Weitere Informationen finden Sie unter SAML Single Sign-On für deine Organisation verwalten.
Die SP-Metadaten für eine Organisation GitHub sind verfügbar unter , wobei https://github.com/orgs/ORGANIZATION/saml/metadataORGANIZATION der Name Ihrer Organisation ist.GitHub
| Wert | Andere Namen | BESCHREIBUNG | Beispiel |
|---|---|---|---|
| Entitäts-ID des SP | SP-URL, Zielgruppeneinschränkung | Die URL der obersten Ebene für Ihre Organisation unter GitHub.com | https:/ |
| Assertionsverbraucherdienst-URL (ACS) des SP | Antwort-, Empfänger- oder Ziel-URL | URL, an die der IdP SAML-Antworten sendet | https:/ |
| SSO-URL (einmaliges Anmelden) des SP | |||
| URL, an der der IdP mit dem SSO-Prozess beginnt | https:/ |
Unternehmen
Abhängig von Ihrer Umgebung sind die SP-Metadaten für ein Unternehmen auf GitHub Enterprise Cloud entweder hier verfügbar:
https://github.com/enterprises/ENTERPRISE/saml/metadata, wenn es sich bei ENTERPRISE um den Namen des Unternehmens handelthttps://SUBDOMAIN.ghe.com/enterprises/SUBDOMAIN/saml/metadata, wenn es sich bei SUBDOMAIN um die Unterdomäne des Unternehmens handelt
| Wert | Andere Namen | BESCHREIBUNG | Beispiel |
|---|---|---|---|
| Entitäts-ID des SP | SP-URL, Zielgruppeneinschränkung | Die URL der obersten Ebene für Ihr Unternehmen unter GitHub.com | https:/ |
| Assertionsverbraucherdienst-URL (ACS) des SP | Antwort-, Empfänger- oder Ziel-URL | URL, an die der IdP SAML-Antworten sendet | https:/ |
| SSO-URL (einmaliges Anmelden) des SP | |||
| URL, an der der IdP mit dem SSO-Prozess beginnt | https:/ |
SAML-Attribute
Die folgenden SAML-Attribute sind für GitHub.
| Name | Erforderlich | BESCHREIBUNG |
|---|---|---|
NameID | Ein persistenter Benutzerkennzeichner. Es kann ein beliebiges Format für persistente Namenskennzeichner verwendet werden. | |
Wenn Sie ein Unternehmen mit Enterprise Managed Users verwenden, normalisiert GitHub das Element NameID zur Verwendung als Benutzername, sofern keine der alternativen Assertions bereitgestellt wird. 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 zugeordnete Sitzung ungültig macht. Nach der Ungültigheit muss sich die Person erneut authentifizieren, um auf die Ressourcen Weitere Informationen findest du unter Sitzungsdauer und Timeout. |
| |
| full_name | | Wenn Sie SAML SSO für ein Unternehmen konfigurieren undEnterprise Managed Users, wird der vollständige Name des Benutzers auf der Profilseite des Benutzers angezeigt. |
| emails | | Die E-Mail-Adressen für den Benutzer. Wenn Sie die Lizenznutzung zwischen GitHub Enterprise Server und GitHub Enterprise Cloud synchronisieren, verwendet GitHub Connectemails, um eindeutige Benutzer produktübergreifend 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 verwendenEnterprise Managed Users, verwenden Sie die öffentlichen SSH-Schlüssel für den Benutzer. Du kannst mehr als einen Schlüssel angeben. |
| gpg_keys | | Wenn Sie SAML-SSO für ein Unternehmen konfigurieren und verwendenEnterprise Managed Users, verwenden Sie die GPG-Schlüssel für den Benutzer. 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
GitHub erfordert, dass die Antwortnachricht von Ihrem IdP die folgenden Anforderungen erfüllt.
-
Dein IdP musst das Element
<Destination>im Stammantwortdokument bereitstellen und nur dann mit der ACS-URL übereinstimmen, wenn das Stammantwortdokument signiert ist. Wenn Ihr 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 IhremEntityIdfü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/ENTERPRISEoderhttps://SUBDOMAIN.ghe.com/enterprises/SUBDOMAIN.
- Wenn du SAML für eine Organisation konfigurierst, lautet dieser Wert
-
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 mit Ihrem IdP authentifiziert und auf unbestimmte Zeit autorisiert bleibt, GitHub wird die Sitzung für jedes Benutzerkonto mit Zugriff auf die Ressourcen Ihres Unternehmens regelmäßig ungültig. Nach der Invalidierung muss die Person sich erneut bei Ihrem IdP authentifizieren.
Wenn Ihr IdP einen Wert für das SessionNotOnOrAfter Attribut nicht bestätigt, GitHub wird eine Sitzung standardmäßig 24 Stunden nach erfolgreicher Authentifizierung mit Ihrem IdP ungültig.
GitHub unterstützt eine angepasste Sitzungsdauer, wenn Ihr IdP die Möglichkeit bietet, ein Attribut und einen SessionNotOnOrAfter Wert konfigurieren.
Wenn Sie eine benutzerdefinierte Sitzungsdauer von weniger als 24 Stunden festlegen, kann GitHub Benutzer dazu auffordern, sich jedes Mal zu authentifizieren, wenn GitHub eine Umleitung initiiert.
Um Authentifizierungsfehler zu vermeiden, empfehlen wir eine Mindestsitzungsdauer von 4 Stunden. 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 wurden, nicht die Sitzungszeitüberschreitung für GitHub.