October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
VGSources
Blog

How to Set Up Multiple OAuth Providers in Self-Hosted GitLab

A practical guide to configuring multiple OmniAuth providers in GitLab Self-Managed, including Google and GitHub, repeated OIDC or SAML instances, callback validation, account controls and migration safety.
WorldSelf-Hosted GitLab Length10 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To offer Google, GitHub, OIDC, SAML, or another supported sign-in method on GitLab Self-Managed, define one OmniAuth provider object for each external identity service, add the provider names to the appropriate account and access controls, apply the configuration, and test every callback with a controlled account. Omnibus installations use /etc/gitlab/gitlab.rb; Helm and Docker use their deployment-specific configuration paths.

What “multiple providers” means in GitLab

GitLab Self-Managed uses OmniAuth for external authentication. A provider entry connects GitLab to one registered application at an identity service. Common supported strategies include Google (google_oauth2), GitHub (github), generic OAuth 2.0, Azure v2, OpenID Connect (openid_connect), and SAML.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Each entry needs its own provider name, client credentials, and provider-specific arguments. If you configure Google and GitHub, those are two different provider entries. If you configure two independent OIDC services or two SAML tenants, each instance also needs a unique name and login label. Adding two entries that both represent the same external authentication provider is not a supported way to create separate identities.

Plan the identity model before editing GitLab

Inventory the protocols and provider names

Write down every sign-in button you intend to expose and classify it as Google OAuth, GitHub OAuth, generic OAuth 2.0, OIDC, SAML, or another strategy supported by your GitLab version. Use the exact strategy and provider names from GitLab’s supported-provider documentation. Names are not cosmetic: they appear in callback paths, allowlists, stored identities, and troubleshooting output.

#1 Best Overall
Sale
Gaoye Blue Light Blocking Glasses
  • BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
  • EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
  • COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
  • LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
  • WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
Use case Typical strategy name Information to collect
Google sign-in google_oauth2 Registered application, client ID, client secret, scopes and callback URL
GitHub sign-in github OAuth App, client ID, client secret and the complete callback URL
Generic OAuth 2.0 Provider-specific name Authorization and token endpoints, credentials, scopes and callback details
OpenID Connect openid_connect Issuer or discovery endpoint, client credentials, scopes and claims
SAML Unique names such as saml and saml_2 Entity and certificate data, labels, ACS callback URLs and attribute mappings

Decide how accounts should be created

Before enabling a button, decide whether a successful external login may create a GitLab account automatically. The important controls are:

  • allow_single_sign_on (or allowSingleSignOn in Helm values) identifies providers allowed to create or sign in users through single sign-on.
  • block_auto_created_users controls whether newly created accounts wait for administrator approval. Blocking is the safer default when membership must be reviewed.
  • auto_link_user determines whether a provider identity can be linked to an existing GitLab account using a matching email address. Treat automatic linking as a deliberate trust decision.
  • external_providers marks accounts from selected providers as external, which can restrict access to internal projects and features according to GitLab’s external-user rules.
  • Profile synchronization settings determine whether name, email, username, or other profile attributes are refreshed from the identity service.

Also keep a recovery administrator login that does not depend on the providers you are changing. A callback or configuration mistake should not remove your only path into the instance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Register an application at each identity provider

Google

Create a separate application registration for GitLab at Google and record its client ID and client secret. Add the exact redirect URI generated for your GitLab host and the google_oauth2 strategy. The host, scheme and path must match the address users actually reach; differences such as HTTP versus HTTPS, an alternate hostname, or a missing path cause a redirect-URI error.

GitHub

Create an OAuth App and copy its client ID and client secret into your deployment’s secret mechanism. GitHub’s callback must include the full path /users/auth/github/callback, not merely the GitLab hostname. For example, the registered value follows the form https://gitlab.example.com/users/auth/github/callback, with your real GitLab host substituted.

OIDC and generic OAuth 2.0

Record the issuer or discovery information, authorization and token endpoints when required, scopes, and the claims that identify a user. At minimum, confirm which claim supplies a stable subject identifier, which supplies email, and which supplies a display name. A username claim must be unique within GitLab; collisions can prevent reliable account identification.

Rank #2
Windex Gaming Cleaning Wipes, Pre-Moistened Wipes to Instantly Clean all Gaming Gear and Electronics, Resealable Packaging for a Freshness Lock, 25 count (Pack of 1)
  • WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
  • AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
  • PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
  • ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
  • COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed

SAML

For each SAML identity service, create a distinct provider name and button label. The ACS callback path must contain the matching provider name. If just-in-time account creation is enabled, every SAML provider name must also be included in the single-sign-on allowlist.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure two providers on an Omnibus Linux installation

For the Linux package, provider definitions belong in /etc/gitlab/gitlab.rb. The following illustrates the structure for Google and GitHub; obtain the exact provider arguments and callback values from the current GitLab integration guidance for your version.

gitlab_rails['omniauth_providers'] = [
  {
    name: 'google_oauth2',
    app_id: 'GOOGLE_CLIENT_ID_FROM_SECRET_STORE',
    app_secret: 'GOOGLE_CLIENT_SECRET_FROM_SECRET_STORE'
  },
  {
    name: 'github',
    app_id: 'GITHUB_CLIENT_ID_FROM_SECRET_STORE',
    app_secret: 'GITHUB_CLIENT_SECRET_FROM_SECRET_STORE'
  }
]

# Add only the providers you have approved for account creation.
# Configure account-linking, approval, external-user and profile-sync
# settings according to your identity policy.

Do not commit real secrets to a public repository or paste them into support tickets. Restrict access to gitlab.rb and use the secret-management facility appropriate to your deployment.

  1. Edit /etc/gitlab/gitlab.rb and add one object for each provider.
  2. Use unique names and include the intended names in the relevant single-sign-on and external-provider settings.
  3. Save the file, then apply it with sudo gitlab-ctl reconfigure.
  4. Open the GitLab sign-in page and verify that the expected buttons appear. If a button is absent, check the provider definition and the administrator’s sign-in restrictions.

Configure providers with Helm

GitLab Helm deployments do not read the Omnibus file. Set the OmniAuth values under global.appConfig.omniauth in your chart values, defining one provider object per external service. Preserve unique names for repeated OIDC or SAML strategies and keep credentials in Kubernetes Secrets or the chart’s supported secret mechanism rather than plain values files.

  1. Update the values file or secret references with the provider list and account-provisioning controls.
  2. Check that each callback uses the externally reachable GitLab host and the correct provider name.
  3. Apply the change with your normal helm upgrade command for the release.
  4. Wait for the webservice pods to roll out, then test each button and inspect the resulting account state.

Configure providers in Docker or a source deployment

Docker installations commonly pass the GitLab configuration through GITLAB_OMNIBUS_CONFIG. Put the equivalent OmniAuth provider objects and policy settings there, protect the environment values, and restart or recreate the container so the configuration is loaded. Source installations use the configuration mechanism for that deployment and likewise require a restart or redeploy after changing OmniAuth settings.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
LISEN Cell Phone Stand Phone Holder for Desk, Office Decor Gadgets for Men
  • Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
  • Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
  • Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
  • ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
  • Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)

Do not assume that editing a host-side file changes a running container. Confirm the effective configuration inside the deployed GitLab instance before testing.

Configure more than one OIDC provider

Two OIDC services cannot safely share an indistinguishable configuration. GitLab’s documented pattern repeats the openid_connect entry but assigns an explicit strategy_class, a unique provider name and label, and a different issuer or discovery endpoint to each service.

# Illustrative shape; use the exact strategy-class and argument names
# documented for your GitLab version.
{
  name: 'oidc_team_a',
  label: 'Team A',
  strategy_class: 'THE_OPENID_CONNECT_STRATEGY_CLASS',
  args: {
    name: 'oidc_team_a',
    issuer: 'https://issuer-a.example',
    scope: ['openid', 'profile', 'email']
  }
}

{
  name: 'oidc_team_b',
  label: 'Team B',
  strategy_class: 'THE_OPENID_CONNECT_STRATEGY_CLASS',
  args: {
    name: 'oidc_team_b',
    issuer: 'https://issuer-b.example',
    scope: ['openid', 'profile', 'email']
  }
}

The two entries must produce different callback paths and must not reuse an issuer, client registration, or provider name accidentally. Verify the sub (subject) value and username claim returned by each service before enabling automatic linking.

Configure more than one SAML provider

Use distinct names such as saml and saml_2, and give each a clear login label. The callback URL for each entry must contain its matching name, so a callback for saml_2 must not be sent to the saml endpoint. Add both names to the single-sign-on allowlist when you want just-in-time account creation from both services.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep the entity IDs, signing certificates, and attribute mappings separate. A successful SAML assertion from the wrong tenant can otherwise create an account under an unexpected provider identity.

Rank #4
Ledagic IC+RGBW USB Powered Led Light Bar with App & Remote Control, 2 Pack
  • Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
  • Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
  • 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
  • Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
  • USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC

Apply a deliberate account and profile policy

Approval and external status

For an organization-controlled GitLab, enable automatic account creation only for providers whose membership is trusted. Set block_auto_created_users when an administrator must approve newcomers. Decide separately whether those users are external; approval status and external status solve different problems.

Email matching and linking

Existing users can link a provider from Profile → Access → Password and authentication. Automatic email linking is convenient but should be limited to providers that verify email ownership reliably. If two services issue the same email to different people, automatic linking can associate the wrong external identity.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Username claims and profile synchronization

Choose a stable, unique username claim when setting a custom gitlab_username_claim. Synchronize only attributes your organization wants the identity provider to control. Changes to a display name are usually harmless; changes to a username or email can affect account discovery, notifications, and administrative workflows.

Control which buttons users can use

After configuration, administrators can selectively enable or disable configured providers under Admin → Settings → General → Sign-in restrictions. This lets you keep a provider definition available for testing or existing linked accounts while temporarily hiding its sign-in button. A hidden button does not by itself erase stored identities.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Test every provider before announcing the change

  1. Use a controlled account at the external provider, preferably one that is not already linked to GitLab.
  2. Start from the GitLab sign-in page and select exactly one provider button.
  3. Confirm that the browser is sent to the intended provider and returns to the same GitLab host over HTTPS.
  4. Check that the callback path contains the expected provider name and that no redirect-URI or state error appears.
  5. Inspect the resulting GitLab account: username, email, internal or external status, linked identity, and approval state.
  6. Repeat with an existing GitLab user who links the provider from the profile settings.
  7. Test a denied authorization, an unapproved account, and a provider account with a different email domain so policy failures are understood before production use.

Record which external subject or identity maps to each GitLab user. This mapping is essential if you later replace an OAuth App, rotate applications, or move between identity tenants.

Best Value
Sale
HUANUO FlowLift™ Dual Monitor Stand, Fully Adjustable Gaming Monitor Desk Mount for 13–32″ Computer Screens, Full Motion VESA 75x75/100x100 with C-Clamp & Grommet Base, Each Arm Holds 4.4 to 19.8 lbs
  • Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
  • Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
  • Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
  • Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
  • Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.

Troubleshoot common failures

The provider button is missing

  • Confirm the provider object is under the correct configuration key for your deployment type.
  • Check that the configuration was applied with gitlab-ctl reconfigure, a successful Helm upgrade, or a container restart.
  • Look for the provider in Admin → Settings → General → Sign-in restrictions; an administrator may have disabled it.
  • Verify the provider name is spelled consistently in the definition and allowlists.

Redirect URI or callback errors

  • Compare the registered URI character-for-character with the URL GitLab uses, including scheme, hostname, port, path and trailing characters.
  • For GitHub, ensure the path is the complete /users/auth/github/callback path.
  • For OIDC and SAML, confirm that the callback path uses the unique provider name for that instance.
  • Check reverse-proxy headers and the externally configured GitLab host if GitLab generates an internal hostname.

Users are created unexpectedly or remain pending

Review allow_single_sign_on, block_auto_created_users, and auto_link_user together. A provider can be configured correctly yet produce a pending account because approval blocking is enabled, or link to an existing account because email-based linking is enabled. Change one policy at a time and retest with a controlled identity.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The wrong account is found or a username collision occurs

Inspect the subject and username claims returned by the provider. A custom gitlab_username_claim must be unique and stable. Do not use a mutable display name as the identity key. Correct the claim mapping before enabling automatic linking for more users.

OIDC works for one service but not the other

Compare the two entries for a missing strategy_class, duplicated provider name, reused issuer, or a discovery endpoint belonging to the wrong tenant. Each OIDC service needs its own issuer or discovery data and a unique name and label.

Replacing an OAuth application without stranding users

GitLab stores the external identity as an extern_uid associated with a provider. Replacing an application or changing the upstream provider can alter that identity value. If the stored value and the new assertion no longer match, returning users may appear to GitLab as new users or lose their link.

  1. Export or document the current provider-to-user mapping before making the change.
  2. Keep the old application available while testing the replacement, if the identity service permits it.
  3. Compare the old and new subject or external-ID values for representative users.
  4. Coordinate required identity updates through the Users API or Rails console using an approved maintenance procedure.
  5. Test existing linked users, new users and administrators before retiring the old application.

Do not model the replacement as a second independent provider when it is actually the same external authentication service. GitLab’s identity model permits only one provider per unique external authentication provider.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choosing between OAuth 2.0, OIDC and SAML

Decision point OAuth 2.0 OIDC SAML
Primary role Authorization and identity flows supplied by the provider strategy Authentication with standardized identity claims Enterprise federation using signed assertions
Registration work Register an app and configure client credentials and scopes Register a client and record issuer or discovery data Exchange entity, certificate, ACS and attribute data
Multiple instances Use a distinct provider entry for each supported service Unique name, label, strategy class and issuer per service Unique name, label and callback path per service
Identity concerns Email and provider-specific identity behavior Stable subject and username claims Correct assertion attributes and tenant separation
Migration risk Changing the application can change stored external IDs Issuer or subject changes can break existing links Entity-ID or assertion changes can break existing links

Evaluate MFA and assurance behavior at the identity provider, available scopes and claims, account-provisioning controls, deployment configuration path, and migration impact—not just the appearance of the login button.

Operational checklist

  • Keep a non-OmniAuth recovery administrator account.
  • Store client secrets in deployment secrets and restrict configuration-file access.
  • Register exact callback URLs, including complete paths.
  • Use unique names for repeated OIDC and SAML strategies.
  • Choose account approval, automatic linking, external status and profile synchronization independently.
  • Use a stable, unique username claim.
  • Test every provider after each reconfigure, Helm upgrade or container redeploy.
  • Document the extern_uid mapping before replacing an application or identity tenant.
  • Review sign-in restrictions after deployment so only approved buttons are visible.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.