Overview
This article walks through restricting Slack access to one or more approved IP addresses using Conditional Access in Microsoft Entra ID. When Entra ID is configured as the identity provider for Slack via SAML SSO, Conditional Access policies are evaluated at sign-in time, blocking access from any IP not on your approved list before a SAML assertion is issued to Slack.
The approach uses two components working together:
- Named Locations: A saved list of trusted IP addresses or CIDR ranges defined in
Entra ID. - Conditional Access policy: A policy that blocks Slack sign-ins originating from
any IP not on the trusted list.
Please Note: SAML SSO for Slack is only available on Business + and Enterprise Grid plans. It is not available on the Free or Pro plans. Confirm your Slack subscription tier before proceeding.
SSO Enforcement Modes
Slack offers three SSO enforcement modes, each with different implications for IP-based access control. The mode must be set to Required for this Conditional Access policy to provide full enforcement.
| SSO Mode | Behavior | Suitability for IP Restriction |
| Required | All members must sign in via SSO. Email/password login is disabled for members. | Recommended for full IP enforcement. Guests are excluded by default and can still use email/password. |
| Partially Required | SSO is required for some members. Others can still use email/password. | Useful during rollout. Does not provide full IP enforcement. |
| Optional | SSO is available but not enforced. Members can use either SSO or email/password. | Not suitable for IP enforcement. Users can bypass Entra ID entirely. |
Important: Even with SSO set to Required, guests are excluded from SSO enforcement by default in Slack and can stil sign in with email and password. If your organization has external guests in Slack, they will not be subject to the Conditional Access policy. Manage guest access separately through Slack's guest exclusion settings and consider whether additional controls are needed for guest accounts.
Prerequisites
Before proceeding, confirm the following are in place:
- Microsoft Entra ID P1 or P2 license - required for Conditional Access.
- Conditional Access Administrator role or higher in Microsoft Entra ID.
- Slack Business + or Enterprise Grid plan - required for SAML SSO.
- Slack enterprise app (SAML SSO) registered in your Entra ID tenant with SSO
configured and verified in Slack. - SSO set to Required in Slack - configured under Security > SSO & Authentication in Slack settings. If set to OPtioal, users can bypass Entra ID.
- Security Defaults Disabled in Entra ID - Security Defaults and Conditional Access cannot run simultaneously.
- Known static IP address - the public IP address or CIDR range of each approved location.
- Break-glass admin account - must be excluded from this policy to prevent administrative lockout.
Important: If your approved IP address is dynamic, this approach will not work reliably. You must use a static IP before implementing IP-based Conditional Access.
Step 1: Create a Named Location for Your Trusted IP(s)
A Named Location defines the trusted IP addresses that Entra ID will reference as a condition in the policy.
- Sign in to the Microsoft Entra admin center at entra.microsoft.com
- Navigate to Protection > Conditional Access > Named locations.
- Select + IP ranges locations.
- Name the location. For example: Trusted - Corporate Office
- Check the Mark as trusted location checkbox.
- Click + and enter your approved IP address or CIDR range.
| Field/Setting | Value/Notes |
| Single IP address | 203.0.113.10/32 |
| IP range (CIDR) | 203.0.113.0/24 |
| Multiple sites | Create a separate Named Location for each site, then reference all of them in the policy. |
7. Click Create.
Step 2: Create the Conditional Access Policy
Create a policy that blocks Salesforce access from any location not on your trusted list.
- In the Entra admin center, navigate to Protection > Conditional Access > Policies.
- Select + New policy.
- Name the policy. For example, Block Slack- Outside Trusted IPs
Assignments: Users
- Under Assignments > Users, select All users.
- Under Exclude, add your break-glass admin account and any automation or service accounts that authenticate from dynamic IPs.
Please Note: ServiceNow integrations and MID Servers may authenticate to the ServiceNow instance through Entra ID in some configuratoins. Review your integration accounts before enabling this poliyc to confirm they will not be blocked.
Assignments: Target Resources
- Under Target Resources, select Cloud apps > Select apps.
- Search for and select Slack.
Conditions: Locations
- Under Conditions > Locations, set Configure to Yes.
- Under Include, select Any location.
- Under Exclude, select Selected locations, then choose the Named Location you created in Step 1.
Tip: This configuration reads: Apply this policy to sign-ins from any location except the trusted named location. Any Slack sign-in originating outside the trusted IP will be blocked before a SAML assertion is issued to Slack.
Access Controls: Grant
- Under Access Controls > Grant, select Block access.
- Click Select to confirm.
Enable Policy
- Set Enable policy to Report-only.
- Click Create.
Important: Do not set this policy to On immediately. A block policy applied to All users that is misconfigured will lock all users out of Slack instantly. Always validate in Report-only mode first.
Step 3: Validate the Policy
Before enabling enforcement, confirm the policy is evaluating sign-ins correctly.
1. In the Entra admin center, navigate to Identity > Monitoring & health > Sign-in logs.
2. Filter by the Slack application.
3. Open a sign-in from a user on your trusted IP and confirm the Conditional Access
tab shows Would succeed.
4. If available, review a sign-in from an untrusted IP and confirm it shows Would fail
with the location condition listed as the reason.
5. Investigate any unexpected Would fail entries for users on trusted IPs - this typically indicates the network is presenting a different egress IP than what is entered in the Named Location.
Tip: Use the What If tool under Protection > Conditional Access to simulate how a specific user signing in from a specific IP would be evaluated without waiting for a real sign-in event.
Step 4: Enable the Policy
- In the Entra admin center, navigate to Protection > Conditional Access > Policies.
- Select the policy created in Step 2.
- Change Enable policy from Report-only to On.
- Click Save.
From this point forward, any Slack sign-in attempt from an IP address not included in your Named Location will be blocked. Entra ID will not issue a SAML assertion to Slack, and the user will be denied access at the identity provider level.
Please Note: Users who are already signed in to Slack when the policy is enabled will not be immediately signed out. The block takes effect on the next sign-in or token refresh. Confirm that SSO is set to Required in Slack under Security > SSO & Authentication. Guests are excluded from SSO enforcement by default in Slack and will not be affected by this policy regarless of their IP address.
Summary
The following table summarizes the full configuration process.
| Step | Action |
| Prerequisites | Confirm Business + or Enterprise Grid pla, SAML SSO configured, SSO set to Required in Slack, Security Defaults disabled, static IP(s) identified |
| Step 1 | Create a Named Location with your trusted IP address(es) in Entra ID |
| Step 2 | Create a CA policy targeting Slack, excluding the Named Location, with Block access |
| Step 3 | Validate in Report-only mode using sign-in logs and the What If tool. Review integration and MID Server account sign-ins. |
| Step 4 | Switch Enable policy to On |
Help Center