Connect Okta to Oleria for single sign-on and user provisioning, covering both the Main Workspace and the Governance App.
This page walks through connecting Okta to Oleria from a blank slate: creating the Okta app, wiring up single sign-on (SSO), and turning on directory provisioning (SCIM), for whichever combination of Main Workspace and Governance App you need. It draws on SSO configuration, SCIM user provisioning, and Governance App SCIM provisioning - see those pages for the full request/response reference and troubleshooting detail; this page focuses on getting from zero to a working Okta connection.
This page is about signing in to Oleria and provisioning Oleria accounts from Okta. It is not the same as the Okta integration under Integrations, which connects Okta as a data source so Oleria can analyze your Okta tenant’s identities and access. That integration does not affect who can sign in to Oleria or how.
Oleria has two independent surfaces, each with its own sign-in and provisioning configuration:
Main Workspace - where administrators, operators, and analysts run Oleria itself: posture, access graph, workflows, and settings.
Governance App - a separate portal where reviewers and approvers complete access reviews, act on access requests, and work governance queues. Governance app users are a distinct population from workspace users, typically much larger (anyone in the org who might approve or review something), and usually don’t need any other access to Oleria.
Each surface has its own tab in Settings → SSO Configuration and its own tab in Settings → SCIM Configuration, with separate identity provider lists, separate SCIM credentials, and separate SCIM base URLs. You can connect Okta to one, the other, or both - they don’t have to match. For example, it’s common to enable SSO and SCIM for the Governance App (so every employee can be provisioned as a reviewer automatically) while managing the smaller set of Main Workspace administrators by hand.
Oleria has three related but independent mechanisms. SSO is for authentication only, where as SCIM and automatic user provisioning are for provisioning.
SSO
SCIM
Automatic user provisioning
Solves
Authentication - how a user proves who they are when signing in
Provisioning - how an Oleria account gets created, updated, and removed
An Oleria setting that creates an account the moment someone signs in and doesn’t already have one
Direction
Okta redirects the user’s browser to Oleria with a signed SAML assertion at sign-in time
Okta’s provisioning engine calls Oleria’s SCIM API directly, independent of anyone signing in
Triggered as a side effect of a successful SAML or social sign-in; nothing is pushed from Okta
Configured where
Settings → SSO Configuration, either tab
Settings → SCIM Configuration, either tab
Settings → SSO Configuration, Governance App tab only
Can deactivate/remove users
No
Yes
No - it only ever creates accounts
Without it
Users sign in with a social login or in rare cases a local account
An administrator adds, updates, and removes users by hand
Because these mechanisms are independent, and each applies per workspace, several combinations are all valid. Pick the one that matches what you’re trying to achieve before you start:
Flow
Main Workspace
Governance App
When to use it
SSO + SCIM (recommended)
Okta SAML + SCIM
Okta SAML + SCIM
Full end-to-end: Okta group membership determines who has an Oleria account and what role they hold, and the same Okta credentials sign them in, including automatic deactivation when someone is unassigned. This is what the rest of this page sets up.
SSO only
Okta SAML
Okta SAML
Small, stable user list you’re comfortable adding by hand in Manage Users, but want Okta credentials for sign-in. Apply to either tab independently, or both.
SCIM only
Okta SCIM
Okta SCIM
Users should come from Okta automatically, but you’re not ready to move sign-in off social login yet. Apply to either workspace independently, or both.
SSO + automatic user provisioning
N/A - Governance App only
Okta SAML + Oleria’s automatic user provisioning toggle
Lighter-weight than SCIM - no provisioning connector to build in Okta, accounts just appear the first time someone signs in - but there’s no automatic deprovisioning, and it’s gated only by email domain, not Okta group/app assignment. Good for “let anyone at the company become a reviewer” without building a directory sync.
Split by surface
Manual, or a different IdP
Okta SAML + SCIM
Common when only the Governance App needs to reach a broad, automatically-provisioned population (for example, every employee as a potential reviewer), while a small workspace admin team is managed separately
This page sets up the recommended SSO + SCIM flow, one workspace at a time. If you’d rather use automatic user provisioning instead of SCIM for the Governance App, see the note at the end of Part 2.
Okta super admin access - Okta’s own guidance for enabling SCIM on a custom app is to sign in as a super admin, and lesser admin roles may not see the setting.
Decide which workspaces - Main Workspace, Governance App, or both - you’re connecting Okta to, and whether you want SSO, SCIM, or both for each. See Possible provisioning flows above.
For SCIM only: your Okta org must have Okta Lifecycle Management (LCM) entitlements. LCM is a separate Okta product from SSO, and without it the Provisioning setting never appears on the app. Check this before you start - it’s the most common reason this setup can’t be completed. See Okta Lifecycle Management is required for SCIM below. SSO (Part 1) does not require LCM.
For SCIM into the Main Workspace: know which Oleria roles (admin, operator, analyst, governance-operator, identity-lifecycle-operator) your Okta groups should map to. See How Oleria maps roles and groups.
In Oleria, go to Settings → SSO Configuration, select the Main Workspace or Governance App tab depending on which application you’re connecting first, and click Add IdP in the SAML IdP card.
2
Create the Okta app
In the Okta Admin Console, go to Applications → Applications → Create App Integration, select Classic experience since Integration Wizard is not supported at this time. Select SAML 2.0, and name it something that identifies which Oleria workspace it’s for (for example Oleria - Main Workspace or Oleria - Governance App) - this matters once you’ve done this twice for both workspaces.
3
Copy Oleria's SP details into Okta
On Oleria’s Oleria details step, copy the Entity ID and ACS URL. On Okta’s Configure SAML step, enter them as the Audience URI (SP Entity ID) and Single sign-on URL. Copy or download the Request signing certificate shown on Oleria’s Oleria details step - you’ll need it later in this Part if you turn on Sign requests.
4
Configure the NameID
Still on Configure SAML, set Name ID format to Persistent and Application username to Email - Oleria’s service provider requires a persistent NameID policy and rejects sign-in otherwise.
5
Add the required attribute statements
This step is on a different page than the previous one for most Okta orgs today. On Okta Identity Engine (OIE) orgs - the default for new orgs - Attribute Statements aren’t part of the Configure SAML page at all; add them afterward on the app’s Sign On tab, under Attribute Statements. Only on legacy Okta Classic Engine orgs do they appear further down the same Configure SAML page.
Add an attribute statement Nameemail, Name formatUnspecified, Valueuser.profile.email, and a second Namename, Name formatUnspecified, Valueuser.profile.firstName + " " + user.profile.lastName.See Connect a SAML identity provider for why each of these is required.
6
Assign users
Assign the app to the users or groups who should be able to sign in to Oleria.
7
Enter the SAML IdP details in Oleria
On the Sign On tab copy the Identity Provider metadata URL.
Back in Oleria, complete the SAML IdP details step: give the provider a Name, paste the Okta metadata URL into Metadata, and decide whether to turn on Sign requests and/or Encrypt SAML responses. Click Add identity provider.
8
If you turned on Sign requests: upload the request signing certificate to Okta
Skip this step if you left Sign requests off. Otherwise, go back to the Okta app’s General tab, open SAML Settings → Edit, and click Show Advanced Settings. Upload Oleria’s Request signing certificate (downloaded in pem format earlier in this Part) next to Signature Certificate, then set Signed Requests to Validate SAML requests with signature certificates.
9
If you turned on Encrypt SAML responses: download and upload the response encryption certificate
Skip this step if you left Encrypt SAML responses off. Otherwise, back in Oleria you’ll see a prompt to download the Response encryption certificate generated specifically for this provider - download it in pem format. In Okta, in that same Show Advanced Settings view, set Assertion Encryption to Encrypted and upload the certificate next to Encryption Certificate.Before:After:
10
Confirm sign-in works
Sign out of Oleria, go to https://www.oleria.com/sign-in, select the new provider, and confirm you land back in Oleria signed in.
You can add SCIM provisioning to the same Okta app you just created for SSO - Okta supports provisioning on custom SAML apps once you turn it on, provided your org is licensed for it.
Outbound SCIM provisioning is part of Okta Lifecycle Management (LCM), a separate Okta product from SSO. If your org isn’t entitled to LCM, the Provisioning setting simply isn’t rendered: the App Settings dialog shows only Application label, Application visibility, Auto-launch, and the two notes fields, with no Provisioning options to select. Nothing is greyed out, so it reads as though the setting doesn’t exist.LCM is included in Okta’s Essentials, Professional, and Enterprise suites and in the Okta Identity Governance add-on. It is not included in the Starter or Core Essentials plans, where it’s a paid add-on.Quickest way to check: in the Okta Admin Console, look at any other app in your org that should provision users (for example a directory app like Google Workspace). If no app in the org has a working Provisioning tab, your org doesn’t have LCM. Your Okta account team can confirm whether it’s in your contract or needs to be added.If you can’t add LCM, Oleria still has working options - see Alternatives without Lifecycle Management.
1
Enable provisioning on the Okta app
Open the same Okta app from Part 1. On the General tab, click Edit next to App Settings, then set Provisioning to SCIM - some Okta orgs show this as a Enable SCIM provisioning checkbox instead of a radio group - and click Save. A new Provisioning tab appears on the app.
No Provisioning setting in the dialog? The most likely cause is that your org isn’t entitled to LCM, as described above. Two other causes: the app is an OIDC integration rather than SAML 2.0 or SWA (Okta doesn’t support SCIM on custom OIDC apps created in the Classic experience), or the app was created through the Okta API or Terraform rather than the Admin Console, which can leave the provisioning options absent or unconfigurable. If the app is a SAML 2.0 app created in the Admin Console and your org does have LCM, contact Okta Support to check whether the provisioning feature needs activating for your org.
2
Get Oleria's SCIM credentials
In Oleria, go to Settings → SCIM Configuration and select the same workspace you used in Part 1 (Main Workspace or Governance App). Copy the SCIM Base URL, Client ID, Client Secret, and OAuth Token URL.
3
Configure the API integration
On the Okta app’s Provisioning tab, select Integration, click Edit. Enter Oleria’s SCIM Base URL as the SCIM connector base URL, for unique identifier enter userName, and check Push New Users, Push Profile Updates, and Push Groups.
Set Authentication Mode to OAuth 2, under OAuth 2 set Grant Type to Client Credentials, and enter Oleria’s OAuth Token URL as the access token endpoint along with the Client ID and Client Secret you copied.
Oleria’s SCIM API only issues short-lived tokens through this client credentials exchange - it does not accept a single, static, long-lived bearer token. Use OAuth 2 / Client Credentials here, not the HTTP Header (bearer token) authentication mode. Okta mints and automatically refreshes its own token from the Client ID and Client Secret, so there’s nothing to manually re-enter later. See Authenticate to the SCIM API for how this same OAuth 2.0 Client Credentials flow works if you’re ever calling the API directly instead of through Okta.
4
Turn on the provisioning actions you need
Under Provisioning → To App, click Edit and enable Create Users, Update User Attributes, and Deactivate Users.
5
Main Workspace only: push groups from Okta
Main Workspace only: Oleria grants roles through group membership, not directly on the user (see How Oleria maps roles and groups).Governance App: there is no group-to-role mapping to configure - every provisioned user is assigned the single reviewer role automatically. You only need users pushed, not groups.
In Okta, go to the app’s Push Groups tab and push each Okta group whose members should get Oleria access. Okta then creates the matching group in Oleria automatically via SCIM, with membership synced, but without a role set. Okta’s Push Groups doesn’t support mapping a role or any other custom attribute onto the group it creates, so a newly-created group falls back to Oleria’s read-only analyst role until you assign it a different one in the next step.
6
Main Workspace only: assign each group a role in Oleria
In Oleria, under Settings open Manage Users, select the Groups tab, and for each group you push, select it, click Change role, choose the role it should map to, and click Save. Every current and future member of the group inherits that role. See Assign a role to a group for the full walkthrough.Oleria’s Manage Users page:The detail page for a particular group:Changing the role mapping for that group:
7
Assign and provision
Assign the users or groups who should get Oleria accounts to the app (Main Workspace: via the groups you just pushed; Governance App: directly, or via any group). Okta provisions matching users into Oleria within its usual sync interval.
8
Verify
In Oleria, confirm the new users appear (Main Workspace: in Manage Users with the expected role; Governance App: in the governance reviewer list). Deactivate or unassign a test user in Okta and confirm they lose access in Oleria.
Alternative for the Governance App: if you don’t need directory-driven deprovisioning and don’t want to build the Okta provisioning connector above, you can skip this Part entirely and use Oleria’s built-in automatic user provisioning instead - it only requires SSO (Part 1) to already be working. Follow Automatically provision reviewers to enable it and set allowed email domains. Remember this is not SCIM: it only creates accounts on sign-in and never deactivates them, so it’s not a substitute for SCIM if you need automatic offboarding.
If your Okta org isn’t entitled to LCM and adding it isn’t an option, you can still get most of the way there. What’s available depends on which workspace you’re provisioning.
There is no way to work around the LCM requirement from inside Okta. In particular, adding one of the generic SCIM 2.0 Test App integrations from the Okta Integration Network doesn’t help: LCM gates the Provisioning tab on catalog apps exactly as it does on custom apps, and those test apps authenticate with a static bearer token or basic auth rather than the OAuth 2.0 Client Credentials flow Oleria’s SCIM API expects. Okta Workflows is not a workaround either - it’s licensed as part of Lifecycle Management and Okta Identity Governance.
Option
Applies to
What you get
What you give up
Automatic user provisioning (recommended for reviewers)
Governance App only
Accounts are created the first time someone signs in through Okta SSO, with no provisioning connector in Okta at all. Only Part 1 is required. See Automatically provision reviewers.
No deprovisioning - accounts are never deactivated automatically. Scoped by email domain rather than by Okta group or app assignment.
Manage users by hand
Main Workspace, Governance App
Full control over roles with no IdP-side setup. Practical for the small workspace admin population. See Manage Users.
Every join, role change, and departure is a manual step in Oleria.
Drive Oleria’s SCIM API directly
Main Workspace, Governance App
Oleria’s SCIM endpoints are standard SCIM 2.0 and don’t care what calls them. A script or integration platform can read group membership from Okta’s own Users and Groups API - available to every Okta org, no LCM needed - and create, update, and deactivate the matching Oleria users and groups. See SCIM user provisioning.
You own the sync logic, scheduling, and error handling that Okta’s provisioning engine would otherwise provide.
A common split is automatic user provisioning for the Governance App reviewer population plus hand-managed Main Workspace admins - that combination needs only SSO, and no LCM.
Okta has no restriction on reusing the same Audience URI (SP Entity ID) or SCIM base URL pattern across multiple apps, so connecting the second workspace is simply repeating Part 1 and Part 2 with a second, separately-named Okta app pointed at the second workspace’s Oleria details and SCIM credentials. You do not need to reuse or share anything between the two Okta apps.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Oleria Identity Security","colors":{"primary":"#027864","light":"#027864","dark":"#58D5BA"},"logo":{"light":"https://mintcdn.com/dev-oleria/6TR7wXwCMQAv-eRG/images/OleriaLightMode-1.png?fit=max\u0026auto=format\u0026n=6TR7wXwCMQAv-eRG\u0026q=85\u0026s=82d13b20d2911e74791665a1d455d1c1","dark":"https://mintcdn.com/dev-oleria/6TR7wXwCMQAv-eRG/images/Oleria_Dark_2.png?fit=max\u0026auto=format\u0026n=6TR7wXwCMQAv-eRG\u0026q=85\u0026s=c0e24f7fc4973d5c51c38a982b8b786a"},"favicon":"https://mintcdn.com/dev-oleria/-ta9F4IOoIdAdZV0/images/favicon.png?fit=max\u0026auto=format\u0026n=-ta9F4IOoIdAdZV0\u0026q=85\u0026s=66a6b918997297ee3a8da158aef7b8b2","appearance":{"default":"light"},"background":{"color":{"light":"#ffffff"}},"navbar":{"links":[{"href":"mailto:support@oleria.com","label":"Support"}]},"footer":{"socials":{"website":"https://oleria.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dev-oleria","hasAudioNarration":false,"actualSubdomain":"dev-oleria","customDomains":["docs.oleria.ai"],"gitSource":{"type":"github","owner":"roanokedatasecurity","repo":"oleria-docs","deployBranch":"docs/partner-site","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aad4a280206d830b0c8e0be","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":91},{"language":"default","tag":"Inventory \u0026 Actions","count":72},{"language":"default","tag":"Product","count":69},{"language":"default","tag":"Integrations","count":38},{"language":"default","tag":"Applications","count":31},{"language":"default","tag":"Governance","count":26},{"language":"default","tag":"Posture","count":21},{"language":"default","tag":"Administration","count":17},{"language":"default","tag":"TrustFusion","count":10},{"language":"default","tag":"Accounts","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"administration/okta-sso-scim-setup","slug":"/administration/okta-sso-scim-setup","pageMetadata":{"title":"Okta: end-to-end SSO and SCIM setup","description":"Connect Okta to Oleria for single sign-on and user provisioning, covering both the Main Workspace and the Governance App.","href":"/administration/okta-sso-scim-setup"},"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: \"Connect Okta to Oleria for single sign-on and user provisioning, covering both the Main Workspace and the Governance App.\"\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`,em:`em`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`This page walks through connecting Okta to Oleria from a blank slate: creating the Okta app, wiring up single sign-on (SSO), and turning on directory provisioning (SCIM), for whichever combination of Main Workspace and Governance App you need. It draws on `,_jsx(_components.a,{href:`/administration/sso-configuration`,children:`SSO configuration`}),`, `,_jsx(_components.a,{href:`/administration/scim-user-provisioning`,children:`SCIM user provisioning`}),`, and `,_jsx(_components.a,{href:`/administration/scim-governance-provisioning`,children:`Governance App SCIM provisioning`}),` - see those pages for the full request/response reference and troubleshooting detail; this page focuses on getting from zero to a working Okta connection.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`This page is about signing in to Oleria and provisioning Oleria accounts from Okta. It is not the same as the `,_jsx(_components.a,{href:`/integrations/okta`,children:`Okta integration`}),` under `,_jsx(_components.strong,{children:`Integrations`}),`, which connects Okta as a data source so Oleria can analyze your Okta tenant’s identities and access. That integration does not affect who can sign in to Oleria or how.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(Heading,{level:`3`,id:`main-workspace-vs-governance-app`,children:`Main Workspace vs. Governance App`}),`\n`,_jsx(_components.p,{children:`Oleria has two independent surfaces, each with its own sign-in and provisioning configuration:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Main Workspace`}),` - where administrators, operators, and analysts run Oleria itself: posture, access graph, workflows, and settings.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Governance App`}),` - a separate portal where reviewers and approvers complete `,_jsx(_components.a,{href:`/governance/access-review`,children:`access reviews`}),`, act on access requests, and work governance queues. Governance app users are a distinct population from workspace users, typically much larger (anyone in the org who might approve or review something), and usually don’t need any other access to Oleria.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Each surface has its own tab in `,_jsx(_components.strong,{children:`Settings → SSO Configuration`}),` and its own tab in `,_jsx(_components.strong,{children:`Settings → SCIM Configuration`}),`, with separate identity provider lists, separate SCIM credentials, and separate SCIM base URLs. You can connect Okta to one, the other, or both - they don’t have to match. For example, it’s common to enable SSO and SCIM for the Governance App (so every employee can be provisioned as a reviewer automatically) while managing the smaller set of Main Workspace administrators by hand.`]}),`\n`,_jsx(Heading,{level:`3`,id:`sso-vs-scim-vs-automatic-user-provisioning`,children:`SSO vs. SCIM vs. automatic user provisioning`}),`\n`,_jsx(_components.p,{children:`Oleria has three related but independent mechanisms. SSO is for authentication only, where as SCIM and automatic user provisioning are for provisioning.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`}}),_jsx(_components.th,{style:{textAlign:`left`},children:`SSO`}),_jsx(_components.th,{style:{textAlign:`left`},children:`SCIM`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Automatic user provisioning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Solves`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Authentication - how a user proves who they are when signing in`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Provisioning - how an Oleria account gets created, updated, and removed`}),_jsx(_components.td,{style:{textAlign:`left`},children:`An Oleria setting that creates an account the moment someone signs in and doesn’t already have one`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Direction`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta redirects the user’s browser to Oleria with a signed SAML assertion at sign-in time`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta’s provisioning engine calls Oleria’s SCIM API directly, independent of anyone signing in`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Triggered as a side effect of a successful SAML or social sign-in; nothing is pushed from Okta`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Configured where`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.strong,{children:`Settings → SSO Configuration`}),`, either tab`]}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.strong,{children:`Settings → SCIM Configuration`}),`, either tab`]}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.strong,{children:`Settings → SSO Configuration`}),`, `,_jsx(_components.strong,{children:`Governance App`}),` tab only`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Can deactivate/remove users`}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`}),_jsx(_components.td,{style:{textAlign:`left`},children:`No - it only ever creates accounts`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Without it`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Users sign in with a social login or in rare cases a local account`}),_jsx(_components.td,{style:{textAlign:`left`},children:`An administrator adds, updates, and removes users by hand`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Only administrators, or SCIM, create accounts`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/administration/sso-configuration#automatically-provision-reviewers`,children:`Automatically provision reviewers`}),` for the full detail on that setting - `,_jsx(_components.a,{href:`#part-2-set-up-scim`,children:`Part 2`}),` of this page is about SCIM, not automatic user provisioning.`]}),`\n`,_jsx(Heading,{level:`3`,id:`possible-provisioning-flows`,children:`Possible provisioning flows`}),`\n`,_jsx(_components.p,{children:`Because these mechanisms are independent, and each applies per workspace, several combinations are all valid. Pick the one that matches what you’re trying to achieve before you start:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Flow`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Main Workspace`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Governance App`}),_jsx(_components.th,{style:{textAlign:`left`},children:`When to use it`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`SSO + SCIM (recommended)`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta SAML + SCIM`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta SAML + SCIM`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Full end-to-end: Okta group membership determines who has an Oleria account and what role they hold, and the same Okta credentials sign them in, including automatic deactivation when someone is unassigned. This is what the rest of this page sets up.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`SSO only`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta SAML`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta SAML`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Small, stable user list you’re comfortable adding by hand in `,_jsx(_components.a,{href:`/administration/manage-users`,children:`Manage Users`}),`, but want Okta credentials for sign-in. Apply to either tab independently, or both.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`SCIM only`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta SCIM`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta SCIM`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Users should come from Okta automatically, but you’re not ready to move sign-in off social login yet. Apply to either workspace independently, or both.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`SSO + automatic user provisioning`}),_jsx(_components.td,{style:{textAlign:`left`},children:`N/A - Governance App only`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta SAML + Oleria’s automatic user provisioning toggle`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Lighter-weight than SCIM - no provisioning connector to build in Okta, accounts just appear the first time someone signs in - but there’s no automatic deprovisioning, and it’s gated only by email domain, not Okta group/app assignment. Good for “let anyone at the company become a reviewer” without building a directory sync.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Split by surface`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Manual, or a different IdP`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Okta SAML + SCIM`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Common when only the Governance App needs to reach a broad, automatically-provisioned population (for example, every employee as a potential reviewer), while a small workspace admin team is managed separately`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`This page sets up the recommended SSO + SCIM flow, one workspace at a time. If you’d rather use automatic user provisioning instead of SCIM for the Governance App, see the `,_jsx(_components.a,{href:`#part-2-set-up-scim`,children:`note at the end of Part 2`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Administrator access to your Oleria workspace`}),`\n`,_jsxs(_components.li,{children:[`Okta `,_jsx(_components.strong,{children:`super admin`}),` access - Okta’s own guidance for enabling SCIM on a custom app is to sign in as a super admin, and lesser admin roles may not see the setting.`]}),`\n`,_jsxs(_components.li,{children:[`Decide which workspaces - `,_jsx(_components.strong,{children:`Main Workspace`}),`, `,_jsx(_components.strong,{children:`Governance App`}),`, or both - you’re connecting Okta to, and whether you want SSO, SCIM, or both for each. See `,_jsx(_components.a,{href:`#possible-provisioning-flows`,children:`Possible provisioning flows`}),` above.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`For SCIM only:`}),` your Okta org must have `,_jsx(_components.strong,{children:`Okta Lifecycle Management (LCM)`}),` entitlements. LCM is a separate Okta product from SSO, and without it the `,_jsx(_components.strong,{children:`Provisioning`}),` setting never appears on the app. Check this before you start - it’s the most common reason this setup can’t be completed. See `,_jsx(_components.a,{href:`#okta-lifecycle-management-is-required-for-scim`,children:`Okta Lifecycle Management is required for SCIM`}),` below. SSO (`,_jsx(_components.a,{href:`#part-1-set-up-sso`,children:`Part 1`}),`) does not require LCM.`]}),`\n`,_jsxs(_components.li,{children:[`For SCIM into the `,_jsx(_components.strong,{children:`Main Workspace`}),`: know which Oleria roles (`,_jsx(_components.code,{children:`admin`}),`, `,_jsx(_components.code,{children:`operator`}),`, `,_jsx(_components.code,{children:`analyst`}),`, `,_jsx(_components.code,{children:`governance-operator`}),`, `,_jsx(_components.code,{children:`identity-lifecycle-operator`}),`) your Okta groups should map to. See `,_jsx(_components.a,{href:`/administration/scim-user-provisioning#how-oleria-maps-roles-and-groups`,children:`How Oleria maps roles and groups`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`part-1-set-up-sso`,children:`Part 1: Set up SSO`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Oleria's SSO configuration page`,children:_jsxs(_components.p,{children:[`In Oleria, go to `,_jsx(_components.strong,{children:`Settings → SSO Configuration`}),`, select the `,_jsx(_components.strong,{children:`Main Workspace`}),` or `,_jsx(_components.strong,{children:`Governance App`}),` tab depending on which application you’re connecting first, and click `,_jsx(_components.strong,{children:`Add IdP`}),` in the `,_jsx(_components.strong,{children:`SAML IdP`}),` card.`]})}),_jsxs(Step,{title:`Create the Okta app`,children:[_jsxs(_components.p,{children:[`In the Okta Admin Console, go to `,_jsx(_components.strong,{children:`Applications → Applications → Create App Integration`}),`, select `,_jsx(_components.strong,{children:`Classic experience`}),` since `,_jsx(_components.strong,{children:`Integration Wizard`}),` is `,_jsx(_components.strong,{children:`not supported at this time`}),`. Select `,_jsx(_components.strong,{children:`SAML 2.0`}),`, and name it something that identifies which Oleria workspace it’s for (for example `,_jsx(_components.code,{children:`Oleria - Main Workspace`}),` or `,_jsx(_components.code,{children:`Oleria - Governance App`}),`) - this matters once you’ve done this twice for both workspaces.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_create_application_classic.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=3ddf2ebc63626c845f482c5a715a462f`,alt:`Image of the Integration Wizard vs Classic experience prompt`,\"data-og-width\":`1600`,width:`1600`,\"data-og-height\":`1120`,height:`1120`,\"data-path\":`images/administration/sso/okta/okta_create_application_classic.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_create_application_classic.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=3e8119f114c457baa7be6f9d7277e7a3 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_create_application_classic.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=8361ca6ad7a29dbf352d63012867c611 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_create_application_classic.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=ffb5eb3cb662f1f743986324eb2d73e3 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_create_application_classic.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=ed96203bdce1e0eea236ce377b388070 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_create_application_classic.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=ebf24dfc668e15211672f4363ff90d1b 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_create_application_classic.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=74eebdce9287ce6c60d8b1ec88b3c217 2500w`})]}),_jsxs(Step,{title:`Copy Oleria's SP details into Okta`,children:[_jsxs(_components.p,{children:[`On Oleria’s `,_jsx(_components.strong,{children:`Oleria details`}),` step, copy the `,_jsx(_components.strong,{children:`Entity ID`}),` and `,_jsx(_components.strong,{children:`ACS URL`}),`. On Okta’s `,_jsx(_components.strong,{children:`Configure SAML`}),` step, enter them as the `,_jsx(_components.strong,{children:`Audience URI (SP Entity ID)`}),` and `,_jsx(_components.strong,{children:`Single sign-on URL`}),`. Copy or download the `,_jsx(_components.strong,{children:`Request signing certificate`}),` shown on Oleria’s `,_jsx(_components.strong,{children:`Oleria details`}),` step - you’ll need it later in this Part if you turn on `,_jsx(_components.strong,{children:`Sign requests`}),`.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_configure_saml.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=9fb2c67b5d055323ebd46ad75f86cc7d`,alt:`Image of Okta's Configure SAML page`,\"data-og-width\":`1440`,width:`1440`,\"data-og-height\":`1074`,height:`1074`,\"data-path\":`images/administration/sso/okta/okta_configure_saml.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_configure_saml.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=700e011252a79b8f5d0cd89dc6e4f267 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_configure_saml.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=9a19bbfa6e77721443fa77c5355136b7 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_configure_saml.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=e5f6f0f94ef9e8308de689238eba0083 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_configure_saml.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=0aae85583d0a8a1a04e53090755a53db 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_configure_saml.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=c018b361fdc8492d3f7335cc638603ef 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_configure_saml.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=89258c887d6c7957c27c4f65e9ea1a68 2500w`})]}),_jsx(Step,{title:`Configure the NameID`,children:_jsxs(_components.p,{children:[`Still on `,_jsx(_components.strong,{children:`Configure SAML`}),`, set `,_jsx(_components.strong,{children:`Name ID format`}),` to `,_jsx(_components.strong,{children:`Persistent`}),` and `,_jsx(_components.strong,{children:`Application username`}),` to `,_jsx(_components.strong,{children:`Email`}),` - Oleria’s service provider requires a persistent NameID policy and rejects sign-in otherwise.`]})}),_jsxs(Step,{title:`Add the required attribute statements`,children:[_jsx(Note,{children:_jsxs(_components.p,{children:[`This step is on a `,_jsx(_components.strong,{children:`different page`}),` than the previous one for most Okta orgs today. On Okta Identity Engine (OIE) orgs - the default for new orgs - Attribute Statements aren’t part of the `,_jsx(_components.strong,{children:`Configure SAML`}),` page at all; add them afterward on the app’s `,_jsx(_components.strong,{children:`Sign On`}),` tab, under `,_jsx(_components.strong,{children:`Attribute Statements`}),`. Only on legacy Okta Classic Engine orgs do they appear further down the same `,_jsx(_components.strong,{children:`Configure SAML`}),` page.`]})}),_jsxs(_components.p,{children:[`Add an attribute statement `,_jsx(_components.strong,{children:`Name`}),` `,_jsx(_components.code,{children:`email`}),`, `,_jsx(_components.strong,{children:`Name format`}),` `,_jsx(_components.code,{children:`Unspecified`}),`, `,_jsx(_components.strong,{children:`Value`}),` `,_jsx(_components.code,{children:`user.profile.email`}),`, and a second `,_jsx(_components.strong,{children:`Name`}),` `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.strong,{children:`Name format`}),` `,_jsx(_components.code,{children:`Unspecified`}),`, `,_jsx(_components.strong,{children:`Value`}),` `,_jsx(_components.code,{children:`user.profile.firstName + \" \" + user.profile.lastName`}),`.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_attribute_statements.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=5add6766532bf55bb448255fd7b29525`,alt:`Image of Okta's Sign On tab with Attribute Statements section`,\"data-og-width\":`1440`,width:`1440`,\"data-og-height\":`832`,height:`832`,\"data-path\":`images/administration/sso/okta/okta_attribute_statements.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_attribute_statements.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=276f807b79ba6362e8c599aa447160f5 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_attribute_statements.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=21c0c4256d9e4f4a2f243446cdf96163 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_attribute_statements.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=9cabc22f4c0c25cb1fd95e81d99a68c9 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_attribute_statements.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=04cde5c7d9e43e5bceeb186aa4955305 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_attribute_statements.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=ba7f09fb80f619f1e6c4b8c9739e194b 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_attribute_statements.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=06016de313ec9f2c94abfba4f8739959 2500w`}),_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/administration/sso-configuration#connect-a-saml-identity-provider`,children:`Connect a SAML identity provider`}),` for why each of these is required.`]})]}),_jsx(Step,{title:`Assign users`,children:_jsx(_components.p,{children:`Assign the app to the users or groups who should be able to sign in to Oleria.`})}),_jsx(Step,{title:`Enter the SAML IdP details in Oleria`,children:_jsxs(_components.p,{children:[`On the `,_jsx(_components.strong,{children:`Sign On`}),` tab copy the `,_jsx(_components.strong,{children:`Identity Provider metadata`}),` URL.\nBack in Oleria, complete the `,_jsx(_components.strong,{children:`SAML IdP details`}),` step: give the provider a `,_jsx(_components.strong,{children:`Name`}),`, paste the Okta metadata URL into `,_jsx(_components.strong,{children:`Metadata`}),`, and decide whether to turn on `,_jsx(_components.strong,{children:`Sign requests`}),` and/or `,_jsx(_components.strong,{children:`Encrypt SAML responses`}),`. Click `,_jsx(_components.strong,{children:`Add identity provider`}),`.`]})}),_jsxs(Step,{title:`If you turned on Sign requests: upload the request signing certificate to Okta`,children:[_jsxs(_components.p,{children:[`Skip this step if you left `,_jsx(_components.strong,{children:`Sign requests`}),` off. Otherwise, go back to the Okta app’s `,_jsx(_components.strong,{children:`General`}),` tab, open `,_jsx(_components.strong,{children:`SAML Settings → Edit`}),`, and click `,_jsx(_components.strong,{children:`Show Advanced Settings`}),`. Upload Oleria’s `,_jsx(_components.strong,{children:`Request signing certificate`}),` (downloaded in `,_jsx(_components.strong,{children:`pem`}),` format earlier in this Part) next to `,_jsx(_components.strong,{children:`Signature Certificate`}),`, then set `,_jsx(_components.strong,{children:`Signed Requests`}),` to `,_jsx(_components.strong,{children:`Validate SAML requests with signature certificates`}),`.`]}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_saml_request_signing_cert.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=ef2b5e62e075d2cea21e364b010be5bc`,alt:`Image of Okta's SAML Settings advanced settings with Signature Certificate upload`,\"data-og-width\":`1154`,width:`1154`,\"data-og-height\":`1826`,height:`1826`,\"data-path\":`images/administration/sso/okta/okta_saml_request_signing_cert.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_saml_request_signing_cert.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=b98d89edb0809f645e85063a641e39fd 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_saml_request_signing_cert.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=203e1393d39bbdc0b7c589ce20f6d1ee 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_saml_request_signing_cert.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=efb117e43e7ba05011ec9c2e7b915704 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_saml_request_signing_cert.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=8f555876fefd0a37cc96dd975a33c90e 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_saml_request_signing_cert.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=36fd0a7eb22b19da2f847f5d8000b7e4 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_saml_request_signing_cert.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=0b3d2319f987c3b2e3952b2c80e69ef6 2500w`})]}),_jsxs(Step,{title:`If you turned on Encrypt SAML responses: download and upload the response encryption certificate`,children:[_jsxs(_components.p,{children:[`Skip this step if you left `,_jsx(_components.strong,{children:`Encrypt SAML responses`}),` off. Otherwise, back in Oleria you’ll see a prompt to download the `,_jsx(_components.strong,{children:`Response encryption certificate`}),` generated specifically for this provider - download it in `,_jsx(_components.strong,{children:`pem`}),` format. In Okta, in that same `,_jsx(_components.strong,{children:`Show Advanced Settings`}),` view, set `,_jsx(_components.strong,{children:`Assertion Encryption`}),` to `,_jsx(_components.strong,{children:`Encrypted`}),` and upload the certificate next to `,_jsx(_components.strong,{children:`Encryption Certificate`}),`.`]}),_jsx(_components.p,{children:`Before:`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_before.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=b44d7e0c0f6b32ac814e6554851d37b6`,alt:`Image of Okta's SAML Settings advanced settings before setting Assertion Encryption to Encrypted`,\"data-og-width\":`1154`,width:`1154`,\"data-og-height\":`1416`,height:`1416`,\"data-path\":`images/administration/sso/okta/okta_response_encryption_before.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_before.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=5f6182ed3ca0d2721b6597044a810a53 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_before.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=96224c2fba5f6f27a07b5399a5f9af18 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_before.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=9b6d39404a521ff3949eff343b16e560 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_before.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=9c4a000d27d1d57a0d1666e85108050c 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_before.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=d992eadea599e373060999f21362ee73 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_before.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=bd3af58c64a4c8257136dc63b417e3a6 2500w`}),_jsx(_components.p,{children:`After:`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_after.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=805fc308892dde1cfe1cc794ed419b10`,alt:`Image of Okta's SAML Settings advanced settings after setting Assertion Encryption to Encrypted`,\"data-og-width\":`1162`,width:`1162`,\"data-og-height\":`1710`,height:`1710`,\"data-path\":`images/administration/sso/okta/okta_response_encryption_after.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_after.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=79d6b4ce2743f8b68a844e3c10334fe7 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_after.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=fd7a407473b6d4c62d13e6583affbf83 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_after.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=a179e94c14ce8d24daab8c0b6a0d36c6 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_after.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=52b6839361876a111a4801cd5d76f40e 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_after.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=4f6a7e55c2452a928632a5c6ad001d61 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/sso/okta/okta_response_encryption_after.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=9830d120b8531ef672fbc31d07a1d11f 2500w`})]}),_jsx(Step,{title:`Confirm sign-in works`,children:_jsxs(_components.p,{children:[`Sign out of Oleria, go to `,_jsx(_components.a,{href:`https://www.oleria.com/sign-in`,children:`https://www.oleria.com/sign-in`}),`, select the new provider, and confirm you land back in Oleria signed in.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`part-2-set-up-scim`,children:`Part 2: Set up SCIM`}),`\n`,_jsx(_components.p,{children:`You can add SCIM provisioning to the same Okta app you just created for SSO - Okta supports provisioning on custom SAML apps once you turn it on, provided your org is licensed for it.`}),`\n`,_jsx(Heading,{level:`3`,id:`okta-lifecycle-management-is-required-for-scim`,children:`Okta Lifecycle Management is required for SCIM`}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`Outbound SCIM provisioning is part of `,_jsx(_components.strong,{children:`Okta Lifecycle Management (LCM)`}),`, a separate Okta product from SSO. If your org isn’t entitled to LCM, the `,_jsx(_components.strong,{children:`Provisioning`}),` setting simply isn’t rendered: the `,_jsx(_components.strong,{children:`App Settings`}),` dialog shows only `,_jsx(_components.strong,{children:`Application label`}),`, `,_jsx(_components.strong,{children:`Application visibility`}),`, `,_jsx(_components.strong,{children:`Auto-launch`}),`, and the two notes fields, with no `,_jsx(_components.strong,{children:`Provisioning`}),` options to select. Nothing is greyed out, so it reads as though the setting doesn’t exist.`]}),_jsxs(_components.p,{children:[`LCM is included in Okta’s `,_jsx(_components.strong,{children:`Essentials`}),`, `,_jsx(_components.strong,{children:`Professional`}),`, and `,_jsx(_components.strong,{children:`Enterprise`}),` suites and in the `,_jsx(_components.strong,{children:`Okta Identity Governance`}),` add-on. It is `,_jsx(_components.em,{children:`not`}),` included in the `,_jsx(_components.strong,{children:`Starter`}),` or `,_jsx(_components.strong,{children:`Core Essentials`}),` plans, where it’s a paid add-on.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Quickest way to check:`}),` in the Okta Admin Console, look at any other app in your org that should provision users (for example a directory app like Google Workspace). If no app in the org has a working `,_jsx(_components.strong,{children:`Provisioning`}),` tab, your org doesn’t have LCM. Your Okta account team can confirm whether it’s in your contract or needs to be added.`]}),_jsxs(_components.p,{children:[`If you can’t add LCM, Oleria still has working options - see `,_jsx(_components.a,{href:`#alternatives-without-lifecycle-management`,children:`Alternatives without Lifecycle Management`}),`.`]})]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Enable provisioning on the Okta app`,children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_app_settings_provisioning.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=54e3ad435342fed9533c4e1db4e341a9`,alt:`Image showing the expected Provisioning radio group in App Settings`,\"data-og-width\":`1136`,width:`1136`,\"data-og-height\":`1086`,height:`1086`,\"data-path\":`images/administration/scim/okta/okta_app_settings_provisioning.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_app_settings_provisioning.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=43e5989a78a75294c2b8723e64d981cc 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_app_settings_provisioning.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=c472a22ff68379881d90de6455e549b7 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_app_settings_provisioning.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=e05d4aa57378a46d0229240e56afbf9b 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_app_settings_provisioning.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=09428dc8e555eca7ff0dd5a63a0c8654 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_app_settings_provisioning.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=7745dd5f14c2706f7b527b8ab5e4f058 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_app_settings_provisioning.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=9262ccfa84700eb2bac38f32ad68d702 2500w`}),_jsxs(_components.p,{children:[`Open the same Okta app from Part 1. On the `,_jsx(_components.strong,{children:`General`}),` tab, click `,_jsx(_components.strong,{children:`Edit`}),` next to `,_jsx(_components.strong,{children:`App Settings`}),`, then set `,_jsx(_components.strong,{children:`Provisioning`}),` to `,_jsx(_components.strong,{children:`SCIM`}),` - some Okta orgs show this as a `,_jsx(_components.strong,{children:`Enable SCIM provisioning`}),` checkbox instead of a radio group - and click `,_jsx(_components.strong,{children:`Save`}),`. A new `,_jsx(_components.strong,{children:`Provisioning`}),` tab appears on the app.`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`No `,_jsx(_components.strong,{children:`Provisioning`}),` setting in the dialog? The most likely cause is that your org isn’t entitled to LCM, as described above. Two other causes: the app is an `,_jsx(_components.strong,{children:`OIDC`}),` integration rather than `,_jsx(_components.strong,{children:`SAML 2.0`}),` or `,_jsx(_components.strong,{children:`SWA`}),` (Okta doesn’t support SCIM on custom OIDC apps created in the Classic experience), or the app was created through the Okta API or Terraform rather than the Admin Console, which can leave the provisioning options absent or unconfigurable. If the app is a SAML 2.0 app created in the Admin Console and your org does have LCM, contact Okta Support to check whether the provisioning feature needs activating for your org.`]})})]}),_jsx(Step,{title:`Get Oleria's SCIM credentials`,children:_jsxs(_components.p,{children:[`In Oleria, go to `,_jsx(_components.strong,{children:`Settings → SCIM Configuration`}),` and select the same workspace you used in Part 1 (`,_jsx(_components.strong,{children:`Main Workspace`}),` or `,_jsx(_components.strong,{children:`Governance App`}),`). Copy the `,_jsx(_components.strong,{children:`SCIM Base URL`}),`, `,_jsx(_components.strong,{children:`Client ID`}),`, `,_jsx(_components.strong,{children:`Client Secret`}),`, and `,_jsx(_components.strong,{children:`OAuth Token URL`}),`.`]})}),_jsxs(Step,{title:`Configure the API integration`,children:[_jsxs(_components.p,{children:[`On the Okta app’s `,_jsx(_components.strong,{children:`Provisioning`}),` tab, select `,_jsx(_components.strong,{children:`Integration`}),`, click `,_jsx(_components.strong,{children:`Edit`}),`. Enter Oleria’s `,_jsx(_components.strong,{children:`SCIM Base URL`}),` as the `,_jsx(_components.strong,{children:`SCIM connector base URL`}),`, for unique identifier enter `,_jsx(_components.strong,{children:`userName`}),`, and check `,_jsx(_components.strong,{children:`Push New Users`}),`, `,_jsx(_components.strong,{children:`Push Profile Updates`}),`, and `,_jsx(_components.strong,{children:`Push Groups`}),`.\nSet `,_jsx(_components.strong,{children:`Authentication Mode`}),` to `,_jsx(_components.strong,{children:`OAuth 2`}),`, under `,_jsx(_components.strong,{children:`OAuth 2`}),` set `,_jsx(_components.strong,{children:`Grant Type`}),` to `,_jsx(_components.strong,{children:`Client Credentials`}),`, and enter Oleria’s `,_jsx(_components.strong,{children:`OAuth Token URL`}),` as the access token endpoint along with the `,_jsx(_components.strong,{children:`Client ID`}),` and `,_jsx(_components.strong,{children:`Client Secret`}),` you copied.`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`Oleria’s SCIM API only issues short-lived tokens through this client credentials exchange - it does not accept a single, static, long-lived bearer token. Use `,_jsx(_components.strong,{children:`OAuth 2 / Client Credentials`}),` here, not the `,_jsx(_components.strong,{children:`HTTP Header`}),` (bearer token) authentication mode. Okta mints and automatically refreshes its own token from the Client ID and Client Secret, so there’s nothing to manually re-enter later. See `,_jsx(_components.a,{href:`/administration/scim-user-provisioning#authenticate-to-the-scim-api`,children:`Authenticate to the SCIM API`}),` for how this same OAuth 2.0 Client Credentials flow works if you’re ever calling the API directly instead of through Okta.`]})}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_scim_connection.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=b0ac75762609e41cead288d004cad993`,alt:`Image of Okta's SCIM connection settings`,\"data-og-width\":`1395`,width:`1395`,\"data-og-height\":`1273`,height:`1273`,\"data-path\":`images/administration/scim/okta/okta_scim_connection.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_scim_connection.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=760b3623ca15559e69d0a855cc6578b6 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_scim_connection.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=dfc9fab6329e2f4bfbae68cdf932b977 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_scim_connection.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=632dddd07ecf619df51ef40ba4d9e730 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_scim_connection.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=33d77b5a8025f456ac461423af84e4cf 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_scim_connection.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=49661de5cf48506a6595efe23a8e2015 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/okta/okta_scim_connection.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=01d09adffe4eb7b042c86439d63b185f 2500w`})]}),_jsx(Step,{title:`Turn on the provisioning actions you need`,children:_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Provisioning → To App`}),`, click `,_jsx(_components.strong,{children:`Edit`}),` and enable `,_jsx(_components.strong,{children:`Create Users`}),`, `,_jsx(_components.strong,{children:`Update User Attributes`}),`, and `,_jsx(_components.strong,{children:`Deactivate Users`}),`.`]})}),_jsxs(Step,{title:`Main Workspace only: push groups from Okta`,children:[_jsxs(Note,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Main Workspace only:`}),` Oleria grants roles through group membership, not directly on the user (see `,_jsx(_components.a,{href:`/administration/scim-user-provisioning#how-oleria-maps-roles-and-groups`,children:`How Oleria maps roles and groups`}),`).`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Governance App:`}),` there is no group-to-role mapping to configure - every provisioned user is assigned the single `,_jsx(_components.code,{children:`reviewer`}),` role automatically. You only need users pushed, not groups.`]})]}),_jsxs(_components.p,{children:[`In Okta, go to the app’s `,_jsx(_components.strong,{children:`Push Groups`}),` tab and push each Okta group whose members should get Oleria access. Okta then creates the matching group in Oleria automatically via SCIM, with membership synced, but without a role set. Okta’s Push Groups doesn’t support mapping a role or any other custom attribute onto the group it creates, so a newly-created group falls back to Oleria’s read-only `,_jsx(_components.code,{children:`analyst`}),` role until you assign it a different one in the next step.`]})]}),_jsxs(Step,{title:`Main Workspace only: assign each group a role in Oleria`,children:[_jsxs(_components.p,{children:[`In Oleria, under `,_jsx(_components.strong,{children:`Settings`}),` open `,_jsx(_components.strong,{children:`Manage Users`}),`, select the `,_jsx(_components.strong,{children:`Groups`}),` tab, and for each group you push, select it, click `,_jsx(_components.strong,{children:`Change role`}),`, choose the role it should map to, and click `,_jsx(_components.strong,{children:`Save`}),`. Every current and future member of the group inherits that role. See `,_jsx(_components.a,{href:`/administration/manage-users#assign-a-role-to-a-group`,children:`Assign a role to a group`}),` for the full walkthrough.`]}),_jsx(_components.p,{children:`Oleria’s Manage Users page:`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_groups.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=44ab0e40edf8676e08d5910b48c622cf`,alt:`Image of Oleria's Manage Users page on Groups tab`,\"data-og-width\":`1622`,width:`1622`,\"data-og-height\":`1924`,height:`1924`,\"data-path\":`images/administration/scim/oleria_manage_users_groups.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_groups.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=726959c22173381b6a283437a4fab70a 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_groups.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=50280f02e7a4983c794477423bdd74f6 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_groups.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=c677daeb7296df33b62d444b76c7eb29 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_groups.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=49bce55c94f9a50cef0b96f8dc5e67c7 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_groups.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=8959b156b9ceb36d917b135d415c9bd1 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_groups.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=aca535e29d9b32d0357325973202dba6 2500w`}),_jsx(_components.p,{children:`The detail page for a particular group:`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_demo_group_detail.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=e9447bda8b934242f7ddb3303471cb54`,alt:`Image of a particular group's detail page`,\"data-og-width\":`1622`,width:`1622`,\"data-og-height\":`1924`,height:`1924`,\"data-path\":`images/administration/scim/oleria_manage_users_demo_group_detail.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_demo_group_detail.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=8814aac279d8c88ce091b63448b49fb9 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_demo_group_detail.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=755f6e5480914feeb9a9113d3b3c3c05 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_demo_group_detail.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=e3f7018acfbb246d81fea630f07eb441 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_demo_group_detail.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=945f398cbfea0e60261789cc2ebd945d 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_demo_group_detail.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=c5ff158e2903cd6532a8403c4dbd210c 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_demo_group_detail.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=1b4b5c7a4d4500c4cf880e017d15af55 2500w`}),_jsx(_components.p,{children:`Changing the role mapping for that group:`}),_jsx(OptimizedImage,{src:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_change_group_role_mapping.png?fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=df2f063f6389747f054d134e46624569`,alt:`Image of the Change role dialog`,\"data-og-width\":`1800`,width:`1800`,\"data-og-height\":`2031`,height:`2031`,\"data-path\":`images/administration/scim/oleria_manage_users_change_group_role_mapping.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_change_group_role_mapping.png?w=280\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=1ae04d43aaaab6083829008d1b6aac42 280w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_change_group_role_mapping.png?w=560\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=ffb2029bbb810d5c127123f2a95faac0 560w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_change_group_role_mapping.png?w=840\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=c14b9afd4ebc27188ecb0ddfff6a8a84 840w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_change_group_role_mapping.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=96086d177d33f6b6ec1ec658f0bb426f 1100w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_change_group_role_mapping.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=6baaf7611e85d3589ec84628956da018 1650w, https://mintcdn.com/dev-oleria/9EqEjR4hmX5-g3dY/images/administration/scim/oleria_manage_users_change_group_role_mapping.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9EqEjR4hmX5-g3dY\u0026q=85\u0026s=926ce486e0ea415f62f9872eb4c73f96 2500w`})]}),_jsx(Step,{title:`Assign and provision`,children:_jsxs(_components.p,{children:[`Assign the users or groups who should get Oleria accounts to the app (`,_jsx(_components.strong,{children:`Main Workspace`}),`: via the groups you just pushed; `,_jsx(_components.strong,{children:`Governance App`}),`: directly, or via any group). Okta provisions matching users into Oleria within its usual sync interval.`]})}),_jsx(Step,{title:`Verify`,children:_jsxs(_components.p,{children:[`In Oleria, confirm the new users appear (`,_jsx(_components.strong,{children:`Main Workspace`}),`: in `,_jsx(_components.a,{href:`/administration/manage-users`,children:`Manage Users`}),` with the expected role; `,_jsx(_components.strong,{children:`Governance App`}),`: in the governance reviewer list). Deactivate or unassign a test user in Okta and confirm they lose access in Oleria.`]})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Alternative for the Governance App:`}),` if you don’t need directory-driven deprovisioning and don’t want to build the Okta provisioning connector above, you can skip this Part entirely and use Oleria’s built-in automatic user provisioning instead - it only requires SSO (Part 1) to already be working. Follow `,_jsx(_components.a,{href:`/administration/sso-configuration#automatically-provision-reviewers`,children:`Automatically provision reviewers`}),` to enable it and set allowed email domains. Remember this is not SCIM: it only creates accounts on sign-in and never deactivates them, so it’s not a substitute for SCIM if you need automatic offboarding.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`alternatives-without-lifecycle-management`,children:`Alternatives without Lifecycle Management`}),`\n`,_jsx(_components.p,{children:`If your Okta org isn’t entitled to LCM and adding it isn’t an option, you can still get most of the way there. What’s available depends on which workspace you’re provisioning.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`There is no way to work around the LCM requirement from inside Okta. In particular, adding one of the generic `,_jsx(_components.strong,{children:`SCIM 2.0 Test App`}),` integrations from the Okta Integration Network doesn’t help: LCM gates the `,_jsx(_components.strong,{children:`Provisioning`}),` tab on catalog apps exactly as it does on custom apps, and those test apps authenticate with a static bearer token or basic auth rather than the OAuth 2.0 Client Credentials flow Oleria’s SCIM API expects. `,_jsx(_components.strong,{children:`Okta Workflows`}),` is not a workaround either - it’s licensed as part of Lifecycle Management and Okta Identity Governance.`]})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Option`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Applies to`}),_jsx(_components.th,{style:{textAlign:`left`},children:`What you get`}),_jsx(_components.th,{style:{textAlign:`left`},children:`What you give up`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.strong,{children:`Automatic user provisioning`}),` (recommended for reviewers)`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`Governance App only`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Accounts are created the first time someone signs in through Okta SSO, with no provisioning connector in Okta at all. Only `,_jsx(_components.a,{href:`#part-1-set-up-sso`,children:`Part 1`}),` is required. See `,_jsx(_components.a,{href:`/administration/sso-configuration#automatically-provision-reviewers`,children:`Automatically provision reviewers`}),`.`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`No deprovisioning - accounts are never deactivated automatically. Scoped by email domain rather than by Okta group or app assignment.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Manage users by hand`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Main Workspace, Governance App`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Full control over roles with no IdP-side setup. Practical for the small workspace admin population. See `,_jsx(_components.a,{href:`/administration/manage-users`,children:`Manage Users`}),`.`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`Every join, role change, and departure is a manual step in Oleria.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Drive Oleria’s SCIM API directly`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Main Workspace, Governance App`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Oleria’s SCIM endpoints are standard SCIM 2.0 and don’t care what calls them. A script or integration platform can read group membership from Okta’s own Users and Groups API - available to every Okta org, no LCM needed - and create, update, and deactivate the matching Oleria users and groups. See `,_jsx(_components.a,{href:`/administration/scim-user-provisioning`,children:`SCIM user provisioning`}),`.`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`You own the sync logic, scheduling, and error handling that Okta’s provisioning engine would otherwise provide.`})]})]})]}),`\n`,_jsx(_components.p,{children:`A common split is automatic user provisioning for the Governance App reviewer population plus hand-managed Main Workspace admins - that combination needs only SSO, and no LCM.`}),`\n`,_jsx(Heading,{level:`2`,id:`set-up-the-second-workspace`,children:`Set up the second workspace`}),`\n`,_jsxs(_components.p,{children:[`Okta has no restriction on reusing the same `,_jsx(_components.strong,{children:`Audience URI (SP Entity ID)`}),` or SCIM base URL pattern across multiple apps, so connecting the second workspace is simply repeating `,_jsx(_components.a,{href:`#part-1-set-up-sso`,children:`Part 1`}),` and `,_jsx(_components.a,{href:`#part-2-set-up-scim`,children:`Part 2`}),` with a second, separately-named Okta app pointed at the second workspace’s Oleria details and SCIM credentials. You do not need to reuse or share anything between the two Okta apps.`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`Provisioning`}),` option is missing from the Okta app’s `,_jsx(_components.strong,{children:`App Settings`}),`: see `,_jsx(_components.a,{href:`#okta-lifecycle-management-is-required-for-scim`,children:`Okta Lifecycle Management is required for SCIM`}),`, and `,_jsx(_components.a,{href:`#alternatives-without-lifecycle-management`,children:`Alternatives without Lifecycle Management`}),` if you can’t add LCM`]}),`\n`,_jsxs(_components.li,{children:[`Adding or editing the identity provider in Oleria: `,_jsx(_components.a,{href:`/administration/sso-configuration#troubleshoot-identity-provider-errors`,children:`Troubleshoot identity provider errors`})]}),`\n`,_jsxs(_components.li,{children:[`Sign-in failures after the provider is saved: `,_jsx(_components.a,{href:`/administration/sso-configuration#troubleshoot-sign-in-failures`,children:`Troubleshoot sign-in failures`})]}),`\n`,_jsxs(_components.li,{children:[`SCIM request/response errors: the `,_jsx(_components.a,{href:`/administration/scim-user-provisioning`,children:`SCIM user provisioning`}),` and `,_jsx(_components.a,{href:`/administration/scim-governance-provisioning`,children:`Governance App SCIM provisioning`}),` reference pages cover the request and response shape for every endpoint`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`contact-us`,children:`Contact us`}),`\n`,_jsxs(_components.p,{children:[`For questions, contact us at `,_jsx(_components.a,{href:`mailto:support@oleria.com`,children:`support@oleria.com`}),`.`]})]})}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":"Okta: end-to-end SSO and SCIM setup","description":"Connect Okta to Oleria for single sign-on and user provisioning, covering both the Main Workspace and the Governance App.","href":"/administration/okta-sso-scim-setup"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[{"title":"Main Workspace vs. Governance App","slug":"main-workspace-vs-governance-app","depth":3,"children":[]},{"title":"SSO vs. SCIM vs. automatic user provisioning","slug":"sso-vs-scim-vs-automatic-user-provisioning","depth":3,"children":[]},{"title":"Possible provisioning flows","slug":"possible-provisioning-flows","depth":3,"children":[]}]},{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Part 1: Set up SSO","slug":"part-1-set-up-sso","depth":2,"children":[]},{"title":"Part 2: Set up SCIM","slug":"part-2-set-up-scim","depth":2,"children":[{"title":"Okta Lifecycle Management is required for SCIM","slug":"okta-lifecycle-management-is-required-for-scim","depth":3,"children":[]}]},{"title":"Alternatives without Lifecycle Management","slug":"alternatives-without-lifecycle-management","depth":2,"children":[]},{"title":"Set up the second workspace","slug":"set-up-the-second-workspace","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"Contact us","slug":"contact-us","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"dev-oleria","siteName":"Oleria Identity Security","title":"Okta: end-to-end SSO and SCIM setup - Oleria Identity Security","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-18T14:12:22.272Z","originalFileLocation":"administration/okta-sso-scim-setup.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=\"light\"}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=\"Connect Okta to Oleria for single sign-on and user provisioning, covering both the Main Workspace and the Governance App.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Oleria Identity Security\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dev-oleria/m5RjRnbvxK5rgVTJ/_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/dev-oleria/m5RjRnbvxK5rgVTJ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dev-oleria/m5RjRnbvxK5rgVTJ/_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/dev-oleria/m5RjRnbvxK5rgVTJ/_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/dev-oleria/m5RjRnbvxK5rgVTJ/_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/dev-oleria/m5RjRnbvxK5rgVTJ/_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/dev-oleria/m5RjRnbvxK5rgVTJ/_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/dev-oleria/m5RjRnbvxK5rgVTJ/_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/dev-oleria/m5RjRnbvxK5rgVTJ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Okta: end-to-end SSO and SCIM setup - Oleria Identity Security\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect Okta to Oleria for single sign-on and user provisioning, covering both the Main Workspace and the Governance App.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Oleria Identity Security\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.oleria.ai/administration/okta-sso-scim-setup\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dev-oleria.mintlify.site/_mintlify/api/og/v2?division=Identity+Provider+Setup+Guides\u0026amp;title=Okta%3A+end-to-end+SSO+and+SCIM+setup\u0026amp;description=Connect+Okta+to+Oleria+for+single+sign-on+and+user+provisioning%2C+covering+both+the+Main+Workspace+and+the+Governance+App.\u0026amp;theme=d9799bde04686b617e6a5a94\u0026amp;signature=779664822aa960012feef5de8a08bc26c674c8dfc047d8d39ae9605118c9be33\">\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=\"Okta: end-to-end SSO and SCIM setup - Oleria Identity Security\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect Okta to Oleria for single sign-on and user provisioning, covering both the Main Workspace and the Governance App.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dev-oleria.mintlify.site/_mintlify/api/og/v2?division=Identity+Provider+Setup+Guides\u0026amp;title=Okta%3A+end-to-end+SSO+and+SCIM+setup\u0026amp;description=Connect+Okta+to+Oleria+for+single+sign-on+and+user+provisioning%2C+covering+both+the+Main+Workspace+and+the+Governance+App.\u0026amp;theme=d9799bde04686b617e6a5a94\u0026amp;signature=779664822aa960012feef5de8a08bc26c674c8dfc047d8d39ae9605118c9be33\">\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/dev-oleria/m5RjRnbvxK5rgVTJ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Oleria Identity Security\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#027864\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.oleria.ai/administration/okta-sso-scim-setup\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/administration/okta-sso-scim-setup.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.oleria.ai/#organization\",\"name\":\"Oleria Identity Security\",\"url\":\"https://docs.oleria.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/dev-oleria/6TR7wXwCMQAv-eRG/images/OleriaLightMode-1.png?fit=max\u0026auto=format\u0026n=6TR7wXwCMQAv-eRG\u0026q=85\u0026s=82d13b20d2911e74791665a1d455d1c1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.oleria.ai#website\",\"name\":\"Oleria Identity Security\",\"url\":\"https://docs.oleria.ai\",\"publisher\":{\"@id\":\"https://docs.oleria.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.oleria.ai/administration/okta-sso-scim-setup#webpage\",\"url\":\"https://docs.oleria.ai/administration/okta-sso-scim-setup\",\"name\":\"Okta: end-to-end SSO and SCIM setup\",\"description\":\"Connect Okta to Oleria for single sign-on and user provisioning, covering both the Main Workspace and the Governance App.\",\"dateModified\":\"2026-09-18T14:12:22.272Z\",\"isPartOf\":{\"@id\":\"https://docs.oleria.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.oleria.ai/administration/okta-sso-scim-setup#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.oleria.ai/administration/okta-sso-scim-setup#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Administration\",\"item\":\"https://docs.oleria.ai/administration/user-management-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Okta: end-to-end SSO and SCIM setup\",\"item\":\"https://docs.oleria.ai/administration/okta-sso-scim-setup\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.oleria.ai/administration/okta-sso-scim-setup#article\",\"headline\":\"Okta: end-to-end SSO and SCIM setup\",\"name\":\"Okta: end-to-end SSO and SCIM setup\",\"description\":\"Connect Okta to Oleria for single sign-on and user provisioning, covering both the Main Workspace and the Governance App.\",\"url\":\"https://docs.oleria.ai/administration/okta-sso-scim-setup\",\"mainEntityOfPage\":{\"@id\":\"https://docs.oleria.ai/administration/okta-sso-scim-setup#webpage\"},\"dateModified\":\"2026-09-18T14:12:22.272Z\",\"publisher\":{\"@id\":\"https://docs.oleria.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.oleria.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Oleria Identity Security\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Oleria Identity Security\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/administration/okta-sso-scim-setup.md","siteName":"Oleria Identity Security","nav":{"global":null,"tabs":[{"tab":"Product","groups":[{"group":"Getting Started","pages":[{"title":"Oleria Identity Security","href":"/introduction/overview"},{"title":"Oleria AI","href":"/posture/oleria-ai"},{"title":"Oleria MCP","href":"/introduction/oleria-mcp"}]},{"group":"Posture","pages":[{"title":"Adaptive Security","href":"/posture/oleria-adaptive-security-overview"},{"title":"Risk Monitoring","href":"/posture/risk-monitoring-overview"},{"group":"Access Graph","pages":[{"title":"Access Graph","href":"/posture/access-graph-overview"},{"title":"Read the Access Graph","href":"/posture/explore-access-graph"},{"title":"Navigate and search the Access Graph","href":"/posture/navigate-access-graph"}]},{"group":"Activity Analysis","pages":[{"title":"Activity Analysis","href":"/posture/activity-analysis-overview"},{"title":"Activity dashboard","href":"/posture/activity-dashboard"},{"title":"Activity details","href":"/posture/activity-details"}]},{"group":"Access Inventory","pages":[{"title":"Access Inventory","href":"/posture/access-inventory-overview"},{"title":"Using Access Inventory","href":"/posture/learn-access-inventory"}]},{"group":"Workflows","pages":[{"title":"Overview","href":"/posture/workflows-overview"},{"title":"Workflow templates","href":"/posture/workflow-templates"},{"title":"Disable dormant accounts","href":"/posture/disable-dormant-accounts-workflow"},{"title":"Security insights email","href":"/posture/security-insights-email-workflow"},{"title":"Enforce MFA compliance","href":"/posture/enforce-mfa-compliance-workflow"},{"title":"Manage stale SharePoint sites","href":"/posture/manage-stale-sharepoint-sites-workflow"},{"title":"Detect and report Shadow IT","href":"/posture/detect-report-shadow-it-workflow"}]},{"group":"Non-human identities","pages":[{"title":"Non-human identities (NHI)","href":"/posture/nhi-overview"},{"title":"NHI ownership assignment","href":"/posture/nhi-ownership-assignment-workflow"},{"title":"How Oleria assigns NHI ownership","href":"/posture/nhi-ownership-assignment-logic"},{"title":"NHI credential expiry","href":"/posture/nhi-credential-expiry-workflow"}]}]},{"group":"Governance","pages":[{"title":"Access Requests","href":"/governance/access-requests"},{"group":"Access Reviews","pages":[{"title":"Access Reviews","href":"/governance/access-review"},{"title":"Employee access insights","href":"/governance/employee-access-insights"}]},{"group":"Account Hygiene","pages":[{"title":"Account Hygiene","href":"/governance/account-hygiene-overview"},{"title":"Password age","href":"/governance/last-password-change-insights"}]},{"group":"AI Agent Gateway","pages":[{"title":"AI Agent Gateway","href":"/governance/ai-agent-gateway-overview"},{"title":"Administrator setup","href":"/governance/ai-agent-gateway-admin-setup"},{"title":"User setup","href":"/governance/ai-agent-gateway-user-setup"},{"title":"Connect and use your AI agent","href":"/governance/ai-agent-gateway-connect-agents"},{"title":"Bring your own OAuth app","href":"/governance/ai-agent-gateway-byo-oauth"},{"title":"Connect identity and cloud platforms","href":"/governance/ai-agent-gateway-identity-platforms"},{"title":"Application permissions","href":"/governance/ai-agent-gateway-app-permissions"}]},{"title":"Application Hygiene","href":"/governance/application-hygiene-overview"},{"title":"Dormancy thresholds","href":"/governance/account-dormant-days"},{"group":"Employee Lifecycle","pages":[{"title":"Joiner","href":"/governance/employee-lifecycle-joiner"},{"title":"Mover","href":"/governance/employee-lifecycle-mover"},{"title":"Leaver","href":"/governance/employee-lifecycle-leaver"},{"title":"Access Bundles","href":"/governance/access-bundles-and-adaptive-recommendations"},{"title":"Access Bundle Presets","href":"/governance/access-bundle-presets"}]},{"title":"External access","href":"/governance/external-access"},{"title":"Group Hygiene","href":"/governance/group-hygiene-overview"},{"group":"Remediations","pages":[{"title":"Remediations","href":"/governance/remediations-overview"},{"title":"View remediation actions","href":"/governance/view-remediation-actions"},{"title":"Disable dormant accounts","href":"/governance/disable-dormant-accounts"},{"title":"Revoke external user access","href":"/governance/revoke-external-users-access-permissions"},{"title":"Remove an account from a group","href":"/governance/remove-account-from-group"}]}]},{"group":"Administration","pages":[{"title":"User management","href":"/administration/user-management-overview"},{"title":"Default user roles","href":"/administration/default-user-roles"},{"title":"Manage users","href":"/administration/manage-users"},{"title":"Update a user's role","href":"/administration/update-a-users-role"},{"title":"Remove a user","href":"/administration/remove-a-user"},{"title":"SCIM user provisioning","href":"/administration/scim-user-provisioning"},{"title":"Governance App SCIM provisioning","href":"/administration/scim-governance-provisioning"},{"title":"User attributes","href":"/administration/user-attributes"},{"title":"User profile settings","href":"/administration/user-profile-settings"},{"title":"Business rules","href":"/administration/workspace-settings-business-rules"},{"title":"Authentication methods","href":"/administration/authentication-methods"},{"title":"SSO configuration","description":"Let workspace users sign in with your identity provider using SAML single sign-on or social login, and provision governance reviewers automatically.","href":"/administration/sso-configuration"},{"group":"Identity Provider Setup Guides","pages":[{"title":"Okta: end-to-end SSO and SCIM setup","href":"/administration/okta-sso-scim-setup"},{"title":"Microsoft Entra ID: end-to-end SSO and SCIM setup","description":"Connect Microsoft Entra ID to Oleria for single sign-on and SCIM provisioning, covering both the Main Workspace and the Governance App, and Entra's one-Entity-ID-per-app rule.","href":"/administration/entra-sso-scim-setup"}]},{"title":"Email notifications","href":"/administration/email-notifications"},{"title":"Ticketing","href":"/workspace/ticketing-overview"},{"title":"Audit log","href":"/governance/audit-log-overview"}]},{"group":"Support","pages":[{"title":"Support","href":"/support/overview"},{"title":"Help","href":"/support/help"}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/developer-docs/api-reference/overview"}]},{"tab":"What's New","pages":[{"title":"What's New","href":"/release-notes"}]}]},"basePath":"","title":"Okta: end-to-end SSO and SCIM setup - Oleria Identity Security","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-DTFzvaXJ.js","lightbox-handle-r17bVUz3.js"]}