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 automatically get signed-on to GitHub (Single Sign-On) with their Azure AD accounts
  • You can manage your accounts in one central location - the Azure Management 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.

Prerequisites

To configure Azure AD integration with GitHub, you need the following items:

  • An Azure AD subscription
  • A GitHub single-sign on enabled subscription
Note

To test the steps in this tutorial, we do not recommend using a production environment.

To test the steps in this tutorial, you should follow these recommendations:

  • You should not use your production environment, unless this is necessary.
  • If you don't have an Azure AD trial environment, you can get an one-month trial here.

Scenario description

In this tutorial, you test Azure AD single sign-on in a test environment. The scenario outlined in this tutorial consists of two main building blocks:

  1. Adding GitHub from the gallery
  2. Configuring and testing Azure AD single sign-on

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:

  1. In the Azure Management Portal, on the left navigation panel, click Azure Active Directory icon.

    Active Directory

  2. Navigate to Enterprise applications. Then go to All applications.

    Applications

  3. Click Add button on the top of the dialog.

    Applications

  4. In the search box, type GitHub.com.

    Creating an Azure AD test user

  5. In the results panel, select GitHub, and then click Add button to add the application.

    Creating an Azure AD test user

Configuring and testing 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, Azure AD needs to know what the counterpart user in GitHub is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in GitHub needs to be established.

This link relationship is established by assigning the value of the user name in Azure AD as the value of the Username in GitHub.

To configure and test Azure AD single sign-on with GitHub, you need to complete the following building blocks:

  1. Configuring Azure AD Single Sign-On - to enable your users to use this feature.
  2. Creating an Azure AD test user - to test Azure AD single sign-on with Britta Simon.
  3. Creating a GitHub test user - to have a counterpart of Britta Simon in GitHub that is linked to the Azure AD representation of her.
  4. Assigning the Azure AD test user - to enable Britta Simon to use Azure AD single sign-on.
  5. Testing Single Sign-On - to verify whether the configuration works.

Configuring Azure AD single sign-on

In this section, you enable Azure AD single sign-on in the Azure Management portal and configure single sign-on in your GitHub application.

To configure Azure AD single sign-on with GitHub, perform the following steps:

  1. In the Azure Management portal, on the GitHub application integration page, click Single sign-on.

    Configure Single Sign-On

  2. On the Single sign-on dialog, as Mode select SAML-based Sign-on to enable single sign on.

    Configure Single Sign-On

  3. On the GitHub Domain and URLs section, perform the following steps:

    Configure Single Sign-On

    a. In the Sign-on URL textbox, type the value as: https://github.com/orgs/<entity-id>/sso

    b. In the Identifier textbox, type a URL using the following pattern: https://github.com/orgs/<entity-id>

    Note

    Please note that these are not the real values. You have to update these values with the actual Sing-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.

  4. On the User Attributes section, select User Identifier as user.mail.

    Configure Single Sign-On

  5. On the SAML Signing Certificate section, click Create new certificate.

    Configure Single Sign-On

  6. On the Create New Certificate dialog, click the calendar icon and select an expiry date. Then click Save button.

    Configure Single Sign-On

  7. On the SAML Signing Certificate section, select Make new certificate active and click Save button.

    Configure Single Sign-On

  8. On the pop-up Rollover certificate window, click OK.

    Configure Single Sign-On

  9. On the SAML Signing Certificate section, click Certificate (Base64) and then save the certificate file on your computer.

    Configure Single Sign-On

  10. On the GitHub Configuration section, click Configure GitHub to open Configure sign-on window.

    Configure Single Sign-On

    Configure Single Sign-On

  11. In a different web browser window, log into your GitHub organization site as an administrator.

  12. Navigate to Settings and click Security

    Settings

  13. 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.

    Settings

  14. Configure the following fields:

    a. Sign on URL: Enter SAML Single sign-on Service URL from the Configure GitHub section on Azure AD

    b. Issuer: Enter SAML Entity ID from the Configure GitHub section on Azure AD

    c. Public Certificate: Open the downloaded certificate from Azure AD in a notepad and copy the content including "BEGIN CERTIFICATE" and "END CERTIFICATE"

    Settings

  15. Click on Test SAML configuration to confirm that no validation failures or errors during SSO.

    Settings

  16. Click Save

Creating an Azure AD test user

The objective of this section is to create a test user in the Azure Management portal called Britta Simon.

Create Azure AD User

To create a test user in Azure AD, perform the following steps:

  1. In the Azure Management portal, on the left navigation pane, click Azure Active Directory icon.

    Creating an Azure AD test user

  2. Go to Users and groups and click All users to display the list of users.

    Creating an Azure AD test user

  3. At the top of the dialog click Add to open the User dialog.

    Creating an Azure AD test user

  4. On the User dialog page, perform the following steps:

    Creating an Azure AD test user

    a. In the Name textbox, type BrittaSimon.

    b. In the User name textbox, type the email address of BrittaSimon.

    c. Select Show Password and write down the value of the Password.

    d. Click Create.

Creating a GitHub test user

In order to enable Azure AD users to log into GitHub, they must be provisioned into GitHub.
In the case of GitHub, provisioning is a manual task.

To provision a user accounts, perform the following steps:

  1. Log in to your GitHub company site as an administrator.

  2. Click People.

    People

  3. Click Invite member.

    Invite Users

  4. On the Invite member dialog page, perform the following steps:

    a. In the Email textbox, type the email address of Britta Simon account.

    Invite People

    b. Click Send Invitation.

    Invite People

    Note

    The Azure Active Directory account holder will receive an email and follow a link to confirm their account before it becomes active.

Assigning the Azure AD test user

In this section, you enable Britta Simon to use Azure single sign-on by granting her access to GitHub.

Assign User

To assign Britta Simon to GitHub, perform the following steps:

  1. In the Azure Management portal, open the applications view, and then navigate to the directory view and go to Enterprise applications then click All applications.

    Assign User

  2. In the applications list, select GitHub.com.

    Configure Single Sign-On

  3. In the menu on the left, click Users and groups.

    Assign User

  4. Click Add button. Then select Users and groups on Add Assignment dialog.

    Assign User

  5. On Users and groups dialog, select Britta Simon in the Users list.

  6. Click Select button on Users and groups dialog.

  7. Click Assign button on Add Assignment dialog.

Testing 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 get signed-on to your GitHub application. You'll be logging in as an Organization account but then need to log in with your personal account.

Additional resources