Integrate JumpCloud and GitLab Self-Managed to provide your users with secure, seamless access while automating user identity management. By leveraging SAML Single Sign-On (SSO), you offer a convenient end-user login experience using a single set of credentials, which strengthens your security posture and boosts user productivity. Simultaneously, the Identity Management (SCIM) integration allows you to centralize the entire user lifecycle—automatically provisioning, updating, and deprovisioning accounts directly from the JumpCloud Admin Portal. This unified approach eliminates manual overhead, improves security by ensuring users always have the correct access, prevents the risk of orphaned accounts, and ensures that user data remains accurate and synchronized across your organization.
Read this article to learn how to integrate with Gitlab Self-Managed, formerly known as Gitlab Instance. If you are using GitLab SaaS, see Integrate with GitLab.
Prerequisites:
- GitLab Self-Managed version 18.0 or newer for group synchronization. Versions older than 18.0 do not support this functionality
- A GitLab Self-Managed instance
- An HTTPS-configured GitLab instance
- Your GitLab domain and Server URL
- Access to the command line to modify your
/etc/gitlab/gitlab.rbconfiguration file - A JumpCloud administrator account
- JumpCloud SSO Package or higher or SSO add-on feature
Important Considerations:
- SAML SSO is not supported at the subgroup level
- Account takeovers are not supported. For more information on this take a look here
- This integration supports Just-In-Time (JIT) provisioning, which automatically creates user accounts when a user first signs in through SAML. If you are using SCIM, we do not recommend using JIT.
- You can automatically link a SAML sign-in with existing GitLab users if their email addresses match
- Users authenticated with SSO must use personal, project, or group access tokens for Git operations over HTTPS rather than their JumpCloud password
- New users provisioned from JumpCloud will receive an email invitation from GitLab
Attribute Considerations:
- A default set of attributes are managed for users
- GitLab requires a claim containing the user’s email address using
emailormail. Jump to Attribute Mappings for more details
Creating a new JumpCloud Application Integration
- Log in to the JumpCloud Admin Portal.
If your data is stored outside of the US, check which login URL you should be using depending on your region, see JumpCloud Data Centers to learn more.
- Go to Access > SSO Applications.
- Click + Add New Application.
- You can also enter the name of the application in the Search field and select it.
- You can either select an application from the available list or select Custom Application, and click Next.
- Select the required options from the Select Options page and click Next. The Enter General Info page is displayed.
- On the Enter General Info page, you can customize the display label, description and how the application displays:
- Description - add a description that users will see in their user portal
- User Portal Image - choose Logo or Color Indicator
- Show in User Portal - select to ensure the app is visible in the user portal
- Optionally, expand the Advanced Settings section and customize the IdP URL:
- Expand Advanced Settings and enter a custom value to replace the default application name in the SSO IdP URL endpoint ( https://sso.jumpcloud.com/saml2/{custom_value})
The SSO IdP URL is not editable after the application is created. If you need to change this URL later, you must delete and recreate the connector.
- Click Save Application.
- Next, click:
- Configure Application and go to the next section
- Close to configure your new application at a later time
Configuring the SAML SSO Integration for GitLab Self-Managed
To configure JumpCloud:
- In JumpCloud's SSO Applications page, select the GitLab Instance/GitLab Self-Managed app from the Configured Applications list.
- Click the SSO tab.
- Click Save.
Download the JumpCloud metadata file
- If you've closed the app:
- Find your app in the Configured Applications list and select its checkbox
- Click Export Metadata in the top right corner of the window
- If you are still on the SSO tab of the app:
- Click Export Metadata
- The JumpCloud-<applicationname>-metadata.xml will be exported to your local Downloads folder.
Metadata can also be downloaded from the Configured Applications list. Search for and select the application in the list and then click Export Metadata in the top right corner of the window.
To configure GitLab Self-Managed:
- Log in to your GitLab server terminal.
- Open the
/etc/gitlab/gitlab.rbconfiguration file. - Add the following code block to the file. Replace the bracketed placeholders with your specific JumpCloud values:
Ruby
gitlab_rails['omniauth_enabled'] = true gitlab_rails['omniauth_allow_single_sign_on'] = ['saml'] gitlab_rails['omniauth_block_auto_created_users'] = false gitlab_rails['omniauth_auto_link_saml_user'] = true gitlab_rails['omniauth_providers'] = [ { name: "saml", label: "JumpCloud SSO", args: { assertion_consumer_service_url: "https:///users/auth/saml/callback", idp_cert_fingerprint: "", idp_sso_target_url: "", issuer: "https://", name_identifier_format: "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" } } } ]
- Save the file and reconfigure GitLab by running the following command:
sudo gitlab-ctl reconfigure
Authorizing User SSO Access
Users are implicitly denied access to applications. After you connect an application to JumpCloud, you need to authorize user access to that application. You can authorize user access from the Applications, Users List or User Groups page.
To authorize user access from the Application’s page
- Log in to the JumpCloud Admin Portal.
If your data is stored outside of the US, check which login URL you should be using depending on your region, see JumpCloud Data Centers to learn more.
- Go to Access > SSO Applications, then select the application to which you want to authorize user access.
- Select the User Groups tab. If you need to create a new group of users, see Get Started: User Groups.
- Select the check box next to the desired group of users to which you want to give access.
- Click Save.
To learn how to authorize user access from the Users or User Groups pages, see Authorize Users to an SSO Application.
Validating SSO user authentication workflow(s)
IdP-initiated user workflow
- Access the JumpCloud User Console
- Go to Applications and click an application tile to launch it
- JumpCloud asserts the user's identity to the SP and is authenticated without the user having to log in to the application
SP-initiated user workflow
- Go to the SP application login - generally, there is either a special link or an adaptive username field that detects the user is authenticated through SSO
This varies by SP.
- Login redirects the user to JumpCloud where the user enters their JumpCloud credentials
- After the user is logged in successfully, they are redirected back to the SP and automatically logged in
Configuring Identity Management
GitLab Self-Managed version 18.0 and newer supports Identity Management via SCIM, including group synchronization.
If you are using a GitLab Self-Managed version below 18.0, provisioning can be handled via SAML Just-In-Time (JIT) provisioning.
To configure GitLab Self-Managed:
- Log in to your GitLab instance as an administrator.
- Navigate to the group you want to sync and select Settings > SAML SSO.
- Select Generate a SCIM token.
- Copy the SCIM API endpoint URL and the SCIM token.
To configure JumpCloud:
- In the JumpCloud Admin Portal, go to Access > SSO Applications.
- Select your GitLab Self-Managed application and click the Identity Management tab.
- Click Configure.
- In the Base URL field, paste the SCIM API endpoint URL.
- In the Token Key field, paste the SCIM token.
- Click Activate and then Save.
Attribute Mappings
The Export Attribute Mapping table lists the Required and Optional Mappings that JumpCloud sends to the Service Provider.Important: It is highly recommended you use all optional mappings. This creates a more complete user profile, enabling better automation and more accurate access management within the application.
Gitlab Self-Managed User Attributes
| JumpCloud Attribute | SCIM Attribute | Applied |
|---|---|---|
| userName | create | |
| Optional Mappings | ||
| JumpCloud Attribute | SCIM Attribute | Applied |
| company | $enterpriseUser.organization | create |
| costCenter | $enterpriseUser.costCenter | create |
| department | $enterpriseUser.department | create |
| employeeIdentifier | $enterpriseUser.employeeNumber | create |
| employeeType | userType | create |
| firstname | name.givenName | create |
| jobTitle | title | create |
| lastname | name.familyName | create |
| notNullOrEmpty(jcUser.displayname) ? jcUser.displayname : (notNullOrEmpty(jcUser.lastname) ? jcUser.firstname + ' ' + jcUser.lastname : jcUser.firstname) | displayName | create |
| notNullOrEmpty(providerUser.externalId) ? providerUser.externalId : jcUser.id | externalId | create |
| notNullOrEmpty(providerUser.locale) ? providerUser.locale : 'en-US' | locale | create |
| notNullOrEmpty(providerUser.preferredLanguage) ? providerUser.preferredLanguage : 'en-US' | preferredLanguage | create |
| toScimAddresses(find(jcUser.addresses, .type == 'work') ?? first(jcUser.addresses)) | addresses | create |
| toScimEmails(jcUser.email) | emails | create |
| toScimPhoneNumbers(find(jcUser.phoneNumbers, .type == 'work') ?? first(jcUser.phoneNumbers)) | phoneNumbers | create |
Removing the SSO Integration
These are steps for removing the integration in JumpCloud. Consult your SP's documentation for any additional steps needed to remove the integration in the SP. Failure to remove the integration successfully for both the SP and JumpCloud may result in users losing access to the application.
To deactivate the SSO Integration
- Log in to the JumpCloud Admin Portal.
If your data is stored outside of the US, check which login URL you should be using depending on your region, see JumpCloud Data Centers to learn more.
- Go to Access > SSO Applications.
- Search for the application that you’d like to deactivate and click to open its details panel.
- Select the SSO tab.
- Scroll to the bottom of the configuration.
- Click Deactivate SSO.
- Click Save.
- If successful, you will receive a confirmation message.
To delete the application
- Log in to the JumpCloud Admin Portal.
If your data is stored outside of the US, check which login URL you should be using depending on your region, see JumpCloud Data Centers to learn more.
- Go to Access > SSO Applications.
- Search for the application that you’d like to delete.
- Check the box next to the application to select it.
- Click Delete.
- Enter the number of the applications you are deleting
- Click Delete Application.
- If successful, you will see an application deletion confirmation notification.