Informationen zur SAML-Konfiguration
Wenn Sie das einmalige Anmelden (Single Sign-On, SSO) mit SAML zur Authentifizierung bei GitHub Enterprise Cloud verwenden möchten, müssen Sie sowohl Ihren externen SAML-Identitätsanbieter (Identity Provider, IdP) und Ihr Unternehmen oder Ihre Organisation auf GitHub konfigurieren. In einer SAML-Konfiguration dient GitHub Enterprise Cloud als SAML-Dienstanbieter (Service Provider, SP). Weitere Informationen zur Authentifizierung für Ihr Unternehmen finden Sie unter „Informationen zur Identitäts- und Zugriffsverwaltung“.
GitHub Enterprise Cloud stellt die Integration gemäß der SAML 2.0-Spezifikation bereit. Weitere Informationen finden Sie im SAML-Wiki auf der OASIS-Website.
Sie müssen eindeutige Werte für Ihren SAML-IdP eingeben, wenn Sie SAML-SSO für GitHub Enterprise Cloud konfigurieren, und Sie müssen auch eindeutige Werte aus GitHub Enterprise Cloud bei Ihrem IdP eingeben.
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
.
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. 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 SAML Single Sign-On für deine Organisation verwalten.
Die Metadaten des Dienstanbieters für eine Organisation auf GitHub sind unter https://github.com/orgs/ORGANIZATION/saml/metadata
verfügbar, wobei ORGANIZATION der Name Ihrer Organisation auf ist.
Wert | Andere Namen | BESCHREIBUNG | Beispiel |
---|---|---|---|
Entitäts-ID des SP | Dienstanbieter-URL, Einschränkung der Zielgruppe | Die übergeordnete URL für deine Organisation auf GitHub.com | https://github.com/orgs/ORGANIZATION |
Assertionsverbraucherdienst-URL (ACS) des SP | Antwort-, Empfänger- oder Ziel-URL | URL, an die der IdP SAML-Antworten sendet | https://github.com/orgs/ORGANIZATION/saml/consume |
SSO-URL (einmaliges Anmelden) des SP | |||
URL, an der der IdP mit dem SSO-Prozess beginnt | https://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 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 | Dienstanbieter-URL, Einschränkung der Zielgruppe | Die übergeordnete URL für dein Unternehmen auf GitHub.com | https://github.com/enterprises/ENTERPRISE |
Assertionsverbraucherdienst-URL (ACS) des SP | Antwort-, Empfänger- oder Ziel-URL | URL, an die der IdP SAML-Antworten sendet | https://github.com/enterprises/ENTERPRISE/saml/consume |
SSO-URL (einmaliges Anmelden) des SP | |||
URL, an der der IdP mit dem SSO-Prozess beginnt | https://github.com/enterprises/ENTERPRISE/saml/sso |
SAML-Attribute
Die folgenden SAML-Attribute sind für GitHub Enterprise Cloud verfügbar.
Name | Erforderlich | BESCHREIBUNG |
---|---|---|
NameID | Ein 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 finden Sie 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. | |
SessionNotOnOrAfter | Das 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 finden Sie 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 | Dies ist die E-Mail-Adresse des Benutzers bzw. der Benutzerin. Wenn Sie die Lizenznutzung zwischen GitHub Enterprise Server und GitHub Enterprise Cloud synchronisieren, verwendet GitHub Connect emails , um eindeutige Benutzer*innen in verschiedenen Produkten zu identifizieren. Weitere Informationen finden Sie unter Synchronisieren der Lizenzverwendung zwischen GitHub Enterprise Server und GitHub Enterprise 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 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 IhrerEntityId
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
oderhttps://SUBDOMAIN.ghe.com/enterprises/SUBDOMAIN
.
- Wenn du SAML für eine Organisation konfigurierst, lautet dieser Wert
-
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 Ihrem IdP authentifizieren.
Wenn Ihr IdP keinen Wert für das SessionNotOnOrAfter
-Attribut angibt, macht GitHub Enterprise Cloud eine Sitzung 24 Stunden nach der erfolgreichen Authentifizierung bei Ihrem IdP standardmäßig ungültig.
GitHub Enterprise Cloud unterstützt eine angepasste Sitzungsdauer, wenn Ihr IdP die Möglichkeit bietet, ein SessionNotOnOrAfter
-Attribut und einen Wert verwendet.
Wenn Sie einen angepassten Sitzungsdauerwert von weniger als 24 Stunden angeben, 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 finden Sie unter SAML-Authentifizierung.
Note
Für Microsoft Entra ID (früher bekannt als Azure AD) steuert die konfigurierbare Lebensdauerrichtlinie für SAML-Token nicht die Sitzungstimeouts für GitHub Enterprise Cloud.