Add a GitHub Identity Provider
This guide walks you through registering a GitHub identity provider (IdP) in ThunderID. Once configured, you can add Sign in with GitHub to any application by including a GitHub social login executor in its authentication flow.
Prerequisites
- ThunderID is running. See Get Started.
- You can sign in to the ThunderID Console.
- A GitHub account.
Step 1: Register an OAuth App in GitHub
-
Sign in to GitHub and go to Settings → Developer settings → OAuth Apps.
-
Click New OAuth App.
-
Fill in the required fields:
-
Application name: A name for your OAuth app.
-
Homepage URL: The URL of your application.
-
Authorization callback URL: The callback URL for your ThunderID deployment:
https://<your-thunderid-host>/gate/callbackYou can copy this value exactly from the Console in the next step, so it does not need to match character for character here.
-
-
Click Register application.
-
On the app page, copy the Client ID.
-
Click Generate a new client secret and copy the Client Secret. GitHub shows it only once.
Step 2: Configure the GitHub Connection in the Console
- Sign in to the ThunderID Console.
- Navigate to Connections.
- Click the GitHub card. If the card shows Not configured, this opens a form to create the connection. If it already shows Configured, this opens the existing connection instead.
- Enter your Client ID and Client secret from the previous step.
- Copy the Redirect URI shown on the form and add it to your GitHub OAuth app if you have not already done so.
- Optionally, set Scopes. Include
user:emailto ensure the user's email address is accessible. Leave this blank to use GitHub's own default scope. - Click Create connection.
ThunderID automatically uses the GitHub authorization, token, and userinfo endpoints. You do not need to supply them.
To map GitHub's profile fields (for example, login or avatar_url) to local user attributes, open the connection and go to the Attribute Configuration tab. See Attribute Configuration.
The GitHub connection also accepts a prompt field, forwarded as a query parameter on the authorization request. GitHub's OAuth flow does not define a prompt parameter, so this typically has no effect. This field is not available in the Console and can only be set through the Connections API.
Next Steps
- Connect an IdP to an Application: Add this GitHub IdP to an application's authentication flow.
- Manage Identity Providers: Update or delete identity providers.