Single Sign-On (SSO) Configuration
Overview
Validaitor supports Single Sign-On (SSO) authentication using Microsoft Entra ID (formerly Azure Active Directory). SSO allows your organization's users to authenticate using their corporate credentials, streamlining access management and improving security.
Key Features
- Enterprise Authentication: Users log in with their Microsoft 365 / Azure AD credentials
- Automatic User Provisioning: New users are automatically created on first SSO login
- Domain-Based Access: Configure allowed email domains for your organization
- Multi-Organization Support: Users can belong to multiple organizations with different SSO configurations
- Dual Authentication: Users can have both SSO and password authentication enabled
Authentication Workflows
SSO Login Flow
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ │ │ │ │ Microsoft │ │ │
│ User │───▶│ Validaitor │───▶│ Entra ID │───▶│ Validaitor │
│ │ │ Login Page │ │ Login │ │ Dashboard │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
│ │ │ │
│ 1. Click SSO │ 2. Redirect to │ 3. Authenticate │
│ Login │ Microsoft │ with Azure │
│ │ │ │
│ │ │ 4. Return auth │
│ │ │ code │
│ │ │ │
│ │ 5. Exchange code │ │
│ │ for tokens │ │
│ │ │ │
│ │ 6. Create/update │ │
│ │ user account │ │
└───────────────────┴───────────────────┴───────────────────┘
New User Flow
When a user logs in via SSO for the first time:
- User is authenticated via Microsoft Entra ID
- Validaitor creates a new user account using their email and name from Entra ID
- User is added to the organization and assigned to the default team
- User receives minimal permissions through the default team
- Organization admin can then assign additional team memberships as needed
Existing User Flow
When an existing user (created via invitation) logs in via SSO:
- User is authenticated via Microsoft Entra ID
- Validaitor links their existing account to the SSO provider
- User retains all existing team memberships and permissions
- User can now login via either SSO or password (if password was set)
Prerequisites
Before configuring SSO, ensure you have:
- [ ] Azure AD admin access - Permissions to create App Registrations in Microsoft Entra ID
- [ ] Validaitor Organization Admin access - Member of the Organization Management Team
- [ ] Backup admin account - At least one admin user that can log in via email/password (critical for recovery if SSO is misconfigured)
⚠️ Important: Before enabling SSO, ensure you have a backup admin account with password login enabled. This is your recovery path if SSO becomes misconfigured.
Azure App Registration Setup
Step 1: Create App Registration
- Navigate to Azure Portal
- Go to Microsoft Entra ID > App registrations
- Click New registration
- Configure the registration:
- Name:
Validaitor SSO(or your preferred name) - Supported account types: Select based on your organization:
- Single tenant - Only users from your Azure AD tenant
- Multi-tenant - Users from any Azure AD tenant
- Redirect URI:
- Platform: Web
- URI:
https://app.validaitor.ai/sso/callback
- Click Register
Step 2: Configure Token Claims
- In your app registration, go to Token configuration
- Click Add optional claim
- Select ID token type
- Add the following claims:
email- User's email addressupn- User Principal Name (for user identification)- When prompted, check Turn on the Microsoft Graph profile permission
- Click Add
Step 3: Configure API Permissions
- Go to API permissions
- Click Add a permission
- Select Microsoft Graph > Delegated permissions
- Add the following permissions:
openidprofileemailUser.Read- Click Grant admin consent for [Your Organization]
- Verify all permissions show a green checkmark under "Status"
Step 4: Create Client Secret
- Go to Certificates & secrets
- Click New client secret
- Configure:
- Description:
Validaitor SSO Secret - Expires: Select an appropriate duration (recommended: 12-24 months)
- Click Add
- Copy the secret value immediately - it will only be shown once!
⚠️ Important: Set a calendar reminder to rotate the secret before expiration. Expired secrets will break SSO login.
Step 5: Note Your Configuration Values
Collect the following values from your App Registration:
| Value | Location |
|---|---|
| Tenant ID | Overview page > Directory (tenant) ID |
| Client ID | Overview page > Application (client) ID |
| Client Secret | Just created in Step 4 |
Validaitor SSO Configuration
Accessing SSO Settings
- Log in to Validaitor as an Organization Admin
- Navigate to Organization Settings > Single Sign-On
Configuring SSO
- Enter Azure Credentials:
- Provider: Microsoft Entra ID
- Tenant ID: Your Azure AD tenant ID
- Client ID: Application (client) ID from App Registration
- Client Secret: Secret value created in Azure
-
Secret Expiration Date (optional): Set a reminder for secret rotation
-
Test Connection:
- Click Test Connection
- Verify the connection is successful
-
If it fails, verify your Tenant ID, Client ID, and Client Secret
-
Configure Email Domains:
- Add your company email domains (e.g.,
acme.com,acme.co.uk) - Each domain can only belong to one organization
-
Users with these email domains can use SSO to access your organization
-
Select Default Team:
- Choose the team that new SSO users will be assigned to
- This team should have minimal permissions
-
Organization admins can assign additional teams after user creation
-
Enable SSO:
- Toggle Enable SSO to activate
- Click Save
Multi-Organization Access
How Multi-Organization Login Works
Users can belong to multiple Validaitor organizations, each with their own SSO configuration:
- When logging in, users may need to select which organization to access
- Each organization maintains separate permissions and team memberships
- SSO sessions are organization-specific
Direct Organization Login
To bypass organization selection, users can use a direct login URL:
https://app.validaitor.ai/login?org=<public-identifier>
The organization's public identifier can be found in Organization Settings.
Cross-Organization User Behavior
| Scenario | Behavior |
|---|---|
| User belongs to Org A, logs into Org B via SSO | User is added to Org B, assigned to default team |
| User has password in Org A, uses SSO in Org B | Password login still works for Org A |
| User removed from Org A via SCIM | User still has access to Org B |
User Provisioning
Automatic User Creation
When SSO is enabled, users are automatically provisioned:
| User Info | Source |
|---|---|
email or upn claim from Entra ID |
|
| First Name | given_name claim from Entra ID |
| Last Name | family_name claim from Entra ID |
| Organization | Determined by SSO configuration |
| Default Team | As configured in SSO settings |
Existing User Linking
When an existing Validaitor user logs in via SSO for the first time:
- Validaitor matches the user by email address (case-insensitive)
- An SSO link is created connecting the Validaitor account to the Entra ID identity
- The user retains their existing password (if set) for backup access
- Subsequent SSO logins recognize the user via the SSO link
Password vs SSO-Only Users
| User Type | Can Login with Password | Can Login with SSO |
|---|---|---|
| Created via invitation (with password) | ✅ | ✅ (after first SSO login) |
| Created via SSO (new user) | ❌ | ✅ |
| SSO user with password later set | ✅ | ✅ |
Pre-SSO Checklist
Before enabling SSO, verify:
- [ ] At least one admin has password login enabled (backup access)
- [ ] Azure App Registration is created
- [ ] Redirect URI is correctly set to
https://app.validaitor.ai/sso/callback - [ ] API permissions are granted (
openid,profile,email,User.Read) - [ ] Admin consent is granted for API permissions
- [ ] Test Connection succeeds in Validaitor
- [ ] At least one email domain is configured
- [ ] Default team is selected
Troubleshooting
Common Errors and Solutions
| Error | Cause | Solution |
|---|---|---|
| "SSO not available for this domain" | Email domain not registered | Add the domain in SSO Settings |
| "Connection test failed" | Invalid credentials | Verify Tenant ID, Client ID, and Client Secret |
| "AADSTS50011: Reply URL mismatch" | Wrong redirect URI in Azure | Set redirect URI to https://app.validaitor.ai/sso/callback |
| "AADSTS7000215: Invalid client secret" | Expired or incorrect secret | Create new secret in Azure, update in Validaitor |
| "AADSTS700016: Application not found" | Wrong Tenant ID | Verify Tenant ID matches your Azure directory |
| "AADSTS65001: User needs to consent" | Admin consent not granted | Grant admin consent in Azure Portal > API permissions |
| "Please select an organization" | User belongs to multiple orgs | Select organization or use direct org login URL |
| User created but no permissions | Expected behavior | Admin assigns appropriate teams to new user |
| Locked out of admin account | SSO misconfigured | Use backup email/password login to recover |
Connection Test Failures
If the Test Connection fails:
- Verify Tenant ID: Ensure it matches your Azure AD directory
- Verify Client ID: Application (client) ID from App Registration
- Verify Client Secret: Ensure the secret hasn't expired
- Check Network: Ensure Validaitor can reach
login.microsoftonline.com
User Not Being Created
If users aren't being created on SSO login:
- Verify the user's email domain is in the allowed domains list
- Check that SSO is enabled for the organization
- Verify the default team is configured
Password Login Not Working After SSO
If a user can't log in with password after using SSO:
- If user was created via SSO, they have no password set (by design)
- Admin can send a password reset email to enable password login
Security Considerations
Best Practices
- Backup Admin Account: Always maintain at least one admin with password access
- Secret Rotation: Set calendar reminders to rotate client secrets before expiration
- Domain Verification: Only add email domains you control
- Minimal Default Permissions: Configure the default team with minimal permissions
- Regular Audits: Periodically review SSO user access and team memberships
Session Management
- SSO tokens are short-lived and refresh automatically
- Logging out of Validaitor does not log you out of Microsoft
- For complete logout, users should also sign out of their Microsoft account
FAQ
Q: Can users have both SSO and password login? A: Yes. Users created via invitation can use both methods. Users created via SSO initially have no password, but an admin can enable password login by sending a password reset email.
Q: What happens if I disable SSO? A: Users who only have SSO access will be unable to log in until SSO is re-enabled or they're given password access.
Q: Can I use SSO with multiple Azure AD tenants? A: Each organization can only connect to one Azure AD tenant. For multi-tenant access, configure your Azure App Registration as multi-tenant.
Q: How do I remove a user's SSO access? A: Remove the user from the allowed email domains in Azure AD, or disable/delete their account in Validaitor.
Q: What permissions do new SSO users get? A: New users are assigned to the default team configured in SSO settings. This team should have minimal permissions; admins can assign additional access as needed.