Informationen zur Benutzerbereitstellung für GitHub Enterprise Server
Wenn Sie SAML Single Sign-On (SSO) für Ihre GitHub Enterprise Server-Instance verwenden, können Sie SCIM so konfigurieren, dass Benutzerkonten automatisch erstellt oder deaktiviert und Ihrer Instanz Zugriff gewährt wird, wenn Sie die Anwendung in Ihrem IdP zuweisen oder die Zuweisung aufheben. Weitere Informationen zu SCIM findest du unter System for Cross-Domain Identity Management: Protokoll (RFC 7644) auf der IETF-Website.
Wenn Sie die Benutzerprovisionierung nicht mit SCIM konfigurieren, kommuniziert Ihr IdP nicht automatisch mit GitHub Enterprise Server, wenn Sie einem Benutzer die Anwendung zuweisen oder die Zuweisung aufheben. Ohne SCIM erstellt GitHub Enterprise Server mithilfe der SAML-Just-in-Time-(JIT)-Bereitstellung ein Benutzerkonto, wenn jemand erstmals GitHub Enterprise Server aufruft und sich anmeldet, indem er sich über Ihren IdP authentifiziert.
Um die Bereitstellung für Ihr Unternehmen zu konfigurieren, müssen Sie die Bereitstellung auf GitHub Enterprise Server aktivieren und anschließend entweder eine Bereitstellungsanwendung auf Ihrem IdP installieren und konfigurieren oder die SCIM-Bereitstellung manuell mithilfe der REST-API-Endpunkte von GitHub für SCIM konfigurieren.
Unterstützte Identitätsanbieter
GitHub arbeitet mit einigen Entwicklern von Identitätsverwaltungssystemen an einer vorgefertigten Integration mit GitHub Enterprise Server. Um Ihre Konfiguration zu vereinfachen und die vollständige Unterstützung sicherzustellen, nutzen Sie einen einzelnen Partner-IdP sowohl für die Authentifizierung als auch für die Bereitstellung.
Partneridentitätsanbieter
Die folgenden IDPs sind Partner-IDPs. Sie bieten eine Anwendung, mit der Sie sowohl die SAML-Authentifizierung als auch die SCIM-Bereitstellung konfigurieren können.
- Microsoft Entra ID
- Okta
- PingFederate (Öffentliche Vorschau)
Wenn Sie einen einzelnen Partner-IdP sowohl für die Authentifizierung als auch für die Provisionierung verwenden, bietet GitHub Unterstützung für die Anwendung im Partner-IdP und die Integration des IdP mit GitHub. Die gleiche Anwendung muss sowohl für die SAML-Authentifizierung als auch für die SCIM-Bereitstellung verwendet werden. Die Unterstützung für PingFederate ist in Öffentliche Vorschau.
Bei Verwendung der Entra-ID für Azure Government haben wir keine unterstützte Partneranwendung.
Andere Identitätsverwaltungssysteme
Wenn Sie nicht einen einzigen Partner-IdP sowohl für die Authentifizierung als auch für die Bereitstellung verwenden können, können Sie ein anderes Identitätsmanagementsystem oder eine Kombination von Systemen verwenden. Das System muss:
- Befolgen Sie GitHubs Integrationsrichtlinien
- Eine Authentifizierung mithilfe von SAML gemäß der Spezifikation SAML 2.0 ermöglichen
- Bereitstellen der Benutzerlebenszyklusverwaltung mithilfe von SCIM, Einhaltung der SCIM 2.0-Spezifikation und Kommunikation mit GitHubder REST-API (siehe Bereitstellen von Benutzern und Gruppen mit SCIM mithilfe der REST-API)
Wie verwalte ich Benutzerlebenszyklen mit SCIM?
Mit SCIM verwalten Sie den Lebenszyklus von Benutzerkonten aus Ihrem IdP:
- Wenn Sie einen neuen Benutzer bereitstellen, fordert Ihr IdP ein Ihre GitHub Enterprise Server-Instance , ein Konto zu erstellen und eine Onboarding-E-Mail an den Benutzer zu senden. Wenn Sie der Anwendung in Ihrem IdP eine Gruppe zuweisen, stellt Ihr IdP Konten für alle Mitglieder der Gruppe bereit.
- Wenn Sie Informationen aktualisieren, die der Identität eines Benutzers auf Ihrem IdP zugeordnet sind, aktualisiert Ihr IdP das Konto des Benutzers auf GitHub.
- Wenn Sie die Zuweisung des Benutzers aus der IdP-Anwendung aufheben oder das Konto eines Benutzers auf Ihrem IdP deaktivieren, kommuniziert Ihr IdP mit GitHub , um sitzungen ungültig zu machen und das Konto des Mitglieds zu deaktivieren. Die Informationen des deaktivierten Kontos werden beibehalten, und ihr Benutzername wird in einen Hash ihres ursprünglichen Benutzernamens.
- Wenn Sie einen Benutzer der IdP-Anwendung zuweisen oder sein Konto auf Ihrem IdP reaktivieren, wird das Benutzerkonto reaktiviert, und der Benutzername wird wiederhergestellt.
Zum Konfigurieren der Team- und Organisationsmitgliedschaft, des Repositoryzugriffs und der Berechtigungen können Sie Gruppen auf Ihrem IdP verwenden. Weitere Informationen finden Sie unter Verwaltung von Teammitgliedschaften mithilfe von Identitätsanbieter-Gruppen.
Wenn SCIM aktiviert ist, können Sie von SCIM bereitgestellte Benutzer nicht mehr direkt löschen, sperren oder heraufstufen auf GitHub Enterprise Server. Sie müssen diese Prozesse über Ihren IdP verwalten. Wenn ein Problem mit Ihrem IdP auftritt und Sie einen Benutzer direkt verwalten müssen, müssen Sie die SCIM-REST-API verwenden, um die Benutzeridentitäten in Ihrer Appliance zu verwalten (siehe Bereitstellen von Benutzern und Gruppen mit SCIM mithilfe der REST-API).
Navigiere in deinen Unternehmenseinstellungen zur Registerkarte „Suspended Members“, um gesperrte Mitglieder anzuzeigen. Diese Seite wird angezeigt, wenn SCIM auf GitHub Enterprise Server aktiviert ist.
- Klicke in der oberen rechten Ecke von GitHub Enterprise Server auf dein Profilbild und dann auf Enterprise settings.
- Klicken Sie oben auf der Seite auf "Personen".
- Klicke auf Suspended Members.
Was geschieht, wenn ich SCIM aktiviere?
Wenn Sie derzeit SAML SSO verwenden und SCIM aktivieren, sollten Sie wissen, was mit vorhandenen Benutzerkonten GitHub Enterprise Server geschieht, sobald SCIM aktiviert ist.
- Vorhandene Benutzer mit SAML-Zuordnungen können sich nicht anmelden, bis ihre Identitäten durch SCIM bereitgestellt wurden.
- Vorhandene Benutzer, die mit der integrierten Authentifizierung erstellt wurden, können sich nur anmelden, wenn die integrierte Authentifizierung weiterhin aktiviert ist.
- GitHub Enterprise Server speichert SAML-Zuordnungen nicht mehr für Benutzer. Stattdessen werden beim Bereitstellen eines Benutzers SCIM-Identitäten für Benutzer gespeichert.
- Der Abschnitt „SAML authentication“ wird nicht mehr auf der Websiteadministratorseite
https://HOSTNAME/users/USER/securityfür Benutzer angezeigt. Es ist nicht möglich, SAML NameID-Zuordnungen anzuzeigen oder zu aktualisieren, die zuvor in diesem Abschnitt sichtbar waren, da diese gespeicherten SAML-Zuordnungen nicht mehr während der SAML-Authentifizierung ausgewertet werden, wenn SCIM aktiviert ist. - Wenn Ihre Instanz eine SCIM-Anforderung empfängt, werden SCIM-Identitäten mit vorhandenen Benutzern abgeglichen, indem sie den SCIM-Attributwert
userNamemit dem GitHub Enterprise Server Benutzernamen vergleichen. Dies bedeutet, dass ein vorhandenes GitHub Enterprise Server Benutzerkonto unabhängig davon, ob es ursprünglich als lokales Benutzerkonto oder über SAML JIT-Bereitstellung erstellt wurde, in ein SCIM-verknüpftes Benutzerkonto konvertiert werden kann, wenn diese beiden Werte übereinstimmen.- Wenn ein Benutzerkonto mit einem übereinstimmenden Benutzernamen vorhanden ist, GitHub Enterprise Server wird die SCIM-Identität mit diesem Benutzerkonto verknüpft.
- Wenn kein Benutzerkonto mit einem übereinstimmenden Benutzernamen vorhanden ist, GitHub Enterprise Server wird ein neues Benutzerkonto erstellt und mit dieser SCIM-Identität verknüpft.
- Wenn GitHub einen Benutzer, der sich über SAML authentifiziert, erfolgreich einem bestehenden Benutzerkonto zuordnet, die Kontodaten wie E-Mail-Adresse, Vorname oder Nachname jedoch nicht übereinstimmen, überschreibt die Instanz diese Angaben durch Werte vom IdP. Außerdem werden bis auf die von SCIM bereitgestellte primäre E-Mail-Adresse alle anderen E-Mail-Adressen aus dem Benutzerkonto gelöscht.
- Unternehmensadmins mit CLI-Zugriff können mithilfe des Tools ghe-scim-identities-csv eine vollständige CSV-Datei mit bereitgestellten SCIM-Benutzeridentitäten exportieren.
Was geschieht während der SAML-Authentifizierung?
Nachdem ein IdP-Administrator einer Person Zugriff Ihre GitHub Enterprise Server-Instancegewährt hat, kann sich der Benutzer über den IdP authentifizieren, um mithilfe von SAML-SSO darauf zuzugreifen GitHub Enterprise Server .
- Wenn sich ein Benutzer über SAML authentifiziert, vergleicht GitHub, um einen Benutzer einer SAML-Identität zuzuordnen, ein normalisiertes
NameID-Attribut des IdP (oder einen anderen Wert, den Sie konfiguriert haben) mit dem Benutzernamen des Kontos. Ausführliche Informationen zur Normalisierung finden Sie unter Überlegungen zum Benutzernamen für die externe Authentifizierung. - Wenn in der Instance kein Konto mit einem übereinstimmenden Benutzernamen vorhanden ist, schlägt für den Benutzer die Anmeldung fehl.
- Um diese Übereinstimmung herzustellen, vergleicht GitHub Enterprise Server den SAML-
NameId-Anspruch vom IdP mit dem SCIM-userName-Attribut für jedes Benutzerkonto, das von SCIM auf der Instanz provisioniert wird. - Darüber hinaus vergleicht Entra ID GitHub Enterprise Server den Objektbezeichner aus der SAML-Anforderung mit einer vorhandenen externen SCIM-ID.
- Um diese Übereinstimmung herzustellen, vergleicht GitHub Enterprise Server den SAML-
- Wenn deine Umgebung nicht
NameIDverwendet, um Benutzer eindeutig zu identifizieren, kann ein Websiteadministrator benutzerdefinierte Benutzerattribute für die Instanz konfigurieren. GitHub Enterprise Server berücksichtigt diese Zuordnung, wenn SCIM konfiguriert ist. Weitere Informationen zum Zuordnen von Benutzerattributen findest du unter Konfigurieren von SAML Single Sign-On für dein Unternehmen.
Wie wird SCIM deaktiviert?
Weitere Informationen zu den verschiedenen Möglichkeiten, wie SCIM deaktiviert werden kann, findest du unter Deaktivieren der SCIM-Bereitstellung für Benutzende.
Erste Schritte
Um mit SCIM zu beginnen, werden Sie Folgendes tun:
- Schließe die Ersteinrichtung in Konfigurieren der SCIM-Bereitstellung zum Verwalten von Benutzern unabhängig davon ab, welchen Identitätsanbieter Sie verwenden.
- Konfigurieren Sie Einstellungen in Ihrem IdP.
- Wenn Sie einen Partner-IDP für die Authentifizierung und Bereitstellung verwenden, folgen Sie einem Leitfaden für Ihren IdP.
- Richte andernfalls wie in Bereitstellen von Benutzern und Gruppen mit SCIM mithilfe der REST-API beschrieben eine SCIM-Integration mit der REST-API ein.