Tutorial: Azure Active Directory single sign-on (SSO) integration with Slack

In this tutorial, you'll learn how to integrate Slack with Azure Active Directory (Azure AD). When you integrate Slack with Azure AD, you can:

  • Control in Azure AD who has access to Slack.
  • Enable your users to be automatically signed-in to Slack with their Azure AD accounts.
  • Manage your accounts in one central location - the Azure portal.

Prerequisites

To get started, you need the following items:

  • An Azure AD subscription. If you don't have a subscription, you can get a free account.
  • Slack single sign-on (SSO) enabled subscription.

Note

If you need to integrate with more than one Slack instance in one tenant, the identifier for each application can be a variable.

Note

This integration is also available to use from Azure AD US Government Cloud environment. You can find this application in the Azure AD US Government Cloud Application Gallery and configure it in the same way as you do from public cloud.

Scenario description

In this tutorial, you configure and test Azure AD SSO in a test environment.

Note

Identifier of this application is a fixed string value so only one instance can be configured in one tenant.

To configure the integration of Slack into Azure AD, you need to add Slack from the gallery to your list of managed SaaS apps.

  1. Sign in to the Azure portal using either a work or school account, or a personal Microsoft account.
  2. On the left navigation pane, select the Azure Active Directory service.
  3. Navigate to Enterprise Applications and then select All Applications.
  4. To add new application, select New application.
  5. In the Add from the gallery section, type Slack in the search box.
  6. Select Slack from results panel and then add the app. Wait a few seconds while the app is added to your tenant.

Configure and test Azure AD SSO for Slack

Configure and test Azure AD SSO with Slack using a test user called B.Simon. For SSO to work, you need to establish a link relationship between an Azure AD user and the related user in Slack.

To configure and test Azure AD SSO with Slack, perform the following steps:

  1. Configure Azure AD SSO - to enable your users to use this feature.
    1. Create an Azure AD test user - to test Azure AD single sign-on with B.Simon.
    2. Assign the Azure AD test user - to enable B.Simon to use Azure AD single sign-on.
  2. Configure Slack SSO - to configure the single sign-on settings on application side.
    1. Create Slack test user - to have a counterpart of B.Simon in Slack that is linked to the Azure AD representation of user.
  3. Test SSO - to verify whether the configuration works.

Configure Azure AD SSO

Follow these steps to enable Azure AD SSO in the Azure portal.

  1. In the Azure portal, on the Slack application integration page, find the Manage section and select single sign-on.

  2. On the Select a single sign-on method page, select SAML.

  3. On the Set up single sign-on with SAML page, click the edit/pen icon for Basic SAML Configuration to edit the settings.

    Edit Basic SAML Configuration

  4. On the Basic SAML Configuration section, enter the values for the following fields:

    a. In the Sign on URL text box, type a URL using the following pattern: https://<DOMAIN NAME>.slack.com/sso/saml/start

    b. In the Identifier (Entity ID) text box, type the URL: https://slack.com

    c. For Reply URL, enter one of the following URL pattern:

    Reply URL
    https://<DOMAIN NAME>.slack.com/sso/saml
    https://<DOMAIN NAME>.enterprise.slack.com/sso/saml

    Note

    These values aren't real. You need to update these values with the actual Sign-on URL and Reply URL. Contact Slack Client support team to get the value. You can also refer to the patterns shown in the Basic SAML Configuration section in the Azure portal.

    Note

    The value for Identifier (Entity ID) can be a variable if you have more than one Slack instance that you need to integrate with the tenant. Use the pattern https://<DOMAIN NAME>.slack.com. In this scenario, you also must pair with another setting in Slack by using the same value.

  5. Slack application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes.

    image

  6. In addition to above, Slack application expects few more attributes to be passed back in SAML response which are shown below. These attributes are also pre populated but you can review them as per your requirements. You also must add the email attribute. If the user does not have an email address, map emailaddress to user.userprincipalname and map email to user.userprincipalname.

    Name Source Attribute
    emailaddress user.userprincipalname
    email user.userprincipalname

    Note

    In order to set up the service provider (SP) configuration, you must click on Expand next to Advanced Options in the SAML configuration page. In the Service Provider Issuer box, enter the workspace URL. The default is slack.com.

  7. On the Set up single sign-on with SAML page, in the SAML Signing Certificate section, find Certificate (Base64) and select Download to download the certificate and save it on your computer.

    The Certificate download link

  8. On the Set up Slack section, copy the appropriate URL(s) based on your requirement.

    Copy configuration URLs

Create an Azure AD test user

In this section, you'll create a test user in the Azure portal called B.Simon.

  1. From the left pane in the Azure portal, select Azure Active Directory, select Users, and then select All users.
  2. Select New user at the top of the screen.
  3. In the User properties, follow these steps:
    1. In the Name field, enter B.Simon.
    2. In the User name field, enter the username@companydomain.extension. For example, B.Simon@contoso.com.
    3. Select the Show password check box, and then write down the value that's displayed in the Password box.
    4. Click Create.

Assign the Azure AD test user

In this section, you'll enable B.Simon to use Azure single sign-on by granting access to Slack.

  1. In the Azure portal, select Enterprise Applications, and then select All applications.

  2. In the applications list, select Slack.

  3. In the app's overview page, find the Manage section and select Users and groups.

  4. Select Add user, then select Users and groups in the Add Assignment dialog.

  5. In the Users and groups dialog, select B.Simon from the Users list, then click the Select button at the bottom of the screen.

  6. If you are expecting a role to be assigned to the users, you can select it from the Select a role dropdown. If no role has been set up for this app, you see "Default Access" role selected.

  7. In the Add Assignment dialog, click the Assign button.

Configure Slack SSO

  1. To automate the configuration within Slack, you need to install My Apps Secure Sign-in browser extension by clicking Install the extension.

    My apps extension

  2. After adding extension to the browser, click on Set up Slack will direct you to the Slack application. From there, provide the admin credentials to sign into Slack. The browser extension will automatically configure the application for you and automate steps 3-6.

    Setup configuration

  3. If you want to setup Slack manually, in a different web browser window, sign in to your Slack company site as an administrator.

  4. Navigate to Microsoft Azure AD then go to Team Settings.

    Configure single sign-on On Microsoft Azure AD

  5. In the Team Settings section, click the Authentication tab, and then click Change Settings.

    Configure single sign-on On Team Settings

  6. On the SAML Authentication Settings dialog, perform the following steps:

    Configure single sign-on On SAML Authentication Settings

    a. In the SAML 2.0 Endpoint (HTTP) textbox, paste the value of Login URL, which you have copied from Azure portal.

    b. In the Identity Provider Issuer textbox, paste the value of Azure Ad Identifier, which you have copied from Azure portal.

    c. Open your downloaded certificate file in Notepad, copy the content of it into your clipboard, and then paste it to the Public Certificate textbox.

    d. Configure the above three settings as appropriate for your Slack team. For more information about the settings, please find the Slack's SSO configuration guide here. https://get.slack.help/hc/articles/220403548-Guide-to-single-sign-on-with-Slack%60

    Configure single sign-on On App Side

    e. Click on expand and enter https://slack.com in the Service provider issuer textbox.

    f. Click Save Configuration.

    Note

    If you have more than one Slack instance that you need to integrate with Azure AD, set https://<DOMAIN NAME>.slack.com to Service provider issuer so that it can pair with the Azure application Identifier setting.

Create Slack test user

The objective of this section is to create a user called B.Simon in Slack. Slack supports just-in-time provisioning, which is by default enabled. There is no action item for you in this section. A new user is created during an attempt to access Slack if it doesn't exist yet. Slack also supports automatic user provisioning, you can find more details here on how to configure automatic user provisioning.

Note

If you need to create a user manually, you need to contact Slack support team.

Note

Azure AD Connect is the synchronization tool which can sync on premises Active Directory Identities to Azure AD and then these synced users can also use the applications as like other cloud users.

Test SSO

In this section, you test your Azure AD single sign-on configuration with following options.

  • Click on Test this application in Azure portal. This will redirect to Slack Sign-on URL where you can initiate the login flow.

  • Go to Slack Sign-on URL directly and initiate the login flow from there.

  • You can use Microsoft My Apps. When you click the Slack tile in the My Apps, this will redirect to Slack Sign-on URL. For more information about the My Apps, see Introduction to the My Apps.

Next steps

Once you configure Slack you can enforce Session control, which protects exfiltration and infiltration of your organization’s sensitive data in real time. Session control extends from Conditional Access. Learn how to enforce session control with Microsoft Cloud App Security