Open-source alternatives to Okta

Keycloak, authentik and ZITADEL can each cover most workforce SSO needs for SAML and OIDC apps. The real decisions are directory federation, how users and MFA enrollments move, and who runs the platform.

On this page

Which open-source alternative to Okta fits your renewal or residency problem

If your problem is a renewal or a pricing change, Keycloak is usually the first option to evaluate for workforce SSO, because it is Apache 2.0 licensed, speaks OpenID Connect, OAuth 2.0 and SAML 2.0, and federates existing LDAP and Active Directory directories. If you need data to stay in your own cloud account or data center, any of the self-hosted options fits, and the choice then depends on protocol coverage and team skills. authentik is a good fit when you want a lighter administration model with a community edition under MIT, but you should confirm which directory and provisioning features you need are in the free edition, since its enterprise directory sits under a separate license. ZITADEL suits organizations that also need multi-tenant structures, since it isolates data and policies across an Identity System, Organizations and Projects.

Teams review Okta for reasons that are usually about cost structure, contract terms and where identity data lives, not about the protocols themselves. Before comparing options, pull the commercial terms from your own contract and renewal notice, since this page does not assume any pricing or licensing detail for Okta. Then inventory what you actually depend on: the SAML and OIDC applications registered with the tenant, LDAP or Active Directory sources, SCIM provisioning, and the MFA factors your users have enrolled. Okta documents three ways to export a list of active users (the Password Health report CSV, the community Rockstar browser extension, and the List Users API with a filter), so confirm which of these your administrators can run and whether the export includes the attributes your applications need.

Lock-in risk is mostly about what you can take with you. Ask your Okta administrator or partner how user records, group memberships and application assignments can be exported, and whether password hashes can be exported at all, which generally requires a vendor process rather than a self-service report. Plan for the fact that passwords and MFA enrollments usually do not carry over in a standard export, so the cutover plan needs a reset or re-enrollment path for each user group. For residency requirements, document where identity logs, session data and directory replicas will be stored, and confirm the target platform's backup approach. The Keycloak realm export and import process is documented as having limitations as a backup mechanism and requires all nodes to be stopped while it runs, so plan backups separately.

Which self-hosted Okta alternative to shortlist

Keycloak, authentik and ZITADEL each cover the core workforce SSO job of issuing OIDC and SAML sign-ins for internal applications. They differ in licensing, support model and how they handle directory federation, so the shortlist should follow your application mix and your appetite for paid enterprise tiers.

Keycloak for broad protocol coverage

Keycloak is licensed under Apache 2.0 and is a Cloud Native Computing Foundation incubating project. It supports OpenID Connect, OAuth 2.0 and SAML 2.0, and it has built-in user federation with existing LDAP and Active Directory servers, which makes it a common first check for workforce SSO. The main trade-off is operational: you own clustering, upgrades and backups, and the export and import commands for realms have documented limits as a backup method. Confirm your SAML application list against the vendor documentation before you commit.

authentik for a lighter admin model

authentik's open-source core is MIT licensed, and the free edition supports OIDC, SAML, LDAP, SCIM, RADIUS, Kerberos and proxy authentication. The enterprise directory sits under a separate authentik EE License, so check which features your workforce requirements need before you plan around the free edition. The main trade-off is support: the free edition has community support only, so a production SLA means a paid tier, and you should ask for that cost in writing.

ZITADEL for tenant-aware identity

ZITADEL is licensed under AGPL-3.0, with Apache 2.0 and MIT exceptions for specific directories. It supports certified OIDC, SAML 2.0, SCIM 2.0 and LDAP, and self-hosts with Docker Compose or Kubernetes on PostgreSQL 14 or later. Its Identity System, Organizations and Projects structure isolates data and policies at several levels, which suits multi-tenant setups. The main trade-off is the AGPL-3.0 license: have legal review how it applies to your deployment and any modifications before you rely on it.

Check the AGPL and EE terms early

Licensing differs across the three candidates, and it can decide the shortlist before any technical test. Keycloak's Apache 2.0 terms are the simplest for most internal teams, authentik's enterprise directory needs its own license, and ZITADEL's AGPL-3.0 has obligations that depend on how you distribute or expose modified code. Ask your legal team to review each license against your intended use, and record the decision in your architecture file.

Test each shortlisted option against real applications

Protocol support on a feature list does not show how a candidate handles your apps. Build a short test matrix covering one SAML service provider, one OIDC client, one LDAP or Active Directory federated group and one SCIM provisioning target. Record the configuration effort and any gaps for each candidate. Confirm the results with the vendor or your own environment rather than the marketing summary.

How Okta workforce capabilities map to open-source options

This table compares the main Okta workforce capabilities with the open-source platforms most often considered as replacements, and flags where your own testing must confirm coverage. Read each row against your app inventory and directory layout, because a yes in one platform can still hide a gap in a specific protocol feature, factor type or policy. The main takeaway is that SSO and directory federation map well to Keycloak, authentik and ZITADEL, while MFA policy depth, lifecycle automation and audit reporting need explicit validation before cutover.

CapabilityOpen-source coverageCoverage notes and what to confirm
SAML and OIDC app SSOKeycloak, authentik, ZITADELAll three support OIDC and SAML 2.0 per their published documentation. Test each app's exact metadata, signing and claim requirements.
LDAP and Active Directory federationKeycloak, authentik, ZITADEL, FreeIPAKeycloak has built-in user federation with LDAP and AD. FreeIPA can form mutual trusts with Microsoft AD. Confirm group mapping and write-back needs.
SCIM provisioningauthentik, ZITADEL, Keycloak (confirm)authentik and ZITADEL list SCIM support. Confirm whether Keycloak covers your SCIM target apps through an extension or custom connector.
MFA factor typesKeycloak, authentik, ZITADEL (confirm per factor)Confirm which factors you need, such as WebAuthn, TOTP, push or SMS, and whether each is available in the edition you plan to run.
Adaptive or risk-based policiesVaries by platform (confirm)Okta's policy engine behavior is hard to match one to one. Document your current rules and test each one against the candidate platform.
User lifecycle administrationauthentik, ZITADEL, Keycloak with custom automationJoiner, mover and leaver flows usually need HR source integration or scripts. Confirm which system is authoritative for user state.
Admin audit logs and API accessKeycloak, authentik, ZITADEL (confirm log retention)All three expose admin APIs. Confirm audit event coverage, export format and retention against your evidence requirements.
Directory and user exportKeycloak JSON realm export, Okta List Users APIOkta documents a filtered List Users API and a Password Health CSV. Keycloak realm export warns of backup limits and needs nodes stopped. Plan password and MFA re-enrollment.

Which Okta replacement fits your environment

If most of your workforce accounts live in Microsoft Active Directory, the first decision is whether the directory stays the source of truth. Keycloak has built-in user federation with existing LDAP and Active Directory servers, so it can authenticate staff against the current directory while handling SAML 2.0 and OpenID Connect for applications. authentik's free edition also supports LDAP and SCIM, which covers a similar pattern. Your migration then centers on applications and MFA rather than on moving every account.

  • Federation first: Keep Active Directory as the password store and let the open-source platform broker logins, which limits the number of credentials that change on day one.
  • Application inventory: List every SAML and OIDC relying party, including legacy apps, and confirm each one accepts the metadata and claim formats you plan to issue.
  • Attribute mapping: Check group, department and manager attributes, since access policies often depend on them.
  • MFA enrollment: Confirm whether existing Okta factors can be carried over or whether users must re-enroll, which is the usual reason enrollments reset.
  • Pilot group: Test with one application and a small user group before cutting over the rest.

Before deciding, confirm with the vendor how each candidate handles your exact Active Directory forest layout and your MFA factor types.

How Keycloak brokers LDAP and Active Directory logins

User federation lets Keycloak keep your existing directory as the source of truth for credentials and identity attributes, so the Okta replacement does not need a new password store on day one. In Keycloak, an LDAP or Active Directory provider is configured per realm. It authenticates users against the directory's bind, reads attributes such as usernames, email addresses and group memberships, and can import or cache them locally. Decide early which attributes Keycloak owns (for example, MFA settings and session policy) and which stay in the directory, because that split determines where a password change or account disablement takes effect. Keycloak's server documentation on importing and exporting realms is a useful reference, but federation settings are configured in the admin console and should be checked against your own directory schema.

SSO applications then authenticate against Keycloak as the broker, not against the directory itself. Each SAML 2.0 or OpenID Connect client is registered in Keycloak, and Keycloak performs the directory lookup and returns a token or assertion to the application. For users, the visible change is usually the login page and the redirect, while their directory password often stays the same. Okta's own tenant-level policies, such as sign-on rules and MFA enrollment, do not carry over automatically, so plan to recreate them as Keycloak authentication flows and required actions. FreeIPA is a separate option for Linux-heavy estates: it combines 389 Directory Server, MIT Kerberos and SSSD, and can create mutual trusts with Microsoft Active Directory, which lets you keep AD as the source of Windows identities while FreeIPA serves Linux hosts.

Treat the federation design as something to prove in a pilot before cutover. Use a test realm and a representative group of users, and confirm that group-based access, password expiry messages, account lockout behavior and attribute mapping work as your applications expect. Check how the directory bind account is secured and which LDAP attributes are read, and confirm that disabled accounts in AD stop working in Keycloak within the time you need. Run the pilot against each SAML and OIDC application, not only one, because claim and attribute mappings often differ between them. Capture the results in a written test record so the cutover decision rests on evidence, and confirm current federation options and supported directory versions with the Keycloak documentation before you commit.

What running self-hosted Okta alternatives costs over several years

This table separates the cost of a self-hosted Okta alternative into its components, marking which items are one-time and which recur, and what drives each. Use it to build a request for quotes and a multi-year model, since no open-source platform fee is charged and the real spend sits in infrastructure, people and support. The main takeaway is that tier choice, user count and upgrade cadence move the total more than the license itself.

Cost componentWho is paidOne-time or recurringWhat drives it
Software licenseNo license fee for Keycloak or ZITADEL; authentik charges for Enterprise tiersRecurring if you buy an authentik Enterprise subscription; otherwise noneChosen edition, support tier and whether you need Google Workspace or Entra ID integrations or PAM
Infrastructure hostingYour cloud provider or data centerRecurringNumber of nodes, HA design, database sizing on PostgreSQL, backup storage and regions
Implementation and integrationDeployOpen or your internal teamOne-timeNumber of SAML and OIDC applications, LDAP or Active Directory federation, and custom login flows
User and directory migrationDeployOpen or your internal teamOne-timeUser count, attribute mapping, and whether password hashes can be moved or users must reset
MFA re-enrollment and helpdeskYour helpdesk and end users' timeOne-time, with recurring resets for lost devicesShare of users with enrolled factors, and whether enrollment is staged by group
Upgrades and patchingYour platform team or a retainer partnerRecurringUpgrade cadence for the chosen release line, testing scope per application and change windows
Support and retainersVendor support contract or DeployOpen retainerRecurringSupport tier, response expectations, and whether 24/7 coverage is needed
Internal skillsYour staff or training budgetRecurringTeam familiarity with OIDC, SAML, LDAP and the chosen platform's operations model
Security testing and evidenceIndependent testers and your compliance teamRecurring, usually annualScope of assessment, audit evidence requirements and the number of exposed endpoints

What you give up when you leave Okta and how teams work around it

Moving workforce SSO off Okta trades a managed service for components your team operates. The cards below cover the gaps that usually surface during planning, with a workaround for each and the points to confirm against the exact product version you deploy.

Vendor-managed uptime and patching

Okta runs the identity service, its availability and its security patches. With Keycloak, authentik or ZITADEL, your team or your implementation partner owns high availability, node upgrades, certificate rotation and incident response. Plan a clustered deployment behind a load balancer, a tested upgrade runbook and a patch window that matches your change policy. Confirm the release cadence and the upgrade notes for the version you select, because a major release can change configuration keys and database schema.

Prebuilt application connectors

The Okta Integration Network offers ready-made connectors for many SaaS applications. Self-hosted platforms rely more on generic OIDC and SAML configuration, and some vendor-specific provisioning connectors may be missing or community-maintained. Inventory every app that uses Okta today, classify each as OIDC, SAML, SCIM or LDAP, and test the ones without a clear template first. Ask the application vendor for its SAML metadata and SCIM endpoint documentation before you commit to a platform.

Managed MFA and adaptive policies

Okta bundles factor enrollment, risk-based sign-in rules and device signals in one console. Open-source platforms provide MFA methods and policy engines of different depth, and some adaptive or device-trust features sit in paid editions. Write down the factors your policy requires, such as WebAuthn, TOTP or push, and the conditions that trigger step-up. Confirm each one against the edition and version you plan to run, and test enrollment for every user group before cutover.

Enterprise support tiers

Okta sells support contracts with defined response commitments. Open-source projects rely on community channels unless you buy vendor support or a retainer. For authentik, the free edition is community supported, while enterprise tiers add ticket-based support and, at the higher tier, SLAs. Decide which severity levels need a named responder, and put that in a written support agreement with your provider or vendor. Confirm current support terms directly, since they change with editions.

Kubernetes and PostgreSQL skills

Self-hosted identity becomes a stateful, security-critical service. Keycloak, authentik and ZITADEL depend on a database, and ZITADEL documents PostgreSQL 14 or later with Docker Compose or Kubernetes deployment. Your team needs staff or a partner who can run backups, point-in-time recovery, database failover and cluster scaling. Keycloak's realm export is not a complete backup mechanism and requires stopping all nodes, so plan a separate database backup strategy and rehearse restores.

How to move users, apps and MFA off Okta step by step

This sequence moves workforce sign-in from Okta to a self-hosted platform in controlled stages, so each application is proven before Okta is switched off. It produces a verified user migration, a tested set of applications and a documented decommission record.

  1. Inventory applications, protocols and directory links

    Your identity team lists every application that signs in through Okta, with its protocol (SAML 2.0, OIDC or OAuth 2.0), its owner, its login URL, the claims or attributes it expects and any LDAP or Active Directory connection Okta uses for user sourcing. Application owners confirm the list, and the inventory also records where MFA is enforced through Okta policies and which apps rely on SCIM provisioning. The step is done when every app has a row with an owner and a protocol, and when the team agrees which apps are in the first pilot.

  2. Export the active user list

    Okta documents three ways to pull a list of active users: the Password Health report CSV in the Admin Console, the community Rockstar browser extension, or the List Users API with a filter. For a repeatable migration, the List Users API is the option most teams script, because it can be rerun and filtered to active accounts. The export contains profile attributes only. Passwords and enrolled MFA factors do not come out in this export, so treat the file as an identity list, not a credential backup. The step is done when the record count matches what the Admin Console shows for active users.

  3. Map attributes and decide how users load

    Map each Okta profile attribute to the target identity model, for example login name, email, first and last name, department and manager, and any custom attributes that application claims depend on. Decide whether users are loaded by CSV import, by scripted calls to the target administration API, or by federating an existing LDAP or Active Directory source, which Keycloak supports through built-in user federation. Confirm with the target platform's documentation how each attribute is stored and whether it can appear in tokens. The step is done when a mapping document is signed off and a test import of a few accounts shows the expected attributes.

  4. Pilot with one or two applications

    Choose one or two low-risk applications that use OIDC or SAML and stand up the target realm or instance for them alone. Users in the pilot group sign in to the new platform while everyone else stays on Okta. The team tests login, logout, group or role claims, session timeouts and the MFA prompts users will see. Passwords are not carried over, so pilot users set new passwords or complete a first-login reset. The step is done when the pilot group has signed in successfully for a full working cycle and the issues log is empty or each open item has an owner.

  5. Re-enroll MFA and communicate password resets

    Because MFA enrollments usually do not carry over with the user list, plan re-enrollment before the broader cutover. Prepare user communications that explain the new sign-in page, the new password reset path and how to register authenticators again, and set up help desk scripts for identity verification before a reset or factor reset. Confirm with the target vendor exactly which authenticator types it supports, such as TOTP, WebAuthn or hardware keys. The step is done when the help desk has a verified reset procedure and the communication has been reviewed by security and HR.

  6. Run in parallel, then cut over application by application

    Keep Okta active while more applications move to the new platform in waves. For each application, update the redirect URIs, client secrets or SAML metadata, test a sign-in end to end and then switch the application to the new identity provider. Keycloak's realm export is documented as a way to move configuration between environments, but its documentation warns of limitations as a backup and restore method and says all nodes must be stopped while the export or import runs, so plan that outage window in advance. The step is done when each wave has a signed-off test record and no application still depends on Okta for sign-in.

  7. Decommission Okta and retain evidence

    Once every application has cut over, disable Okta sign-in, revoke the integration tokens and API keys, and remove any SCIM or directory agents that still point at Okta. Keep the Okta audit logs, the export files and the cutover records under your retention policy, and confirm your contract terms for data return or deletion with Okta. Your compliance team records the final state, including how access reviews and logging now work on the new platform. The step is done when no Okta tenant is in use for authentication, the retention record is filed and the contract exit is confirmed in writing.

Questions buyers ask before replacing Okta

Do passwords and MFA enrollments carry over when moving off Okta?

Usually not automatically, and you should plan for users to re-enroll MFA. Okta does not hand over password hashes in a standard user list, so the export described in the Okta support documentation covers only identity attributes such as active users, not credentials. Keycloak, authentik and ZITADEL each store their own credential and factor records, so the realistic path is to create accounts, then have users set a new password and enroll an authenticator at first login. Some teams use a staged cutover where users keep their current password through federation to the old directory until they are moved. Confirm with your identity team which factor types (TOTP, WebAuthn, push) each user relies on, and confirm whether any hash migration is possible before you design the cutover.

What does the Okta user export include, and what does it leave out?

Okta documents three ways to list active users: the Password Health report CSV in the Admin Console, the community Rockstar browser extension, or the List Users API with a filter. Each gives you profile attributes and status, but none is a complete record of groups, app assignments, policies, factor enrollments or credentials. Plan to export groups and app assignments separately through the API, and treat the output as a data-protection record because it contains personal data. Ask your team to compare the exported count against active users in the admin console before importing anything.

Will our SAML and OIDC applications need changes?

Most will need configuration changes, though the protocols themselves are supported. Keycloak supports OpenID Connect, OAuth 2.0 and SAML 2.0, and authentik's free edition supports OIDC and SAML, while ZITADEL supports OIDC, SAML 2.0 and SCIM 2.0. Each application still needs a new client or SAML entity, new redirect URIs, new signing certificates and updated metadata. Attribute mapping, group claims and logout behavior often differ from Okta, so test each app with a copy of real login flows. Build an inventory of applications first, since the number of SAML entities and custom claims is the main driver of effort.

What skills does an in-house team need for a self-hosted identity platform?

Your team needs people who can run a stateful, internet-facing authentication service and understand the protocols it implements. In practice that means container or Kubernetes operations, PostgreSQL administration (ZITADEL requires PostgreSQL 14 or later), TLS and certificate management, directory concepts for LDAP and Active Directory federation, and SAML and OIDC troubleshooting. You also need someone to own backups and upgrades. Keycloak's export and import process requires stopping all nodes while it runs, so restore procedures must be rehearsed. Inventory these skills against your staff before choosing a platform.

Can our team migrate from Okta without outside help?

A capable platform team can do it alone, provided it has time, a tested runbook and someone accountable for security decisions. The hardest parts are usually not the software install but the application inventory, the MFA re-enrollment communication, and the cutover order for dependent systems. Teams often choose a fixed-scope engagement for the design and first migration wave, then keep ongoing operations in-house or under a retainer. DeployOpen plans, implements, integrates, hardens, backs up and documents self-hosted platforms in your own infrastructure, and quotes follow from a written scope. Ask for a scope that names the applications, directories and compliance evidence included.

How long does an Okta replacement take?

No duration can be stated from the researched facts for this migration, so confirm it in your written scope. The main drivers are the number of applications, how many use SAML versus OIDC, the size of the user base, whether Active Directory or LDAP federation must remain during a transition, and how many MFA methods must be re-enrolled. A phased approach, moving one application group at a time, lets you measure progress and roll back. Ask any vendor or partner to break the timeline into discovery, build, pilot, cutover and decommissioning phases.

Which license terms should we check before choosing a platform?

Check the license of each component you plan to run, because the terms differ. Keycloak is licensed under the Apache License 2.0. The authentik core is MIT licensed, but its enterprise directory is covered by the authentik EE License, and the free edition offers community support only. ZITADEL is licensed under AGPL-3.0 with Apache 2.0 and MIT exceptions for specific directories, which can affect how you modify and distribute it. Ask legal counsel to review whether you need enterprise features such as Microsoft Entra ID integration or SLAs, and what the AGPL obligations mean for your internal changes.

What changes for your users and help desk during cutover

The biggest user-facing change in an Okta exit is that the login experience moves to a new host. Users will see a new sign-in page, a new domain in their browser address bar, and, for many applications, a new redirect URI registered in each relying party. Before any user is moved, list every OIDC client and SAML service provider and record its current callback URL, its logout URL and its SAML entity ID. The redirect URI inventory is the single most common cause of failed cutovers, because an application that still points at the old Okta tenant will fail at sign-in with an error that looks like a configuration problem rather than a migration problem. Confirm with each application owner whether the app can register two redirect URIs during the transition period so both platforms can serve users in parallel.

Multi-factor enrollments are the part most likely to generate tickets. Okta factor enrollments, such as authenticator apps and hardware keys, are stored in Okta and do not carry over with the user list, so each user will have to enroll again on the new platform. Keycloak, authentik and ZITADEL each manage their own credential and factor models, so confirm which second factors your policy requires and whether each platform supports them for your user population before you write the enrollment instructions. Password reset flows also change. If passwords are not migrated, which is the usual case when the source system does not expose hashes, users will need a reset path on day one. Plan a self-service reset with identity verification that your help desk can trust, and test it with a pilot group before general release.

How to decide between Keycloak, authentik and ZITADEL

This sequence narrows the three self-hosted candidates by the requirements that are hardest to change later, from directory and protocol needs through to skills and a pilot. It ends with a decision record that the platform team and security owners can sign off before any migration work starts.

  1. Map directory and federation needs

    Start by listing where your users live today: Active Directory forests, LDAP directories, HR-driven provisioning and any Okta-side directories or groups. Identify who owns each source and whether the new platform must read from it, write to it or only sign users in against it. Keycloak has built-in user federation with existing LDAP and Active Directory servers, and FreeIPA can form mutual trusts with Active Directory, so note whether you need a directory service in addition to an SSO layer. Confirm the output with your directory owners. Done means a written table of user sources, the direction of sync and the group structures each application depends on.

  2. Inventory every application and its protocol

    Export your Okta application list and record, for each app, whether it uses SAML 2.0, OpenID Connect, OAuth 2.0, SCIM provisioning, LDAP bind or a forward-auth proxy. Mark apps where the vendor documentation limits the supported protocols or where the team that owns the app is unknown. Keycloak supports OpenID Connect, OAuth 2.0 and SAML 2.0. authentik's free edition supports OIDC, SAML, LDAP, SCIM, RADIUS, Kerberos and proxy authentication. ZITADEL supports certified OIDC, SAML 2.0, SCIM 2.0 and LDAP. Confirm each candidate against your real list in a test tenant rather than from marketing summaries. Done means a protocol matrix in which every application maps to at least one candidate or is flagged for a gap decision.

  3. Assess multi-tenant and organization needs

    Decide whether this deployment serves one workforce or several organizations, subsidiaries, or customer-facing tenants. A single-workforce deployment usually has simpler tenancy requirements than a platform that must keep data and policies apart for many customers. ZITADEL structures tenants as Identity System, Organizations and Projects, with data and policies isolated at several levels, which suits multi-tenant customer identity. Keycloak realms provide separation, though you should confirm the model fits your administration boundaries. Done means a short statement of tenancy, administrator boundaries and the number of realms or organizations you expect to run.

  4. Compare license, support and edition requirements

    Record your licensing constraints and support expectations before you compare features. Keycloak is licensed under Apache 2.0 and is a CNCF incubating project. authentik's core is MIT licensed, but its enterprise directory is under a separate authentik EE License, and features such as privileged access management, Google Workspace and Microsoft Entra ID integrations sit in the Enterprise edition. ZITADEL uses AGPL-3.0 with Apache 2.0 and MIT exceptions for specific directories, so have legal review how AGPL terms apply to your use and any modifications. Ask each vendor which support tiers include SLAs and which features are paid. Done means a legal sign-off note and a list of features you need that sit behind a paid edition.

  5. Evaluate internal platform skills and operating model

    Identify who will run the platform after go-live: patching, upgrades, backups, monitoring, and incident response. Keycloak runs on Java and its realm export and import process has limitations as a backup mechanism, with all nodes stopped during the operation, so plan a separate backup approach. ZITADEL self-hosts with Docker Compose or Kubernetes on PostgreSQL 14 or later. authentik requires its own container stack and database. Score each candidate against the skills your team already has and the platforms you already operate. Done means a named owner for each operational task and a skills gap list that either your team or an implementation partner will cover.

  6. Run a pilot with a representative application set

    Build a test environment in your own infrastructure and connect a representative set of applications, including at least one SAML app, one OIDC app, one LDAP-dependent app and one application with SCIM provisioning if you use it. Test MFA enrollment, group-based access, and login flows for each candidate. Document where each platform needs custom configuration or cannot meet a requirement. Confirm the pilot results with the application owners. Done means a signed pilot report that records pass or fail for every test case and a single recommended candidate, or a decision to split the estate across platforms.

  7. Record the decision and the exit criteria

    Write the selected platform, the rejected options and the reasons into a decision record. Include the criteria that would trigger a re-evaluation, such as a change in license terms, a missing protocol required by a new application, or a support gap. Store the record with the architecture documentation so that auditors and future owners can see why the choice was made. Done means an approved decision record that lists owners, the review date and the migration prerequisites, such as the user export approach from Okta covered in the migration section of this page.

How DeployOpen scopes, migrates and supports an Okta replacement

DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source identity platforms inside your own cloud accounts, data centers or air-gapped networks. For an Okta replacement, the work starts with a written scope that lists every application, directory and user population that has to keep signing in during the move.

How we scope

  • Inventory every SAML and OIDC application, its redirect URIs, claims and session rules before choosing a platform
  • Map LDAP and Active Directory sources, group logic and any trust relationships that must survive the cutover
  • Agree the written scope, deliverables and timelines in writing before work starts, since most engagements are fixed-scope

How we build

  • Deploy the chosen platform, such as Keycloak, authentik or ZITADEL, in your environment with your hardening baseline
  • Configure federation, user import and MFA enrollment paths, then test each application against a staging tenant
  • Run security testing of the login flows and administrative interfaces, and document the results for your review

How we hand over

  • Deliver runbooks for backup, restore, upgrades and realm or organization configuration owned by your team
  • Document the user export method used, the reconciliation checks run, and the decisions made about password and MFA resets
  • Provide an application-by-application cutover record so your change board can approve each step with evidence

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover
  • Patch and upgrade planning follows the vendor release cadence, with testing before each change reaches production
  • Compliance readiness work prepares systems and evidence for your assessor, while the auditor issues any report

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.