Note
SCIM for GitHub Enterprise Server is currently in beta and subject to change. GitHub recommends testing with a staging instance first. See "Setting up a staging instance."
About team management with SCIM
If you have configured SCIM provisioning, you can manage team and organization membership within your enterprise through your IdP by connecting teams on GitHub with groups on your IdP. When you connect a team in one of your enterprise's organizations to an IdP group, changes to membership from the IdP group are reflected in your enterprise automatically, reducing the need for manual updates and custom scripts.
When a change to an IdP group or a new team connection results in a user joining a team in an organization they were not already a member of, the user will automatically be added to the organization. When you disconnect a group from a team, users who became members of the organization via team membership are removed from the organization if they are not assigned membership in the organization by any other means.
Note: Organization owners can also add users to organizations manually, as long as the accounts have already been provisioned via SCIM.
When group membership changes on your IdP, your IdP sends a SCIM request with the changes to GitHub according to the schedule determined by your IdP, so change may not be immediate. Any requests that change team or organization membership will register in the audit log as changes made by the account used to configure user provisioning.
GitHub also runs a reconciliation job once per day, which synchronizes team membership with IdP group membership that is stored on GitHub, based on information previously sent from the IdP via SCIM. If this job finds that a user is a member of an IdP group in the enterprise, but they are not a member of the mapped team or its organization, the job will attempt to add the user to the organization and team.
Teams connected to IdP groups cannot be parents of other teams nor a child of another team. If the team you want to connect to an IdP group is a parent or child team, we recommend creating a new team or removing the nested relationships that make your team a parent team.
To manage repository access for any team in your enterprise, including teams connected to an IdP group, you must make changes on GitHub. For more information, see "Managing team access to an organization repository".
Requirements for connecting IdP groups with teams
Before you can connect an IdP group with a team on GitHub, you must assign the group to the relevant application in your IdP. For more information, see "Configuring SCIM provisioning to manage users."
You can connect a team in your enterprise to one IdP group. You can assign the same IdP group to multiple teams in your enterprise.
If you are connecting an existing team to an IdP group, you must first remove any members that were added manually. After you connect a team in your enterprise to an IdP group, your IdP administrator must make team membership changes through the identity provider. You cannot manage team membership directly on GitHub.
If you use Microsoft Entra ID (previously known as Azure AD) as your IdP, you can only connect a team to a security group. Nested group memberships and Microsoft 365 groups are not supported.
Creating a new team connected to an IdP group
Any member of an organization can create a new team and connect the team to an IdP group.
-
In the upper-right corner of GitHub, select your profile photo, then click Your organizations.
-
Click the name of your organization.
-
Under your organization name, click Teams.
-
At the top of the page, click New team.
-
Under "Create new team", type the name for your new team.
-
Optionally, in the "Description" field, type a description of the team.
-
To connect a team, under "Identity Provider Groups", select the Select Groups dropdown menu and click the team you want to connect.
-
Under "Team visibility", select a visibility for the team.
-
Click Create team.
Managing the connection between an existing team and an IdP group
Organization owners and team maintainers can manage the existing connection between an IdP group and a team.
Note: Before you connect an existing team on GitHub to an IdP group for the first time, all members of the team on GitHub must first be removed. For more information, see "Removing organization members from a team."
-
In the top right corner of GitHub, click your profile photo, then click Your profile.
-
In the upper-right corner of GitHub, select your profile photo, then click Your organizations.
-
Under your organization name, click Teams.
-
Click the name of the team.
-
At the top of the team page, click Settings.
-
Optionally, under "Identity Provider Group", to the right of the IdP group you want to disconnect, click .
-
To connect an IdP group, under "Identity Provider Group", select the drop-down menu, and click an identity provider group from the list.
-
Click Save changes.
Viewing IdP groups, group membership, and connected teams
Enterprise owners can review a list of IdP groups, each group's memberships, and any teams connected to each group. The IdP groups and memberships listed in this view are based on information sent from the IdP to GitHub via SCIM. You must edit the membership for a group on your IdP.
-
In the top-right corner of GitHub Enterprise Server, click your profile photo, then click Enterprise settings.
-
To review a list of IdP groups, in the left sidebar, click Identity provider.
-
To see the members and teams connected to an IdP group, click the group's name.
-
To view the teams connected to the IdP group, click Teams.
If a team cannot sync with the group on your IdP, the team will display an error. For more information, see "Troubleshooting team membership with identity provider groups."
Removing members from organizations
The way a member is added to an organization owned by your enterprise determines how they must be removed from an organization.
- If a member was added to an organization manually, you must remove them manually. Unassigning them from the relevant application on your IdP will suspend the user but not remove them from the organization.
- If a user became an organization member because they were added to IdP groups, remove them from all of the mapped IdP groups associated with the organization.
To discover how a member was added to an organization, you can filter the member list by type. See "Viewing people in your enterprise."