Microsoft Entra ID vs ZITADEL: which fits your application sign-in
Microsoft Entra ID fits organizations that want a managed identity service tied to Microsoft 365 and Azure, while ZITADEL fits teams that want self-hosted OIDC, SAML and SCIM on PostgreSQL in a location they choose. If your review of application sign-in is driven by cost, data location or lock-in, the decision turns on three questions: which Entra ID P1 and P2 features your applications depend on, who will run the platform day to day, and whether Entra ID stays in place as an upstream identity provider. ZITADEL can federate login with Entra ID over OIDC or SAML, so the two do not have to be an either-or choice.
Start with the features. Conditional Access and identity protection are licensed under Entra ID P1 and P2, and ZITADEL does not replace them as a feature set. List every policy your applications rely on, such as MFA for administrators, location-based blocking or risk-based step-up, and confirm with ZITADEL which of them you can rebuild with its own login policies and which need a separate control. Ask Microsoft which licenses your tenant holds, since some are already bundled in Microsoft 365 plans, and check the current feature split on the Entra ID documentation before you assume anything about your own tenant.
Then decide who operates the platform. ZITADEL runs as a self-hosted service on Docker Compose or Kubernetes with PostgreSQL 14 or later, and the official Helm chart is the recommended route for high availability. Someone must own upgrades, database backups, certificates and on-call response, and that cost recurs for as long as you run it. Keep Entra ID as a federated upstream if Microsoft 365 sign-in must stay where it is, and move only the application logins that you can support yourself. Check the ZITADEL self-hosting overview and confirm the supported database versions in the ZITADEL database documentation against your own platform standards before you choose a deployment target.
Which option fits which scenario
This table matches common situations to the option that fits better, with the reason tied to what each platform does. Read each row as a starting point: Entra ID remains the stronger choice wherever Microsoft 365 sign-in is the main requirement, while ZITADEL suits application login that you need to host and organize yourself.
| Scenario | Better fit | Reason |
|---|---|---|
| Microsoft 365 and Azure sign-in already in place | Microsoft Entra ID | Entra ID is the identity service behind Microsoft 365 and Azure, so ZITADEL cannot replace that sign-in path. |
| Customer-facing login for a SaaS product | ZITADEL | ZITADEL organizes tenants as instances, organizations and projects, which fits customer login with data isolated per tenant. |
| Multi-tenant B2B with a separate identity provider per customer | ZITADEL | Each customer organization in ZITADEL can use a different identity provider, including Entra ID, Okta or an OIDC-compliant provider. |
| Data residency in a location you choose | ZITADEL | Self-hosted ZITADEL runs on PostgreSQL in infrastructure you select, so identity data stays where you place it. |
| Air-gapped or restricted networks | ZITADEL (self-hosted) | Entra ID is a cloud service, so isolated networks need an identity stack they run themselves. Confirm your offline patching and update process before choosing. |
| Teams without platform operations staff | Microsoft Entra ID | Self-hosting ZITADEL means you run the PostgreSQL database, upgrades and high availability. Confirm whether a managed or partner-supported option meets your needs before deciding. |
| Passkey and passwordless sign-in for applications | ZITADEL | ZITADEL supports passkeys based on FIDO2 and WebAuthn with fallback to password login, and you control how it is configured. |
| Entra ID P1 or P2 conditional access and risk features | Microsoft Entra ID | ZITADEL does not replace the Entra ID P1 and P2 features, so keep Entra ID where those policies are required. |
How the protocols, provisioning and passkeys compare
ZITADEL implements OpenID Connect, OAuth 2.0 and SAML 2.0, and it provides a device authorization grant for devices such as smart TVs. For most modern web and mobile applications, the OIDC route is the cleaner migration path, because the client registration, redirect URIs and token claims can be reviewed directly. SAML applications take more work, since the signing certificate, the assertion attributes and the name ID format each have to match what the service provider expects.
- OIDC and OAuth 2.0: Confirm which grant types each application uses, such as authorization code with PKCE, and whether any app relies on the implicit flow.
- SAML 2.0 signing: Check whether each service provider requires signed assertions, signed requests or encrypted assertions, and which certificate it trusts.
- Token claims: Compare the claims Entra ID emits today, such as roles, groups and preferred username, with what ZITADEL places in tokens for the same app.
- Device flows: Only apps that use the device authorization grant can rely on it, so confirm this with each vendor before assuming it works.
- Test environment: Run a staging client against a test organization and record the exact claims and assertion attributes received.
Before cutover, verify each protocol path against the application vendor's documentation rather than the product comparison alone.
ZITADEL provides a SCIM v2 service provider interface for standardized user provisioning and lifecycle management. That lets an upstream system create, update and deactivate users in ZITADEL without manual steps, which is the function that Entra ID's provisioning service performs for enterprise applications. The question for each application is whether it accepts SCIM as the push mechanism, or whether it needs group sync, custom attributes or a different connector.
- Lifecycle coverage: Confirm which operations each target application needs, such as create, update, deactivate and group membership changes.
- Attribute mapping: List the attributes Entra ID currently sends, including department and on-premises identifiers, and map each to a ZITADEL user attribute.
- Deprovisioning behavior: Test how a disabled user is handled in each target app, since some apps keep local accounts after a SCIM disable.
- Source of truth: Decide whether Entra ID, a directory such as Active Directory, or ZITADEL holds the authoritative record during the transition.
- Group and role mapping: Confirm how groups become ZITADEL roles and grants, and how those grants appear in application tokens.
Confirm SCIM details, filters and patch support with the ZITADEL SCIM documentation and the target application before you rely on automated provisioning.
ZITADEL supports passwordless login with passkeys based on FIDO2 and WebAuthn, and it falls back to password login when a user has no passkey registered. Passkeys are registered per user, so the rollout depends on how many users enroll, which authenticators they use and whether the fallback policy is set to match your risk tolerance. Entra ID offers passkey and FIDO2 sign-in as well, so the comparison is about enrollment flows, recovery and policy control rather than the existence of the feature.
- Enrollment path: Decide whether users register passkeys at first login, through a self-service page, or through an administrator-assisted process.
- Fallback policy: Confirm when password login remains available and whether any group, such as administrators, should be forced to passkeys only.
- Recovery: Define how a user recovers access when a device is lost, and who verifies the request.
- Relying party configuration: Passkeys are bound to the domain, so confirm the domain and subdomain plan before enrolling users.
- Device support: Test the authenticators your staff actually use, including platform authenticators and hardware security keys.
Where a regulator or internal policy sets authentication assurance levels, have your assessor or compliance lead confirm how passkey sign-in maps to those requirements.
ZITADEL can federate login with upstream providers, including Entra ID, Okta, Google, GitHub, GitLab, Apple, Keycloak, LDAP and OpenLDAP, and any OIDC-compliant provider. Each customer organization can use a different identity provider, which matters when some users sign in through Entra ID while others sit in a directory that ZITADEL reads directly. Federation to Entra ID is a useful bridge during a phased move, because the existing tenant can remain the source for Microsoft 365 while ZITADEL handles application login.
- Entra ID as upstream: Register ZITADEL as an application in the Entra tenant and confirm which claims come back and which user identifiers are stable across the two systems.
- LDAP and OpenLDAP: Confirm the bind account, the search base, the attributes used for login and whether group membership is read.
- Per-organization providers: Map which customer organizations or tenants use which upstream provider, and document the fallback when one provider is unavailable.
- Account linking: Decide how an existing local account is matched to a federated identity when the same person signs in through two providers.
- Entra ID features: Conditional Access and other Entra ID P1 or P2 policies apply only to sign-ins that pass through Entra ID, so confirm which controls still run there.
Validate each federation path end to end with test accounts, and confirm the LDAP and Entra ID settings against the current ZITADEL identity provider documentation.
Capabilities side by side
This table compares Microsoft Entra ID with self-hosted ZITADEL for sign-in to applications outside Microsoft 365, row by row across protocols, provisioning, passkeys, tenancy, federation, database, hosting, licensing and export. Entries marked as points to confirm depend on your tenant licensing or deployment, so verify them before you decide.
| Capability | Microsoft Entra ID | ZITADEL (self-hosted) |
|---|---|---|
| Protocols | OpenID Connect, OAuth 2.0 and SAML 2.0 for enterprise applications; confirm the exact app types your tenant license covers | OpenID Connect, OAuth 2.0 and SAML 2.0, plus a device authorization grant for devices such as smart TVs |
| SCIM provisioning | Provisioning to supported SaaS apps through the Entra admin center; confirm connector coverage for each target app | SCIM v2 service provider interface for standardized user provisioning and lifecycle management |
| Passkeys | Passkey support is available in the Entra admin center; confirm the methods enabled for your tenant and policies | Passwordless login with FIDO2 and WebAuthn passkeys, with fallback to password login |
| Multi-tenancy model | Single tenant per directory; confirm how B2B and external identities are handled for your use case | Instances (fully isolated virtual tenants), organizations inside instances, and projects grouping apps, roles and grants |
| Federation to other identity providers | Federation and external identity options are available; confirm which external providers your tenant can use | Google, GitHub, GitLab, Apple, Entra ID, Okta, LDAP, OpenLDAP, Keycloak and any OIDC provider, with a different provider per organization |
| Database | Managed by Microsoft; not configurable by the customer | PostgreSQL 14 through 18; you operate and back up the database |
| Self-hosting options | Cloud service only; identity data sits in Microsoft-managed locations, so confirm the tenant location with Microsoft | Linux and macOS binaries, Docker Compose or Kubernetes, with the official Helm chart recommended for high availability |
| Licensing | Commercial subscription; Conditional Access requires Entra ID P1 and risk-based policies require P2 | Core under AGPL-3.0, with APIs, SDKs, Helm charts and Terraform configurations under Apache 2.0 |
| Bulk export of users | User list download as CSV from the Entra admin center, with default attributes; app registrations and policies must be rebuilt | Confirm export and migration tooling for your version; migration guides cover Auth0, Keycloak, Firebase and other ZITADEL instances |
Where identity data lives and who controls it
Entra ID and self-hosted ZITADEL differ mainly in who decides where identity data sits and who runs the database, upgrades and backups. The cards below cover each of those decisions, along with the license and evidence questions that follow from them.
Entra ID tenant location
Entra ID is a managed cloud service, and the tenant location is chosen by Microsoft rather than by your organization. Ask Microsoft in writing where tenant data is stored, which regions back up or replicate it, and which parts, such as MFA data, can be processed outside your chosen geography. Record the answers before you map them against your data residency rules.
ZITADEL on your own infrastructure
Self-hosted ZITADEL runs on Linux or macOS binaries, Docker Compose or Kubernetes, so the identity data lives in the location and cloud accounts you select. The official Helm chart is the documented route for high availability on Kubernetes. Confirm the cluster, network and failover design with your platform team before any application moves over.
PostgreSQL and its operating duties
PostgreSQL is the only supported database for self-hosted ZITADEL, so every identity record depends on it. Your team owns the database version, patching, replication, backups and restore tests, which Entra ID handles inside the service. Ask who on your side holds these duties, and check that the database version you choose falls within the supported range.
AGPL-3.0 obligations for changes
ZITADEL's core, Console and hosted login are under AGPL-3.0, while APIs, SDKs and Helm charts remain Apache 2.0. If you modify the core and offer it to users over a network, the AGPL terms require you to make your modified source available to those users. Have counsel confirm how this applies to your planned customizations before you build them.
Instances, organizations and projects
ZITADEL separates identity data into instances, which are virtual tenants with full data isolation, then organizations and projects inside them. This suits separating customer populations or business units, but it does not replace Entra ID tenant boundaries for Microsoft 365 users. Map each tenant to a data owner and test that users in one organization cannot see another's records.
Compliance evidence and auditor roles
DeployOpen can plan, configure and document the identity controls, logs, backups and access reviews that an assessment will examine. Independent auditors and certification bodies issue any report or certification, so DeployOpen does not. Ask your auditor early which evidence they need from ZITADEL and from the Entra ID service they still rely on.
Which Entra ID P1 and P2 features ZITADEL does not replace
Conditional Access, risk-based sign-in and user risk policies are licensed features of Entra ID P1 and P2, and they do not move to ZITADEL. ZITADEL can enforce its own login policies, such as password and passkey requirements, but it does not reproduce Entra's signals from Microsoft's sign-in telemetry or its risk engine. Before you decide, list every Conditional Access policy that applies to the applications in scope, and mark each one as either a rule you can rebuild with ZITADEL's login policies and your own network controls, or a rule that depends on Entra's risk signals. That list is the core input for the migration decision.
Microsoft 365 sign-in is the other dependency. Exchange Online, SharePoint, Teams and the Microsoft 365 admin center authenticate against Entra ID, and ZITADEL cannot replace that role. The practical pattern is federation: you configure Entra ID as an identity provider inside ZITADEL, so people who hold Entra accounts sign in through ZITADEL for your own applications while Entra remains the authority for Microsoft services. Confirm with your Entra administrator which Microsoft workloads depend on the tenant and whether the Entra accounts used for federation are licensed for the features you still need.
Entra-native governance features such as entitlement management, access reviews and lifecycle workflows also stay in Entra unless you move them to a separate governance product. ZITADEL provides SCIM 2.0 provisioning, which covers much of the account lifecycle, but it does not run certification campaigns or approval workflows. Ask your team to inventory which groups, access packages and review cycles are used today, who owns them, and whether an audit requirement depends on them. Plan for those controls explicitly so they are not lost during cutover.
What you pay for in each option
Entra ID is paid for through Microsoft licensing, usually per user and per month, and the amount depends on the plan and the add-ons your tenant holds. Some Microsoft 365 plans already include Entra ID features, so part of the cost may already sit in a contract you pay for. Check which Entra features your current plans include before you attribute any cost to identity alone.
- Base and add-on tiers: Entra ID P1 and P2 are separate per-user licenses, and features such as conditional access and risk-based policies depend on which tier you hold.
- Bundled entitlements: Some Microsoft 365 plans include Entra ID capabilities, so the incremental cost may be lower than the list price suggests.
- Application re-registration: Moving apps to a new identity provider means rebuilding enterprise app registrations, claims, groups and policies, which is staff time and testing rather than a license line.
- Recurring versus one-time: Licenses recur every billing period, while re-registration and rollout work is usually a one-time project.
- Cost drivers: User count, which tiers you need, and whether Microsoft 365 contracts already cover the features you use.
Ask your Microsoft partner or account team to itemize each Entra license against the features you actually use.
Self-hosted ZITADEL is open source, so there is no per-user license fee. The cost is the infrastructure it runs on, the PostgreSQL database behind it, the staff who operate it and the integration work to connect your applications. ZITADEL documents PostgreSQL versions 14 through 18 and supports Docker Compose, Kubernetes and binaries, so the platform choice affects the operations effort.
- Infrastructure: Compute, storage, load balancing and, for high availability, a Kubernetes cluster with the official Helm chart, which ZITADEL recommends.
- Database: A managed or self-run PostgreSQL service, including backups, replication and patching.
- Upgrades and support: Staff time for upgrades, security patches and monitoring, plus any paid support contract you choose.
- Integration work: Re-pointing applications, configuring identity providers and migrating users, which is often the largest one-time item.
- Cost drivers: Required availability, number of instances and organizations, the operating model and in-house skills.
Ask for the infrastructure and operations assumptions behind any estimate, including who patches the database and who answers incidents.
A useful quote puts both options on the same line items, over the same period, with the same user counts and features. Without that, a comparison mixes subscription fees with one-time labor and hides the costs that recur. Written scope also matters, because integration and migration effort varies with the number of applications and identity sources.
- Licensing baseline: Per-user Entra ID licenses by tier, with the features each tier covers, and which are already included in your Microsoft 365 plans.
- Infrastructure plan: Sizing for compute, storage and PostgreSQL, with the high availability design and recovery targets you require.
- Operations scope: Who handles upgrades, patching, backups, monitoring and on-call support, and the response commitments in writing.
- Migration scope: The applications, protocols (OIDC, SAML, SCIM) and identity sources to integrate, plus testing and cutover steps.
- Recurring and one-time totals: A split of annual recurring costs from the one-time project costs for both options over the same period.
Request these in a fixed-scope written proposal so that every assumption is visible before work starts.
Cost components on each side
Entra ID is priced as a subscription that sits inside Microsoft licensing, while self-hosted ZITADEL moves the cost into servers, database operations and staff time. The cards below set out who pays for each component, which costs are one-time and which recur, and what to request in a quote before comparing totals.
Licensing
Entra ID charges per user or per feature tier, and some capabilities may already be included in Microsoft 365 plans, so check your current agreement before counting it as new spend. ZITADEL's core is licensed under AGPL-3.0, so there is no per-user license fee for the software itself. Confirm with ZITADEL and your legal team what the AGPL obligations mean for any modifications you make and how you expose them to users. Ask whether a support or hosted offering is part of the decision.
Infrastructure and hosting
On the Entra side, the hosting is Microsoft's and is included in the subscription. For ZITADEL, you pay for compute, networking and storage in the location you choose, and that cost recurs every month. Costs rise with the number of instances, the high availability layout and the regions you need for data location. Sizing depends on your user volume and login pattern, so ask your team to model it from the official self-hosting guidance.
Database operations
ZITADEL stores its data in PostgreSQL, with versions 14 through 18 supported, so you need a PostgreSQL service with backups, patching and capacity planning. This is a recurring cost in staff time or a managed database fee. Entra ID has no database for you to run. Check which PostgreSQL version your platform team already supports before choosing a deployment target, because an unsupported version adds a one-time upgrade project.
High availability and upgrades
Keeping ZITADEL available is a recurring engineering cost that Microsoft carries for Entra ID. ZITADEL recommends Kubernetes with the official Helm chart for high availability, which means cluster operations and on-call coverage. Upgrades are a recurring task, and each release, such as v4.19.5, needs testing against your login flows, custom branding and integrations. Ask for a documented upgrade and rollback procedure before you commit.
Backup, restore and monitoring
With ZITADEL, backups of the PostgreSQL database, encryption keys and configuration are your responsibility, and restore tests are a recurring cost you should budget for. Monitoring of login latency, certificate expiry and failed sign-ins also falls to your team. Entra ID's availability and recovery are the vendor's responsibility, though you still need an exit plan for your own configuration. Ask your provider how they test restores and what alerts they configure by default.
Integration, migration and staff time
Moving application sign-in from Entra ID to ZITADEL is largely a one-time project: re-registering applications, mapping claims, rebuilding roles and grants, and testing each SAML or OIDC relying party. Ongoing identity administration, such as onboarding customers, rotating certificates and reviewing federation settings, becomes internal staff time. Ask for a written scope that names the applications, the number of identity providers and the testing responsibilities, since these drive the one-time cost most.
Support and compliance evidence
Entra ID comes with Microsoft's support plans and documentation, and its compliance reports are provided through Microsoft's own programs. A self-hosted ZITADEL deployment needs a support arrangement, whether that is an internal rota, a vendor contract or a retainer, and you must produce your own evidence for controls such as access reviews and change records. Independent auditors issue any audit reports, so ask your assessor early which evidence they will request.
What a move from Entra ID to ZITADEL involves
The sequence moves application sign-in from Entra ID to a self-hosted ZITADEL instance in a location you choose, with each app switched over and tested before its Entra registration is retired. Microsoft 365 sign-in and Entra-only features stay where they are unless you plan separately for them.
Inventory applications and Entra registrations
Your identity or platform team lists every application that signs in through Entra ID, including enterprise applications, app registrations, SAML single sign-on configurations, SCIM provisioning jobs, groups used for access and any Conditional Access policies that apply to them. Record the protocol, redirect URIs, claims and roles each app relies on. The output is a register that marks which apps are non-Microsoft and can move to ZITADEL first, and which depend on Microsoft 365 and should stay on Entra ID.
Export the user list and confirm credentials
An administrator downloads the user list as CSV from the Entra admin center (Users, All users, Download users), which includes attributes such as userPrincipalName and mail. Check which columns you need, including department and on-premises identifiers, and use the preview download if you need customizable columns. Password hashes are not part of the standard export, so ask Microsoft in writing whether any credential material can be provided and under what conditions. Plan for users to set new credentials or sign in through federation if it cannot. The output is a reviewed user file and a written answer on credentials.
Stand up ZITADEL on PostgreSQL
The platform or infrastructure team deploys ZITADEL on PostgreSQL 14 through 18 in the location your data rules require, using Docker Compose, Kubernetes with the official Helm chart for high availability, or a Linux or macOS binary for a small test. Set up TLS, backups, monitoring and the admin accounts before any user data arrives. Confirm the version you deploy against the ZITADEL releases page. The output is a reachable instance with tested backups and restore steps.
Configure instances, organizations and projects
Map your structure to ZITADEL's model: an instance as the tenant boundary, organizations inside it where users and projects live, and projects that group applications, roles and grants. Define the roles and grants each application expects, and set login and password or passkey policies. Decide whether you need separate instances for data isolation or can use one instance with several organizations. The output is a written structure diagram and a configuration that matches the app register from step one.
Federate Entra ID during the transition
Add Entra ID as an identity provider in ZITADEL over OIDC or SAML so users can keep signing in with their existing Microsoft accounts while you migrate. Choose whether ZITADEL links federated accounts to new local users or uses just-in-time creation, and test with a pilot group. Review how ZITADEL migration guides handle just-in-time migration and whether they fit your Auth0, Keycloak or Entra source. The output is a pilot group that signs in through ZITADEL without re-registration.
Re-point OIDC and SAML applications
Change each application's issuer, client ID, client secret, redirect URIs and SAML metadata to the ZITADEL values, one application at a time, starting with a low-risk internal app. Confirm claims and role mapping match what the application expects, since token contents often differ from Entra ID. Keep the Entra registration in place until the application passes tests. The output is a signed-off test record per application with a documented rollback path.
Test SCIM provisioning and lifecycle
Connect SCIM 2.0 clients to ZITADEL's SCIM v2 service provider interface for applications that need automated user and group provisioning, then test creation, change and deprovisioning end to end. Check that leavers lose access in every connected app and that group membership maps to the right roles. The output is a provisioning test log that covers joiner, mover and leaver cases.
Retire Entra registrations and keep evidence
After each application is confirmed on ZITADEL, remove or disable its Entra enterprise application and app registration, revoke unused secrets, and remove federation links you no longer need. Keep Entra ID in place for Microsoft 365 and any feature you have not replaced, and record that dependency. Store the migration record, test results and change approvals where your auditors can find them. The output is an updated inventory showing what moved, what stayed and why.
Migration paths when Entra ID already holds your users
When Entra ID already holds your users, the safest path is usually a federated period rather than a bulk move. ZITADEL documents migration guides from Auth0, Keycloak, Firebase and another ZITADEL instance, and its approach for several of these is just-in-time migration: a user signs in once against the old store, ZITADEL verifies the credential and creates the account on the spot. Entra ID does not work that way for you, because Entra ID does not hand over password hashes in a standard export. Confirm with ZITADEL and with your own tenant administrators whether a just-in-time flow is available for your source, and confirm what Entra ID will and will not release for credentials. If it will not release them, plan for federation: ZITADEL can use Entra ID as an upstream identity provider over OIDC or SAML, so users keep their existing credentials while applications move one at a time.
The effort in either path sits largely with application owners, not the identity team. Each relying application needs its redirect URIs, client registrations, scopes and role claims mapped to ZITADEL projects, roles and grants, and the team that owns the app has to confirm that the tokens still carry what it reads. Test the ID token and access token contents for each app against the claims it expects, including sub, email, group or role values, and any custom claims that Entra ID currently injects through optional claims or claims mapping policies. Check how each app handles a changed iss value and key rotation, because a token that validates in staging can still fail in production if the issuer or audience differs. Keep a test matrix per application, and do not treat a successful login as proof that authorization still works.
Rollback planning has to be designed before the first application moves. Keep the Entra ID registration for each app active until its ZITADEL replacement has passed testing, and record the exact configuration you would restore: client secrets, redirect URIs and the app's sign-in route. Decide who can flip a route back and within what window, and how users who changed their passkeys or MFA in ZITADEL would be handled if you revert. Where users are migrated in bulk, keep the export and the mapping of user identifiers so the move can be reversed or re-run. Ask your ZITADEL partner or internal team to document how the chosen approach behaves during an interruption, and confirm that Entra ID conditional access, which stays in place for Microsoft 365 sign-in, is not silently bypassed by a fallback path.
Questions buyers ask before switching from Entra ID
What drives the cost of moving application sign-in from Entra ID to ZITADEL?
The cost depends mostly on the number of applications to re-register, the number of identity sources to federate, and the hosting and support model you choose. Self-hosted ZITADEL itself is open source, so the recurring costs are the servers, the PostgreSQL database (versions 14 through 18 are supported), backups, monitoring, and the staff time to run and patch the platform. One-time costs cover design, app re-integration, testing, user migration and cutover. Ask any provider for a written quote that lists each application, each identity provider to federate, the high availability target, the hosting location, and who carries patching and upgrades after go-live.
How long does an Entra ID to ZITADEL migration take?
The timeline is set by the number of applications, how many use SAML versus OIDC, how many depend on Entra-specific features such as Conditional Access claims or group-based roles, and how many users must move without a password reset. Pilot groups and staged cutovers add time but reduce risk. ZITADEL documents migration guides from Auth0, Keycloak, Firebase and another ZITADEL instance, including just-in-time migration, which can shorten the user move if it fits your data. No fixed duration is stated here. Ask for a schedule per application wave and a list of the dependencies each wave needs from your identity and app teams.
Can an internal team run ZITADEL without outside help?
Yes, if the team has Linux, container and database skills and can own the operational duties. ZITADEL self-hosts on Linux or macOS binaries, Docker Compose or Kubernetes, and the project recommends Kubernetes with the official Helm chart for high availability. Internal teams usually need to build expertise in OIDC and SAML configuration, SCIM provisioning, backup and restore, and upgrades. Many organizations use an internal team for daily operations and bring in a provider for the initial design, hardening and cutover. DeployOpen plans, implements, hardens, backs up, upgrades and supports self-hosted platforms in your own environment, under fixed-scope agreements or retainers, so you can choose the split that fits your staff.
What does the migration need from identity and application teams?
Identity teams own the directory and provisioning decisions: which user attributes move, how SCIM 2.0 provisioning is set up, how each customer organization maps to its own identity provider, and what happens to group membership and roles. Application teams own the redirect URIs, the OIDC client or SAML service provider settings, token claims and session behavior. Both teams need a shared inventory of applications and a test plan for each one. Ask the provider to name the artifacts it will produce for each team, such as a configuration per application, a rollback plan and a cutover checklist.
Can ZITADEL keep Entra ID for Microsoft 365 sign-in?
Yes, the two can coexist. ZITADEL can federate login with Entra ID over OIDC or SAML, and each customer organization can use a different identity provider. A common pattern is to keep Microsoft 365 and other Microsoft services on Entra ID while moving application sign-in for non-Microsoft apps to ZITADEL, with Entra ID acting as an upstream identity provider. Confirm with Microsoft which sign-in paths for Microsoft 365 and Azure must remain on Entra ID, and review what Entra ID P1 or P2 features you still license, because ZITADEL does not replace Conditional Access, risk-based policies or governance.
How does AGPL-3.0 affect internal use versus offering a service?
Using ZITADEL inside your organization for your own staff and applications is generally different from offering ZITADEL as a network service to outside users. The AGPL-3.0 license applies to the core, Console and hosted login that ZITADEL moved to AGPL-3.0 with version 3.0 on 31 March 2025. APIs, SDKs, proto definitions, examples, documentation, Helm charts and Terraform configurations remain Apache 2.0. If you modify the core and make it available to users over a network, the AGPL obligations can apply. Have your legal counsel review your specific use, especially if customers or partners sign in through a platform you run.
What should I confirm about passkey and SAML support for specific apps?
ZITADEL supports passwordless login with passkeys based on FIDO2 and WebAuthn, with fallback to password login. Passkey behavior still depends on the device, browser and policy you configure, so test each sign-in path you rely on. ZITADEL implements SAML 2.0 and OIDC, but each application may need specific SAML bindings, signing settings, attribute mappings or logout behavior. Ask the vendor or provider for a compatibility matrix that lists each app, its protocol, the features it needs, and a test result. Confirm with each application vendor which SAML features it supports.
How DeployOpen helps evaluate and move to ZITADEL
If your team is weighing ZITADEL for application sign-in outside Microsoft 365, the useful first step is a scoped evaluation, not a cutover. DeployOpen is a Chainscore Labs company that plans, implements, integrates, hardens, backs up and documents self-hosted open-source platforms inside your own cloud accounts, data centers or isolated networks. For ZITADEL, that means working through the decisions this page raises: which applications move first, whether Entra ID stays as an upstream identity provider for organizations that already use it, how Instances, Organizations and Projects map to your tenants and customers, and whether the PostgreSQL database (versions 14 through 18 are supported) sits where your data residency rules require. We put those answers in writing before any build starts.
Most engagements are fixed-scope. The agreed document covers the applications in scope, the protocols each one uses (OIDC, SAML 2.0 or SCIM 2.0 provisioning), the passkey and fallback login policy, the migration approach for existing users, the backup and restore procedure for the ZITADEL database, and the documentation your operations team will keep. Ongoing patching, version upgrades such as moving between ZITADEL releases, and continuous testing of the login flows can be covered by a retainer. Where you need evidence for a compliance assessment, we prepare the configuration records, access reviews and operating procedures that an auditor will ask to see. We do not issue audit reports, attestations or certifications; independent auditors and certification bodies do that work.
To start, bring three things to a first conversation: your list of applications that currently sign in through Entra ID, the number of customer organizations or tenants that would need their own identity provider, and the licensing position for the Entra ID P1 or P2 features you rely on today. From those we can scope a discovery phase and a proof of concept against a copy of one application. Ask for a written scope, deliverables and timeline before committing, and ask us to show how each item traces back to the decisions above. Contact us to discuss a scoped evaluation of ZITADEL for your environment, and we will send a written proposal with a quote based on that scope.

