@@ -174,6 +174,10 @@
174174## Cron schedule of the job that cleans expired Duo contexts from the database. Does nothing if Duo MFA is disabled or set to use the legacy iframe prompt.
175175## Defaults to every minute. Set blank to disable this job.
176176# DUO_CONTEXT_PURGE_SCHEDULE="30 * * * * *"
177+#
178+## Cron schedule of the job that cleans sso nonce from incomplete flow
179+## Defaults to daily (20 minutes after midnight). Set blank to disable this job.
180+# PURGE_INCOMPLETE_SSO_NONCE="0 20 0 * * *"
177181178182########################
179183### General settings ###
@@ -459,6 +463,55 @@
459463## Setting this to true will enforce the Single Org Policy to be enabled before you can enable the Reset Password policy.
460464# ENFORCE_SINGLE_ORG_WITH_RESET_PW_POLICY=false
461465466+#####################################
467+### SSO settings (OpenID Connect) ###
468+#####################################
469+470+## Controls whether users can login using an OpenID Connect identity provider
471+# SSO_ENABLED=false
472+473+## Prevent users from logging in directly without going through SSO
474+# SSO_ONLY=false
475+476+## On SSO Signup if a user with a matching email already exists make the association
477+# SSO_SIGNUPS_MATCH_EMAIL=true
478+479+## Allow unknown email verification status. Allowing this with `SSO_SIGNUPS_MATCH_EMAIL=true` open potential account takeover.
480+# SSO_ALLOW_UNKNOWN_EMAIL_VERIFICATION=false
481+482+## Base URL of the OIDC server (auto-discovery is used)
483+## - Should not include the `/.well-known/openid-configuration` part and no trailing `/`
484+## - ${SSO_AUTHORITY}/.well-known/openid-configuration should return a json document: https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse
485+# SSO_AUTHORITY=https://auth.example.com
486+487+## Authorization request scopes. Optional SSO scopes, override if email and profile are not enough (`openid` is implicit).
488+#SSO_SCOPES="email profile"
489+490+## Additional authorization url parameters (ex: to obtain a `refresh_token` with Google Auth).
491+# SSO_AUTHORIZE_EXTRA_PARAMS="access_type=offline&prompt=consent"
492+493+## Activate PKCE for the Auth Code flow.
494+# SSO_PKCE=true
495+496+## Regex for additional trusted Id token audience (by default only the client_id is trusted).
497+# SSO_AUDIENCE_TRUSTED='^$'
498+499+## Set your Client ID and Client Key
500+# SSO_CLIENT_ID=11111
501+# SSO_CLIENT_SECRET=AAAAAAAAAAAAAAAAAAAAAAAA
502+503+## Optional Master password policy (minComplexity=[0-4]), `enforceOnLogin` is not supported at the moment.
504+# SSO_MASTER_PASSWORD_POLICY='{"enforceOnLogin":false,"minComplexity":3,"minLength":12,"requireLower":false,"requireNumbers":false,"requireSpecial":false,"requireUpper":false}'
505+506+## Use sso only for authentication not the session lifecycle
507+# SSO_AUTH_ONLY_NOT_SESSION=false
508+509+## Client cache for discovery endpoint. Duration in seconds (0 to disable).
510+# SSO_CLIENT_CACHE_EXPIRATION=0
511+512+## Log all the tokens, LOG_LEVEL=debug is required
513+# SSO_DEBUG_TOKENS=false
514+462515########################
463516### MFA/2FA settings ###
464517########################