Let your team sign in to Stout through your identity provider with OIDC.
Single sign-on (SSO) lets people sign in to Stout with their account at your identity provider. Stout supports SSO through OpenID Connect (OIDC). The SSO settings page includes setup steps for Okta.
The person opens the Stout sign-in page and types the slug of your organization in Organization Slug.
The person selects Continue with SSO, and Stout sends the person to your identity provider.
The person signs in at the identity provider within 10 minutes. The identity provider sends the person back, and Stout signs them in.
The first time that a person signs in through SSO, Stout creates their account and adds them to your organization. If an account with the same email already exists, Stout adds your organization to that account.When Stout creates the account, it uses the name that your identity provider sends as the display name of the person. A display name must be unique in the organization, because box locks are held under it. If another member already uses that name, the new account starts without a display name, and the person sets one on the Account page.After that, an SSO sign-in does not change the display name. The person changes it on the Account page. At each SSO sign-in, Stout copies only the picture that your identity provider sends.
The SSO page has an Okta Setup Instructions section. Select it to show the steps. The values in that section use the addresses of your Stout install, so copy them from the page and not from these docs.The Okta steps are, in short:
In the Okta Admin Console, create an app integration with the sign-in method OIDC – OpenID Connect and the application type Web Application.
Add the Sign-in redirect URI and the Sign-out redirect URI that the Stout page shows.
Assign the users or groups that can sign in.
On the default authorization server, add an access policy with a rule for the Authorization Code grant.
To map groups to roles, add a groups claim to the ID token.
Copy the Client ID and the Client Secret of the app into the Stout form.
The sign-in redirect URI contains the ID of your organization, not the slug. Copy it exactly as the page shows it.
If Okta shows Enable immediate access with Federation Broker Mode, leave it off. When it is on, Okta blocks users, even the users that you assign to the app.
Use the issuer of the default custom authorization server, for example https://your-domain.okta.com/oauth2/default. The org authorization server cannot run the access policy and the claims from these steps. If you skip the access policy, sign-in fails with no_matching_policy after the person authenticates.
The client ID of the app at your identity provider
Client Secret
The client secret of the app. When you update the form, leave it blank to keep the stored secret.
Groups Claim
The name of the claim that lists the groups of the user, for example groups
Owner Groups
Group names, separated by commas, that get the Owner role at the first sign-in
Enable SSO
Select it to let people sign in through SSO
Then select Save Configuration. Stout encrypts the client secret and never shows it again. After the first save, the form title changes to Update OIDC Configuration.Stout asks your identity provider for the openid, email, and profile scopes. Stout reads the groups from the ID token. If the identity provider does not send an email claim, sign-in fails.If your email is not verified, the form shows Resend verification email. Select it, open the link in the email that you get, and save the form again.
After you save the form, select Test Connection at the top of the page. Stout checks that it can reach the issuer and read its OIDC discovery document.A successful test does not prove that a person can sign in. To test a full sign-in, select Enable SSO, save the form, and sign in from a private browser window.
When SSO is on, the page shows Share with your team and Your SSO login URL. The link opens the sign-in page with the slug of your organization already in Organization Slug. The person then selects Continue with SSO.
When you remove a person at your identity provider, also remove them in Team Permissions. Stout does not end a session because the identity provider removed the person.
A Stout session uses a refresh token that lasts 7 days. Each time the dashboard refreshes the session, Stout issues a new refresh token that lasts 7 days. A session also has a maximum age of 30 days from sign-in. After 30 days, the dashboard asks the person to sign in again, even if they used Stout every day. For an SSO account, that sign-in goes through your identity provider again. When you remove the person from the organization, they lose access to it at once.
An account that Stout creates at an SSO sign-in has no Stout password. That account signs in only through SSO. It cannot get a reset link from Forgot password?, it cannot change its email or password in Stout, and it cannot accept an invitation link.An account that was created from an invitation, with a password, becomes an SSO account the first time that it signs in through SSO. From then on, the same rules apply to it: it cannot get a reset link, and it cannot change its email or password in Stout.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Stout","colors":{"primary":"#D9C7B4","light":"#E7DDD2","dark":"#A68F78"},"logo":{"light":"https://mintcdn.com/stoutdatainc/zafC4a9eye1pi6A0/logo/light.svg?fit=max\u0026auto=format\u0026n=zafC4a9eye1pi6A0\u0026q=85\u0026s=93f058b8275542aa304c8349dc548c2f","dark":"https://mintcdn.com/stoutdatainc/zafC4a9eye1pi6A0/logo/dark.svg?fit=max\u0026auto=format\u0026n=zafC4a9eye1pi6A0\u0026q=85\u0026s=ff09daae9309636913fa71b5a8a5db76"},"favicon":"https://mintcdn.com/stoutdatainc/zafC4a9eye1pi6A0/favicon.svg?fit=max\u0026auto=format\u0026n=zafC4a9eye1pi6A0\u0026q=85\u0026s=7cf4a26c16205c1c8a1a9110c50451ef","navbar":{"links":[{"href":"https://app.stoutdata.ai","label":"Dashboard"},{"href":"https://docs.lagerdata.com","label":"Lager docs"}],"primary":{"type":"button","label":"Book a demo","href":"https://stoutdata.ai/#demo"}},"footer":{"socials":{"github":"https://github.com/lagerdata","linkedin":"https://www.linkedin.com/company/lagerdata"}},"contextual":{"options":["copy"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"stoutdatainc","hasAudioNarration":false,"actualSubdomain":"stoutdatainc","customDomains":["docs.stoutdata.ai"],"gitSource":{"type":"github","owner":"stoutdata","repo":"stout","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aceb904e140ed66944b1806","collectionId":"c206e1b8-5c79-49bf-8765-a0e58e8cd6e0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aceb904e140ed66944b1806"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aceb904e140ed66944b1806","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"Features","count":17},{"language":"default","tag":"Boxes","count":7},{"language":"default","tag":"Guides","count":5},{"language":"default","tag":"Organization \u0026 Settings","count":5},{"language":"default","tag":"Integrations \u0026 API","count":3},{"language":"default","tag":"Getting Started","count":3},{"language":"default","tag":"Reference","count":2},{"language":"default","tag":"Factory","count":2},{"language":"default","tag":"Integrations","count":2},{"language":"default","tag":"Workbench","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"source/integrations/sso","slug":"/source/integrations/sso","pageMetadata":{"title":"Single sign-on","description":"Let your team sign in to Stout through your identity provider with OIDC.","href":"/source/integrations/sso"},"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: \"Let your team sign in to Stout through your identity provider with OIDC.\"\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`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Single sign-on (SSO) lets people sign in to Stout with their account at your identity provider. Stout supports SSO through OpenID Connect (OIDC). The `,_jsx(_components.strong,{children:`SSO`}),` settings page includes setup steps for Okta.`]}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Before you start`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You must be an owner of the organization. An admin cannot configure SSO.`}),`\n`,_jsx(_components.li,{children:`You must verify your email in Stout. Stout does not save an SSO configuration for an unverified email.`}),`\n`,_jsx(_components.li,{children:`You need admin access to your identity provider.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-sign-in-works`,children:`How sign-in works`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`The person opens the Stout sign-in page and types the slug of your organization in `,_jsx(_components.strong,{children:`Organization Slug`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`The person selects `,_jsx(_components.strong,{children:`Continue with SSO`}),`, and Stout sends the person to your identity provider.`]}),`\n`,_jsx(_components.li,{children:`The person signs in at the identity provider within 10 minutes. The identity provider sends the person back, and Stout signs them in.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The first time that a person signs in through SSO, Stout creates their account and adds them to your organization. If an account with the same email already exists, Stout adds your organization to that account.`}),`\n`,_jsxs(_components.p,{children:[`When Stout creates the account, it uses the name that your identity provider sends as the display name of the person. A display name must be unique in the organization, because box locks are held under it. If another member already uses that name, the new account starts without a display name, and the person sets one on the `,_jsx(_components.a,{href:`/source/organizations/account`,children:`Account`}),` page.`]}),`\n`,_jsx(_components.p,{children:`After that, an SSO sign-in does not change the display name. The person changes it on the Account page. At each SSO sign-in, Stout copies only the picture that your identity provider sends.`}),`\n`,_jsx(Heading,{level:`2`,id:`roles-for-sso-users`,children:`Roles for SSO users`}),`\n`,_jsx(_components.p,{children:`When Stout adds a person at their first SSO sign-in, it gives them a role:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`If the person belongs to a group in `,_jsx(_components.strong,{children:`Owner Groups`}),`, the role is `,_jsx(_components.strong,{children:`Owner`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`If not, the role is `,_jsx(_components.strong,{children:`Member`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`SSO never gives the `,_jsx(_components.strong,{children:`Admin`}),` role. Later sign-ins do not change the role. To change a role, use `,_jsx(_components.a,{href:`/source/organizations/members-and-invitations`,children:`Team Permissions`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`set-up-sso-with-okta`,children:`Set up SSO with Okta`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`SSO`}),` page has an `,_jsx(_components.strong,{children:`Okta Setup Instructions`}),` section. Select it to show the steps. The values in that section use the addresses of your Stout install, so copy them from the page and not from these docs.`]}),`\n`,_jsx(_components.p,{children:`The Okta steps are, in short:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In the Okta Admin Console, create an app integration with the sign-in method `,_jsx(_components.strong,{children:`OIDC – OpenID Connect`}),` and the application type `,_jsx(_components.strong,{children:`Web Application`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Add the `,_jsx(_components.strong,{children:`Sign-in redirect URI`}),` and the `,_jsx(_components.strong,{children:`Sign-out redirect URI`}),` that the Stout page shows.`]}),`\n`,_jsx(_components.li,{children:`Assign the users or groups that can sign in.`}),`\n`,_jsxs(_components.li,{children:[`On the `,_jsx(_components.strong,{children:`default`}),` authorization server, add an access policy with a rule for the `,_jsx(_components.strong,{children:`Authorization Code`}),` grant.`]}),`\n`,_jsxs(_components.li,{children:[`To map groups to roles, add a `,_jsx(_components.code,{children:`groups`}),` claim to the ID token.`]}),`\n`,_jsxs(_components.li,{children:[`Copy the `,_jsx(_components.strong,{children:`Client ID`}),` and the `,_jsx(_components.strong,{children:`Client Secret`}),` of the app into the Stout form.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The sign-in redirect URI contains the ID of your organization, not the slug. Copy it exactly as the page shows it.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`If Okta shows `,_jsx(_components.strong,{children:`Enable immediate access with Federation Broker Mode`}),`, leave it off. When it is on, Okta blocks users, even the users that you assign to the app.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Use the issuer of the `,_jsx(_components.strong,{children:`default`}),` custom authorization server, for example `,_jsx(_components.code,{children:`https://your-domain.okta.com/oauth2/default`}),`. The org authorization server cannot run the access policy and the claims from these steps. If you skip the access policy, sign-in fails with `,_jsx(_components.code,{children:`no_matching_policy`}),` after the person authenticates.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`configure-stout`,children:`Configure Stout`}),`\n`,_jsxs(_components.p,{children:[`Fill in the `,_jsx(_components.strong,{children:`Configure OIDC`}),` form on the `,_jsx(_components.strong,{children:`SSO`}),` page:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`What to enter`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Issuer URL`})}),_jsx(_components.td,{children:`The issuer of your authorization server`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Client ID`})}),_jsx(_components.td,{children:`The client ID of the app at your identity provider`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Client Secret`})}),_jsx(_components.td,{children:`The client secret of the app. When you update the form, leave it blank to keep the stored secret.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Groups Claim`})}),_jsxs(_components.td,{children:[`The name of the claim that lists the groups of the user, for example `,_jsx(_components.code,{children:`groups`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Owner Groups`})}),_jsxs(_components.td,{children:[`Group names, separated by commas, that get the `,_jsx(_components.strong,{children:`Owner`}),` role at the first sign-in`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Enable SSO`})}),_jsx(_components.td,{children:`Select it to let people sign in through SSO`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Then select `,_jsx(_components.strong,{children:`Save Configuration`}),`. Stout encrypts the client secret and never shows it again. After the first save, the form title changes to `,_jsx(_components.strong,{children:`Update OIDC Configuration`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Stout asks your identity provider for the `,_jsx(_components.code,{children:`openid`}),`, `,_jsx(_components.code,{children:`email`}),`, and `,_jsx(_components.code,{children:`profile`}),` scopes. Stout reads the groups from the ID token. If the identity provider does not send an `,_jsx(_components.code,{children:`email`}),` claim, sign-in fails.`]}),`\n`,_jsxs(_components.p,{children:[`If your email is not verified, the form shows `,_jsx(_components.strong,{children:`Resend verification email`}),`. Select it, open the link in the email that you get, and save the form again.`]}),`\n`,_jsx(Heading,{level:`2`,id:`test-the-connection`,children:`Test the connection`}),`\n`,_jsxs(_components.p,{children:[`After you save the form, select `,_jsx(_components.strong,{children:`Test Connection`}),` at the top of the page. Stout checks that it can reach the issuer and read its OIDC discovery document.`]}),`\n`,_jsxs(_components.p,{children:[`A successful test does not prove that a person can sign in. To test a full sign-in, select `,_jsx(_components.strong,{children:`Enable SSO`}),`, save the form, and sign in from a private browser window.`]}),`\n`,_jsx(Heading,{level:`2`,id:`share-the-sign-in-link`,children:`Share the sign-in link`}),`\n`,_jsxs(_components.p,{children:[`When SSO is on, the page shows `,_jsx(_components.strong,{children:`Share with your team`}),` and `,_jsx(_components.strong,{children:`Your SSO login URL`}),`. The link opens the sign-in page with the slug of your organization already in `,_jsx(_components.strong,{children:`Organization Slug`}),`. The person then selects `,_jsx(_components.strong,{children:`Continue with SSO`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`remove-a-person`,children:`Remove a person`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`When you remove a person at your identity provider, also remove them in `,_jsx(_components.a,{href:`/source/organizations/members-and-invitations`,children:`Team Permissions`}),`. Stout does not end a session because the identity provider removed the person.`]})}),`\n`,_jsx(_components.p,{children:`A Stout session uses a refresh token that lasts 7 days. Each time the dashboard refreshes the session, Stout issues a new refresh token that lasts 7 days. A session also has a maximum age of 30 days from sign-in. After 30 days, the dashboard asks the person to sign in again, even if they used Stout every day. For an SSO account, that sign-in goes through your identity provider again. When you remove the person from the organization, they lose access to it at once.`}),`\n`,_jsx(Heading,{level:`2`,id:`accounts-that-use-sso`,children:`Accounts that use SSO`}),`\n`,_jsxs(_components.p,{children:[`An account that Stout creates at an SSO sign-in has no Stout password. That account signs in only through SSO. It cannot get a reset link from `,_jsx(_components.strong,{children:`Forgot password?`}),`, it cannot change its email or password in Stout, and it cannot accept an invitation link.`]}),`\n`,_jsx(_components.p,{children:`An account that was created from an invitation, with a password, becomes an SSO account the first time that it signs in through SSO. From then on, the same rules apply to it: it cannot get a reset link, and it cannot change its email or password in Stout.`})]})}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":"Single sign-on","description":"Let your team sign in to Stout through your identity provider with OIDC.","href":"/source/integrations/sso"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Before you start","slug":"before-you-start","depth":2,"children":[]},{"title":"How sign-in works","slug":"how-sign-in-works","depth":2,"children":[]},{"title":"Roles for SSO users","slug":"roles-for-sso-users","depth":2,"children":[]},{"title":"Set up SSO with Okta","slug":"set-up-sso-with-okta","depth":2,"children":[]},{"title":"Configure Stout","slug":"configure-stout","depth":2,"children":[]},{"title":"Test the connection","slug":"test-the-connection","depth":2,"children":[]},{"title":"Share the sign-in link","slug":"share-the-sign-in-link","depth":2,"children":[]},{"title":"Remove a person","slug":"remove-a-person","depth":2,"children":[]},{"title":"Accounts that use SSO","slug":"accounts-that-use-sso","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"stoutdatainc","siteName":"Stout","title":"Single sign-on - Stout","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-23T20:52:13.490Z","originalFileLocation":"source/integrations/sso.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=\"Let your team sign in to Stout through your identity provider with OIDC.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Stout\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/stoutdatainc/HUStuOu0SwL-J6MF/_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/stoutdatainc/HUStuOu0SwL-J6MF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/stoutdatainc/HUStuOu0SwL-J6MF/_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/stoutdatainc/HUStuOu0SwL-J6MF/_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/stoutdatainc/HUStuOu0SwL-J6MF/_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/stoutdatainc/HUStuOu0SwL-J6MF/_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/stoutdatainc/HUStuOu0SwL-J6MF/_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/stoutdatainc/HUStuOu0SwL-J6MF/_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/stoutdatainc/HUStuOu0SwL-J6MF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Single sign-on - Stout\">\u003cmeta data-mint-head property=\"og:description\" content=\"Let your team sign in to Stout through your identity provider with OIDC.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Stout\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.stoutdata.ai/source/integrations/sso\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://stoutdatainc.mintlify.app/_mintlify/api/og/v2?division=Integrations\u0026amp;title=Single+sign-on\u0026amp;description=Let+your+team+sign+in+to+Stout+through+your+identity+provider+with+OIDC.\u0026amp;theme=4a5d48d2b7c0cf231c82b63f\u0026amp;signature=6209bf625e0b7fd33de076341b83510f0fa1088cb4cdba7fd33fce0659a536ce\">\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=\"Single sign-on - Stout\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Let your team sign in to Stout through your identity provider with OIDC.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://stoutdatainc.mintlify.app/_mintlify/api/og/v2?division=Integrations\u0026amp;title=Single+sign-on\u0026amp;description=Let+your+team+sign+in+to+Stout+through+your+identity+provider+with+OIDC.\u0026amp;theme=4a5d48d2b7c0cf231c82b63f\u0026amp;signature=6209bf625e0b7fd33de076341b83510f0fa1088cb4cdba7fd33fce0659a536ce\">\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/stoutdatainc/HUStuOu0SwL-J6MF/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Stout\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#D9C7B4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.stoutdata.ai/source/integrations/sso\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/source/integrations/sso.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.stoutdata.ai/#organization\",\"name\":\"Stout\",\"url\":\"https://docs.stoutdata.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/stoutdatainc/zafC4a9eye1pi6A0/logo/light.svg?fit=max\u0026auto=format\u0026n=zafC4a9eye1pi6A0\u0026q=85\u0026s=93f058b8275542aa304c8349dc548c2f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.stoutdata.ai#website\",\"name\":\"Stout\",\"url\":\"https://docs.stoutdata.ai\",\"publisher\":{\"@id\":\"https://docs.stoutdata.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.stoutdata.ai/source/integrations/sso#webpage\",\"url\":\"https://docs.stoutdata.ai/source/integrations/sso\",\"name\":\"Single sign-on\",\"description\":\"Let your team sign in to Stout through your identity provider with OIDC.\",\"dateModified\":\"2026-09-23T20:52:13.490Z\",\"isPartOf\":{\"@id\":\"https://docs.stoutdata.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.stoutdata.ai/source/integrations/sso#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.stoutdata.ai/source/integrations/sso#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://docs.stoutdata.ai/source/integrations/github\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Single sign-on\",\"item\":\"https://docs.stoutdata.ai/source/integrations/sso\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.stoutdata.ai/source/integrations/sso#article\",\"headline\":\"Single sign-on\",\"name\":\"Single sign-on\",\"description\":\"Let your team sign in to Stout through your identity provider with OIDC.\",\"url\":\"https://docs.stoutdata.ai/source/integrations/sso\",\"mainEntityOfPage\":{\"@id\":\"https://docs.stoutdata.ai/source/integrations/sso#webpage\"},\"dateModified\":\"2026-09-23T20:52:13.490Z\",\"publisher\":{\"@id\":\"https://docs.stoutdata.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.stoutdata.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Stout\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Stout","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/source/getting-started/what-is-stout"}]},{"tab":"Features","pages":[{"title":"Features","href":"/source/boxes/overview"}]},{"tab":"Integrations \u0026 API","groups":[{"group":"Integrations","pages":[{"title":"GitHub","description":"Connect the Stout GitHub App so that Workbench can list and run the Lager tests in your repository.","href":"/source/integrations/github"},{"title":"Single sign-on","href":"/source/integrations/sso"}]},{"group":"API","pages":[{"title":"HTTP API","description":"Authenticate with the Stout HTTP API, and learn its rate limits and its error format.","href":"/source/api/overview"}]}]}]},"title":"Single sign-on - Stout","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":[],"chunks":[]}