What Is Single Logout?
When a user authenticates through the Maverics Orchestrator, they may authenticate with multiple Identity Fabric connectors during a single session. The Orchestrator’s session tracks which identity providers the user has authenticated with. Without Single Logout, ending a session with one identity provider leaves the others active. The Maverics session and other IdP sessions remain, which means the user is still effectively logged in and can access applications without re-authenticating. Single Logout solves this by propagating the logout signal across all authenticated identity providers via front-channel logout. When a user visits the SLO endpoint, the Orchestrator:- Checks the session for each Identity Fabric connector the user authenticated with
- For each authenticated connector, calls that connector’s logout method, which redirects the user to the IdP for front-channel logout
- Each IdP logout redirects back to the SLO handler, allowing the Orchestrator to iterate through remaining authenticated connectors
- After all IdP logouts complete, terminates the Maverics session (preventing session replay attacks)
- Runs the
postLogoutSEService Extension if configured - Redirects the user to the
postLogout.redirectURL, or displays a default “You have been logged out.” message if no redirect URL is configured
Single Logout is separate from any protocol-level logout endpoints you may configure on an Orchestrator running as a SAML or OIDC provider. Provider endpoints (such as
singleLogoutService for SAML or endSession for OIDC) handle protocol-specific logout requests from individual service providers or relying parties. The global SLO handler, by contrast, handles the user-facing logout flow across all authenticated Identity Fabric connectors.Prerequisites
- A running Maverics Orchestrator — If you have not installed the Orchestrator yet, follow the Quick Start guide or see the installation reference.
- At least one configured application — An OIDC, SAML, or proxy application registered with the Orchestrator. See the SSO with OIDC, Federate SAML Apps, or Add SSO to Web Apps guides.
- An identity provider connector — A configured upstream IdP. See the Identity Fabric reference for supported connectors.
Configure Single Logout
Configure the SLO block
Add the
singleLogout block at the top level of your Orchestrator configuration. This defines the post-logout redirect destination and optional Service Extension hook.- Console UI
- Configuration
Single Logout can be configured in the Maverics Console within a Deployment.
- Open the Maverics Console and navigate to the Deployment you want to configure.
- Scroll to the Single Logout section.
- Click Edit to open the SLO settings.
- Set the Logout URL — this is the URL that will be registered on the Orchestrator deployment and called by user interaction on an app to initiate the SLO process (e.g.,
https://auth.example.com/single-logout). - Under Post Logout, set the Redirect URL to where users should be sent after logout completes (e.g.,
https://enterprise.com/index.html). - Optionally, configure a Post Logout Service Extension by specifying the function name and file path for custom post-logout logic.
- Click Save to apply the changes.
Ensure Identity Fabric connectors support logout
Single Logout works by iterating through the Identity Fabric connectors that the user has authenticated with during their session. Each connector’s logout method is called via front-channel redirect, so the connectors must support logout.Verify that your Identity Fabric connectors are configured correctly. The Orchestrator automatically tracks which connectors the user authenticated with via the session — no additional per-connector SLO configuration is required beyond the standard connector setup.See the Identity Fabric reference for supported connectors and their logout capabilities.
If an Identity Fabric connector points to another Orchestrator deployment running as a SAML or OIDC provider, that provider deployment’s logout endpoints must be configured for the front-channel logout to propagate correctly. For example, if you have an auth provider deployment and a separate proxy app deployment, and the proxy app’s Identity Fabric connector points to the auth provider, ensure the auth provider has its SAML
singleLogoutService or OIDC endSession endpoint configured. See the SAML Provider and OIDC Provider references for details.Verify the SLO flow
With Single Logout configured, test the end-to-end flow:
- Authenticate — Log in to one of your applications through the Orchestrator. If possible, authenticate with multiple Identity Fabric connectors to test the full front-channel logout loop.
- Trigger SLO — Navigate to the Orchestrator’s Single Logout endpoint.
- Observe front-channel logout — The Orchestrator redirects through each authenticated IdP’s logout endpoint in sequence. Each IdP redirects back to the SLO handler so the next IdP can be logged out.
- Verify redirect — After all IdP logouts complete, you should be redirected to the
postLogout.redirectURL(or see a default “You have been logged out.” page if no redirect URL is configured). - Confirm session termination — Try accessing your applications. You should be prompted to re-authenticate, confirming that the Maverics session and all IdP sessions were cleared.
Dynamic Session Expiration with SLO
You can combine Single Logout with Service Extensions to dynamically expire sessions and redirect users to the SLO endpoint. This is useful for enforcing role-based session policies — for example, giving contractors shorter sessions than full-time employees. Configure dynamic session expiration using theevalMaxLifetimeSE and evalIdleTimeoutSE hooks in the session.lifetime block:
maverics.yaml
session.go
The
sloEndpoint constant in the Go code should point to the Orchestrator’s Single Logout endpoint. See Local Sessions — Dynamic Session Expiration for the complete example including idle timeout evaluation.Post-Logout Service Extension
ThepostLogoutSE hook runs custom logic after the SLO flow completes — after all Identity Fabric connector logouts and the Maverics session termination, but before the user is redirected to postLogout.redirectURL. Common use cases include audit logging, analytics, and cleanup of external resources.
maverics.yaml
logout.go
Local Development
When developing and testing SLO locally, keep these considerations in mind:- TLS requirements — Session cookies default to
Secure(HTTPS only). For local HTTP testing, setsession.cookie.disableSecure: truein your Orchestrator configuration. Do not use this setting in production. - Cookie domain — If your local applications run on different ports of
localhost, setsession.cookie.domaintolocalhostso the session cookie is shared across ports. - IdP logout — Some IdPs may not support logout redirects to
localhost. During local development, you can test the Maverics session termination without full IdP front-channel logout propagation.
maverics.yaml
Troubleshooting
User is re-authenticated after SLO
User is re-authenticated after SLO
Symptoms: After triggering Single Logout, the user is immediately logged back in when accessing an application.Causes:
- An Identity Fabric connector’s logout did not fully clear the IdP session. The upstream IdP recognizes the user’s existing session and silently re-authenticates without prompting for credentials.
- The connector does not support logout, so the SLO flow skipped it.
- Verify that your Identity Fabric connectors support logout and are configured correctly. See the Identity Fabric reference for connector-specific logout support.
- Enable debug-level logging to confirm the Orchestrator is iterating through all authenticated connectors during the SLO flow.
- Verify that each IdP’s logout endpoint redirects back to the Orchestrator so the front-channel logout loop can continue to the next connector.
SLO endpoint returns 404
SLO endpoint returns 404
Symptoms: Navigating to the Single Logout endpoint returns a 404 error.Causes:
- The
singleLogoutblock is missing from the Orchestrator configuration. - The Orchestrator has not been restarted after adding the
singleLogoutblock.
- Verify that the
singleLogoutblock exists at the top level of your configuration (not nested undersessionor any app). - Restart the Orchestrator after making configuration changes.
Front-channel logout loop does not complete
Front-channel logout loop does not complete
Symptoms: The SLO flow starts but gets stuck or only logs out of one IdP.Causes:
- An IdP’s logout endpoint does not redirect back to the Orchestrator’s SLO handler.
- A network or TLS issue prevents the redirect from reaching the Orchestrator.
- Check that each IdP is configured to redirect back to the Orchestrator after logout. The SLO handler relies on these redirects to iterate through all authenticated connectors.
- Enable debug-level logging to see which connector the flow stopped at.
- Verify TLS and network connectivity between the Orchestrator and each IdP.
Post-logout redirect does not work
Post-logout redirect does not work
Symptoms: After SLO completes, the user sees “You have been logged out.” instead of being redirected.Causes:
- The
postLogout.redirectURLis not set. The Orchestrator defaults to displaying a plain text message when no redirect URL is configured. - A
postLogoutSEis configured and writes its own response, overriding the redirect behavior.
- Set
singleLogout.postLogout.redirectURLto a valid URL. - If using a
postLogoutSE, ensure the SE does not write its own HTTP response or redirect — doing so overrides the default redirect behavior.
What’s Next
Logout Reference
Complete reference for all logout types including Single Logout configuration
Local Sessions
Session store configuration, dynamic session expiration, and session management
Service Extensions
Custom Go hooks including postLogoutSE for post-logout logic
Sessions Overview
Session types, lifecycle, and production deployment guidance