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
These steps create a GitHub connection. To change an existing connection, see Manage Identity Providers.
- Sign in to the ThunderID Console.
- Navigate to Connections.
- Click the GitHub Login card marked Not configured.
- The form shows a setup hint with the Redirect URI. Copy it and add it to your GitHub OAuth app's authorization callback URL if you have not already done so.
- Enter your Client ID and Client secret from the previous step.
- Click Create connection.
ThunderID automatically uses the GitHub authorization, token, and user profile 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 connection requests the user:email scope by default. To request different scopes, open the connection after creation and update Scopes on its edit page.
The GitHub connection also accepts a prompt field, forwarded as a query parameter on the authorization request. GitHub's OAuth flow supports select_account to force the account picker. Set it on the connection's edit page, or 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.