Osano supports SP-initiated SSO only across both SAML 2.0 and OIDC.
For SAML, Osano supports standard SP-initiated SAML 2.0 flows with a persistent NameID, but do not support IdP-initiated logins.
For OIDC, Osano supports the Authorization Code Flow only, requiring a stable sub identifier, and do not support implicit, hybrid, or IdP-initiated flows.
Osano supports Single Sign-On (SSO) using SAML 2.0 via Amazon Cognito. This document outlines what we support, what we don’t support, and what is required from your Identity Provider (IdP) to successfully configure SSO.
Osano supports Service Provider (SP)-initiated SSO, where:
The user starts at Osano (or an Osano login page)
Osano redirects the user to your Identity Provider (IdP)
The IdP authenticates the user
The IdP sends a SAML response back to Osano (via Amazon Cognito)
The user is logged into Osano
This is the only supported authentication flow.
Your IdP must send SAML assertions via HTTP POST to the Osano SSO endpoint
Osano (via Amazon Cognito) directly processes the SAML assertion
ACS (Assertion Consumer Service) URL:
https://<your-domain>/saml2/idpresponse
Your IdP must provide:
NameID (persistent identifier)
Must be stable and not change over time
AudienceRestriction
Must match the Osano/Cognito SP Entity ID
Required attributes (e.g., email)
Must be mapped correctly in your IdP
IdP must provide a valid signing certificate
Assertions must be signed
Optional: encrypted assertions (if configured)
To ensure security and consistency, Osano intentionally does not support the following:
Users cannot start login from the IdP dashboard (e.g., Okta tile, Azure portal)
Osano must initiate the authentication flow
Why:
Prevents unsolicited SAML responses
Reduces risk of spoofing and CSRF attacks
Ensures proper session validation
Only standard SP-initiated POST binding to /saml2/idpresponse is supported
Custom or non-standard bindings are not supported
Reusing or replaying SAML assertions will fail authentication
If your NameID changes, Osano will treat the user as a new account
Persistent identifiers are required
Unsupported characters (e.g., certain 4-byte UTF-8 characters) must be encoded
Failure to do so may cause authentication errors
To configure SSO with Osano, your team will need to provide:
One of the following:
Metadata URL (must use HTTPS on port 443), or
Metadata XML file
Must be valid and not expired
Multiple certificates supported (for rotation)
At minimum:
Email (required)
NameID (persistent unique identifier)
Your IdP must be configured to:
Support SAML 2.0
Use SP-initiated login only
Send assertions via HTTP POST
Target the correct ACS URL
Include required claims
Osano supports Single Sign-On (SSO) using OpenID Connect (OIDC) via Amazon Cognito. This document outlines what we support, what we don’t support, and what is required to configure OIDC SSO.
Osano supports OIDC using the Authorization Code Flow.
Flow:
User starts authentication from Osano
Osano redirects the user to your Identity Provider (IdP)
The IdP authenticates the user
The IdP redirects back to Osano with an authorization code
Osano exchanges the code for tokens (ID + Access)
User is logged in
This is the only supported OIDC flow.
Authentication must start from Osano
Osano controls the session and request lifecycle
Your IdP will return:
ID Token (JWT) → used for authentication
Access Token (JWT) → used for authorization (if applicable)
Osano validates and processes these tokens automatically.
Your IdP must provide:
sub (subject) → unique, stable user identifier
email → required for user mapping
Optional: name, given_name, family_name
Tokens must be signed using your IdP’s keys
Osano validates tokens using your JWKS endpoint
Osano does not support implicit flow (response_type=token)
Only Authorization Code Flow is supported
Users cannot initiate login directly from the IdP
(e.g., launching from Okta dashboard without redirect from Osano)
All authentication must begin from Osano.
No support for hybrid flows (code + token)
No custom token exchange mechanisms
If the sub claim changes, the user will be treated as a new account
Must be persistent and stable
To configure OIDC SSO with Osano:
Issuer URL
Authorization Endpoint
Token Endpoint
JWKS URI
Client ID
Client Secret (if applicable)
Osano will provide a redirect URI such as:
https://<your-domain>/oauth2/idpresponse
This must be allowlisted in your IdP.
At minimum:
openid email
Ensure:
sub → unique user identifier
email → required for user account mapping