Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article describes the steps you need to perform in both GitHub Enterprise Server and Microsoft Entra ID to configure automatic user provisioning. When configured, Microsoft Entra ID automatically provisions and de-provisions users and/or groups to GitHub Enterprise Server using the Microsoft Entra provisioning service. For important details on what this service does, how it works, and frequently asked questions, see Automate user provisioning and deprovisioning to SaaS applications with Microsoft Entra ID.
Capabilities supported
- Create users in GitHub Enterprise Server
- Remove users in GitHub Enterprise Server when they don't require access anymore
- Keep user attributes synchronized between Microsoft Entra ID and GitHub Enterprise Server
- Provision groups and group memberships in GitHub Enterprise Server
- Single sign-on to GitHub Enterprise Server (recommended)
Prerequisites
The scenario outlined in this article assumes that you already have the following prerequisites:
- A Microsoft Entra user account with an active subscription. If you don't already have one, you can Create an account for free.
- One of the following roles:
- GitHub Enterprise Server, fully initialized and configured for login with SAML SSO through your Microsoft Entra tenant.
Step 1: Plan your provisioning deployment
- Learn about how the provisioning service works.
- Determine who's in scope for provisioning.
- Determine what data to map between Microsoft Entra ID and GitHub Enterprise Server.
Step 2: Configure GitHub Enterprise Server to support provisioning with Microsoft Entra ID
Learn how to enable provisioning for GitHub Enterprise Server here.
Step 3: Add GitHub Enterprise Server from the Microsoft Entra application gallery
Add GitHub Enterprise Server from the Microsoft Entra application gallery to start managing provisioning to GitHub Enterprise Server. If you have previously setup GitHub Enterprise Server for SSO, you can use the same application. However, we recommend that you create a separate app when testing out the integration initially. Learn more about adding an application from the gallery here.
Step 4: Define who is in scope for provisioning
The Microsoft Entra provisioning service allows you to scope who is provisioned based on assignment to the application, or based on attributes of the user or group. If you choose to scope who is provisioned to your app based on assignment, you can use the steps to assign users and groups to the application. If you choose to scope who is provisioned based solely on attributes of the user or group, you can use a scoping filter.
Start small. Test with a small set of users and groups before rolling out to everyone. When scope for provisioning is set to assigned users and groups, you can control this by assigning one or two users or groups to the app. When scope is set to all users and groups, you can specify an attribute based scoping filter.
If you need extra roles, you can update the application manifest to add new roles.
Step 5: Configure automatic user provisioning to GitHub Enterprise Server
This section guides you through the steps to configure the Microsoft Entra provisioning service to create, update, and disable users and/or groups in TestApp based on user and/or group assignments in Microsoft Entra ID.
To configure automatic user provisioning for GitHub Enterprise Server in Microsoft Entra ID:
Sign in to the Microsoft Entra admin center as at least a Cloud Application Administrator.
Browse to Entra ID > Enterprise apps

In the applications list, select GitHub Enterprise Server.

Select the Provisioning tab.

Set + New configuration.

Under the Admin Credentials section, input your GitHub Enterprise Server Tenant URL and Secret Token. The values of the fields are in the following format:
- Tenant URL:
https://<your-github-server-domain>/api/v3/scim - Secret Token: The Personal Access Token (PAT) you created for the provisioning account in your GitHub Enterprise Server instance.
Select Test Connection to ensure Microsoft Entra ID can connect to GitHub Enterprise Server. If the connection fails, ensure your GitHub Enterprise Server account has Admin permissions and try again.

- Tenant URL:
Select Create to create your configuration.
Select Properties in the Overview page.
Select the pencil to edit the properties. Enable notification emails and provide an email to receive quarantine emails. Enable accidental deletions prevention. Select Apply to save the changes.

Select Attribute Mapping in the left panel and select users.
Review the user attributes that are synchronized from Microsoft Entra ID to GitHub Enterprise Server in the Attribute-Mapping section. The attributes selected as Matching properties are used to match the user accounts in GitHub Enterprise Server for update operations. If you choose to change the matching target attribute, you need to ensure that the GitHub Enterprise Server API supports filtering users based on that attribute. Select the Save button to commit any changes.
Attribute Type userNameString externalIdString emails[type eq "work"].valueString activeBoolean name.givenNameString name.familyNameString n ame.formattedString displayNameString Select Groups.
Review the group attributes that are synchronized from Microsoft Entra ID to GitHub Enterprise Server in the Attribute-Mapping section. The attributes selected as Matching properties are used to match the groups in GitHub Enterprise Server for update operations. Select the Save button to commit any changes.
Attribute Type displayNameString externalIdString membersReference To configure scoping filters, refer to the following instructions provided in the Scoping filter article.
Use on-demand provisioning to validate sync with a small number of users before deploying more broadly in your organization.
When you're ready to provision, select Start Provisioning from the Overview page.
Step 6: Monitor your deployment
Once you configure provisioning, use the following resources to monitor your deployment:
- Use the provisioning logs to determine which users are provisioned successfully or unsuccessfully
- Check the progress bar to see the status of the provisioning cycle and how close it's to completion
- If the provisioning configuration seems to be in an unhealthy state, the application goes into quarantine. Learn more about quarantine states the application provisioning quarantine status article.
Change log
- 02/18/2021 - Added support for Groups provisioning.
- 08/19/2025 - Updated links and mentions of "GitHub AE" to "GitHub Enterprise Server" to reflect the current product name.
Additional resources
- Managing user account provisioning for Enterprise Apps
- What is application access and single sign-on with Microsoft Entra ID?