Skip to main content

GitHub AE ist derzeit begrenzt freigegeben.

Referenz zur SAML-Konfiguration

Sie können SAML-Metadaten für Ihr Unternehmen auf GitHub AE anzeigen, und Sie können mehr über die verfügbaren SAML-Attribute und Antwortanforderungen herausfinden.

Informationen zur SAML-Konfiguration

Wenn Sie das einmalige Anmelden (Single Sign-On, SSO) mit SAML zur Authentifizierung bei GitHub AE verwenden möchten, müssen Sie sowohl Ihren externen SAML-Identitätsanbieter (Identity Provider, IdP) und Ihr Unternehmen auf GitHub AE konfigurieren. In einer SAML-Konfiguration dient GitHub AE als SAML-Dienstanbieter (Service Provider, SP). Weitere Informationen zur Authentifizierung für Ihr Unternehmen finden Sie unter „Informationen zur Identitäts- und Zugriffsverwaltung“.

GitHub AE 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 AE konfigurieren, und Sie müssen auch eindeutige Werte aus GitHub AE bei Ihrem IdP eingeben. Weitere Informationen zur Authentifizierung für

SAML-Metadaten

Die Metadaten des Dienstanbieters für dein Unternehmen auf GitHub AE sind unter https://HOSTNAME/saml/metadata verfügbar, wobei HOSTNAME der Name deines Unternehmens auf GitHub AE ist. GitHub AE 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 AEhttps://HOSTNAME
Assertionsverbraucherdienst-URL (ACS) des SPAntwort-, Empfänger- oder Ziel-URLURL, an die der IdP SAML-Antworten sendethttps://HOSTNAME/saml/consume
SSO-URL (einmaliges Anmelden) des SP
URL, an der der IdP mit dem SSO-Prozess beginnthttps://HOSTNAME/sso

SAML-Attribute

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

NameErforderlichBESCHREIBUNG
NameIDEin persistenter Benutzerkennzeichner. Es kann ein beliebiges Format für persistente Namenskennzeichner verwendet werden. GitHub AE das NameID-Element, damit es als Benutzername verwendet wird, es sei denn, es wird eine der alternativen Assertionen angegeben. Weitere Informationen finden Sie unter Username considerations for external authentication.

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 AE 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.
administratorWenn der Wert true lautet, wird der Benutzer bzw. die Benutzerin von GitHub AE automatisch zu einem Unternehmensbesitzer bzw. zu einer Unternehmensbesitzerin hochgestuft. Wenn das Attribut auf alles außer true festgelegt wird, folgt eine Herabstufung, solange der Wert nicht leer ist. Wenn das Attribut ausgelassen wird oder der Wert leer bleibt, wird die Rolle des Benutzers bzw. der Benutzerin nicht geändert.
usernameDer Benutzername für dein Unternehmen.
emailsDie E-Mail-Adressen für den Benutzer bzw. die Benutzerin. Du kannst mehrere Adressen angeben.
public_keysDie öffentlichen SSH-Schlüssel für den Benutzer bzw. für die Benutzerin. Du kannst mehr als einen Schlüssel angeben.
gpg_keysDie GPG-Schlüssel für den Benutzer bzw. für die Benutzerin. 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 AE 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 AE die Assertion.

  • Dein IdP muss das <Audience>-Element immer als Teil des <AudienceRestriction>-Elements bereitstellen. Der Wert muss mit deiner EntityId für GitHub AE übereinstimmen. Dieser Wert ist die URL, über die du auf dein Unternehmen zugreifst, z. B.https://SUBDOMAIN.githubenterprise.com, https://SUBDOMAIN.github.us oder https://SUBDOMAIN.ghe.com.

  • 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://SUBDOMAIN.ghe.com/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 AE 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 AE eine Sitzung eine Woche nach der erfolgreichen Authentifizierung bei Ihrem IdP standardmäßig ungültig.

GitHub AE 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 AE Personen dazu auffordert, sich jedes Mal zu authentifizieren, wenn GitHub AE eine Umleitung initiiert.

Hinweise:

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