Migrate from Ping Identity to ZITADEL: what the move involves
A move from a Ping customer identity deployment to ZITADEL is a re-platforming of tenants, users, applications and login journeys, not a configuration copy. Ping's customer identity products and PingFederate store their tenant logic, adapters and journey definitions in their own formats, so each of those has to be rebuilt in ZITADEL's model. The effort depends mostly on how much custom journey logic and adapter code sits inside Ping, and on how many consumer or business customer tenants must be carried over. Those two inventories are the first thing to build, before any target design is agreed. The work is usually done by the internal platform and identity teams, with an implementation partner for the parts they have not run before. The internal team owns the business decisions: which customer organizations move first, which identity providers each customer keeps, and which login flows change for end users. The partner typically carries the deployment on your infrastructure, the migration tooling, and the testing. Ask any partner for a written scope that lists tenants, applications, user volumes, custom journeys and cutover approach before agreeing on effort, timeline or fees. This page does not give effort or duration figures, because they depend on that inventory.
Plan for the cost components separately. Hosting and operating ZITADEL on your own infrastructure is a recurring cost, and it includes PostgreSQL, which ZITADEL supports in versions 14 through 18 according to its database documentation. Migration, custom journey rebuilds and cutover testing are mostly one-time costs. Ongoing support, upgrades and security testing are recurring, and the level depends on your internal capacity. Ask any quote to state which of these it covers, which Ping features have no direct ZITADEL equivalent, and who is responsible for each open item. Before committing, confirm three points in your own environment: that your Ping tenants map cleanly onto ZITADEL instances, organizations and projects; that every custom journey can be expressed with ZITADEL actions; and that your data residency and licensing requirements are met by a self-hosted AGPL-3.0 deployment. Confirm the license terms with your legal team, since ZITADEL moved its core to AGPL-3.0 in version 3.0 according to the Zitadel blog. Each of these checks should produce a written decision before the first tenant is moved.
Which Ping capabilities map cleanly to ZITADEL and which need rework
This table maps common Ping customer identity capabilities to ZITADEL concepts and marks each as clean, needs rework or gap. Read the status column first, then the notes, to plan the inventory. WS-Federation and WS-Trust relying parties are not covered by the supplied ZITADEL facts, so confirm them with ZITADEL before scoping.
| Ping capability | ZITADEL equivalent | Status and notes |
|---|---|---|
| OIDC and OAuth 2.0 applications | Applications inside projects, with roles and grants | Clean. Recreate each client in a project, then map scopes and redirect URIs and test token claims against the existing relying parties. |
| SAML 2.0 connections | SAML 2.0 support in ZITADEL, configured per application or identity provider | Needs rework. ZITADEL implements SAML 2.0, but each service provider's metadata, signing certificates and attribute mappings must be rebuilt and tested. |
| WS-Federation and WS-Trust relying parties | Not covered by the supplied ZITADEL facts | Gap until confirmed. Ask ZITADEL directly whether these protocols are supported, or plan to keep those relying parties on a platform that supports them. |
| Multi-tenant customer separation | Instances, organizations and projects | Needs rework. Map each Ping environment or tenant to an organization or instance, since instances give full data isolation and organizations hold users and projects. |
| Per-customer identity federation | Identity providers per organization, over OIDC, SAML or LDAP | Clean for common cases. Each customer organization can use its own identity provider, so reproduce customer IdP connections one organization at a time. |
| Directory and user stores | Users in ZITADEL, with LDAP and OpenLDAP federation and SCIM 2.0 provisioning | Needs rework. Export users from Ping, confirm which attributes and credentials can move, and plan how passwords are re-established. |
| MFA and passkeys | Passkeys based on FIDO2 and WebAuthn, with password fallback | Needs rework. Passkeys are supported, but enrolled factors from Ping rarely transfer directly, so plan re-enrollment and communication to users. |
| Custom authentication journeys | ZITADEL actions | Needs rework. Rewrite each journey step as an action and test it against real user flows, since Ping journeys do not translate one to one. |
| Self-hosted operations and high availability | Self-hosted with Docker Compose or Kubernetes on PostgreSQL 14 to 18 | Clean for platform fit. Confirm the high availability design, backups and upgrade process with your own team before cutover. |
What data and integrations move, and through which export paths
A Ping to ZITADEL move carries three kinds of material: user records, application and connection definitions, and the trust relationships that keep upstream identity providers working. Each needs a different path, and the documented options for each are narrower than the Ping estate may suggest, so confirm the vendor side early.
User records and attributes
Identify every user attribute your applications read, including custom profile fields and consent records, and map each one to a ZITADEL user or metadata field. ZITADEL documents migration guides and just-in-time migration, which can move accounts as users sign in, so you can run both systems in parallel. Ask Ping what user export formats and attribute sets it supports for your tenant, because that determines whether a bulk export is practical.
Password hashes and credentials
Password hashes may not be portable without a vendor path. No supplied fact confirms that Ping exports password hashes, in what format, or under what terms. Plan for just-in-time migration or a forced reset for users whose hashes cannot move, and confirm the options with Ping in writing before you design the cutover. Passkeys and MFA enrollments will need to be re-registered in most cases, so budget user communication for that.
Applications and OIDC or SAML clients
Inventory each relying party with its client identifier, redirect URIs, signing certificates, scopes and attribute mappings. ZITADEL implements OpenID Connect, OAuth 2.0 and SAML 2.0, so most clients are recreated as ZITADEL applications inside the right project, not imported as files. Export configuration from your Ping environment as far as Ping allows, then treat the inventory itself as the migration record.
Provisioning with SCIM v2
Downstream systems that receive users from Ping through SCIM need a new source. ZITADEL provides a SCIM v2 service provider interface for standardized provisioning and lifecycle management, so check each connected application for SCIM support, its attribute schema and how it handles deletions and deactivations. Test one provisioning flow end to end before switching the rest.
Upstream identity providers and LDAP
Customers or workforce partners that sign in through Ping's federation need to keep working during the move. ZITADEL can federate login with OIDC or SAML providers, LDAP and OpenLDAP, Keycloak and any OIDC-compliant provider, and each customer organization can use a different identity provider. List every federated source per tenant, then decide which connections move first and which stay on Ping until cutover.
Tenants, organizations and roles
Ping environments often mix per-customer environments, shared directories and per-application roles. ZITADEL organizes data as instances, organizations and projects, so map each Ping customer boundary to an organization and each application group to a project with its own roles and grants. Confirm with your own team whether any customer data must stay in a separate instance for isolation, since that choice is hard to reverse later.
How ZITADEL organizations map to Ping customer tenants
The first design decision in this migration is how many ZITADEL instances to run, because an instance is the only level with full data isolation. ZITADEL places organizations inside an instance, and projects, users and applications live inside organizations. Ping customer deployments often separate tenants with environments, realms, or per-tenant configuration, so map each existing tenant boundary to one of three choices: a separate instance when a customer needs its own data store, administrators, or branding and policy scope; an organization inside a shared instance when tenants share operations but must not see each other's users; or a project inside an organization when several applications share one user base and role model. Ask the Ping team for the list of tenant boundaries and any regulatory reason each one exists before you choose.
Each customer organization can attach its own identity provider, which is where business customer logins are usually won or lost. ZITADEL can federate with Entra ID, Okta, LDAP, Keycloak and any OIDC or SAML provider, and each organization can use a different one. Inventory which Ping connections are customer-specific, which carry a shared attribute contract, and which customers still authenticate against their own directory. Confirm in the design review whether each customer's directory, its SCIM provisioning needs, and its group-to-role mapping can be expressed in an organization-level provider setup, and test one representative customer end to end before any bulk import begins.
Before import, confirm five things in writing: the instance and organization hierarchy, the project and role model that replaces Ping's application and scope grouping, the identity provider per organization, the user identifier that will be carried across (so that existing subject values or external IDs keep matching), and who administers each organization after cutover. Ask whether any tenant needs data residency in a particular region, since that often decides instance placement. Your own environment and the current ZITADEL documentation on organizations should settle the exact settings before you commit.
The migration sequence from inventory to decommission
This sequence moves Ping customer identity workloads to ZITADEL in controlled stages, so each tenant group, application and journey is proven on the new platform before Ping is switched off. Each step produces a named artifact that a reviewer can sign off on.
Inventory tenants, applications, connections and journeys
Build a register of everything Ping does for you: customer-facing tenants or business customers, OIDC and SAML applications, identity provider connections, user stores, password and MFA policies, and custom journeys or flows. Record the owner, protocol, redirect URIs, attributes and session settings for each item. The output is an application register and a mapping of Ping adapters, policies and journeys to the ZITADEL concepts that will replace them, such as instances, organizations, projects, applications and actions. Ask your Ping account team and your own engineers to confirm the list, since configuration held only in code or in a scheduled job is easy to miss.
Choose and build the target ZITADEL layout
Decide how Ping tenants map to ZITADEL instances, organizations and projects. Use an instance where data must be fully isolated, and organizations where business customers need their own users, roles and identity providers. Deploy a non-production ZITADEL environment on the supported PostgreSQL version using the self-hosting option your platform team has approved. The output is a written tenancy model and a running staging environment, verified by logging in with a test organization and checking that policies and roles match the mapping from the previous step.
Pilot one organization with a small application set
Pick one internal or friendly customer organization and two or three low-risk applications. Import or just-in-time migrate its users, recreate the applications in ZITADEL, and reproduce the custom journeys as ZITADEL actions. Run functional tests for sign-in, MFA, passkeys with password fallback, token claims and logout. The output is a pilot defect log and a test evidence pack that records each test case, the expected and actual result, and the sign-off by the application owner. Do not move on until the defects are closed or accepted in writing.
Run Ping and ZITADEL in parallel
Keep Ping serving production logins while ZITADEL serves the pilot organization and any further applications you have agreed to route to it. Compare session behavior, token contents, error handling and support tickets between the two platforms. Keep password and user changes flowing to both systems, or document which system is authoritative for each attribute during the overlap. The output is a parallel run log with discrepancies, their root causes and the fixes applied, reviewed weekly by the migration owner and the security lead.
Cut over by application or tenant group
Move production applications or tenant groups in batches, each with a rollback plan that switches DNS, redirect URIs or application configuration back to Ping. Confirm the users in each batch have been migrated, that SAML and OIDC metadata has been exchanged with the relying parties, and that monitoring is in place for failed logins. The output is a signed cutover record per batch, listing scope, time, approvers, test results and any accepted risks.
Hold the rollback window before decommissioning Ping
After the final batch, keep Ping configuration, exports and the rollback path available for the period your change policy sets for rollback. Confirm with your compliance lead what records must be retained from Ping, including audit logs and configuration archives, and store them under your retention rules. The output is a rollback window closure memo that confirms no application still authenticates against Ping.
Decommission Ping and retain evidence
Disable Ping connections, revoke its administrative access and remove client credentials from applications and secrets stores. Cancel or confirm the end of your Ping subscription terms with your contract owner, and check whether any Ping-issued certificates or keys are still referenced. The output is a decommissioning checklist and a final evidence bundle that includes the cutover records, parallel run log and removal confirmations, so auditors can trace the change from the original inventory to the closed system.
Replacing custom Ping journeys with ZITADEL actions
Claims enrichment adds roles, entitlements, tenant identifiers or account tiers to the tokens that applications receive. In Ping deployments this logic often sits in attribute contracts, OAuth access token mappings or custom code attached to an adapter. ZITADEL structures access around projects, roles and grants inside organizations, so some claims may be expressed through those built-in features before any custom action is written.
- Inventory each added claim: List every attribute an application reads, its source (directory, profile field or calculated value) and the application that consumes it.
- Prefer native roles and grants where they fit: Role-based claims tied to projects and organizations may need no custom code. Confirm the exact claim names ZITADEL emits against what each application parses.
- Rebuild calculated claims: Logic that derives values from several sources must be re-expressed in the action runtime and tested with fixed inputs. Line-by-line translation of the Ping logic is rarely reliable.
- Agree the claim contract first: Renaming or retyping a claim breaks every relying party, so settle names, types and multi-valued formats with application owners before cutover.
Compare token contents for each application in a staging instance against captured production tokens, including the tenant claims for users who belong to more than one organization.
Registration and progressive profiling steps collect consent, company details or extra attributes after a user signs up. These flows often hold business rules such as domain checks, duplicate detection and mandatory terms acceptance. In ZITADEL the first question is which organization a new user joins and who approves that join, because organizations hold users and projects.
- Map each step to a lifecycle event: Decide which steps belong at sign-up, at first login or later in the profile, and confirm which trigger points ZITADEL actions support in your version.
- Make self-registration a business decision: Choose whether anyone can create an account, whether domain-based joins are allowed and who may invite users into an organization.
- Rebuild validation logic and test it: Field checks and lookups need fresh tests with invalid inputs, since error messages and step ordering will differ from the Ping journey.
- Keep consent records under your control: Store consent timestamps and document versions in a system you operate, and confirm how ZITADEL exposes or lets you export them.
- Drop steps that duplicate hosted screens: If the ZITADEL login pages already collect an attribute, remove the second copy of that step so users are not asked twice.
Test the full registration path for each organization type, covering invitation, validation failure and abandoned sign-up, and confirm that each path ends in the expected organization with the expected roles.
Step-up and policy checks decide when to request stronger authentication or block a sign-in based on risk, device, location or account state. Ping deployments may implement these through policy branches or adapter logic. ZITADEL supports passkeys based on FIDO2 and WebAuthn with fallback to password login, which shapes how step-up should be designed. The security decision belongs to the policy owner, so write the policy before rewriting any code.
- Write each condition as a rule: Turn every trigger, such as a risk signal, sensitive action, role or device trust state, into a documented rule with a named owner.
- Confirm the available context: Verify which login context ZITADEL passes to an action and which risk data must come from an external service you call.
- Set passkey and fallback rules: Decide when passkeys are required, when password fallback is acceptable and how recovery works for users who have no passkey enrolled.
- Get risk tolerance signed off: Lockout thresholds, step-up scope and handling of unfamiliar locations need approval from security and customer-facing teams.
- Test each branch against original behavior: Do not assume a Ping policy step maps one-to-one to a ZITADEL construct. Verify each branch against its recorded result in the current system.
Run a test matrix covering normal sign-in, step-up trigger, denial and fallback paths, and record the expected outcome for each case before go-live.
Custom journeys often call CRM, fraud, KYC, consent or entitlement services over HTTP during sign-in. Each call adds latency, a failure mode and a credential that moves into a new runtime. ZITADEL provides APIs and supports SCIM v2 for provisioning, but any call from a login flow to your own services needs timeouts, retries and secret handling designed for the new platform, not carried over unchanged.
- Classify each call: Separate read-only lookups from writes. Writes made during sign-in need idempotency and clear rules for partial failure.
- Define failure behavior per dependency: Decide whether a timeout blocks sign-in, allows it with logging or falls back to a cached value. These are business decisions for each service.
- Move credentials into a managed secret store: Keys for external services should sit in a secret store you operate, with a documented rotation process.
- Reduce synchronous calls where possible: Sync reference data through SCIM v2 or the APIs introduction so logins do not depend on every external service being available.
- Monitor login time and call errors: Set alerts on sign-in latency and external call failures so a degraded dependency is visible to operations staff.
Confirm the availability target and the owner for each external dependency in writing before cutover, and rehearse a dependency outage in a non-production environment.
What drives cost and duration in a Ping to ZITADEL move
What are the main cost components of moving from Ping Identity to ZITADEL?
The cost comes from five components: your internal team's time, the scoped work of an implementation partner, the infrastructure you run ZITADEL on, testing, and any licensing or support decision for ZITADEL itself. Internal time and partner work are mostly one-time, covering inventory, import, app reconfiguration and cutover. Infrastructure, operations and any support subscription recur. Ask a quote to separate these lines so you can see which costs fall away after cutover and which continue.
How does the number of tenants affect the effort in a ZITADEL migration?
Tenant count is one of the largest drivers of effort because each customer organization needs its own structure in ZITADEL. Organizations, projects, roles and grants must be mapped, and any customer that brings its own identity provider needs that connection rebuilt. Mapping several hundred small tenants is a repeatable task, while a few large tenants with custom branding and identity provider settings each need individual attention. Ask the quote to state how many organizations and identity provider connections are in scope.
Why do custom Ping journeys increase the time needed to migrate?
Each custom journey must be rebuilt as ZITADEL actions or as flows in the login experience, and every journey needs its own test cases. The more branches, data lookups and conditional steps a journey has, the more time it takes to reproduce and verify. Count the journeys, their external calls and their dependencies on attributes before estimating. An illustrative example: a simple password reset and a multi-step onboarding with document checks differ greatly in rebuild effort, even though both appear as one item on a list.
Do WS-Federation dependencies change the scope of a Ping to ZITADEL move?
Yes. ZITADEL implements OpenID Connect, OAuth 2.0 and SAML 2.0, so any relying party that depends on WS-Federation or WS-Trust is outside what ZITADEL covers directly and needs a separate plan. Identify those applications early in the inventory. Each one may need its own protocol bridge, a different target platform or a retained Ping component during a transition period. Ask the quote to list these applications and state how they are handled.
How does a passkey rollout affect cost and timeline?
Passkeys add work in login design, user communication and support. ZITADEL supports passkeys based on FIDO2 and WebAuthn with fallback to password login, so the technical enablement is manageable, but the rollout requires decisions about enrollment prompts, account recovery and help desk procedures. Budget time for usability testing across the device types your customers use. Rollout scope rises with the number of user populations, applications and regulated flows that must accept passkeys.
What does the AGPL-3.0 license change mean for a ZITADEL decision?
ZITADEL moved its core, Console and hosted login from Apache 2.0 to the GNU Affero General Public License 3.0 with v3.0 on 31 March 2025, while APIs, SDKs, proto definitions, documentation, Helm charts and Terraform configurations remain Apache 2.0. Treat this as a legal review item before the project starts. Your counsel should confirm whether modifications to the core or hosted login create source disclosure obligations for your organization, and whether a commercial support or licensing arrangement is needed. Ask the implementation partner to document the components you run unmodified.
What infrastructure does a self-hosted ZITADEL deployment need, and what does it cost to run?
Self-hosted ZITADEL runs on PostgreSQL, with versions 14 through 18 supported, and can be deployed with Docker Compose or Kubernetes. For high availability, ZITADEL's documentation recommends a Kubernetes cluster with the official Helm chart. Recurring costs include compute, database operations, backups, monitoring and certificate management. Ask for the target topology, the number of environments, the backup and restore design and who patches each layer, because these determine the ongoing run cost more than the initial installation.
What should I ask for in a quote for a Ping to ZITADEL migration?
Ask for a fixed scope in writing that lists the tenants, applications, custom journeys, identity provider connections, user populations and WS-Federation dependencies included. Request separate line items for discovery, user and configuration migration, application reconfiguration, testing, cutover and hypercare, along with the infrastructure design and handover documentation. Confirm which items are one-time and which are retainers for upgrades and ongoing support. Also ask how the licensing review under AGPL-3.0 is handled and what your internal team must provide, so the quote reflects your real responsibilities.
What usually goes wrong and how to prevent it
Most failed identity migrations break at the edges: users who cannot sign in, relying parties that reject new tokens, and cutovers with no way back. Each card below names one risk in a Ping to ZITADEL move and the check that should catch it during the parallel run.
Password hashes not migrated
Users may be unable to log in on day one if password hashes do not come across with their accounts. Ping and ZITADEL store credentials differently, and any hash export depends on what the source platform and your contract allow. Confirm early whether hashes can be exported in a usable format, and if not, plan just-in-time migration or a password reset path. Test a login for a sample of accounts from each user population before cutover.
Token and claim differences
Relying parties often depend on exact claim names, audiences, scopes, and token lifetimes that differ between Ping and ZITADEL. A change in the sub value or a missing role claim can break authorization without any login error. Capture the claims each application reads today, map them to ZITADEL projects, roles and actions, and compare decoded tokens from both systems during the parallel run.
SAML metadata and signing certificate changes
Every SAML service provider holds a copy of the identity provider's metadata and signing certificate. When ZITADEL issues new metadata, entity IDs, endpoints or certificates, each relying party must be updated or sign-in fails. Inventory every SAML connection, record its current certificate expiry, and schedule metadata exchange with each owner. Verify signature validation and assertion attributes in a staging tenant before any production switch.
Undocumented Ping adapter behavior
Ping adapters and custom integrations often run logic that nobody wrote down, such as attribute transforms, session rules or fallback lookups. Those behaviors disappear silently when the adapter is retired. Review each adapter and connection with its engineering owner, list the implicit rules, and recreate them as ZITADEL actions or upstream logic. Confirm each rule with a test case that reproduces the original result.
Cutover without a rollback path
A big-bang switch removes the fallback when a problem surfaces after users arrive. Keep Ping running for each application until its ZITADEL flow has passed login, token, logout and provisioning tests, and keep user changes synchronized or clearly frozen during that window. Write the rollback steps, the owner who can trigger them, and the criteria for triggering them, then rehearse the rollback in staging before production cutover.
Test evidence missing at go-live
Without recorded results, a team cannot show what was verified or prove that controls worked during an assessment. Keep a dated record for each application covering login paths, token claims, SAML assertions, deprovisioning, and rollback rehearsal. Ask the reader's own compliance lead which evidence format they need, and treat the parallel run logs as part of the migration deliverable.
How the move differs by size and starting point
A small deployment usually has a handful of applications, one user population and a single administrative team. The move is mostly about getting a clean inventory, standing up one ZITADEL instance and re-registering each application as an OIDC or SAML client. Because ZITADEL's instance is the isolation boundary, a single organization inside one instance is often enough, and the projects inside it group applications, roles and grants.
- Inventory first: list every client, redirect URI, scope and signing certificate, and mark the ones nobody has used in months.
- Pilot choice: move one low-risk internal application first, ideally one that already uses standard OIDC.
- Cutover pattern: switch applications in small batches during a planned window, keeping the Ping connection available until each app has logged in successfully.
- User import: confirm with Ping how passwords are stored, since hashes may not be exportable and users may need a reset path.
- Operations: a single PostgreSQL database and one set of backups keeps day-two work light.
Confirm with your team whether any application depends on a Ping-specific adapter or attribute contract before you commit to a date.
A business customer platform serves many organizations, and each one may bring its own identity provider, user list and login policy. Here the design work centers on ZITADEL's model of instances, organizations and projects, so that each customer's users, roles and federated providers stay isolated. Migration becomes a per-tenant exercise rather than one big switch, and the order in which tenants move matters as much as the technical steps.
- Tenant mapping: decide which Ping environments, realms or connections map to an organization, and which need separate instances for full data isolation.
- Pilot choice: pick a friendly customer whose identity provider is already OIDC or SAML, and whose admins will give quick feedback.
- Federation: ZITADEL lets each organization use a different identity provider, so customers can keep their own Entra ID or Okta connection during the move.
- Cutover pattern: move tenants in waves, using just-in-time migration or a managed import where the source supports it, and keep old and new logins running side by side.
- Actions: rebuild custom journeys as ZITADEL actions only after the basic login path works for each wave.
Ask your team which tenants depend on custom Ping journeys, because those drive most of the rework.
In a regulated environment, the move must leave behind an evidence trail that shows who changed what, when, and how access was tested. The technical steps stay similar, but scope grows to include change records, access reviews, key handling and test results. DeployOpen prepares systems, controls and evidence for compliance assessments, while independent auditors decide whether those controls meet a given standard.
- Evidence plan: agree with your assessor which records (configuration exports, change tickets, test logs, access approvals) will be kept for each wave.
- Pilot choice: choose a low-impact application whose login results can be tested against documented criteria.
- Parallel running: keep Ping active for the regulated applications until controls are verified, and document the decision to retire each one.
- Key and certificate handling: plan how signing keys and certificates are moved or reissued, since the Ping configuration archive contains private keys that need protected handling.
- Licensing: check ZITADEL's AGPL-3.0 terms and whether your organization needs the Enterprise plan or any support contract, and confirm these with your legal and procurement teams.
Confirm with your auditor which evidence format they accept before the first wave begins.
Questions buyers ask before moving from Ping to ZITADEL
Can our team move from Ping Identity to ZITADEL without outside help?
Some teams can, especially if they run Kubernetes or Docker Compose and already operate PostgreSQL, but the work is larger than a configuration change. Ping customer identity deployments usually carry custom authentication journeys, connection inventories and user stores that have to be mapped, tested and cut over one application at a time. ZITADEL documents migration guides from Auth0, Keycloak, Firebase and another ZITADEL instance, which helps with planning. Before deciding, confirm internally who will own the PostgreSQL 14 to 18 database, the high availability design, the actions that replace journeys, and the cutover testing. DeployOpen plans, implements and documents this work under a written, fixed scope if you prefer to hand it off.
What skills and people does a ZITADEL migration need from our team?
You will need people who can answer for each part of the stack: identity architecture, Kubernetes or container operations, PostgreSQL administration, application owners who can test their own login flows, and someone who understands the custom code in your current journeys. Identity architects map OIDC and SAML clients, organizations and roles. Platform engineers run the deployment, which ZITADEL documents for Linux and macOS binaries, Docker Compose and Kubernetes, with the official Helm chart recommended for high availability. Application teams retest sign-in, token claims and logout. Plan for security review of the new configuration and for ongoing operations after go-live, since self-hosting moves patching and backups to your side.
What drives the cost of moving from Ping to ZITADEL?
The cost depends on the number of applications and relying parties, how many custom Ping adapters or journeys must be rebuilt as ZITADEL actions, the size and quality of the user directory, and the compliance evidence you need at cutover. Cost is split between one-time work (inventory, design, migration, testing, documentation) and recurring work (hosting, PostgreSQL, upgrades, monitoring, support). Ping's side includes subscription and any Extended Limited Support fees if your version is past end of support. Ask any vendor or partner for a quote that lists each component separately, states assumptions about application count and journey complexity, and shows what is recurring. DeployOpen issues quotes only from a written scope and does not publish a price list.
Can we move users and their password hashes to ZITADEL?
Users can usually move through a bulk export and import, but password hashes depend on what your source system will export. ZITADEL documents just-in-time migration as one approach, which can validate credentials against the old system on first login rather than requiring hashes up front. Ping's export options and any hash export rights are a question for Ping support and your contract, so confirm them early. Ask Ping which attributes, credential formats and group or organization fields can be exported. Also plan for passkeys and MFA enrollments, which typically need users to re-register. ZITADEL supports passkeys based on FIDO2 and WebAuthn with fallback to password login.
How long does a migration from Ping to ZITADEL take?
The duration depends mainly on the number of applications, the complexity of custom journeys, the number of users and organizations to model, and how many applications must run in parallel during cutover. No duration is set in advance, so ask for a timeline based on your written inventory. Migrating one application at a time usually moves faster than a single big-bang change, and it lets each relying party be tested and rolled back. Pilot one low-risk application first, then add organizations and business customers in waves. Ask any implementation partner to state assumptions and dependencies in the scope document.
Does ZITADEL's AGPL-3.0 license affect how we use it?
Licensing depends on how you use and distribute the software, so have your legal team review it for your case. ZITADEL moved its core, Console and hosted login from Apache 2.0 to AGPL-3.0 with v3.0 on 31 March 2025. APIs, SDKs, proto definitions, examples, documentation, Helm charts and Terraform configurations remain Apache 2.0. Under AGPL, if you modify the core and make it available to users over a network, you may have source-availability obligations. Running an unmodified ZITADEL for internal use or your own customers has a different profile from offering a modified version as a service. Confirm this with counsel before choosing a deployment model, and compare it with the license terms of Ping.
What happens if a relying party still uses WS-Federation?
ZITADEL implements OpenID Connect, OAuth 2.0 and SAML 2.0, and the sources supplied for this page do not list WS-Federation support. If any relying party depends on WS-Federation or WS-Trust, do not assume it will move to ZITADEL unchanged. Inventory every connection from your Ping configuration, including the protocol each one uses, before choosing a target. Options include moving that relying party to SAML or OIDC if its vendor supports it, keeping a separate federation service for legacy WS-Federation parties during the transition, or evaluating a platform that supports WS-Federation. Ask ZITADEL and any partner to confirm protocol coverage in writing for your specific applications.
How DeployOpen scopes and runs the Ping to ZITADEL migration
DeployOpen is a Chainscore Labs company that plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside the client's own infrastructure. For a move from Ping Identity to ZITADEL, we start with a written scope that maps your consumer or business customer tenants, user populations and applications to ZITADEL instances, organizations and projects before any cutover work begins.
How we scope
- Inventory Ping environments, customer tenants, OIDC and SAML applications, and custom journeys that must be replaced by ZITADEL actions.
- Agree in writing how each business customer maps to a ZITADEL organization, and which data stays isolated per instance.
- Confirm user migration approach, including whether just-in-time migration or a bulk import fits each user population.
How we build
- Deploy self-hosted ZITADEL on PostgreSQL in your cloud accounts, data centers or air-gapped network, with the topology agreed in scope.
- Recreate OIDC and SAML applications, roles, grants and identity provider federation, then rebuild custom journeys as ZITADEL actions.
- Test login, passkey enrollment, SCIM provisioning and tenant isolation against documented acceptance criteria before any customer traffic moves.
How we hand over
- Deliver configuration records, runbooks, tenant mapping documents and test evidence for your security and compliance teams.
- Document the migration cutover plan, rollback steps and the decommissioning steps for the Ping environment.
- Train your operations staff on day-two tasks such as backups, upgrades, realm and organization administration and monitoring.
How we support
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
- Ongoing support, upgrades and continuous security testing are available as retainers after handover.
- DeployOpen prepares systems and evidence for compliance assessments, but independent auditors and certification bodies issue any audit reports or certifications.

