Use JumpCloud SAML Single Sign On (SSO) to give your users convenient but secure access to all their web applications with a single set of credentials. Integrate your JumpCloud account with Salesforce through an Identity Management Connector. After you connect JumpCloud with Salesforce, you can provision, update, and deprovision users and groups from JumpCloud and manually import users from Salesforce into JumpCloud. Leverage this integration for centralized user lifecycle management and get immediate attribute management of users bound to integrated applications.
Read this article to learn how to configure the Salesforce SSO integration.
Prerequisites
- A JumpCloud administrator account.
- JumpCloud SSO Package or higher or SSO add-on feature.
- A Salesforce user account with administrative permissions.
- Salesforce SAML configuration details can also be found here. This link is valid as of April 2021. If there are any discrepancies between ‘Configure the Service Provider’ below and Salesforce’s instructions, please follow the Salesforce guidance.
- Your Salesforce domain name.
- Just-in-time (JIT) user provisioning must be disabled or Identity Management will not work as documented. Disable JIT by going to the Salesforce admin console and navigating to SAML Single Sign-On Settings panel:
- Under SAML Identity Type, select Assertion contains User’s salesforce.com username.
- Under Just-in-time User Provisioning, uncheck User Provisioning Enabled.
Important Considerations
- SAML is the recommended method for managing secure user authentication into Salesforce. It is recommended, but not required, for the Identity Management configuration.
- Country/state picklist values must be deactivated or the sync will error. See this Salesforce article for more information.
- The SCIM integration would not populate the Federation Identifier value.
- If you delete an integrated Salesforce application from your Applications list, the Salesforce application is removed from JumpCloud, but any previously bound users remain active in Salesforce. Additionally, these users can’t log in to Salesforce with the password they used prior to your deletion of the Salesforce application from your JumpCloud account.
- At this time, English is the only supported language.
- Users are created with the default entitlement, Standard User. If you update the entitlement in Salesforce, JumpCloud won’t overwrite it.
- Salesforce requests users to authorize changes made to their email address that’s associated with their account. This means you can’t use JumpCloud’s provisioning functionality to update a users email address in Salesforce.
- Users are created with the “nickname” attribute value set to null. If you update “nickname” in Salesforce, JumpCloud won’t overwrite it.
- Locale and preferred language default to en_US on user creation.
- We don’t update the entitlements, the locale/preferred language, nor the nickname of an existing user.
- Groups are supported.
Attribute Considerations
- A default set of attributes are managed for users. See the Attribute Mappings section for more details.
- A user’s JumpCloud email address is used as the username and email in Salesforce.
- Salesforce doesn’t support the use of special characters in a username, such as [email protected].
- Usernames in Salesforce must be unique.
Creating a new JumpCloud Application Integration
- Log in to the JumpCloud Admin Portal.
- Navigate to USER AUTHENTICATION > SSO Applications.
- Click + Add New Application.
- Type the name of the application in the Search field and select it.
- Click Next.
- In the Display Label, type your name for the application. Optionally, you can enter a Description, adjust the User Portal Image and choose to hide or Show in User Portal.
If this is a Bookmark Application, enter your sign-in URL in the Bookmark URL field.
- Click Save Application.
- If successful, click:
- Configure Application and go to the next section.
- Close to configure your new application at a later time.
Configuring the SSO Integration
Configuration of the service provider (SP) requires multiple actions. Configuration actions should be completed in the order listed.
To configure Salesforce
To configure a Salesforce MyDomain
This is for new Salesforce setups and requires System Administrator access. Skip to the next step if this is already completed in your environment.
- Log into Salesforce as an Administrator.
- From the gear icon at upper right, select Setup.
- From the left-hand sidenav, navigate to Settings > Company Settings > My Domain.
- Enter a new My Domain Name for your Salesforce account.
- Click Check Availability.
- Click Save.
- Agree to the Terms and Conditions.
- Wait for the email confirmation that your new My Domain is ready to be deployed
- Follow the instructions in the email
- From the gear icon at upper right, select Setup.
- From the left-hand sidenav, navigate to Settings > Company Settings > My Domain.
- Click Deploy New Domain.
To generate the certificate
- Log into Salesforce as an Administrator.
- From the gear icon at upper right, select Setup.
- From the left-hand sidenav, navigate to Settings > Security > Certificate and Key Management.
- Select Create Self-Signed Certificate and check “Create Exportable Key”
- Enter the following Label: JumpCloud SAML.
- Leave the auto-populated value Salesforce generated in the Unique Name field..
- Select Save.
- Select Download Certificate.
To enable SAML
- From the left-hand sidenav, navigate to Settings > Identity > Single Sign-On Settings.
- Select Edit.
- Select the SAML Enabled checkbox.
- Select Save.
- Optionally, select the Make Federation ID case-insensitive checkbox.
- Select New.
- Enter the Name: JumpCloud.
- Enter the API Name: JumpCloud.
- Enter the Issuer: JumpCloud.
- Enter the Entity Id in the following format: https://YOUR_DOMAIN.TLD.
- If you have a custom domain setup, use https://[customDomain].my.salesforce.com
- If you do not have a custom domain setup, use https://saml.salesforce.com
- Select Choose File next to Identity Provider Certificate and upload the certificate that was downloaded in step 8 of ‘Generate the Service Provider Certificate’.
- This is a temporary placeholder for the JumpCloud certificate that will be created during the JumpCloud configuration.
- Once the JumpCloud connector is configured the actual cert.pem will need to be uploaded.
- In the dropdown menu for Request Signing Certificate, select JumpCloud SAML.
- In the dropdown menu for Assertion Decryption Certificate, select JumpCloud SAML.
- Leave the default selections for SAML Identity Type and SAML Identity Location unless you are going to use Just-in-time User Provisioning
- If you are going to use Just-in-time User Provisioning, make the following selections. Note: If you are going to use the Identity Management SCIM integration, do not enable Just-in-time User provisioning.
- Select Assertion contains the Federation ID from the User object for SAML Identity Type.
- Select Identity is in an Attribute element for SAML Identity Location.
- Enter the Attribute Name that will be sent in the SAML assertion, for example FederationIdentifier.
- If you are going to use Just-in-time User Provisioning, make the following selections. Note: If you are going to use the Identity Management SCIM integration, do not enable Just-in-time User provisioning.
- Select HTTP POST for Service Provider Initiated Request Binding
- Enter the following Identity Provider Login URL: https://sso.jumpcloud.com/saml2/salesforce
- This is the default IdP URL, but if you plan to change this value in JumpCloud in step 10 of ‘Configure the JumpCloud Salesforce Application’, then enter your chosen value.
- If you will be using Just-in-time User Provisioning, do the following:
- Note: If you are going to use automatic provisioning with the Identity Management SCIM integration in JumpCloud, do not enable this option.
- Select the User Provisioning Enabled checkbox.
- Select Standard.
- Leave all other fields blank and options unselected
- Select Save.
- Once saved, on this screen, copy the Salesforce Login URL for later use. It will be in the form of https://<YOUR_DOMAIN>.my.salesforce.com?sc=<SOME_SPECIFIC_STRING>; or https://<YOUR_DOMAIN>.my.salesforce.com?sc=<SOME_SPECIFIC_STRING>
- Download metadata.
To configure JumpCloud
- Create a new application or select it from the Configured Applications list.
- Select the SSO tab.
- Upload the metadata file you downloaded in the Enable SAML for Salesforce section above. If you prefer to enter the information manually, do the following:
- Enter the IdP Entity ID: JumpCloud.
- Enter the SP Entity ID in this format: https://YOUR_DOMAIN.TLD
- Ensure the SP Entity ID matches the value you entered in Salesforce.
- In the ACS URL field, enter the URL you copied from Salesforce in ‘Enable SAML for Salesforce’.
- Select Upload SP Certificate and upload the JumpCloud_SAML.crt file as done in ‘Generate the Service Provider Certificate’.
- For the IdP URL, either leave the default value or if you used a custom string in ‘Enable SAML for Salesforce’, enter the same value here; the IdP URL must match the value entered in Salesforce.
- Additional attributes are required to use Just-in-Time (JIT) provisioning. In JumpCloud, JIT required attributes necessary for JIT provisioning are enabled by default. If you are not using JIT, you may toggle off the attributes to opt out of sending the attributes in the SAML assertion.
You can’t edit the JIT required service provider attributes but you can customize the JumpCloud attribute name and the constant value for JIT required attributes.
- Select save.
Download the certificate
- Find your application in the Configured Applications list and click anywhere in the row to reopen its configuration window.
- Select the SSO tab and click IDP Certificate Valid > Download certificate.
The certificate.pem will download to your local Downloads folder.
Update the Identity Provider Certificate in Salesforce
- Return to Salesforce
- Navigate back to Settings > Identity > Single Sign-On Settings.
- Select Edit.
- Replace the temporary certificate uploaded in Enable SAML for Salesforce with the actual JumpCloud certificate.
- Select Choose File next to Identity Provider Certificate
- Upload the certificate.pem certificate that was downloaded in the previous section.
- Click Save.
Use JIT Provisioning
You can provision, update, and deprovision users in Salesforce in real-time with our Identity Management Integration.
The SCIM integration would not populate the Federation Identifier value as that is not one of the values we currently send. If you are planning on using the Federation Identifier for other reasons, the Identity Management SCIM integration may not be a viable option.
Considerations when enabling JIT Provisioning after the integration is configured
To use JIT provisioning, you will need to bulk update the existing users to add the Federation Identifier. To do a bulk update of users, they can use the Data Loader in Salesforce. They would need to export the list of users. The export produces a csv. They would need to update the csv to add the Federation Identifier for each user that doesn't have one. They would then upload the updated csv file .
To complete the provisioning process:
- Authorize a user’s access to the application
- Have the user log in to the application using SSO. The SAML assertion passes from JumpCloud to the service provider, and gives the service provider the information it needs to create the user account.
To enable JumpCloud SSO Login for All Salesforce Users
- Navigate to Settings > Company Settings > My Domain.
- Scroll down to the Authentication Configuration section.
- Select Edit.
- Select the checkbox for JumpCloud.
- Deselect the checkbox for Login Form.
- Select Save.
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 Application Configuration panel or from the Groups Configuration panel.
To authorize user access from the Application Configuration panel
- Log in to the JumpCloud Admin Portal.
- Go to USER AUTHENTICATION > 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 group of users you want to give access.
- Click save.
To learn how to authorize user access from the Groups Configuration panel, see Authorize Users to an SSO Application.
Validating SSO authentication workflow(s)
IdP Initiated
- Access the JumpCloud User Console.
- Select the application’s tile.
- The application will launch and login the user.
SP Initiated
- Navigate to your Service Provider application URL.
- You will be redirected to log in to the JumpCloud User Portal.
- The browser will be redirected back to the application and be automatically logged in.
Configuring the Identity Management Integration
To configure JumpCloud
- Create a new application or select it from the Configured Applications list.
- Select the Identity Management tab.
- Click Configure.
- You’re prompted to save the application. Note that the IdP URL can’t be shared across applications and can’t be edited after it’s created. Click save.
- Sign in to your Salesforce admin account, then click Continue.
- When you’re prompted to give JumpCloud permission to administer your org’s Salesforce workspace, click Allow. If you aren’t a Salesforce admin, you will see a request asking for admin permissions.
- If successful, you receive a confirmation of a successful integration.
- Click save when you return to the Salesforce application page in JumpCloud.
Attribute Mappings
The following table lists attributes that JumpCloud sends to the application. See Attribute Considerations for more information regarding attribute mapping considerations.
Learn about JumpCloud Properties and how they work with system users in our API.
Salesforce User Attributes
Salesforce User Attribute | Type | JumpCloud User Attribute | Notes |
---|---|---|---|
Id | string | id | |
name.givenName | string | firstname | |
name.familyName | string | lastname | |
displayName | string | displayname | |
nickName | string | nickName | |
entitlements[primary=true].Entitlement | string | entitlement | |
userName | string | SF username must be the user email. | |
password | string | password | |
emails[type='work',primary=true].Email | string | ||
active | boolean | !suspended && !passwordExpired | |
userType | string | employeeType | |
title | string | jobTitle | |
locale | string | location | |
preferredLanguage | string | preferredLanguage | |
addresses[].type | string | addresses[].type | SF only allows one address |
addresses[].streetAddress | string | addresses[].streetAddress | |
addresses[].locality | string | addresses[].locality | |
addresses[].region | string | addresses[].region | |
addresses[].postalCode | string | addresses[].postalCode | |
addresses[].country | string | addresses[].country | |
phoneNumbers[].type | string | phoneNumbers[].type | SF only allows one phone number |
phoneNumbers[].value | string | phoneNumbers[].value | |
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User | object | ||
-> employeeNumber | string | employeeIdentifier | |
-> department | string | department | |
-> organization | string | company |
Group Attributes
JumpCloud Property | JumpCloud UI Field Name | SCIM v2 Mapping | Application Value |
---|---|---|---|
name | Name | displayName | Name |
Importing Users
This functionality is helpful if users have already been created in the application but have not been created in JumpCloud.
- Log in to the JumpCloud Admin Portal.
- Go to USER AUTHENTICATION > SSO Applications.
- Search for the application and click to open its configuration panel.
- Select the Identity Management tab.
- Click manual import.
- Select the users you want to create in JumpCloud from the application from the list of users that appear. Users in the list have two import statuses:
- New – user has not been imported.
- Imported – user has been imported and has an account in JumpCloud.
Tip: Try using the New Users-only filter when selecting users to import. This will move all of your new users to the top of the list, making them easier to identify and select.
- Click import.
- If you are importing less than 100 users, your import results will display in real time and you can continue onboarding your users.
- If you have more than 100 users being imported, JumpCloud will send you an email when your import is complete.
- You can now connect and grant users access to all their JumpCloud resources. Learn more in the Authorize Users to an Application and Connecting Users to Resources articles.
Warning: Imported users must be members of a user group bound to an application for JumpCloud to manage their identity in, and access to, the application.
SCIM Directory Insights Events
The following Directory Insights (DI) events provide visibility into failures and detailed information about the user and group data being added or updated from HR or other external solutions to JumpCloud.
Customers with no package or the Device Management Package will need to add the Directory Insights à la carte option. Directory Insights is included in all other packages.
SCIM DI Integration Events
Event Name | Event Description |
---|---|
idm_integration_activate | Logged when an IT admin attempts to activated new SCIM Identity Management integration. |
idm_integration_update | Logged when an IT admin attempts to update a configured and activated SCIM Identity Management integration. |
idm_integration_reauth | Logged when an IT admin attempts to change the credentials for an activated SCIM Identity Management integration. |
idm_integration_delete | Logged when an IT admin attempts to deactivate an activated SCIM Identity Management integration. |
SCIM DI User Events
Event Name | Event Description |
---|---|
user_create_provision | Logged when JumpCloud tries to create a new user in service provider application. |
user_update_provision | Logged when JumpCloud tries to update an existing user in service provider application. |
user_deprovision | Logged when JumpCloud tries to change an existing user to inactive in the service provider application. |
user_delete_provision | Logged when JumpCloud tries to delete an existing user in service provider application. |
user_lookup_provision | Logged when JumpCloud encounters an issue when trying to lookup a user to determine if the user needs to be created or updated. |
SCIM DI Group Events
Event Name | Event Description |
---|---|
group_create_provision | Logged when JumpCloud tries to create a new group in service provider application. |
group_update_provision | Logged when JumpCloud tries to update an existing group in service provider application. |
group_delete_provision | Logged when JumpCloud tries to delete an existing group in service provider application. |
Removing the 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 IdM Integration
- Log in to the JumpCloud Admin Portal.
- Go to USER AUTHENTICATION > SSO Applications.
- Search for the application that you’d like to deactivate and click to open its details panel.
- Under the company name and logo on the left hand panel, click the Deactivate IdM connection link.
- Click confirm.
- If successful, you will receive a confirmation message.
To deactivate the SSO Integration
- Log in to the JumpCloud Admin Portal.
- Go to USER AUTHENTICATION > 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 or Deactivate Bookmark.
- Click save.
- If successful, you will receive a confirmation message.
To delete the application
- Log in to the JumpCloud Admin Portal.
- Go to USER AUTHENTICATION > 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.