After configuring your SSO provider, thorough testing is essential before rolling out to your organization. This guide covers testing procedures, troubleshooting common issues, and best practices for maintaining a secure SSO setup.
Pre-configuration checklist
Before you begin testing, verify:
- Organization has Team or Enterprise plan
- Login flow type decided (IdP-initiated, SP-initiated, or both) - see Choosing a Login Flow
- Email domains identified (only required if using SP-initiated)
- Auto-join settings and default role are decided
- At least one non-SSO owner account exists (critical safety requirement)
- Certificate expiration dates are documented (especially for Google Workspace)
Testing login flows
Before testing auto-join and other features, verify which login flows work for your SSO configuration. See Understanding SSO Login Flows for technical details.
Testing IdP-initiated login
IdP-initiated login is always available and doesn't require domain configuration. This should be your primary test.
Test procedure:
-
Access from identity provider:
- Open your IdP dashboard (Okta, Azure AD, Google Workspace)
- Locate your Zuvo app tile or bookmark
- Click the app tile
-
Verify authentication:
- If already authenticated with IdP: Immediate redirect to Zuvo
- If not authenticated: Complete IdP login flow, then redirect
- Check you're logged into the correct organization
- Verify user profile information is populated correctly
-
Confirm success:
- No error messages appear
- Organization dashboard loads properly
- User attributes (name, email) mapped correctly
Expected results:
- ✅ Direct login from IdP with no intermediate steps
- ✅ Works regardless of domain configuration
- ✅ User information properly mapped from IdP
Testing SP-initiated login
SP-initiated login requires domain configuration. Only test this if you've enabled SP-initiated flow.
Prerequisites:
- "Enable SP-initiated login" toggle is ON
- At least one email domain configured
Test procedure:
-
Start at Zuvo:
- Visit Sign in with SSO
- Or click "Sign in with SSO" from main sign-in page
-
Enter email:
- Use email with matching configured domain
- Click "Continue"
-
Verify redirect chain:
- Should redirect to your identity provider
- Complete authentication if needed
- Should redirect back to Zuvo
- Check you're in correct organization
-
Test domain matching:
- Try email with non-matching domain
- Should receive error: "No SSO provider found"
- Confirms domain-based routing works
Expected results:
- ✅ Users with matching domains redirected to IdP
- ✅ Non-matching domains show clear error message
- ✅ Successful authentication redirects back to Zuvo
Testing without domains (IdP-initiated only)
This is a critical test for domainless providers, which enable multiple SAML apps per domain.
Test scenario:
You've configured SSO with:
- "Enable SP-initiated login" OFF (or no domains configured)
- IdP metadata configured
- Attribute mappings configured
Test procedure:
-
Verify SP-initiated is unavailable:
- Visit Sign in with SSO
- Enter your email address
- Expected: Error message "No SSO provider found"
- This is correct behavior (no domains = no SP-initiated)
-
Verify IdP-initiated works:
- Open IdP dashboard
- Click Zuvo app tile
- Should successfully log in
- Verify correct organization access
-
Confirm multi-environment pattern works (if applicable):
- If you have multiple environments (Dev/Staging/Prod)
- Each should have separate app tile in IdP
- Click each tile individually
- Verify each routes to correct organization
Expected results:
- ✅ IdP-initiated login works perfectly
- ❌ SP-initiated login unavailable (expected)
- ✅ Multiple environments accessible via different tiles
- ✅ No domain conflicts between environments
Login flow verification checklist
- IdP-initiated login works from IdP dashboard
- SP-initiated login works (if domains configured)
- SP-initiated properly blocked if no domains configured
- Domain matching works correctly for SP-initiated
- Non-matching domains show appropriate errors
- Multiple environments route correctly (if using multiple providers)
- Both flows work simultaneously (if both enabled)
Testing SSO login flow
Basic login test
-
Navigate to the SSO sign-in page:
- Visit Sign in with SSO
- Or click "Sign in with SSO" from the main Zuvo sign-in page
-
Enter your email address:
- Use an email with a domain configured in your SSO settings
- Click "Continue"
-
Verify redirect to identity provider:
- You should be redirected to your identity provider (Okta, Azure AD, Google Workspace)
- If already signed in to your IdP, you may be automatically redirected back
- If not signed in, complete the IdP login flow
-
Confirm successful sign-in:
- You should be redirected back to Zuvo dashboard
- Your profile should show your SSO identity
- Check that your user information is populated correctly
Multi-user testing
Test with 2-3 additional users to verify:
- Users with matching email domains can sign in via SSO
- User attributes (name, email) are mapped correctly
- Users receive appropriate access to organization (if using auto-join)
- Users without matching domains cannot use SSO for this organization
Testing auto-join
Recommended testing workflow
-
Start with auto-join disabled:
- Navigate to SSO settings
- Ensure "Join organization on signup" is disabled
- Configure your SSO provider
- Test basic SSO login (see above)
-
Enable auto-join after successful test:
- Return to SSO settings
- Toggle "Join organization on signup" to enabled
- Select default role (recommended: Developer)
- Click "Save changes"
-
Test auto-join with your account:
- Log out completely from Zuvo
- Sign in again via SSO
- Verify you were automatically added to the organization
- Check you received the correct default role
-
Test with additional users:
- Have colleagues with matching email domains sign in via SSO
- They should automatically join the organization
- Verify they received the correct default role
- Check organization members list at
/dashboard/org/_/team
-
Test domain restrictions (if using SP-initiated):
- Try signing in with an email from a non-configured domain
- User should be able to sign in but will NOT see the organization
- This confirms domain-based access control is working
- Note: With IdP-initiated only, domain matching doesn't apply
-
Test idempotency (prevents duplicate memberships):
- Log in again with an account that's already a member
- Verify no error occurs
- Check members list - should be no duplicate entry
- Confirm role hasn't changed unexpectedly
- Expected: Auto-join gracefully handles existing members
-
Test with domainless (IdP-initiated only) configuration:
- If you configured SSO without domains (IdP-initiated only):
- Enable auto-join
- New user accesses via IdP app tile
- Verify auto-join works without domain check
- User automatically added to organization
- Correct role assigned
- Expected: Auto-join works for IdP-initiated regardless of email domain
- Test auto-join re-enablement:
- Disable auto-join
- Have new user sign in via SSO
- Verify they are NOT added to organization
- Re-enable auto-join
- Same user logs out and logs in again
- Verify they ARE now added to organization
- Expected: Existing SSO users auto-join when feature is enabled
Auto-join verification checklist
- Auto-join works when enabled
- Users receive correct default role
- Non-matching domains are excluded (if using SP-initiated with domains)
- Existing users auto-join on their next login (not only on new signups)
- Auto-join can be disabled and re-enabled as needed
- Auto-join is idempotent (no duplicate memberships)
- Auto-join works with IdP-initiated only (no domains)
- Auto-join works with both IdP and SP-initiated flows
Testing invitations
Creating and testing invitations
-
Create SSO-required invitation:
- Navigate to organization team settings
- Click "Invite" to create a new invitation
- Select "Require SSO" option
- Enter recipient email and select role
- Send invitation
- Recipient must log in via SSO to accept
-
Create non-SSO invitation:
- Create a new invitation
- Select "Non-SSO" option
- Send invitation
- Recipient can use password or social login to accept
-
Test SSO mismatch scenario:
- Create an SSO-required invitation
- Have recipient try to accept while logged in with a non-SSO account
- Error should display: "Invite token SSO provider does not match the one you are logged in with"
- Recipient should log out and sign in via SSO
- Can then successfully accept the invitation
Common invitation scenarios
- All-SSO organization: Always select "Require SSO" for invitations
- Mixed organization: Choose based on recipient's authentication method
- Transitioning to SSO: Start with non-SSO users, gradually add SSO users, maintain non-SSO owner before removing old authentication methods
Invitation verification checklist
- SSO-required invitations work correctly
- Non-SSO invitations work correctly
- SSO mismatch error message is clear
- Mixed authentication organization functions properly
- Invitations can be resent if needed
Testing SSO account restrictions
SSO accounts have specific restrictions to prevent accidental organization lockouts.
Testing SSO account deletion restrictions
-
Log in with SSO account:
- Authenticate via SSO (IdP or SP-initiated)
- Navigate to SSO settings
- Verify you are an organization owner
-
Attempt to delete SSO provider:
- Try to delete the SSO provider
- Expected: Error message preventing deletion
- Error: "Only a non-SSO account may delete an SSO Provider"
- Deletion should be blocked
-
Verify other SSO operations work:
- SSO accounts CAN read SSO configuration
- SSO accounts CAN update SSO settings
- SSO accounts CAN disable (but not delete) SSO provider
- Only deletion is restricted
Expected results:
- ❌ SSO accounts cannot delete SSO providers
- ✅ Clear error message explains the restriction
- ✅ Other SSO management operations still work
Testing with non-SSO owner account
-
Log in with non-SSO owner:
- Use password or social auth account
- Must be organization owner
- Navigate to SSO settings
-
Verify deletion capability:
- Non-SSO owners CAN delete SSO providers
- Deletion subject to additional safety checks (see next section)
- System allows proceeding to deletion flow
Expected results:
- ✅ Non-SSO owners CAN access deletion functionality
- ✅ Safety checks still apply (non-SSO account requirement)
SSO account restrictions checklist
- SSO accounts cannot delete SSO providers
- SSO accounts CAN update SSO settings
- SSO accounts CAN disable SSO providers
- Non-SSO owners CAN delete SSO providers
- Error messages clearly explain the restriction
- Restriction applies to all SSO accounts (not only certain roles)
Common issues and troubleshooting
Based on customer pain points that previously required support intervention:
Critical issues
"Enabled auto-join but users aren't automatically joining"
Common workflow that causes this:
- Org owner tests SSO with auto-join disabled
- Enables auto-join after testing
- Logs in again expecting to auto-join but nothing happens
Solution:
- Auto-join now applies on every login, not only on first signup
- To test: Enable auto-join, log out completely, log back in via SSO
- If still not working, verify domain configuration matches user email exactly
"Can't invite users with the right authentication type"
Previous limitation:
- Invitation type was inherited from inviter's account type
- Non-SSO owners couldn't send SSO invitations
- SSO owners couldn't send non-SSO invitations
Solution:
- When creating invitations, explicitly choose "Require SSO" or "Non-SSO"
- Mixed organizations are now fully supported
- Both SSO and non-SSO users can coexist in the same organization
"Invitation acceptance shows 'SSO provider mismatch' error"
Cause: User is logged in with wrong authentication method for the invitation
Solution:
- Check if invitation requires SSO or non-SSO login
- Log out completely
- Sign in with the correct method (SSO or password/social)
- Accept the invitation
- Contact the person who sent the invitation if unsure about the type
"Deleted the SSO provider and now members can't log in"
Recent safety improvements:
- System now automatically removes all SSO members before deletion
- Must have at least one non-SSO owner before deletion is allowed
Best practice:
- Add a non-SSO owner account before deleting SSO provider
- Communicate to affected users before deletion
- Consider disabling rather than deleting if change is temporary
Testing safe provider deletion
Understanding deletion behavior
When an SSO provider is deleted:
- System verifies at least one non-SSO owner account exists
- All SSO members are automatically removed from the organization
- SSO provider configuration is deleted
- Organization continues operating with remaining non-SSO members
This behavior prevents "orphaned" SSO accounts that can no longer authenticate.
Test 1: Deletion without non-SSO accounts (should fail)
Setup:
- Organization with only SSO accounts
- All owners authenticate via SSO
- No password or social auth owners exist
Test procedure:
-
Verify current state:
- Check team settings
- Confirm all owners are SSO accounts
- No non-SSO owner exists
-
Attempt deletion:
- Navigate to SSO settings
- Try to delete SSO provider
- Expected: Error preventing deletion
- Error message: "At least one non-SSO account is required to maintain organization access"
-
Verify organization state:
- SSO provider still exists
- All SSO members still have access
- No partial deletion occurred
Expected result: ❌ Deletion blocked with clear error message
Test 2: Add non-SSO owner and retry deletion (should succeed)
Setup:
-
Add non-SSO owner:
- Create or invite a non-SSO user (password or social login)
- Promote to owner role
- Critical: Verify non-SSO owner can log in BEFORE deletion
- Store credentials securely
-
Document SSO members:
- Note current SSO member count
- Document SSO member email addresses (for verification)
Test procedure:
-
Attempt deletion as non-SSO owner:
- Log in with non-SSO owner account
- Navigate to SSO settings
- Delete SSO provider
- Confirm deletion
-
Verify deletion results:
- All SSO members removed from organization
- Check team settings
- Only non-SSO members should remain
- SSO configuration completely removed
-
Verify non-SSO access:
- Non-SSO owner retains full access
- Organization remains functional
- Can invite new members (non-SSO invitations)
Expected result: ✅ Deletion succeeds, SSO members removed, non-SSO access preserved
Test 3: Member removal during deletion
Test in isolated environment with test accounts.
Setup:
- Create test organization
- Enable SSO
- Add multiple SSO members (3-5 test users)
- Add at least one non-SSO owner
- Document member list before deletion
Test procedure:
-
Track members before deletion:
- Note SSO member count (e.g., 5 SSO members)
- Note SSO member email addresses
- Document their roles
-
Delete SSO provider:
- Log in as non-SSO owner
- Delete SSO provider
- System may show member count being removed
-
Verify member removal:
- Check organization members list
- All SSO members should be gone
- Only non-SSO members remain
- Previous SSO users cannot access org
Expected result: All SSO members cleanly removed, no orphaned accounts
Test 4: Mixed authentication scenario
Setup:
- Organization with both SSO and non-SSO members
- SSO members: employees (via SSO)
- Non-SSO members: contractors (password auth)
- Mixed owner types
Test procedure:
-
Ensure non-SSO owner exists:
- Verify at least one non-SSO owner
- Test their login before deletion
-
Delete SSO provider:
- System allows deletion (non-SSO owner exists)
- Confirm deletion
-
Verify selective removal:
- SSO members removed (employees)
- Non-SSO members retained (contractors)
- Organization still functional
- Non-SSO owners can manage organization
Expected result: ✅ Selective removal - only SSO members affected
Safe deletion verification checklist
- Cannot delete without non-SSO owner account
- Error message clearly explains requirement
- Adding non-SSO owner enables deletion
- All SSO members removed upon deletion
- Non-SSO members unaffected by SSO provider deletion
- Organization remains accessible via non-SSO accounts
- SSO configuration completely removed after deletion
- Non-SSO owner account tested BEFORE deletion
Best practices for safe deletion
Before deleting SSO provider:
-
Create dedicated non-SSO owner account
- Use password authentication
- Test that this account can log in
- Store credentials in secure password manager
- Verify owner permissions
-
Communication plan:
- Notify all SSO members before deletion
- Explain they will lose organization access
- Provide timeline for deletion
- Offer alternative access if needed (re-invite as non-SSO)
-
Documentation:
- Document which members will be removed
- Plan for re-adding users if needed
- Have rollback plan (reconfigure SSO if needed)
After deletion:
-
Verify organization function:
- Test non-SSO owner access
- Verify critical functionality works
- Check that SSO members removed
-
User communication:
- Confirm to users that deletion complete
- Provide instructions for alternative access
- Answer questions about regaining access
Configuration issues
"SSO sign-in doesn't work at all"
Common causes:
- Metadata URL/file incorrect or expired
- Certificate expired (especially Google Workspace - check during setup)
- Attribute mapping misconfigured
- User not assigned to Zuvo app in identity provider
- Email domain not configured in Zuvo SSO settings
- User email domain doesn't match configured domains
Troubleshooting steps:
- Verify metadata URL/file is accessible and current
- Check certificate expiration date
- Verify attribute mappings (email mapping is required)
- Confirm user is assigned to app in IdP
- Check domain configuration in Zuvo matches user email
- Review IdP logs for authentication errors
"Attribute mapping errors or missing user data"
Requirements:
- Email mapping to
emailis required - Attribute keys must be spelled exactly as shown in provider
- Use provider presets (Okta, Azure, G Suite) to avoid errors
Troubleshooting:
- Verify email attribute is mapped correctly
- Check attribute names match your IdP configuration exactly
- Test that mappings return expected user data
- Use IdP test tools to see what attributes are being sent
"Cannot delete SSO provider"
Error: "At least one non-SSO account is required"
Solution:
- Create or convert an existing member to a non-SSO owner account
- Verify the non-SSO owner can log in
- Then proceed with SSO provider deletion
Why this is required: Prevents complete organization lockout if SSO becomes unavailable
Best practices
Security and safety
CRITICAL: Maintain at least one non-SSO owner account
- Required to prevent complete organization lockout
- System enforces this when deleting SSO provider
- Create dedicated non-SSO owner before enabling SSO
- Store credentials securely in a password manager
- Verify this account can log in before critical changes
Monitor certificate expiration
- Set calendar reminders 30 days before certificate expiration
- Especially important for Google Workspace (certificates shown during setup)
- Test SSO after certificate renewal
- Update metadata in Zuvo after IdP certificate renewal
- Communicate planned renewal to team
Configure domains carefully
- Use specific corporate email domains only
- Public domains (gmail.com, yahoo.com, etc.) are automatically blocked
- Be cautious with domains you don't fully control
- Multiple domains supported for contractors/acquisitions
- Document which domains are configured and why
Regular access reviews
- Periodically review organization member list
- Verify auto-join role is still appropriate
- Check for orphaned or inactive accounts
- Coordinate with IT team on user access reviews
- Remove members who no longer need access
Configuration and testing
Recommended SSO setup workflow
- Create or verify non-SSO owner account exists
- Configure SSO provider with auto-join DISABLED
- Test SSO login with your own account
- Verify attribute mappings are correct
- Test with 2-3 additional users
- Enable auto-join if desired
- Test auto-join functionality thoroughly
- Communicate SSO availability to team
Role selection for auto-join
- Default to "Developer" role (principle of least privilege)
- Avoid "Owner" or "Administrator" for auto-join
- Promote users individually as needed
- Review and document your access control strategy
- See access control documentation for role details
Attribute mapping
- Email mapping is REQUIRED
- Use provider presets (Okta, Azure, G Suite) when available
- Document custom mappings for future reference
- Test mappings return expected user data
- Keep mappings consistent across environments
Multi-environment strategy
- Consider separate providers for dev/staging/prod
- Test configuration changes in non-production first
- Keep provider configurations synchronized
- Document differences between environments
- See Multiple SSO Providers guide for details
Operations and maintenance
Before making SSO changes
- Notify team members in advance
- Schedule during low-usage period if possible
- Have rollback plan ready
- Keep Zuvo support contact information handy
- Document what you're changing and why
After SSO configuration changes
- Test login immediately
- Verify auto-join still works (if enabled)
- Check that invitations are working
- Confirm no users are locked out
- Monitor for support requests from team
Before deleting SSO provider
- Verify at least one non-SSO owner exists (system enforces)
- Understand that all SSO members will be removed automatically
- Communicate to affected users before deletion
- Consider disabling rather than deleting if temporary
- Have plan for users to regain access if needed
Coordinating with IT/Security team
- SSO changes may affect compliance requirements
- Certificate renewals require coordination
- User access reviews should include Zuvo
- Incident response plans should consider SSO dependencies
- Document SSO configuration in your organization's runbook
Final verification checklist
Before rolling out SSO to your organization:
Authentication & Login Flows:
- IdP-initiated login works from IdP dashboard
- SP-initiated login works (if domains configured)
- Appropriate login flow chosen for your use case
- Domain configuration correct (or intentionally empty for IdP-only)
- Multiple environments route correctly (if using multiple providers)
Auto-Join Functionality:
- Auto-join adds users to correct organization (if enabled)
- Auto-joined users receive correct default role
- Auto-join works on first login (not only on signup)
- Existing users auto-join when feature enabled
- Auto-join is idempotent (no duplicate memberships)
- Auto-join works with IdP-initiated (no domains required)
- Non-matching domains excluded (if using SP-initiated)
Invitations:
- SSO-required invitations work correctly
- Non-SSO invitations work correctly
- Invitation types can be explicitly chosen
- SSO mismatch errors are clear
Safety & Access Controls:
- At least one non-SSO owner account exists
- Non-SSO owner account can log in successfully
- Non-SSO credentials stored securely
- SSO account deletion restrictions understood and tested
- Safe deletion behavior verified (if tested)
Configuration:
- Certificate expiration date documented with calendar reminders
- Team notified of SSO availability
- Login instructions provided (IdP tile and/or zuvodev.com)
- Rollback plan documented
- Support contact information available
Testing Completed:
- Tested with multiple user accounts
- Both login flows tested (if both enabled)
- Auto-join behavior verified
- SSO account restrictions confirmed
- Domain restrictions validated (if applicable)
- Multi-environment isolation verified (if using multiple providers)
Need help?
If you encounter issues not covered in this guide, contact your Zuvo support representative for assistance. When reaching out, include:
- Organization name and URL
- SSO provider type (Okta, Azure AD, Google Workspace, etc.)
- Specific error messages
- Steps you've already tried
- Whether the issue affects all users or specific individuals