February 4th, 2025

Step-by-Step Guide: User Provisioning with SAML Authentication in GitHub Enterprise

This guide demonstrates how to seamlessly set up user access in GitHub Enterprise using Security Assertion Markup Language (SAML) authentication. The process connects a user’s GitHub account with your organization’s identity provider (such as Microsoft Entra ID or Okta), enabling secure and streamlined access management. 

  Diagram of login process with IDP with SAML SSO   

The diagram above describes the process when a user access GitHub Enterprise when SAML authentication, the critical piece here is the link with Single Sign-On (SSO) identity. 

Assuming the following steps before starting: 

  • You have assigned users access to the GitHub application in your IDP

Step by step Guide

Note: There will be up to 3 [personas] in this process.

Step 1 [as Owner of the GitHub Organization]: Invite the new user’s personal GitHub Account handle to the intended Organization within the GitHub Enterprise.  

Screenshot of inviting a member to GHE
Screenshot of inviting a member to GitHub Enterprise

Step 2 [as ‘Cloud Application Administrator’ of Microsoft Entra ID Enterprise Application for GitHub Enterprise]: Add the account that you want linked to the new user’s GitHub personal account by assigning the ‘Default Access’ role in the Enterprise Application in Entra ID. 

Screenshot of adding an assignment to existing user on Microsoft Entra ID
Screenshot of adding an assignment to existing user on Microsoft Entra ID

Step 3 [as the new user]: Accept the invitation from the email address that is associated with the personal account.  

Screenshot of email invite received by new user being provisioned
Screenshot of email invite the new provisioned user will receive

Step 4 [as the new user]: GitHub will prompt the new user to authenticate with the SAML IDP to join the organization. This is where the linking happens. The new user will need to sign in to the IDP used for SAML. Going forward, the new user will login to GitHub.com with the personal account, then go through SAML SSO login when navigating to the specific organization of the Enterprise. 

Screenshot of accepting the invite via GitHub Enterprise from the email invite received by new user being provisioned
Screenshot of accepting the invite via GitHub Enterprise from the email the new provisioned user will receive

Screenshot of accepting authenticating to Microsoft Entra ID for the first time by new user being provisioned to link the two accounts together
Screenshot of accepting authenticating to Microsoft Entra ID for the first time

Step 5 [as the new user]: The new user can then join the organization after authentication.

Screenshot of joining the organization within the GitHub Enterprise by new user being provisioned
Screenshot of joining the organization within the GitHub Enterprise by the new provisioned user

Screenshot of having access to the new organization within the GitHub Enterprise by the new user being provisioned
Screenshot of having access to the new organization within the GitHub Enterprise by the new provisioned user 

Conclusion

Great, the new user is now a member of the Organization that is a part of the non-EMU enterprise! Finally, to access the resources of this organization, the new user will first login through a personal account through GitHub.com first and then single signed-on through the configured IDP of the enterprise. 

In conclusion, by following these steps, you ensure a secure and efficient user provisioning process with SAML authentication in GitHub Enterprise. Altogether, this setup not only simplifies user access but also enhances security by leveraging your organization’s identity provider. Implementing SAML SSO allows for seamless integration and better management of user identities across your enterprise. 

Content adapted from SAML SSO Guide Part I: SAML SSO & IP Protection within GitHub Enterprise Cloud – YouTube 

Author

0 comments

Leave a comment

Your email address will not be published. Required fields are marked *