Platform SSO vs Organization SSO
Prisme.ai exposes two levels of SSO configuration, with the same OIDC / SAML config format in both cases — only the place where you declare it changes:| Level | Where it’s configured | Who sees it | Auto-org membership |
|---|---|---|---|
| Platform SSO (this page) | Kubernetes — authProviders.config.yml mounted into prismeai-api-gateway | Every user at login (the SSO button is shown on the global sign-in page) | No — users authenticate but are not automatically added to any organization |
| Organization SSO | Directly on the platform, via the AI Governance product — see AI Governance — Identity & Access | Users whose email matches an organization-specific pattern are redirected to that SSO | Yes — users are automatically added to the matching organization on first login |
attributesMapping, etc.) shown below applies identically to organization SSO — you’ll just paste it into the Governance UI instead of mounting a ConfigMap.
Authentication Overview
Integrating your identity provider with Prisme.ai offers several benefits:Centralized Identity Management
Manage access through your existing identity provider
Enhanced Security
Enforce your organization’s security policies and MFA requirements
Simplified User Experience
Provide one-click access without separate credentials
Automated Provisioning
Streamline user onboarding and offboarding
Supported Authentication Methods
Prisme.ai supports the following authentication protocols:- OIDC
- SAML
OpenID Connect is a modern authentication protocol built on top of OAuth 2.0.Compatible with:
- Google Workspace
- Okta
- Auth0
- Keycloak
- Any standards-compliant OIDC provider
Configuring OIDC Authentication
Register an Application
Create an OAuth 2.0 client in your OIDC provider.Key configuration:
- Register a Web OAuth2 client/app
- Configure the authorized redirect URI:
- Request the following scopes (minimum):
- Add
profilescope if you need first name and last name
- Client ID
- Client Secret
- Auth URL (authorization_endpoint)
- Token URL (token_endpoint)
- Certificate URL (jwks_uri)
The JWKS URI might not be shown with client details as it is generally global to the IdP or tenant. This URL can return either a standard JWKS or an object mapping
kids to PEM certificate strings.Currently, only the RS256 algorithm is supported.Configuring SAML Authentication
Register Service Provider
Register Prisme.ai as a Service Provider (SP) in your Identity Provider.Key configuration:
- Configure the ACS Endpoint:
- Set the SP EntityID : must match the
audienceconfigured below - Set Name ID format to
unspecified(all formats are supported)
Create Configuration File
Create an If no XML file is available, you can configure individual parameters:See node-saml documentation for complete configuration options.
authProviders.config.yml file with your SAML provider details.Mount Configuration File
Whether you configured an OIDC or SAML provider, you can now mount the configuration file inside theprismeai-api-gateway container at /www/services/api-gateway/authProviders.config.yml.You can customize the file location with the
AUTH_PROVIDERS_CONFIG environment variable.
For Kubernetes, store the configuration file in a configmap :
- OIDC (Google example)
- SAML
Starting from v27.2.8, the providers config file supports environment variable interpolation through the Then expose the corresponding env vars on the
${SOME_ENV_VAR} syntax. Any ${VAR} placeholder is resolved against the prismeai-api-gateway container environment at startup.This is typically used to keep sensitive values (e.g. OIDC client_id / client_secret) out of the ConfigMap and inject them from Kubernetes secrets — including secrets synced from an external key vault (Azure Key Vault, AWS Secrets Manager, HashiCorp Vault, …) — while leaving the rest of the YAML static:prismeai-api-gateway deployment (e.g. via envFrom / secretKeyRef pointing at your key vault-backed secrets).volume and volumeMount to prismeai-api-gateway deployment :
Enable the Provider in UI
Sign-in buttons are rendered automatically by the frontend based on the SSO providers configured at the infrastructure level and in AI Governance. There is nothing to configure on the UI side : any provider declared in your config file will appear on the sign-in page using thelabel and icon defined there.
Disable local sign-in and sign-up
You can restrict local authentication using the following environment variables onprismeai-api-gateway :
DISABLE_LOCAL_SIGNINdisables the local username/password sign-in API. Only SSO providers remain available to log in.DISABLE_LOCAL_SIGNUPdisables the local sign-up API. Existing local users can still sign in (unlessDISABLE_LOCAL_SIGNINis also set), but no new local account can be created.
Multi-Factor Authentication (MFA)
Prisme.ai enforces TOTP (Time-based One-Time Password, RFC 6238) multi-factor authentication for local (password) accounts. This is the standard “authenticator app” method — users scan a QR code with Google Authenticator, Microsoft Authenticator, Authy, 1Password, etc., then enter a 6-digit code.MFA applies only to local accounts. SSO accounts are exempt — their identity provider already enforces its own second factor. Anonymous sessions are also exempt.
Enabling / disabling
MFA for local accounts is controlled by a single environment variable onprismeai-api-gateway:
true(default) — every local account must complete TOTP. Set it tofalseto disable platform-enforced MFA.
User experience
The factor is requested after a valid password sign-in, before the app loads:- First sign-in (enrollment) — the user confirms their password, scans the displayed QR code (or enters the secret key manually) with their authenticator app, then enters the generated 6-digit code.
- Subsequent sign-ins (challenge) — the user enters the current 6-digit code from their authenticator app.
Existing local users are migrated lazily. When you enable
MFA_FORCE_LOCAL, current users are not locked out and no database migration is required — each user simply enrolls an authenticator on their next sign-in.SSO + local on the same deployment
The local/SSO distinction is based on whether the account has a local password:- A pure SSO user (created via an identity provider, no local password) is never prompted for TOTP.
- A local user (password) must complete TOTP.
Custom Attribute Mapping
All authentication methods support mapping identity provider attributes to Prisme.ai user properties:Attribute Mapping Configuration
Attribute Mapping Configuration
The Only Common SAML Mappings:You can inspect available attributes by examining
attributesMapping section in your provider configuration maps provider-specific attributes to standard Prisme.ai fields.firstName, lastName, and email are supported as native fields.Common OIDC Mappings:gateway.login.succeeded events or by reading the {{user}} variable from a test automation.Troubleshooting
Common Issues and Solutions
Common Issues and Solutions
1. Redirect URI MismatchSymptom: Error message about redirect URI not matching during authenticationSolution:
- Ensure the redirect URI in your IdP exactly matches
https://API_URL/v2/login/callbackfor OIDC/SAML orhttps://API_URL/v2/login/azure/callbackfor Microsoft - Check for trailing slashes or HTTP vs HTTPS mismatches
- Verify the
jwks_uriendpoint is accessible from the Prisme.ai server - Check for correct formatting of the JWKS endpoint URL
- Ensure the signing algorithm is RS256
- Confirm the IdP certificate in the configuration is correct and not expired
- Verify the IdP is sending responses via HTTP-POST binding
- Check that the
issuervalue matches the EntityID expected by the IdP - Try adding
skipRequestCompression: trueandwantAuthnResponseSigned: falseSAML options
- Check that the
attributesMappingconfiguration matches the actual attribute names provided by your IdP - For OIDC, ensure the
profilescope is requested if you need name attributes - Examine the authentication events to see what claims are actually being received
Diagnostic Tools
Diagnostic Tools
Event LogsAuthentication issues can be diagnosed by examining events in the Activity view:
- Look for
gateway.login.startedevents to see authentication attempts - Check
gateway.login.succeededevents to examine the received user claims - Investigate
gateway.login.failedevents for error details
- Creating a test user in your IdP
- Attempting authentication with detailed logs enabled
- Examining the request/response data in the Activity logs
invalid_request: Malformed authentication requestunauthorized_client: The client is not authorized for the requested authentication flowaccess_denied: The resource owner denied the requestinvalid_token: JWT validation failedinvalid_grant: The provided authorization grant is invalid
Security Considerations
Token Validation
- Always validate JWT signatures using the IdP’s public keys
- Verify token expiration and issuance times
- Confirm the audience and issuer claims match your application
Secure Storage
- Store client secrets securely using environment variables or secrets management
- Never hardcode secrets in configuration files or source code
- Rotate secrets periodically according to your security policy
TLS Encryption
- Ensure all authentication traffic uses HTTPS
- Configure proper TLS versions and cipher suites
- Validate certificates in production environments
Access Controls
- Implement proper RBAC after authentication
- Don’t assume authenticated users should have access to all resources
- Regularly audit user access and permissions