Azure Active Directory
Single Sign-On with Microsoft Entra ID (Azure AD)
Integrating Single Sign-On (SSO) with Azure AD for Sled
Sled integrates with Azure Active Directory (Microsoft Entra ID) using OAuth 2.0 / OpenID Connect. This guide walks through the setup process for both the Azure AD and Sled sides of the configuration.
Technical Overview
Protocol
OAuth 2.0 / OpenID Connect
Scopes
openid, profile, email, User.Read, GroupMember.Read.All
Redirect URI
https://{your-sled-domain}/api/auth/azure/callback
Tenant type
Single tenant
Part 1: Azure AD Configuration
Step 1: Register a New Application
Go to the Azure Portal and navigate to Azure Active Directory > App registrations
Click New registration
Step 2: Application Registration
Enter the name of the application, e.g.
SledUnder Supported account types, select "Accounts in this organizational directory only" (Single tenant)
For the Redirect URI, select Web and enter:
https://{your-sled-domain}/api/auth/azure/callbackClick Register
Step 3: Copy Application IDs
Once registered, you will be redirected to the application overview page. Copy and save these two values:
Application (client) ID
Directory (tenant) ID
Step 4: Create a Client Secret
In the application menu, click Certificates & secrets
Click New client secret
Set a description (e.g.
Sled SSO) and an expiration (12 or 24 months recommended)Click Add
Immediately copy the secret Value (not the Secret ID) - this is only shown once
Step 5: Configure API Permissions
In the application menu, go to API permissions
Click Add a permission > Microsoft Graph > Delegated permissions
Add the following permissions:
User.Read
Read the signed-in user's profile (email, name)
No
GroupMember.Read.All
Read the signed-in user's group memberships
Yes
Click Add permissions
Click Grant admin consent for [Your Organization] and confirm
Granting admin consent for GroupMember.Read.All requires Global Administrator or Privileged Role Administrator rights.
Part 2: Azure AD Groups and Role Mapping
Sled uses Azure AD Security Groups to control access levels. This section explains how the mapping between Azure AD groups and Sled roles works.
How It Works
When a user logs in via Azure SSO, Sled queries the Microsoft Graph API for the user's group memberships
Sled checks the user's groups against the configured group mappings
The highest-privilege matching group determines the user's role
If none of the user's groups match, the user gets Viewer access (read-only)
Group memberships are checked fresh on every login - changes in Azure AD take effect on the next login
Sled Roles
Admin
Full access: settings, user management, edit data, read data, search
Editor
Edit data, read data, search
Viewer
Read-only: browse data and search (default for all SSO users)
Step 6: Create Security Groups (Optional)
This step is optional. Without any group configuration, all authenticated Azure AD users automatically receive Viewer (read-only) access in Sled. Only create groups if you need to grant Editor or Admin permissions.
Navigate to Azure Active Directory > Groups
Click New group
Create groups as needed:
Sled Admins
Security
Assigned
Full administrative access to Sled
Sled Editors
Security
Assigned
Can edit and review data in Sled
For each group, open the group and copy the Object ID from the Overview page
Step 7: Assign Users to Groups
Open each group in Azure Active Directory > Groups
Go to Members > Add members
Search for and select the users who need the respective access level
Click Select
Users not assigned to any Sled group can still log in and will receive Viewer access by default.
Step 8: Restrict Application Access (Optional)
To limit which users can use Sled SSO (rather than allowing all users in your tenant):
In Azure, go to Enterprise applications and find your Sled application
Go to Manage > Users and Groups
Click Add user/group and assign the users or groups that should have access
Go to Manage > Properties
Set Assignment required? to Yes - now only explicitly assigned users can authenticate
Part 3: Sled Configuration
Step 9: Configure Azure SSO in Sled
Log into Sled as an admin user
Navigate to Settings (gear icon)
Scroll to the Azure SSO Configuration section
Fill in the fields:
Tenant ID
Directory (tenant) ID from Step 3
Client ID
Application (client) ID from Step 3
Client Secret
Secret value from Step 4
Redirect URI
https://{your-sled-domain}/api/auth/azure/callback
Enable Azure SSO
Enabled
Enable Password Login
Enabled (recommended during initial setup)
Click Save Configuration
Step 10: Configure Group Mappings in Sled
After enabling Azure SSO, the Azure AD Group Mappings section appears below the SSO configuration.
Click Add Mapping
Fill in:
Azure AD Group ID: The Object ID of the Azure AD Security Group (UUID format)
Azure AD Group Name: A friendly label for your reference (e.g. "Data Engineering")
Sled Role: Select Admin, Editor, or Viewer
Click Save
Repeat for each group you want to map
Example Configuration
Sled Admins
a1b2c3d4-e5f6-...
Admin
Data Engineers
e5f6a7b8-c9d0-...
Editor
BI Analysts
1a2b3c4d-5e6f-...
Editor
With this setup:
Members of "Sled Admins" get Admin access
Members of "Data Engineers" or "BI Analysts" get Editor access
All other authenticated Azure AD users get Viewer access
A user in both an Admin and an Editor group gets Admin (highest privilege wins)
Testing
Test SSO Login
Log out of Sled
On the login page, click "Sign in with Microsoft"
Authenticate with your Azure AD credentials (MFA if enabled)
After authentication, you should be redirected back to Sled and logged in
Check your assigned role in your user profile (top right)
Verify Group-Based Roles
Log in with a user in a mapped Admin group - verify they have Admin access
Log in with a user in a mapped Editor group - verify they have Editor access
Log in with a user not in any mapped group - verify they have Viewer access
Troubleshooting
"Failed to exchange code for token"
Client secret is incorrect or expired. Verify the secret in Sled matches Azure Portal. If expired, create a new one and update the Sled configuration.
"Failed to get user information from Microsoft Graph"
Missing API permissions or admin consent not granted. Go to App registration > API permissions and verify User.Read and GroupMember.Read.All are present and granted.
"Redirect URI mismatch"
The redirect URI in Azure does not match the one configured in Sled. Verify both match exactly, including protocol (https) and path (/api/auth/azure/callback).
User has the wrong role
Verify the user's group membership in Azure AD
Check that the group's Object ID matches the mapping in Sled Settings
Have the user log out and log in again (roles are refreshed on each login)
Group changes not taking effect
Azure AD group changes can take a few minutes to propagate. Have the user wait a few minutes, then log out and log in again. Sled fetches group memberships fresh on every login.
Optional: Disable Password Login
Once SSO is working reliably:
Go to Settings > Azure SSO Configuration
Set Enable Password Login to Disabled
Click Save
Keep at least one admin account with password access as backup before disabling password login.
FAQ
Can users still use passwords after enabling SSO? Yes, by default both methods work simultaneously. Disable password login in Settings once SSO is stable.
What happens if a user is in multiple mapped groups? The highest-privilege role wins (Admin > Editor > Viewer).
What if no group mappings are configured? All authenticated Azure AD users get Viewer (read-only) access automatically.
Does it work with MFA and Conditional Access? Yes. Any MFA or Conditional Access policies in your Azure AD tenant are enforced during the Microsoft login step. No special configuration needed in Sled.
How do I find a group's Object ID? Azure Portal > Azure Active Directory > Groups > click the group > Object ID is in the Overview tab.
How quickly do group changes take effect? Users need to log out and log in again. Sled fetches group memberships fresh on each login. Azure AD may take a few minutes to propagate group changes.
Last updated