[EPIC] Central Enterprise Authentication System for Multi-Tenant SaaS
@spbolton is already working on this.
Since Feb 5, 2026.
- Dominant language
- Java
- Stars
- 970
- Forks
- 486
- Avg merge
- 3d 33m
- Merged PRs (30d)
- 170
Description
Description
Problem:
dotCMS currently lacks a centralized enterprise authentication/authorization system that can handle multi-tenant authentication and intelligently route users to their appropriate instances. This creates friction in the user experience and limits our ability to operate as a true SaaS platform.
Current Pain Points:
- No unified authentication entry point across multiple customer instances
- Manual instance routing required for users
- Complex federation setup for each customer
- Difficulty in supporting enterprise identity providers (IDPs) at scale
Proposed Solution:
Implement a central authentication hub similar to how Slack, HubSpot, or Vanta handle authentication:
- User enters their company domain/email
- System delegates authentication to the customer's configured IDP (via OIDC/SAML)
- After successful authentication, system handles authorization and routes user to appropriate dotCMS instance(s)
- Support for both cloud-hosted and self-hosted authentication solutions
Candidate Solutions:
- Authentik (https://goauthentik.io) - Open-source, free version available, supports OIDC/SAML
- Clerk (https://clerk.com) - Modern auth platform, can be self-hosted, supports OIDC
- Integration with existing Auth0 federation capabilities
Desired Outcome
Success Metrics:
-
User Experience:
- Single sign-on URL for all dotCMS instances (e.g., login.dotcms.com)
- Users automatically routed to correct instance(s) after authentication
- Seamless authentication via company's existing IDP (Okta, Azure AD, Google Workspace, etc.)
-
Operational Efficiency:
- Reduce customer onboarding time for authentication setup
- Centralized management of customer authentication configurations
- Simplified troubleshooting of authentication issues
-
Platform Maturity:
- Support multi-tenant architecture patterns
- Enable enterprise-grade authentication features (MFA, conditional access, audit logs)
- Foundation for future SaaS capabilities (billing, instance management, etc.)
-
Adoption:
- 90% of new enterprise customers using centralized auth within 6 months of GA
- Reduced support tickets related to authentication/access issues
- Customer satisfaction scores improve for authentication experience
Target Personas
- ✅ DevOps teams (simplified deployment and authentication configuration)
- ✅ System administrators (dotCMS) (centralized auth management)
- ✅ Developer teams (API authentication, SSO integration)
- Content teams (indirect benefit through improved login experience)
Links
- Slack discussion: Internal thread from Jan 26, 2025
- Authentik: https://goauthentik.io
- Clerk: https://clerk.com
- Reference architectures: Slack, HubSpot, Vanta authentication flows
Technical Considerations
Key Requirements:
- OIDC/SAML 2.0 support
- Domain-based tenant detection
- IDP federation management
- User-to-instance routing logic
- Session management across instances
- Audit logging and compliance
- Self-hosted and cloud deployment options
- Auth0 integration/migration path
Architecture Components:
- Central authentication service
- Tenant/domain registry
- IDP configuration management
- User routing and authorization service
- Session management
- Admin portal for configuration
Next Steps
- Spike: Evaluate Authentik vs Clerk vs custom Auth0 solution
- Technical Design: Architecture for central auth + instance routing
- POC: Prototype with 2-3 test instances
- Security Review: Ensure compliance with SOC2, GDPR requirements
- Migration Plan: Strategy for existing customers
Strategic Impact: This is identified as a critical first step toward operating as a true SaaS company, enabling better customer experience, operational efficiency, and future platform capabilities.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.