Synchronizing a team with an identity provider group

You can synchronize a GitHub team with an identity provider (IdP) group to automatically add and remove team members.

Organization owners and team maintainers can synchronize a GitHub team with an IdP group.

Team synchronization is available for organizations and enterprise accounts using GitHub Enterprise Cloud. For more information, see "GitHub's products."

In this article

Note: Team synchronization with Okta is currently in beta and subject to change. Please contact your GitHub Sales account representative to register for the beta.

About team synchronization

When you synchronize a GitHub team with an IdP group, changes to the IdP group are reflected on GitHub automatically, reducing the need for manual updates and custom scripts. You can use an IdP with team synchronization to manage administrative tasks such as onboarding new members, granting new permissions for movements within an organization, and removing member access to the organization.

You can connect up to five IdP groups to a GitHub team. You can assign an IdP group to multiple GitHub teams.

Team synchronization does not support IdP groups with more than 5000 members.

Once a GitHub team is connected to an IdP group, your IdP administrator must make team membership changes through the identity provider. You cannot manage team membership on GitHub or using the API.

All team membership changes made through your IdP will appear in the audit log on GitHub as changes made by the team synchronization bot. Your IdP will send team membership data to GitHub once every hour. Connecting a team to an IdP group may remove some team members. For more information, see "Requirements for members of synchronized teams."

Parent teams cannot synchronize with IdP groups. If the team you want to connect to an IdP group is a parent team, we recommend creating a new team or removing the nested relationships that make your team a parent team. For more information, see "About teams," "Creating a team," and "Moving a team in your organization's hierarchy."

To manage repository access for any GitHub team, including teams connected to an IdP group, you must make changes with GitHub. For more information, see "About teams" and "Managing team access to an organization repository."

You can also manage team synchronization with the API. For more information, see "Team synchronization."

Requirements for members of synchronized teams

After you connect a team to an IdP group, team synchronization will add each member of the IdP group to the corresponding team on GitHub only if:

  • The person is a member of the organization on GitHub.
  • The person has already logged in with their user account on GitHub and authenticated to the organization or enterprise account via SAML single sign-on at least once.
  • The person's SSO identity is a member of the IdP group.

Existing teams or group members who do not meet these criteria will be automatically removed from the team on GitHub and lose access to repositories. Revoking a user's linked identity will also remove the user from from any teams mapped to IdP groups. For more information, see "Viewing and managing a member's SAML access to your organization" and "Viewing and managing a user's SAML access to your enterprise."

A removed team member can be added back to a team automatically once they have authenticated to the organization or enterprise account using SSO and are moved to the connected IdP group.

To avoid unintentionally removing team members, we recommend enforcing SAML SSO in your organization or enterprise account, creating new teams to synchronize membership data, and checking IdP group membership before synchronizing existing teams. For more information, see "Enforcing SAML single sign-on for your organization" and "Enabling SAML single sign-on for organizations in your enterprise account."

If your organization is owned by an enterprise account, enabling team synchronization for the enterprise account will override your organization-level team synchronization settings. For more information, see "Managing team synchronization for organizations in your enterprise account."

Prerequisites

Before you can connect a GitHub team with an identity provider group, an organization or enterprise owner must enable team synchronization for your organization or enterprise account. For more information, see "Managing team synchronization for your organization" and "Managing team synchronization for organizations in your enterprise account."

To avoid unintentionally removing team members, visit the administrative portal for your IdP and confirm that each current team member is also in the IdP groups that you want to connect to this team. If you don't have this access to your identity provider, you can reach out to your IdP administrator.

You must authenticate using SAML SSO. For more information, see "Authenticating with SAML single sign-on."

Connecting an IdP group to a team

When you connect an IdP group to a GitHub team, all users in the group are automatically added to the team.

  1. In the top right corner of GitHub, click your profile photo, then click Your profile.

    Profile photo

  2. On the left side of your profile page, under "Organizations", click the icon for your organization.

    organization icons

  3. Under your organization name, click Teams.

    Teams tab

  4. On the Teams tab, click the name of the team.

    List of the organization's teams

  5. At the top of the team page, click Settings.

    Team settings tab

  6. Under "Identity Provider Groups", use the drop-down menu, and select up to 5 identity provider groups.

    Drop-down menu to choose identity provider groups

  7. Click Save changes.

Disconnecting an IdP group from a team

If you disconnect an IdP group from a GitHub team, team members that were assigned to the GitHub team through the IdP group will be removed from the team.

  1. In the top right corner of GitHub, click your profile photo, then click Your profile.

    Profile photo

  2. On the left side of your profile page, under "Organizations", click the icon for your organization.

    organization icons

  3. Under your organization name, click Teams.

    Teams tab

  4. On the Teams tab, click the name of the team.

    List of the organization's teams

  5. At the top of the team page, click Settings.

    Team settings tab

  6. Under "Identity Provider Groups", to the right of the IdP group you want to disconnect, click .

    Unselect a connected IdP group from the GitHub team

  7. Click Save changes.

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.