Learn how to set up SAML SSO to authenticate users to Opal.
You can configure Opal to authenticate users via SAML SSO by setting up a SAML provider. Okta and Google are officially supported, but you should be able to configure other providers. Use the following guides to set up SAML SSO for Okta or Google.
By default, when you set up SAML SSO in Opal, Opal allows users to log in using either SAML SSO or Opal’s traditional sign-in options (e.g. Google, Microsoft 365).You can alternatively require that users must login to Opal via SAML. To do this:
Go to Settings > Authentication > SAML SSO Settings.
Even if you’ve restricted your organization to log in via SAML, it can still be useful to allow a subset of users to log in with other methods. In Opal, these are called SAML breakglass users. To edit this list, ensure that Restrict logins to SAML only in Settings > Authentication > SAML SSO Settings is turned ON. Then:
Click the Users button to edit the list of SAML breakglass users.
Add or remove users to the list. All users on this list will be able to login to Opal via both SAML and non-SAML methods.
Last modified on September 11, 2025
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Opal Security Docs","colors":{"primary":"#0C7997","light":"#EDFCFC","dark":"#074055"},"logo":{"light":"https://mintcdn.com/opalsecurity/FBbZyeMPZrA69UcV/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=FBbZyeMPZrA69UcV\u0026q=85\u0026s=93a4bd75f157f9f0ab43cdf4d715b5cd","dark":"https://mintcdn.com/opalsecurity/FBbZyeMPZrA69UcV/logo/logo-light.svg?fit=max\u0026auto=format\u0026n=FBbZyeMPZrA69UcV\u0026q=85\u0026s=1774b545e4f1c5cad647f5194f7b26d9"},"favicon":{"light":"https://mintcdn.com/opalsecurity/DRAwGKUXMxLRQouh/logo/icon-opal-black.svg?fit=max\u0026auto=format\u0026n=DRAwGKUXMxLRQouh\u0026q=85\u0026s=9c8bd1204b6b5b83542c2ab5be549858","dark":"https://mintcdn.com/opalsecurity/DRAwGKUXMxLRQouh/logo/icon-opal-white.svg?fit=max\u0026auto=format\u0026n=DRAwGKUXMxLRQouh\u0026q=85\u0026s=73b53b4ceab6ae0b00e30b2042a6020a"},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","latex":false},"integrations":{"ga4":{"measurementId":"G-1PPPM1WF6D"}},"errors":{"404":{"redirect":false,"title":"Page can't be found","description":"Sorry! This page might have been moved, or the link might be broken. Go back to our documentation via https://docs.opal.dev/docs/welcome."}},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"opalsecurity","hasAudioNarration":false,"actualSubdomain":"opalsecurity","customDomains":["docs.opal.dev"],"gitSource":{"type":"github","owner":"opalsecurity","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af519997e8114840722945b","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":218},{"language":"default","tag":"Opal API","count":213},{"language":"default","tag":"Documentation","count":104},{"language":"default","tag":"Integrations","count":103},{"language":"default","tag":"Entitlement Management","count":69},{"language":"default","tag":"resources","count":34},{"language":"default","tag":"groups","count":32},{"language":"default","tag":"Getting Started","count":25},{"language":"default","tag":"Access Management","count":22},{"language":"default","tag":"Infrastructure","count":22}]},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":true,"email":"support@opal.dev","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"docs/sso-with-saml","slug":"/docs/sso-with-saml","pageMetadata":{"title":"SSO with SAML","description":"Learn how to set up SAML SSO to authenticate users to Opal.","href":"/docs/sso-with-saml"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn how to set up SAML SSO to authenticate users to Opal.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`You can configure Opal to authenticate users via SAML SSO by setting up a SAML provider. Okta and Google are officially supported, but you should be able to configure other providers. Use the following guides to set up SAML SSO for Okta or Google.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/okta-saml-setup`,children:`Okta SAML Setup`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/google-saml-setup`,children:`Google SAML Setup`})}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`restrict-logins-to-saml-only`,children:`Restrict logins to SAML only`}),`\n`,_jsx(_components.p,{children:`By default, when you set up SAML SSO in Opal, Opal allows users to log in using either SAML SSO or Opal’s traditional sign-in options (e.g. Google, Microsoft 365).`}),`\n`,_jsx(_components.p,{children:`You can alternatively require that users must login to Opal via SAML. To do this:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Settings`}),` > `,_jsx(_components.strong,{children:`Authentication`}),` > `,_jsx(_components.strong,{children:`SAML SSO Settings`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Set up a SAML connection using `,_jsx(_components.a,{href:`/docs/okta-saml-setup`,children:`Okta SAML Setup`}),` or `,_jsx(_components.a,{href:`/docs/google-saml-setup`,children:`Google SAML Setup`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Toggle `,_jsx(_components.strong,{children:`Restrict logins to SAML only`}),` to `,_jsx(_components.strong,{children:`ON`}),`.`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/opalsecurity/4Xj9diJ3E3kX-9Xd/images/docs/e89bea02b85a38853f31d51b51f97896aa2cf507da447e62894761c66c10e739-restrict-logins-to-saml.png?fit=max\u0026auto=format\u0026n=4Xj9diJ3E3kX-9Xd\u0026q=85\u0026s=c0afa1d0172ccba8813f40acc95d6585`,alt:``,\"data-og-width\":`2773`,width:`2773`,\"data-og-height\":`1337`,height:`1337`,\"data-path\":`images/docs/e89bea02b85a38853f31d51b51f97896aa2cf507da447e62894761c66c10e739-restrict-logins-to-saml.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/opalsecurity/4Xj9diJ3E3kX-9Xd/images/docs/e89bea02b85a38853f31d51b51f97896aa2cf507da447e62894761c66c10e739-restrict-logins-to-saml.png?w=280\u0026fit=max\u0026auto=format\u0026n=4Xj9diJ3E3kX-9Xd\u0026q=85\u0026s=b0f0dabdfcab0ba9c203bb7c9090baf6 280w, https://mintcdn.com/opalsecurity/4Xj9diJ3E3kX-9Xd/images/docs/e89bea02b85a38853f31d51b51f97896aa2cf507da447e62894761c66c10e739-restrict-logins-to-saml.png?w=560\u0026fit=max\u0026auto=format\u0026n=4Xj9diJ3E3kX-9Xd\u0026q=85\u0026s=7f9af1a13936d7a4683a74fd782f62c4 560w, https://mintcdn.com/opalsecurity/4Xj9diJ3E3kX-9Xd/images/docs/e89bea02b85a38853f31d51b51f97896aa2cf507da447e62894761c66c10e739-restrict-logins-to-saml.png?w=840\u0026fit=max\u0026auto=format\u0026n=4Xj9diJ3E3kX-9Xd\u0026q=85\u0026s=b790c54dfeddde169225e7be228f4915 840w, https://mintcdn.com/opalsecurity/4Xj9diJ3E3kX-9Xd/images/docs/e89bea02b85a38853f31d51b51f97896aa2cf507da447e62894761c66c10e739-restrict-logins-to-saml.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4Xj9diJ3E3kX-9Xd\u0026q=85\u0026s=39d002876d2681ba3d9f66248f85a764 1100w, https://mintcdn.com/opalsecurity/4Xj9diJ3E3kX-9Xd/images/docs/e89bea02b85a38853f31d51b51f97896aa2cf507da447e62894761c66c10e739-restrict-logins-to-saml.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4Xj9diJ3E3kX-9Xd\u0026q=85\u0026s=0fbe4db1203f9af38ef79569f55ab1f8 1650w, https://mintcdn.com/opalsecurity/4Xj9diJ3E3kX-9Xd/images/docs/e89bea02b85a38853f31d51b51f97896aa2cf507da447e62894761c66c10e739-restrict-logins-to-saml.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4Xj9diJ3E3kX-9Xd\u0026q=85\u0026s=b564d44d301fa09e32ec6446d4265eae 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`saml-breakglass-users`,children:`SAML breakglass users`}),`\n`,_jsxs(_components.p,{children:[`Even if you’ve restricted your organization to log in via SAML, it can still be useful to allow a subset of users to log in with other methods. In Opal, these are called `,_jsx(_components.em,{children:`SAML breakglass users`}),`. To edit this list, ensure that `,_jsx(_components.strong,{children:`Restrict logins to SAML only`}),` in `,_jsx(_components.strong,{children:`Settings > Authentication > SAML SSO Settings`}),` is turned `,_jsx(_components.strong,{children:`ON`}),`. Then:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Click the `,_jsx(_components.strong,{children:`Users`}),` button to edit the list of SAML breakglass users.`]}),`\n`,_jsx(_components.li,{children:`Add or remove users to the list. All users on this list will be able to login to Opal via both SAML and non-SAML methods.`}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"SSO with SAML","description":"Learn how to set up SAML SSO to authenticate users to Opal.","href":"/docs/sso-with-saml"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Restrict logins to SAML only","slug":"restrict-logins-to-saml-only","depth":2,"children":[]},{"title":"SAML breakglass users","slug":"saml-breakglass-users","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/opalsecurity/d0e14c3cf9bbd682/changelog-scraper.js"],"subdomain":"opalsecurity","siteName":"Opal Security Docs","title":"SSO with SAML - Opal Security Docs","contextualStarterQuestions":[{"_id":"69b0b4910e8c1bf71a51a35c","deploymentId":"68ddaa9a3f8b7de5bc3a7b47","questionText":"How do I set up SAML SSO?","status":"active","generatedBy":"contextual","path":"docs/sso-with-saml","createdAt":"2026-03-11T00:17:21.356Z","updatedAt":"2026-03-11T00:17:21.356Z","__v":0},{"_id":"69b0b4910e8c1bf71a51a35d","deploymentId":"68ddaa9a3f8b7de5bc3a7b47","questionText":"Which providers are supported?","status":"active","generatedBy":"contextual","path":"docs/sso-with-saml","createdAt":"2026-03-11T00:17:21.356Z","updatedAt":"2026-03-11T00:17:21.356Z","__v":0},{"_id":"69b0b4910e8c1bf71a51a35e","deploymentId":"68ddaa9a3f8b7de5bc3a7b47","questionText":"How do I restrict SAML logins only?","status":"active","generatedBy":"contextual","path":"docs/sso-with-saml","createdAt":"2026-03-11T00:17:21.356Z","updatedAt":"2026-03-11T00:17:21.356Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-28T20:32:08.502Z","gitLastModified":"2025-09-11T20:38:03.000Z","originalFileLocation":"docs/sso-with-saml.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn how to set up SAML SSO to authenticate users to Opal.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Opal Security Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"SSO with SAML - Opal Security Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to set up SAML SSO to authenticate users to Opal.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Opal Security Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.opal.dev/docs/sso-with-saml\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://opalsecurity.mintlify.site/_mintlify/api/og/v2?division=SSO+with+SAML\u0026amp;title=SSO+with+SAML\u0026amp;description=Learn+how+to+set+up+SAML+SSO+to+authenticate+users+to+Opal.\u0026amp;theme=156eb1ba223f12a303f95077\u0026amp;signature=9a42d90bfe37611ed8d499a2e16a65c97be44d952b4f9122ad555b9de8e56b17\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"SSO with SAML - Opal Security Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to set up SAML SSO to authenticate users to Opal.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://opalsecurity.mintlify.site/_mintlify/api/og/v2?division=SSO+with+SAML\u0026amp;title=SSO+with+SAML\u0026amp;description=Learn+how+to+set+up+SAML+SSO+to+authenticate+users+to+Opal.\u0026amp;theme=156eb1ba223f12a303f95077\u0026amp;signature=9a42d90bfe37611ed8d499a2e16a65c97be44d952b4f9122ad555b9de8e56b17\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/opalsecurity/t501z2uOx-XXqevB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Opal Security Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0C7997\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.opal.dev/docs/sso-with-saml\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/sso-with-saml.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.opal.dev/#organization\",\"name\":\"Opal Security Docs\",\"url\":\"https://docs.opal.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/opalsecurity/FBbZyeMPZrA69UcV/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=FBbZyeMPZrA69UcV\u0026q=85\u0026s=93a4bd75f157f9f0ab43cdf4d715b5cd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.opal.dev#website\",\"name\":\"Opal Security Docs\",\"url\":\"https://docs.opal.dev\",\"publisher\":{\"@id\":\"https://docs.opal.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.opal.dev/docs/sso-with-saml#webpage\",\"url\":\"https://docs.opal.dev/docs/sso-with-saml\",\"name\":\"SSO with SAML\",\"description\":\"Learn how to set up SAML SSO to authenticate users to Opal.\",\"dateModified\":\"2025-09-11T20:38:03.000Z\",\"isPartOf\":{\"@id\":\"https://docs.opal.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.opal.dev/docs/sso-with-saml#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.opal.dev/docs/sso-with-saml#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting Started\",\"item\":\"https://docs.opal.dev/docs/set-up-cloud\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configure SSO and MFA\",\"item\":\"https://docs.opal.dev/docs/configure-sso-and-mfa\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SSO with SAML\",\"item\":\"https://docs.opal.dev/docs/sso-with-saml\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.opal.dev/docs/sso-with-saml#article\",\"headline\":\"SSO with SAML\",\"name\":\"SSO with SAML\",\"description\":\"Learn how to set up SAML SSO to authenticate users to Opal.\",\"url\":\"https://docs.opal.dev/docs/sso-with-saml\",\"mainEntityOfPage\":{\"@id\":\"https://docs.opal.dev/docs/sso-with-saml#webpage\"},\"dateModified\":\"2025-09-11T20:38:03.000Z\",\"publisher\":{\"@id\":\"https://docs.opal.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.opal.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Opal Security Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Opal Security Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/sso-with-saml.md","siteName":"Opal Security Docs","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Welcome","icon":"leaf","pages":[{"title":"Quickstart","mode":"wide","href":"/docs/welcome"},{"title":"Overview","href":"/docs/opal-overview"},{"title":"Concepts","href":"/docs/opal-101"},{"title":"Opal architecture","href":"/docs/opal-architecture"},{"group":"Best practices","pages":[{"title":"Best practices for access requests","href":"/docs/best-practices-for-access-requests"},{"title":"Best practices for access reviews","href":"/docs/best-practices-for-user-access-reviews"}]}]},{"group":"End user","icon":"book-open","pages":[{"title":"Access Request FAQs","sidebarTitle":"How to request access","href":"/docs/end-user-faq"},{"title":"Tips on searching","href":"/docs/tips-on-searching"},{"title":"Complete Access Reviews","sidebarTitle":"How to complete access reviews","href":"/docs/complete-access-reviews"}]},{"group":"Getting Started","icon":"rocket","pages":[{"title":"Set up Cloud","href":"/docs/set-up-cloud"},{"group":"Set up Self-Hosted","pages":[{"title":"Set up Self-Hosted","href":"/docs/self-host-overview"},{"title":"Self-Hosted on AWS EKS","href":"/docs/self-host-opal-aws-guide"},{"title":"Self-Hosted on GKE","href":"/docs/self-host-opal-gke-guide"},{"title":"Disaster recovery guide","href":"/docs/disaster-recovery-guide"},{"title":"Update your Opal installation","href":"/docs/update-self-hosted-opal"},{"title":"Install Opal using Helm","href":"/docs/install-opal-using-helm"},{"title":"Set up an Airgapped Opal Environment","href":"/docs/setup-an-airgapped-opal-environment"},{"title":"Configure Async Exports Storage (Self-Hosted)","href":"/docs/configure-async-exports-storage"},{"title":"Kubernetes Components and Health Monitoring","href":"/docs/kubernetes-components-and-health-monitoring-guide"}]},{"group":"Connect Identity or HR Providers","pages":[{"title":"Connect Identity or HR Providers","sidebarTitle":"Overview","href":"/docs/connect-your-identity-provider-idp"},{"title":"Add your first IDP/HR provider","href":"/docs/add-your-first-idphr-provider"},{"title":"Add additional IDP/HR providers","href":"/docs/add-additional-idphr-providers"},{"title":"Import user secondary emails","href":"/docs/importing-user-secondary-email"}]},{"title":"Connect Productivity Tools","sidebarTitle":"Connect Productivity Tools","href":"/docs/connect-your-productivity-tools"},{"group":"Connect Apps and Infrastructure","pages":[{"title":"Connect Apps and Infrastructure","sidebarTitle":"Overview","href":"/docs/set-up-connections"},{"title":"Import and configure resources","href":"/docs/import-and-configure-resources-and-groups"},{"title":"Opal's server IP ranges","href":"/docs/ip-ranges"}]},{"group":"Configure SSO and MFA","pages":[{"title":"Configure SSO and MFA","description":"Learn how to set up MFA for Opal logins and actions.","sidebarTitle":"Overview","href":"/docs/configure-sso-and-mfa"},{"group":"SSO with SAML","pages":[{"title":"SSO with SAML","href":"/docs/sso-with-saml"},{"title":"Google SAML Setup","description":"Learn how to configure Opal to authenticate users via Google SAML SSO.","href":"/docs/google-saml-setup"},{"title":"Okta SAML Setup","href":"/docs/okta-saml-setup"}]},{"title":"Okta Multifactor Authentication","href":"/docs/okta-multifactor-authentication"},{"title":"Okta SCIM: Provision Opal Users","href":"/docs/okta-scim-integration"},{"title":"OIDC Provider Setup for Opal Actions","href":"/docs/oidc-provider-setup-for-opal-actions"}]}]},{"group":"Access Management","icon":"shield","pages":[{"group":"Manage end-user catalog","pages":[{"title":"Curate end-user catalog","href":"/docs/curate-catalog"},{"title":"Bundles","href":"/docs/bundles"},{"title":"Configure reviewers","href":"/docs/configure-reviewers"},{"title":"Escalate if no response","href":"/docs/escalate-if-no-response"},{"title":"Request on behalf rules","href":"/docs/request-on-behalf"},{"title":"Delegate reviews","href":"/docs/delegate-reviews"}]},{"title":"Configuration templates","href":"/docs/configuration-templates"},{"title":"Manage access with ticketing","href":"/docs/ticket-propagation"},{"title":"Access Rules","href":"/docs/access-rules"},{"title":"Risk Center","href":"/docs/least-privilege-posture-management"},{"group":"Manage groups in Opal","pages":[{"title":"Overview","href":"/docs/manage-groups-in-opal"},{"title":"Manage break-glass access","href":"/docs/manage-breakglass-access"},{"title":"Nested groups","href":"/docs/nested-groups"},{"title":"Group aliasing","href":"/docs/okta-group-aliasing"},{"title":"Linked groups","href":"/docs/linked-groups"},{"title":"Group leaders","href":"/docs/group-projects"}]},{"title":"Notifications","href":"/docs/notifications"},{"title":"Special roles in Opal","href":"/docs/roles-in-opal"},{"title":"Owner Permissions","href":"/docs/owner-permissions"},{"title":"Custom Opal roles","href":"/docs/custom-opal-roles"},{"title":"User provisioning","href":"/docs/user-provisioning"},{"title":"Access Comparison","sidebarTitle":"Access Comparison","tag":"NEW","href":"/docs/access-comparison"}]},{"group":"AI Agent Governance","icon":"cpu","pages":[{"title":"Agent Inventory","href":"/docs/agent-inventory"},{"title":"OpenAI and ChatGPT","href":"/docs/openai-chatgpt-setup"},{"title":"Anthropic Setup","href":"/docs/anthropic-agent-setup"}]},{"group":"OpalScript","icon":"scroll","tag":"NEW","pages":[{"title":"Use OpalScript to automate access workflows","sidebarTitle":"Overview","href":"/docs/opalscript-overview"},{"title":"Work with scripts in the OpalScript editor","sidebarTitle":"Using the editor","href":"/docs/opalscript-editor"},{"title":"Write OpalScript with AI","sidebarTitle":"Write with AI","href":"/docs/opalscript-ai-assistant"},{"title":"Utility Modules for OpalScript","sidebarTitle":"Utility Modules","href":"/docs/opalscript-utilitymodules"},{"group":"Request Review Scripts","pages":[{"title":"Start automating workflows around requests","sidebarTitle":"Request Review","href":"/docs/requestreview-getstarted"},{"title":"Request Review Example Scripts","sidebarTitle":"Examples","href":"/docs/requestreview-examples"}]},{"title":"Control who can cover a request with delegation conditions","sidebarTitle":"Delegation Conditions","href":"/docs/opalscript-delegation-conditions"},{"title":"Choose a request configuration with OpalScript","sidebarTitle":"Request Configuration Conditions","href":"/docs/opalscript-request-configuration-conditions"},{"title":"Give Paladin extra context with context provider scripts","sidebarTitle":"Paladin Context","tag":"BETA","href":"/docs/opalscript-context-provider"},{"title":"Manage OpalScripts with Terraform","sidebarTitle":"Terraform","href":"/docs/opalscript-terraform"},{"title":"OpalScript Reference","sidebarTitle":"Reference","href":"/docs/opalscript-reference"}]},{"group":"Paladin","icon":"bot","tag":"NEW","pages":[{"title":"Use Paladin to scale your security function","sidebarTitle":"Overview","href":"/docs/paladin/overview"},{"title":"Review access requests with Paladin","sidebarTitle":"Access Requests","href":"/docs/paladin/access-request"},{"title":"Review access campaigns with Paladin Insights","sidebarTitle":"Access Reviews","href":"/docs/paladin/access-reviews"},{"title":"Model providers","sidebarTitle":"Model Providers","href":"/docs/paladin/model-providers"},{"group":"AI Gateways","tag":"BETA","pages":[{"title":"Connect an AI gateway","sidebarTitle":"Overview","href":"/docs/paladin/ai-gateway"},{"title":"Connect Cloudflare AI Gateway","sidebarTitle":"Cloudflare AI Gateway","href":"/docs/paladin/ai-gateway-cloudflare"},{"title":"Connect LiteLLM","sidebarTitle":"LiteLLM","href":"/docs/paladin/ai-gateway-litellm"},{"title":"Connect Bifrost","sidebarTitle":"Bifrost","href":"/docs/paladin/ai-gateway-bifrost"}]},{"title":"Set up Paladin on self-hosted Opal","sidebarTitle":"Self-Hosted Setup","href":"/docs/paladin/self-hosted-setup"}]},{"group":"OpalQuery","icon":"search","tag":"NEW","pages":[{"title":"Overview","href":"/docs/opal-query"},{"title":"Node queries","href":"/docs/opal-query-node"},{"title":"Access queries","href":"/docs/opal-query-access"},{"title":"Query API","href":"/docs/opal-query-api"}]},{"group":"Auditing and Security","icon":"user-round-search","pages":[{"group":"Access Campaigns","tag":"NEW","pages":[{"title":"Create Access Campaigns","sidebarTitle":"Create access campaigns","href":"/docs/access-campaigns"},{"title":"Manage Access Campaign","sidebarTitle":"Manage your access campaign","href":"/docs/managing-access-campaigns"},{"group":"Legacy UARs","pages":[{"title":"Create Access Reviews","tag":"LEGACY","href":"/docs/access-reviews-legacy"},{"title":"Assign and complete reviews","tag":"LEGACY","href":"/docs/assigning-and-completing-reviews-legacy"},{"title":"Manage reviews","tag":"LEGACY","href":"/docs/managing-user-access-reviews-legacy"}]}]},{"title":"Events","href":"/docs/event-types"},{"title":"Events Streaming","href":"/docs/events-streaming"},{"title":"Metrics dashboard","href":"/docs/metrics"},{"title":"Sync schedules and triggers","href":"/docs/sync-schedules-and-triggers"}]},{"group":"Custom Integrations","icon":"pencil-line","pages":[{"title":"Overview","href":"/docs/custom-integrations-overview"},{"title":"Create your own connector","href":"/docs/how-to-create-your-own-connector"},{"title":"Custom Connector API Spec","href":"/docs/api-spec"},{"title":"Webhooks","href":"/docs/webhooks"}]},{"group":"For Developers","icon":"terminal","pages":[{"title":"Opal CLI","href":"/docs/opal-cli"},{"title":"Use Terraform with Opal","href":"/docs/use-terraform-with-opal"},{"group":"Model Context Protocol (MCP) Server","tag":"NEW","pages":[{"title":"Model Context Protocol (MCP)","mode":"wide","sidebarTitle":"Overview","href":"/docs/mcp/overview"},{"title":"End User MCP Server","sidebarTitle":"End Users","href":"/docs/mcp/end-user"},{"title":"Admin Provisioning MCP Server","sidebarTitle":"Admin Provisioning","href":"/docs/mcp/admin-provisioning"},{"title":"Admin Auditing MCP Server","sidebarTitle":"Admin Auditing","href":"/docs/mcp/admin-auditing"},{"title":"Okta Cross App Access (XAA)","sidebarTitle":"Okta Cross App Access","href":"/docs/mcp/okta-cross-app-access"},{"title":"Legacy MCP","deprecated":true,"href":"/docs/mcp/gram-mcp-servers"}]}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/authentication"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/changelog"}]}]},"basePath":"","title":"SSO with SAML - Opal Security Docs","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-DTFzvaXJ.js","lightbox-handle-r17bVUz3.js"]}