On this page
- Prerequisite:
- Step 1: Setting up GitHub as OAuth Provider in Drupal:
- Configure OAuth Single Sign-On Application in GitHub:
- Step 2: Client ID and Client Secret setup in Drupal:
- Step 3: Scope and Endpoints setup in Drupal:
- Verify SSO Connection and Mapping:
- Support:
- Need assistance? Contact our 24*7 support team
GitHub SSO Login
This document will assist you to configure GitHub as an OAuth/OpenID provider, making Drupal an OAuth Client. Following these steps will allow you to configure OAuth/OpenID SSO between GitHub and your Drupal site such that your users will be able to log in to your Drupal site using their GitHub credentials.
We provide the Drupal OAuth Login - OAuth OIDC SSO module which is compatible with Drupal 7, Drupal 8, Drupal 9, and Drupal 10.
You can check our modules feedback and ratings here.
Prerequisite:
- Install and activate the OAuth Login - OAuth OIDC SSO module on your Drupal site. Click here to check out the module installation step.
Step 1: Setting up GitHub as OAuth Provider in Drupal:
-
Navigate to the Configure Application tab and search for GitHub using the search box.

-
Now, click on the Copy button to copy the Callback/Redirect URL and keep it handy. After that, click on the Step 2/3 button.

Configure OAuth Single Sign-On Application in GitHub:
- Go to the GitHub admin dashboard and sign up/log in to your account.
-
Navigate to Profile in top right corner and select Settings.

-
From left navigation bar click on Developer Settings tab.

-
Navigate to the OAuth Apps tab and click on Register a new application button.

-
Register a new OAuth application: Enter the following information
- Application name: Enter Application name as per your choice
- Homepage URL: Enter your Application Redirect URL
- Application description: Enter Application description as per your choice
- Authorization callback URL: Enter Callback/Redirect URL (Which we copied in the first step) in the Authorization callback URL text-field.
- Enable Device Flow: Click on checkbox to Enable Device Flow.
-
Then, click on Register application button.

Step 2: Client ID and Client Secret setup in Drupal:
-
Copy the Client ID from the GitHub application and paste it into Drupal OAuth Login's Client ID text field.


-
Click on Generates a new client secret button. Then, copy Client Secret and paste it into the Drupal OAuth Login's Client Secret text-field.


- Once done, click on the Step 3/3 button.
Step 3: Scope and Endpoints setup in Drupal:
There are two ways using which you can set up the scope and endpoints:
- Discovery / Well-Known URL:
-
Copy the discovery or well-known URL provided by GitHub and then paste it into the Metadata URL / Well-Known Endpoint text field.
-
Click on the All Done! button.

-
- Manual Configuration:
-
Check the Endpoints and Scope. Click on the All Done! button.

-
GitHub Endpoints and scope:
| Scope | user repo |
| Authorize Endpoint | https://github.com/login/oauth/authorize |
| Access Token Endpoint | https://github.com/login/oauth/access_token |
| Get User Info Endpoint | https://api.github.com/user |
Verify SSO Connection and Mapping:
- In Summary, You will be able to review the configuration which you have done so far.
- Once verified, you can click on the Test Configuration button to check the connection between Drupal and GitHub.
-
After a successful connection, select the Email Attribute from the dropdown and click on the Done button.

- Congratulations! You have successfully configured GitHub as OAuth Provider and Drupal as OAuth login.
- Now, open a new browser/private window and go to your Drupal site login page.
- Click on the Login using GitHub link to initiate the SSO from Drupal.
Support:
Need assistance? Contact our 24*7 support team
If you require any help with installing or configuring this module, please feel free to reach out to us at our 24*7 Support by clicking on the Support Icon from the bottom right corner and send us a query. You can also join us on Drupal Slack in the #miniorange channel.
Help improve this page
You can:
- Log in, click Edit, and edit this page
- Log in, click Discuss, update the Page status value, and suggest an improvement
- Log in and create a Documentation issue with your suggestion