Integrate with Slack

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. Provision, update, and deprovision users in Slack in real-time from JumpCloud using the SCIM integration.

Read this article to learn how to setup the Slack integration.

Prerequisites

  • A JumpCloud administrator account
  • JumpCloud SSO Package or higher or SSO à la carte option
  • A Slack Business+ or Enterprise Grid plan
  • A Slack Administrator or Workspace Owner account
  • Your Slack domain and team name

Important Considerations

  • We recommend that you activate SSO for Slack prior to creating an SCIM integration with Slack to simplify the login process for your users and reduce the number of usernames and passwords they have to remember
    • If you choose to not activate SSO, deselect Show this application in the User Portal in the General Info tab of the Slack configuration window. This will hide the inactive Slack tile from your users
  • SAML is the recommended method for managing secure user authentication into Slack
  • Once you’ve set up SSO, members that are required to sign in with SSO will get an email. The email will prompt members to bind their Slack accounts with JumpCloud. Members will have 72 hours to bind their account before their link expires
  • The email address of the JumpCloud accounts must correspond to the email address associated with the Slack Plus accounts
  • JumpCloud Session Settings are not passed into Slack, session duration will need to be set in Slack as well 
  • If you are setting up Slack SCIM Integration for an organization that is managed from the Multi-Tenant Portal (MTP), you need to use a local JumpCloud administrator from that particular organization to do so
  • Users that are created in Slack remain in an ‘Inactive’ state until they log in to their JumpCloud User Portal and launch Slack using their JumpCloud credentials
  • If you delete an integrated Slack application from your Applications list, the Slack application is removed from JumpCloud, but any previously bound users remain active in Slack. Additionally, these users can log in to Slack with the password they used prior to your deletion of the Slack application from your JumpCloud account
  • Users can’t be permanently deleted from Slack, they can only be deactivated
  • If you try to provision a user with a duplicate email address, it will fail. Even if the existing user has been previously deactivated in Slack, the existing user email address has to be manually updated in Slack to unbind the email and allow it to be reprovisioned
  • When creating a new user, make sure that nothing is invalid in the custom profile, otherwise all profile fields will be dropped
  • Creating or deactivating a Multi-Channel Guest is only available on the Enterprise Grid Plan
  • When creating a Single-Channel Guest, or creating a guest on the Business+ plan, you can create a member and then change their role to a guest
  • Group mention handles (@group) can’t be set via the SCIM provisioning API
  • Subteams that are automatically generated by Slack, like “Team Admins,” can’t be updated via the SCIM API 
  • The SCIM API is rate limited. If your requests are being limited, an “HTTP: 429” error will be returned 
  • Don't add the same user group to multiple Slack connectors in JumpCloud. If you do, users who are members of that user group will be deactivated in the application if one of the connectors is removed from the user group
  • Slack maps the value sent for the 'title' user attribute to both the ‘title’ and 'What I do’ field.  If users have been given the ability to change the "What I do value in Slack", their change will be overridden whenever a user update is sent via the SCIM integration.  The mapping to the 'What I do' field is completely controlled by Slack
  • Groups are supported - see Group Considerations

Attribute Considerations

  • A default set of attributes are managed for users. See the Attribute Mappings section for more details
  • Slack does not store type for addresses. The type field will be used to determine which address is the "primary address" if the request does not specify one, however the type is not stored
  • Username values and channel name values must be unique and share the same namespace. For example, you can't have a username for @general if you also have a #general channel in the Slack workspace
  • There is a limit of 50 custom profile fields, which includes fields set via the SCIM API. If your request would cause more than 50 fields to exist, the call will fail with a unable_to_create_team_profile_fields error
  • username:
    • You can't use special characters, such as john+doe@email.com
    • Must be less than 21 characters
    • Must be unique
  • displayName:
    • Values aren't entirely unique; for example, two users can have the same display name
    • You can use non-English characters, spaces, and capitalization
    • You can include periods ( . ), underscores ( _ ), hyphens ( - ), apostrophes ( ' ), brackets ( { }, [ ] ) and separators ( , / ; )
  • Slack only allows matching with the attributes userName and email

Group Considerations

  • We recommend selecting Enable management of User Groups and Group Membership in this application to make channel membership management easier
  • A Slack Enterprise Grid SCIM integration can only create and manage IdP Groups, not User Groups. User Groups can only be managed through the Slack interface directly or a completely different API. See Connect identity provider groups to your Enterprise Grid org
    • To automate the management of User Groups when using Slack Enterprise Grid, you will need to create and run your own script to utilize the https://slack.com/api/usergroups API endpoint to perform user group management operations
  • If the Enable management of User Groups and Group Membership in this application is enabled, groups cannot be added back to the Slack application after being removed
  • Removing a group after it has been added to the Slack application in JumpCloud typically results in the group being disabled in Slack
  • Adding the group back to the Slack application in JumpCloud results in errors and fails, because there is no functionality in the SCIM protocol for enabling and disabled groups

Creating a new JumpCloud Application Integration

  1. Log in to the JumpCloud Admin Portal.

Important:

If your data is stored outside of the US, check which login URL you should be using depending on your region. If your organization uses LDAP, RADIUS, or requires firewall allow list configuration, the Fully Qualified Domain Names (FQDNs) will also be region specific. See JumpCloud Data Centers for the URLs, FQDNs, and IP addresses.

  1. Go to Access SSO Applications.
  2. Click + Add New Application.
  3. You can also enter the name of the application in the Search field and select it.
  4. You can either select an application from the available list or select Custom Application, and click Next.
  5. Select the required options from the Select Options page and click Next. The Enter General Info page is displayed.
  6. 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
  7. Optionally, expand the Advanced Settings section and customize the IdP URL:
    • Enter a custom value to replace the default application name in the SSO IdP URL endpoint ( https://sso.jumpcloud.com/saml2/{custom_value})

Warning:

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.

  1. Click Save Application.
  2. Next, click:
    • Configure Application and go to the next section
    • Close to configure your new application at a later time

Tip:

Users are implicitly denied access to applications. See Authorize Users to an SSO Application.

Configuring the SSO Integration

To navigate to your JumpCloud SSO connector

  1. Log in to the JumpCloud Admin Portal.

Important:

If your data is stored outside of the US, check which login URL you should be using depending on your region. If your organization uses LDAP, RADIUS, or requires firewall allow list configuration, the Fully Qualified Domain Names (FQDNs) will also be region specific. See JumpCloud Data Centers for the URLs, FQDNs, and IP addresses.

  1. Go to Access > SSO Applications.
  2. Create a new application or select it from the Configured Applications list.
  3. Select the SSO tab.

To configure JumpCloud

  1. Replace any instances of YOURDOMAIN and TEAMNAME with your Slack values.
  2. Optionally, configure:
MFA Claims

Note:

The Authentication Methods References (AMR) is automatically included in the SAML assertion by default. No additional configuration is required to enable this.

Complete the MFA Claim Configuration to define how the authentication context is sent in the SAML assertion.

  1. Under Auth Context, choose one of the following options based on your SP's requirements:
    • Send a single value for all successful MFA factors - select if the Service Provider accepts a generic confirmation for any MFA login. Enter the single URL or URN they accept
    • Send specific factors - select this option to map individual JumpCloud MFA methods to distinct values. In the Factor Mapping table, add each MFA factor enabled in your organization and enter the corresponding value required by the Service Provider
    • Send single value and specific factors - select to send both a generic identifier and specific factor details in the assertion

Tip:

Refer to your Service Provider's documentation to determine the specific URN or URL values required (e.g., Salesforce Session Security Levels). The values entered in this configuration must exactly match what the Service Provider expects.

MFA Factor Service Provider Notes
Password Reference your Service Providers's documentation for the values they expect for each factor
TOTP
WebAuthN
Push Notification JumpCloud Protect or other authenticator application
Duo Security
Device Trust
Device Trust + User Verification JumpCloud Go
API Key
External Identity Provider

Learn more about MFA Claims.

Attributes

Configure User Attributes to be sent to the SP in assertions. User attributes are unique to each user. You can include attributes for standard user detail attributes or for custom attributes. For example, you can include standard attributes for users’ employee ID and department, or you can include a custom attribute for users’ application ID. Standard attributes are configured in the User Panel Details tab's User Information and Employee Information sections.

Unlike user attributes, a Constant Attribute can be sent for every user in a specific group or application profile.

Note:

If required attributes are present, they are not editable.

  1. Under User Attributes, click add attribute:
    • Service Provider Attribute Name - enter the service provider’s name for the attribute
    • JumpCloud Attribute Name - select the corresponding attribute from the drop down list
  2. Repeat these steps for any desired user or custom attributes.
  3. Under Constant Attributes, click add attribute:
    • Service Provider Attribute Name - enter the service provider’s name for the attribute
    • Value - enter the corresponding attribute in JumpCloud
  4. Optionally, if groups are supported, select Include Group Attribute.

Learn More

  1. Click Save.

Download the certificate

  1. If you closed the application, find it in the Configured Applications list and click anywhere in the row to reopen its configuration window.
  2. Click Actions > Download Certificate.

Tip:

The certificate.pem will download to your local Downloads folder.

To configure Slack

  1. Login your Slack account as a Workspace Owner.
  2. Go to Settings & administration > Workplace settings.
  3. Select the Authentication tab, then click Configure for SAML Authentication.
  4. Enter the following information:
    • SAML 2.0 Endpoint (HTTP) - enter the JumpCloud IdP URL
    • Identity Provider Issuer - enter the JumpCloud IDP Entity ID
    • Certificate - copy and paste the contents of the certificate downloaded in the previous section
  5. Under Advanced Options:
    • Use the default value for the Service Provider Issuer (e.g., https://<teamname>.slack.com)
    • Uncheck Assertions Signed

Warning:

If Assertions Signed is left enabled, you will receive a "The Assertion of the SAML Response is not signed. Please check your [IDP] settings." error message.

  1. Select any other of the desired options for SAML Authentication for users and workspace.
  2. Click Save Configuration.

Note:

It's recommended to use It’s optional for the Authentication for your workspace must be used by until the SAML configuration is fully tested. This will allow you to use both – username/password and SAML authentication options.

  1. In the Customize section in the Sign In Button Label field, enter JumpCloud.
  2. Click Save Configuration.
  3. You will then be sent to the JumpCloud User Portal to perform an initial SSO login and confirm the configuration.
  4. After you have completed SSO as the administrator account, your authentication settings will be verified and enabled.

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

  1. Log in to the JumpCloud Admin Portal.

Important:

If your data is stored outside of the US, check which login URL you should be using depending on your region. If your organization uses LDAP, RADIUS, or requires firewall allow list configuration, the Fully Qualified Domain Names (FQDNs) will also be region specific. See JumpCloud Data Centers for the URLs, FQDNs, and IP addresses.

  1. Go to Access > SSO Applications, then select the application to which you want to authorize user access.
  2. Select the User Groups tab. If you need to create a new group of users, see Get Started: User Groups.
  3. Select the check box next to the desired group of users to which you want to give access.
  4. 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)

Check your SP's documentation to ensure that both workflows are supported.

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

Note:

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

Tip:

See Additional User Experience Considerations when setting up JumpCloud SSO.

Using JIT Provisioning

Additional attributes are required to use JIT provisioning. JIT required attributes are prepopulated and are on by default to enable JIT provisioning. You can’t edit the JIT required service provider attributes. You can customize the JumpCloud attribute name and the constant value for JIT required attributes. Toggle off the attributes to opt out of sending the attributes in the SAML assertion.

To complete the provisioning process

  1. Authorize a user’s access to the application in JumpCloud.  
  2. 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.

Configuring the SCIM Integration

To navigate to your JumpCloud SCIM connector

  1. Log in to the JumpCloud Admin Portal.

Important:

If your data is stored outside of the US, check which login URL you should be using depending on your region. If your organization uses LDAP, RADIUS, or requires firewall allow list configuration, the Fully Qualified Domain Names (FQDNs) will also be region specific. See JumpCloud Data Centers for the URLs, FQDNs, and IP addresses.

  1. Go to Access > SSO Applications.
  2. Create a new application or select it from the Configured Applications list.
  3. Select the Identity Management tab.

To configure JumpCloud

  1. Expand Configuration Settings and deselect Enable management of User Groups and Group Membership in this application if you do not want to provision, manage, and sync groups.
  2. Review and edit any user attribute mappings.

Note:

The default user attribute mappings will be used for the initial sync for already connected users if mappings aren’t edited before clicking the Configure button.

  1. Click Configure.
  2. You're redirected to Slack to give JumpCloud permission to access your organization's Slack workspace. Click Allow.

Note:

If you click the Back button to return to the JumpCloud admin portal, any edits they made to the attribute mappings will be lost and need to be reapplied before clicking Configure again.

  1. You will receive a confirmation that the SCIM integration has been successfully verified.
  2. Select Slack from the Configured Applications list and select the Identity Management tab.
  3. Paste the token that was generated and then click Activate.

Attribute Mappings

The Export Attributes Mapping table lists the Required and Optional Mappings that JumpCloud sends to the Service Provider. See Attribute Considerations for more information regarding attribute mapping considerations. 

Learn about JumpCloud Properties and how they work with system users in our API

Modifying User Attributes

To add user attributes

  1. From your connector’s configuration page, select the Identity Management tab.
  2. Expand the Export Attribute Mapping section and click Edit. The Optional Mappings table will open.
  3. Scroll to the bottom of the table and click +Add Attribute.
  4. Select one of the mapping types:
    • Direct Mapping (JSON Path) - send the value from a user attribute in JumpCloud directly to an attribute in the service provider
      • From the JumpCloud Attribute dropdown, select the desired attribute
        • If you choose “Custom User Attribute” you must type the name of the attribute exactly as it on the user details page. To see the dropdown again, you must delete the attribute and add a new attribute
      • From the SCIM Attribute dropdown, select the corresponding (destination) attribute
    • Expression - transform or combine multiple user attributes into a single, custom value before sending it to the service provider
      • Enter the expression in the JumpCloud Attribute field
      • From the SCIM Attribute dropdown, select the corresponding (destination) attribute
    • Constant - send a fixed, predefined value—like a specific company name —for every user to the service provider
      • This is a free text field with no validation, e.g., the attribute must match exactly, including case, to the corresponding attribute in the user record. Once the custom attribute is added, you must delete it and readd a new custom attribute to see the dropdown again.
  5. Repeat these steps for additional attributes.
  6. Click Preview Mappings to review the User Schema.
    • If you do not select a specific user from the Preview Filter dropdown, the schema will default to the first user.
  1. Click Update.

Warning:

Updates to the user schema will not dynamically sync. To force a sync, you must modify the user group’s record in some way, like adding a space to the Description field.

To modify existing user attributes

This enhancement gives you complete control over the user attributes sent from JumpCloud to this application. You can now:

  • Fully control mappings - define which JumpCloud attribute or source data corresponds to an attribute in the SP's SCIM schema
  • Use a variety of source values - map data from the user's standard attributes, Manager field, custom attributes, or other data sources
  • Manipulate data with expressions - transform data, such as preferred first names and date format, using expressions before transmission to the SP. Learn more
  • Preview changes - review your new mappings to ensure accuracy before you save
  1. From your connector’s configuration page, select the Identity Management tab.
  2. Expand the Export Attribute Mapping section and click Edit.
  3. For the type of attribute you would like to modify:
    • Direct - select the new attribute from the dropdown(s)
    • Expression - click in the Expression field and make the desired edits. If necessary, select the new attribute from the SCIM Attribute dropdown
    • Custom - delete the existing values in either or both of the attribute fields and enter the new values
  4. Click Preview Mappings to review the updated User Schema.
  5. Click Update.

Important:

Updates to the user schema will not dynamically sync. To force a sync, you must modify the user group’s record in some way, like adding a space to the Description field.

Deleting user attributes

Important:

It's 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.

  1. From your connector’s configuration page, select the Identity Management tab.
  2. In the Export Attribute Mapping section, click Edit. The Optional Mappings table will open.
  3. Click Delete (Delete icon) to remove any optional attributes.
  1. When finished, click Update.

Note:

Attributes that were initially included and populated in the user record and then deleted at a later time will not be modified or removed from the user record.

Restoring default user attributes

  1. From your connector’s configuration page, select the Identity Management tab.
  2. In the Export Attribute Mapping section, click Edit. The Optional Mappings table will open.
  3. Scroll to the bottom of the table and select Restore Defaults.
  4. Click Update and then click Save.

Slack User Attributes

JumpCloud Attribute SCIM Attribute Notes
Required Mappings
email userName
toScimEmails(jcUser.email) emails
Optional Mappings
notNullOrEmpty(jcUser.displayname) ? jcUser.displayname : (notNullOrEmpty(jcUser.lastname) ? jcUser.firstname + ' ' + jcUser.lastname : jcUser.firstname) displayName
jobTitle title
employeeType userType
company $enterpriseUser.organization
costCenter $enterpriseUser.costCenter
department $enterpriseUser.department
employeeIdentifier $enterpriseUser.employeeNumber
toScimAddresses(find(jcUser.addresses, .type == 'work') ?? first(jcUser.addresses)) addresses
notNullOrEmpty(providerUser.locale) ? providerUser.locale : 'en-US' locale
lastname name.familyName
firstname name.givenName
toScimPhoneNumbers(find(jcUser.phoneNumbers, .type == 'work') ?? first(jcUser.phoneNumbers)) phoneNumbers
notNullOrEmpty(providerUser.externalId) ? providerUser.externalId : jcUser.id externalId
notNullOrEmpty(providerUser.preferredLanguage) ? providerUser.preferredLanguage : 'en-US' preferredLanguage
managerExternalId $enterpriseUser.manager.managerId

Slack Group Attributes

Slack Group Attribute JumpCloud Group Attribute Notes
external_id id
Name name
Members members Multi-valued
Group Management Considerations
Enabling Group Management

You must select the Enable management of User Groups and Group Membership in this application option to manage groups and group membership in the application from JumpCloud.

Group Provisioning and Syncing 
  • Empty groups are not created
  • JumpCloud takes over management of existing groups in the application when the user group name in JumpCloud matches the name of the group in the application
  • All user groups associated with the application in JumpCloud are synced. Syncing occurs whenever there is a membership or group change event
  • Group renaming is supported
  • If a user group is disassociated from the application in JumpCloud, syncing immediately stops and the group is left as-is in the application. All members of that user group are deactivated in the application unless they are associated with another active application group that is managed from JumpCloud
Group Deletion
  • Managed groups deleted in JumpCloud are deleted in the application
  • All members of the deleted group are deactivated in the application, unless they are associated with another active application group that is managed from JumpCloud
Disabling Group Management
  • You can disable group and group membership management by unchecking the Enable management of User Groups and Group Membership in this application option
  • The managed groups and group membership are left as-is in the application
  • JumpCloud stops sending group membership information for the user, but the user’s identity will continue to be managed from JumpCloud

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.

Note:

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 integration.
idm_integration_update Logged when an IT admin attempts to update a configured and activated SCIM integration.
idm_integration_reauth Logged when an IT admin attempts to change the credentials for an activated SCIM integration.
idm_integration_delete Logged when an IT admin attempts to deactivate an activated SCIM 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

Important:

These DI events will only be present if SCIM Groups are supported.

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.

SCIM DI Attribute Events

Event Name Event Description
integrationattribute_include Logged when an IT admin creates an attribute mapping.
integrationattribute_exclude Logged when an IT admin deletes an attribute mapping.

Removing the Integration

Warning:

These are steps for removing the integration in JumpCloud. Consult your SP's documentation for any additional steps needed (like disabling "mandatory SSO login" settings) to remove the integration in the SP. Failure to remove the integration successfully for both the SP and JumpCloud may result in users, including admins, losing access to the application.

Important:

If your data is stored outside of the US, check which login URL you should be using depending on your region. If your organization uses LDAP, RADIUS, or requires firewall allow list configuration, the Fully Qualified Domain Names (FQDNs) will also be region specific. See JumpCloud Data Centers for the URLs, FQDNs, and IP addresses.

To deactivate the SCIM Integration

  1. Log in to the JumpCloud Admin Portal.
  1. Go to Access > SSO Applications.
  2. Search for the application that you’d like to deactivate and click to open the configuration window. 
  3. Click Actions > Deactivate IdM and then click confirm.

To deactivate the SSO Integration

  1. Log in to the JumpCloud Admin Portal.
  2. Go to Access > SSO Applications.
  3. Search for the application that you’d like to deactivate and click to open its details panel. 
  4. Select the SSO tab.
  5. Scroll to the bottom of the configuration.
  6. Click Deactivate SSO
  7. Click Save
  8. If successful, you will receive a confirmation message.

To delete the application

  1. Log in to the JumpCloud Admin Portal.
  1. Go to Access > SSO Applications.
  2. Search for the application that you’d like to delete.
  3. Check the box next to the application to select it.
  4. Click Delete.
  5. Enter the number of the applications you are deleting
  6. Click Delete Application.
  7. If successful, you will see an application deletion confirmation notification.
Back to Top

List IconIn this Article

Still Have Questions?

If you cannot find an answer to your question in our FAQ, you can always contact us.

Submit a Case