Tutorial: Azure Active Directory integration with GitHub
In this tutorial, you learn how to integrate GitHub with Azure Active Directory (Azure AD). Integrating GitHub with Azure AD provides you with the following benefits:
- You can control in Azure AD who has access to GitHub.
- You can enable your users to be automatically signed-in to GitHub (Single Sign-On) with their Azure AD accounts.
- You can manage your accounts in one central location - the Azure portal.
If you want to know more details about SaaS app integration with Azure AD, see What is application access and single sign-on with Azure Active Directory. If you don't have an Azure subscription, create a free account before you begin.
To configure Azure AD integration with GitHub, you need the following items:
- An Azure AD subscription. If you don't have an Azure AD environment, you can get one-month trial here
- A GitHub organization created in GitHub Enterprise Cloud, which requires the GitHub Enterprise billing plan
In this tutorial, you configure and test Azure AD single sign-on in a test environment.
GitHub supports SP initiated SSO
GitHub supports Automated user provisioning
Adding GitHub from the gallery
To configure the integration of GitHub into Azure AD, you need to add GitHub from the gallery to your list of managed SaaS apps.
To add GitHub from the gallery, perform the following steps:
In the Azure portal, on the left navigation panel, click Azure Active Directory icon.
Navigate to Enterprise Applications and then select the All Applications option.
To add new application, click New application button on the top of dialog.
In the search box, type GitHub, select GitHub.com from result panel then click Add button to add the application.
Configure and test Azure AD single sign-on
In this section, you configure and test Azure AD single sign-on with GitHub based on a test user called Britta Simon. For single sign-on to work, a link relationship between an Azure AD user and the related user in GitHub needs to be established.
To configure and test Azure AD single sign-on with GitHub, you need to complete the following building blocks:
- Configure Azure AD Single Sign-On - to enable your users to use this feature.
- Configure GitHub Single Sign-On - to configure the Single Sign-On settings on application side.
- Create an Azure AD test user - to test Azure AD single sign-on with Britta Simon.
- Assign the Azure AD test user - to enable Britta Simon to use Azure AD single sign-on.
- Create GitHub test user - to have a counterpart of Britta Simon in GitHub that is linked to the Azure AD representation of user.
- Test single sign-on - to verify whether the configuration works.
Configure Azure AD single sign-on
In this section, you enable Azure AD single sign-on in the Azure portal.
To configure Azure AD single sign-on with GitHub, perform the following steps:
In the Azure portal, on the GitHub application integration page, select Single sign-on.
On the Select a Single sign-on method dialog, select SAML/WS-Fed mode to enable single sign-on.
On the Set up Single Sign-On with SAML page, click Edit icon to open Basic SAML Configuration dialog.
On the Basic SAML Configuration section, perform the following steps:
a. In the Sign on URL text box, type a URL using the following pattern:
b. In the Identifier (Entity ID) text box, type a URL using the following pattern:
Please note that these are not the real values. You have to update these values with the actual Sign on URL and Identifier. Here we suggest you to use the unique value of string in the Identifier. Go to GitHub Admin section to retrieve these values.
Your GitHub application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes, where as nameidentifier is mapped with user.userprincipalname. GitHub application expects nameidentifier to be mapped with user.mail, so you need to edit the attribute mapping by clicking on Edit icon and change the attribute mapping.
On the Set up Single Sign-On with SAML page, in the SAML Signing Certificate section, click Download to download the Certificate (Base64) from the given options as per your requirement and save it on your computer.
On the Set up GitHub section, copy the appropriate URL(s) as per your requirement.
a. Login URL
b. Azure Ad Identifier
c. Logout URL
Configure GitHub Single Sign-On
In a different web browser window, log into your GitHub organization site as an administrator.
Navigate to Settings and click Security
Check the Enable SAML authentication box, revealing the Single Sign-on configuration fields. Then, use the single sign-on URL value to update the Single sign-on URL on Azure AD configuration.
Configure the following fields:
a. In the Sign on URL textbox, paste Login URL value which you have copied from the Azure portal.
b. In the Issuer textbox, paste Azure AD Identifier value which you have copied from the Azure portal.
c. Open the downloaded certificate from Azure portal in notepad, paste the content into the Public Certificate textbox.
d. Click on Edit icon to edit the Signature Method and Digest Method from RSA-SHA1 and SHA1 to RSA-SHA256 and SHA256 as shown below.
Click on Test SAML configuration to confirm that no validation failures or errors during SSO.
Single sign-on in GitHub authenticates to a specific organization in GitHub and does not replace the authentication of GitHub itself. Therefore, if the user's github.com session has expired, you may be asked to authenticate with GitHub's ID/password during the single sign-on process.
Create an Azure AD test user
The objective of this section is to create a test user in the Azure portal called Britta Simon.
In the Azure portal, in the left pane, select Azure Active Directory, select Users, and then select All users.
Select New user at the top of the screen.
In the User properties, perform the following steps.
a. In the Name field enter BrittaSimon.
b. In the User name field type firstname.lastname@example.org
For example, BrittaSimon@contoso.com
c. Select Show password check box, and then write down the value that's displayed in the Password box.
d. Click Create.
Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to GitHub.
In the Azure portal, select Enterprise Applications, select All applications, then select GitHub.
In the applications list, select GitHub.
In the menu on the left, select Users and groups.
Click the Add user button, then select Users and groups in the Add Assignment dialog.
In the Users and groups dialog select Britta Simon in the Users list, then click the Select button at the bottom of the screen.
If you are expecting any role value in the SAML assertion then in the Select Role dialog select the appropriate role for the user from the list, then click the Select button at the bottom of the screen.
In the Add Assignment dialog click the Assign button.
Create GitHub test user
The objective of this section is to create a user called Britta Simon in GitHub. GitHub supports automatic user provisioning, which is by default enabled. You can find more details here on how to configure automatic user provisioning.
If you need to create user manually, perform following steps:
Log in to your GitHub company site as an administrator.
Click Invite member.
On the Invite member dialog page, perform the following steps:
a. In the Email textbox, type the email address of Britta Simon account.
b. Click Send Invitation.
The Azure Active Directory account holder will receive an email and follow a link to confirm their account before it becomes active.
Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
When you click the GitHub tile in the Access Panel, you should be automatically signed in to the GitHub for which you set up SSO. For more information about the Access Panel, see Introduction to the Access Panel.