Why self-hosted customer identity matters for EU data sovereignty
If your customer accounts sit in a US-hosted CIAM service and your DPO or legal team is asking whether those logins are lawful transfers, the usual route to control is to run the identity platform in EU infrastructure you operate, using an open-source platform such as Keycloak or ZITADEL. Hosting in the EU is the starting point, but it does not settle the question on its own, because the transfer analysis under GDPR Article 44 follows the data and the people who can reach it, not only the address of a database.
The EDPB's Guidelines 05/2021 (version 2.0) treat remote access from a third country as a transfer, even when the person outside the EEA only views data on a screen for support or administration. Storage in a cloud outside the EEA is also a transfer. For a CIAM service, that means vendor support staff, follow-the-sun administration, backups, logging pipelines and analytics exports all need to be mapped, not just the primary user store. Ask the vendor for a written list of every location from which personnel or subprocessors can access customer identity data, and for the legal basis for each.
The guidelines also say that an EU processor subject to third-country law with extraterritorial effect is not itself a transfer, but complying with a third-country authority request would be, so the exposure needs an assessment before you sign. The US CLOUD Act provision at 18 U.S.C. 2713 reaches data in a provider's possession, custody or control regardless of where it is stored, which is the risk your legal team is likely weighing. Self-hosting in your own EU accounts changes who holds the keys and the logs, but the choice between Keycloak, ZITADEL and other platforms depends on your tenancy model and on the skills your team can keep running. Both are workable; the decision starts with the transfer map and the operating model.
Which GDPR and transfer requirements shape the identity build
This table maps the GDPR transfer rules and related guidance to concrete decisions for hosting, admin access, support tooling, backups and logs in a customer identity build. Read each row as a question to settle with your counsel and DPO before selecting an architecture. The main takeaway is that where the identity data is stored is only part of the question: who can see it in the clear, from where, and under which foreign legal orders also determines whether a transfer occurs.
| Requirement or control | What it asks for in the identity build | Where it usually fails |
|---|---|---|
| Transfer conditions (GDPR Article 44) | Every transfer of customer identity data to a third country, including onward transfers, must meet Chapter V conditions. Map each location and each party with access. | Backups, log shipping and vendor support sessions are overlooked as transfer points. |
| Fine ceiling (GDPR Article 83(5)(c)) | Infringements of the transfer articles carry fines of up to EUR 20 million or 4% of worldwide annual turnover, whichever is higher. Treat transfer mapping as a board-level risk item. | Teams assume a self-hosted deployment removes transfer risk without checking who can reach it. |
| Remote access from third countries (EDPB Guidelines 05/2021) | Remote access from outside the EEA counts as a transfer, even when data is only displayed on a screen for support or administration. Limit and log offshore admin and support sessions. | Follow-the-sun vendor support or offshore administrators open consoles that show user records. |
| Access in the clear (EDPB Recommendations 01/2020) | Where a provider must see data in the clear and a third country's public authorities can reach it beyond what is necessary and proportionate, the EDPB cannot see an effective technical supplementary measure. Assess this exposure before choosing a hosting or managed-service model. | Managed CIAM hosting outside the EEA is assumed safe because encryption is enabled, while the operator still holds keys or plaintext. |
| Third-country disclosure orders (GDPR Article 48) | A foreign court or authority order to disclose personal data is recognized only if based on an international agreement in force with the EU or a Member State. Document how such requests would be handled for each provider in the chain. | Contracts promise notification of requests without a documented legal response process. |
| Foreign-law exposure for EU processors (EDPB Guidelines 05/2021, Example 12) | Using an EU processor subject to third-country law with extraterritorial effect is not itself a transfer, but complying with a foreign authority request would be. Assess that exposure before engaging the processor. | Procurement checks the hosting region and skips the parent company's legal jurisdiction. |
| Data minimization by default | Collect only the attributes each login, registration and recovery flow needs. Keep optional profile fields, device data and raw event logs out of the identity store unless a documented purpose applies. | Identity stores accumulate fields from social logins, CRM syncs and analytics that nobody reviewed. |
| Consent records, erasure and portability workflows | Store consent events with version, timestamp and scope, and build withdrawal, erasure and export as tested workflows that reach backups, logs and downstream systems. Confirm the timing you commit to with counsel. | Erasure removes the user row but leaves sessions, audit events, backups and synced copies in other systems. |
How US law reaches data held by a US provider
An EU-hosted customer identity system run by a US-headquartered vendor still needs a transfer assessment, because the question is who can compel access to the data, not only where the servers sit. Under 18 U.S.C. 2713, added on 23 March 2018, electronic communication and remote computing service providers must preserve or disclose data in their possession, custody or control, whether that data is inside or outside the United States. For a CIAM deployment, the exposure sits with the vendor's support access, managed hosting, telemetry, backups and any copy of the user directory the vendor can reach. The controller should document which of these exist, who can reach them, and whether the vendor has a contractual and technical process for challenging a demand. Self-hosting on infrastructure the controller operates removes most of that vendor-side reach, but it does not remove the question for any US-owned cloud account or support channel the controller relies on.
The EU-US Data Privacy Framework rests on Commission Implementing Decision (EU) 2023/1795, which finds adequate protection only for US organizations on the Data Privacy Framework List. A controller that transfers customer identity data to a US vendor should check whether that vendor is on the list and whether its certification covers the data in question. The decision is under challenge: an appeal against the General Court's September 2025 judgment upholding it is pending as Case C-703/25 P, so the outcome could change the footing for transfers that rely on it. The earlier history explains why standard contractual clauses remain the fallback. In Case C-311/18 (*Schrems II*), decided on 16 July 2020, the Court of Justice invalidated the Privacy Shield adequacy decision 2016/1250 but held that standard contractual clauses remained valid, subject to a case-by-case assessment of the destination's law. Confirm the current status of the appeal and the vendor's certification with counsel before relying on either route, and record the assessment in the transfer file.
Which open-source identity platforms fit an EU-hosted CIAM
Three open-source identity platforms cover most self-hosted customer identity needs in the EU, but each carries a different license, data model and feature set. The fit depends on who hosts the code, how tenants are isolated and which consent and erasure workflows you must build yourself. Confirm each point against the specific release you plan to deploy.
Keycloak for broad protocol coverage
Keycloak is licensed under Apache-2.0 and is a CNCF incubating project, so you can modify and host it in your own EU infrastructure without copyleft obligations on your changes. It supports OpenID Connect, OAuth 2.0 and SAML 2.0, identity brokering and user federation, and runs on PostgreSQL 14 to 18. The Keycloak Operator manages realms and clients as Kubernetes resources, which helps keep EU deployment configuration in version control. Confirm that consent records, erasure and export are handled by realm configuration or by your own services, since these workflows are not a single built-in feature.
ZITADEL for isolated tenants
ZITADEL's core is licensed under AGPL-3.0, so if you modify it and let users interact with it over a network, you must make your modified source available to those users. Its instances give each tenant full data isolation, and organizations inside an instance let each B2B customer bring its own identity provider. It offers SCIM v2 provisioning, passkeys based on FIDO2 and WebAuthn, and a device authorization grant, and it self-hosts on PostgreSQL 14 to 18. Ask counsel whether the AGPL terms fit your release and customization plans, and confirm how erasure and consent records map to its data model.
Ory Kratos and Hydra as separate services
Ory splits identity into Kratos for user and self-service flows and Hydra for the OAuth 2.0 and OpenID Connect server, and both are licensed under Apache-2.0. This suits teams that want to own the login UI and the consent screen in their own code, which can simplify consent capture and withdrawal. The trade-off is that you assemble and operate two services, plus the glue for administration, provisioning and erasure. Confirm the feature set and data stores in the release you adopt, since the two components are versioned independently from each other.
Licensing risk for hosted modifications
License terms decide what you owe when you change the code and offer it to users. Apache-2.0 platforms let you keep modifications private, while AGPL-3.0 requires source disclosure for network-accessed modifications. Procurement and legal teams should confirm which components are licensed under which terms, and whether any add-ons or enterprise directories carry separate commercial terms. A self-hosted deployment does not remove these obligations, so review the license of each module you deploy before you customize it.
Erasure and consent workflow checks
None of these platforms ships a complete GDPR workflow for consent withdrawal, erasure requests and portability out of the box. Before selecting one, map each request type to a specific user store, event log, session store and downstream system. Check whether deleting a user removes sessions, refresh tokens, audit records and federated links, and whether backups keep deleted identities. Ask for a written demonstration of each request flow in your configuration, not only a feature list.
How the EU migration runs, phase by phase
The sequence moves customer identity data and login flows from a US-hosted service to a self-hosted platform in the EU, with each phase producing a record that proves where data sits, who can reach it and what was deleted. Each phase has an output that gates the next one.
Map personal data and transfers
The team inventories every place customer identity data lives today: user store, password hashes, consent logs, audit trails, backups, support tooling, analytics and the US provider's own administrative and support access. For each item, record the data categories, the legal basis, the location and any path that lets a person outside the EU view the data. Remote access from a third country counts as a transfer under EDPB Guidelines 05/2021, so support screens and vendor consoles belong in the inventory. The output is a signed transfer inventory and a data flow map that the DPO and legal team accept as the baseline for the migration.
Design EU hosting and admin access
Architects select the EU region, data centers and sub-processors, then design who can administer the identity platform, from which networks and under which approval. Admin access, logging, backups and disaster recovery copies are all placed inside the EU unless the transfer analysis says otherwise. The design also states how the organization will assess any non-EU provider's exposure to third-country authority requests, since EDPB Recommendations 01/2020 say no effective technical supplementary measure exists where a provider must access data in the clear and foreign powers exceed what is necessary and proportionate. The output is an approved architecture and access model that the security and compliance leads sign off.
Choose the platform and prove it
The team compares candidate platforms, such as Keycloak, ZITADEL or Ory, against the login, federation, passkey, SCIM and multi-tenancy requirements from the business. A proof of concept runs in a non-production environment with representative realms or instances, the chosen production database and a test identity provider for each B2B tenant type. Licensing is checked during this phase, because AGPL-3.0 and Apache-2.0 licenses carry different obligations for modifications and distribution. The output is a written platform decision, a tested reference configuration and a list of gaps that need custom work.
Migrate users and password hashes
Users move in batches or on demand. Where the US service exports hashes or allows it, the team imports them so customers keep their passwords. Where hashes cannot be exported, just-in-time migration checks the old service at first login and stores the credential locally. The migration also carries roles, organizations, identity provider links and external IDs so that existing sessions and applications keep working. Reconciliation reports compare record counts, failed imports and sample logins against the source. The output is a reconciliation report signed by the data owner, plus a list of accounts that still depend on the old service.
Test consent and erasure flows
Before cutover, the team tests the privacy rights flows end to end on the new platform. Consent is granted, withdrawn and recorded with a timestamp and version of the notice. Erasure requests remove the account, its sessions, its federated links and copies in logs and backups according to the retention rules agreed in the mapping phase. Portability exports are generated in a structured format and checked for completeness. The output is a test report with each scenario, its result and the evidence location, which the DPO reviews before any production data depends on the new flows.
Cut over from the US service
The team switches application redirects, SDK configuration, DNS and identity provider registrations to the EU platform during an agreed window. A rollback plan defines the conditions to return traffic to the US service and how new registrations and password changes made during the window are reconciled. Monitoring tracks login success, error rates and support tickets for the first days. Both platforms run in parallel only as long as the rollback plan requires. The output is a cutover record listing the changes made, the validation results and the date the US service stopped handling live logins.
Decommission and document deletion
Once the US service no longer serves logins, the team requests deletion of customer data and configuration from the provider, exports any evidence the contract requires and confirms that backups and support copies are removed or expire within the agreed period. The team also checks the Data Act switching rights and notice terms in the contract, which govern how a customer can leave a data processing service. The output is a decommissioning report that lists each data store, the deletion request, the provider's confirmation and any exceptions that the legal team has accepted in writing.
Deployment patterns that keep data in the EU
A self-hosted Keycloak, ZITADEL or Ory deployment in a cloud account you own can keep customer data in the EU if every component is pinned to EU regions and the account's administrative access is controlled from the EU as well. Keep in mind that EDPB Guidelines 05/2021 treat remote access from a third country, including only displaying data on a screen for support, as a transfer, so the operator's support staff matter as much as the storage location.
- Database and backups: Run the PostgreSQL database (versions 14 to 18 are supported for Keycloak and ZITADEL) and its snapshots in the same EU region, and confirm that cross-region replication and disaster recovery targets are also inside the EEA.
- Logs and metrics: Send access logs, audit events and metrics to EU-hosted storage, since logs often contain identifiers that are personal data.
- Admin consoles and access: Restrict the Keycloak admin console and cluster management to named staff, and document where those staff sit when they connect.
- High availability: Both supported Keycloak high availability designs need a synchronously replicated database, so spread the database across availability zones within the same region.
- Operator updates: Use the Keycloak Operator with manual approval mode so upgrades happen after review rather than automatically.
Before you commit, ask the cloud provider for the list of regions and support locations it uses, and confirm with your counsel how its third-country legal exposure is assessed.
Running the identity platform in an EU data center or your own facility gives you direct control over the hardware, the network path and the people with administrative access. The data-residency question shifts from provider contracts to your own operating model: who can reach the database host, where the backup media go and which vendors receive remote support sessions.
- Database and backups: Keep the primary database and backup repositories on EU premises, and test restores from those backups in the same facility so no copy leaves the site.
- Logs and monitoring: Keep the logging pipeline and any SIEM collectors on the same network zone, and confirm that vendor telemetry or license checks do not send customer identifiers outside the EEA.
- Admin consoles: Place the Keycloak admin console and Kubernetes control plane behind a management network, and record who connects and from which country.
- High availability: Spread Keycloak nodes across two physical sites only if both are in the EU and the database replication between them is synchronous, as Keycloak's supported designs require.
- Operator and patching: Stage Keycloak Operator updates in a pre-production cluster and approve each change manually before rollout.
Ask your facility operator and any remote support vendor where administrative sessions originate, because EDPB guidance treats that access as a transfer.
Sovereign and air-gapped deployments remove external network paths entirely, which narrows third-country exposure but moves the work to software distribution, certificate management and offline operations. The platform itself is open source, so images, Helm charts and operator bundles must be mirrored into the isolated environment through an approved transfer process.
- Database and backups: Keep the database and backup storage inside the isolated enclave, with offline copies held under the same access rules as production.
- Logs and monitoring: Run log collection and alerting inside the enclave, and forward summaries outward only through a reviewed one-way path if your policy allows it.
- Admin consoles: Require privileged access from managed workstations inside the enclave, with session recording where your framework expects it.
- High availability: Keycloak's supported multi-site designs still need synchronous database replication, so confirm that the enclave's links and database hardware can meet that requirement.
- Updates: Mirror each Keycloak release and operator bundle into the enclave after review, because an air-gapped system cannot pull upgrades on its own and manual approval keeps the change record complete.
Confirm with your security team how software and certificate updates enter the enclave, and who signs off on each transfer.
Keycloak supports installation through the Keycloak Operator, which is installed through Operator Lifecycle Manager (the recommended method), with kubectl, or with an experimental Helm chart. The operator manages Keycloak, KeycloakRealmImport, KeycloakOIDCClient and KeycloakSAMLClient custom resources, so realm configuration and client definitions live in version-controlled manifests that can be reviewed inside your own perimeter.
- Cluster placement: Run the cluster inside the same EU boundary as the database, and keep cluster-wide logs, events and container images in EU-hosted registries.
- Operator approval: The Keycloak Operator documentation strongly recommends manual approval mode for operator updates to avoid unintended automatic upgrades, so set the subscription to manual and record each approval.
- Schema migration: Keycloak migrates its database schema automatically at startup by default, but the upgrading guide suggests manual migration for large deployments, so decide which mode your change process requires.
- Secrets and keys: Store database credentials and TLS material in an EU-hosted secrets store rather than in manifests.
- Experimental Helm chart: Treat the Helm chart as experimental and avoid it for production identity infrastructure unless your team has tested it.
Ask the implementation partner to show the approval workflow and the EU locations of every component the cluster depends on.
What evidence a data protection authority or auditor will ask for
What inputs does a transfer impact assessment need for a self-hosted identity platform?
A transfer impact assessment needs a map of where every copy of customer identity data sits, who can reach it from outside the EEA, and what third-country law could compel disclosure. For a self-hosted Keycloak, ZITADEL or Ory deployment, the inputs are the hosting region of the database, backups, logs and metrics stores, the list of people and support vendors with remote access, and the legal exposure of each supplier. The EDPB Guidelines 05/2021 treat remote access from a third country, even just viewing a screen, as a transfer, so support sessions must be in the assessment. This is evidence for your own assessment, not a certification.
What records of processing should a self-hosted CIAM deployment keep?
Your records of processing should describe the purposes of the identity service, the categories of data (profile attributes, credentials, consent state, login metadata), the recipients, the transfers, the retention periods and the security measures. Map each category to the component that holds it, such as the realm database, the event store, the metrics endpoint and the backup set. Keep the record under your own control and review it whenever a realm, identity provider or sub-processor changes. Auditors use it as the starting point for every other question on this list.
Which admin access and data location logs prove who touched customer identity data?
Auditors will look for three things: where the data is stored, which administrative accounts can read it, and a log of when they did. In Keycloak, admin events and user events can be enabled in the realm settings and shipped to a central log store, and the database hosting region is documented in your infrastructure records. For ZITADEL, audit and action logs and the PostgreSQL host location serve the same purpose. Confirm the retention of these logs against your own policy, and confirm that the logs themselves stay inside the EU region where you claim the data sits.
How should consent records with timestamps and withdrawal be stored?
Consent records should capture who consented, to which purpose and wording version, when, through which channel, and whether consent was later withdrawn. Store consent as attributes or in a dedicated consent service linked to the user identifier, and write an event each time it changes. Withdrawal must be as easy as giving consent, so test that the withdrawal path updates the same record. Keycloak user events and custom attributes, or ZITADEL user metadata and actions, can carry this data, but confirm with your legal team which schema meets your consent obligations.
What do erasure and portability request logs need to show?
Each erasure and portability request should show when it was received, who verified the requester, what data was exported or deleted, which systems were touched, and when the response was sent. For a self-hosted identity platform, the evidence comes from the admin event trail, the export output from the user management API or SCIM records, and a checklist that covers downstream applications and backups. SCIM provisioning records help show that deprovisioning reached connected applications. Ask your engineers to test a full erasure in a staging copy and keep the test results.
How do you document backup deletion for customer identity data?
A backup deletion procedure describes how erased data is removed from backups or how backups expire, and how the restore process avoids bringing erased users back. Document the backup schedule, retention window, encryption, the restore runbook, and the step that reapplies erasure after a restore. Database backups of Keycloak or ZITADEL PostgreSQL instances usually hold the full identity store, so the retention period is the main factor a data protection authority will test. Confirm retention periods with your backup vendor or operations team, because they set how long personal data survives after a request.
What supplier contract terms and sub-processor records will an auditor request?
Auditors will ask for a data processing agreement with each supplier, a current list of sub-processors with their locations, transfer mechanisms such as standard contractual clauses where they apply, and evidence that you were notified of changes. Open-source software itself is not a processor, but any hosting provider, managed database, support firm or implementation partner that touches the data is. Ask each supplier to state where support staff access data from and whether they can be compelled by third-country authorities, then record those answers in your assessment. Legal review of these terms is your responsibility, and the contract is the document an auditor will read first.
How to leave a US-hosted CIAM service without losing users
The Data Act gives you a legal right to leave your current customer identity provider, and that right covers moving to another provider or to on-premises ICT infrastructure. Under Regulation (EU) 2023/2854, which has applied since 12 September 2025, the switching rules in Articles 25, 29 and 50 set a maximum two-month notice period and a 30-day transition, and switching charges are banned from 12 January 2027. Before you send a notice, read your current contract for the notice mechanics, the data export formats the provider offers, and any fees that apply until the ban takes effect. Have counsel confirm how those terms map to the Act, because the provider's contract and the statute may not describe the process in the same way.
Losing users during a move usually comes from three places: password hashes, sessions and client configuration. Ask the current provider whether it will export password hashes and in which algorithm and parameters, since a hash that cannot be verified by the new platform forces a reset. Keycloak and ZITADEL both document migration approaches, including just-in-time migration, where the new realm or instance checks the old credential at first login and then stores the new hash. For tokens, plan for refresh tokens and active sessions to end at cutover unless you can run both issuers in parallel for a window. Inventory every relying party, including its client_id, redirect URIs, signing keys and the issuer URL in each application, because each one must be reconfigured or repointed before users are moved.
Test the cutover on a copy of production data. Run a sample of real logins through the new issuer, confirm that claims and roles arrive in the format each application expects, and check that consent records and erasure requests were carried across with their timestamps. Decide in advance whether you will keep the old service read-only for a fixed period so that support staff can reconcile disputed accounts. Finally, ask any implementation partner to write down how it will handle failed migrations, rollback and the user communications that go out before the switch, and make sure those steps appear in the statement of work.
How much work does EU-hosted customer identity take?
What drives the cost of self-hosted EU customer identity?
Cost follows scope: how many customer populations, applications and identity providers you connect, how many existing accounts must move, and how the platform is made highly available. Self-hosting shifts spending from a per-user subscription to recurring infrastructure in your own EU cloud account or data center, plus one-time implementation work. Ask any partner to price the migration, the identity provider connections, the high availability design and a support retainer as separate lines, so you can see which costs recur and which are one-time.
Can an in-house team run EU customer identity without outside help?
A capable platform team can run Keycloak or ZITADEL alone, but the first build usually needs skills that are scarce in most teams: database and clustering design, protocol configuration, upgrade planning and security hardening. Many organizations split the work, keeping day-to-day operation in house and buying implementation, hardening and upgrade support on a fixed-scope basis. Check whether your team has staff on call for login outages, and who will apply vendor security releases within your change window.
What does legal and security need to contribute to the project?
Legal must confirm the lawful basis for each processing purpose, the transfer position for any remaining third-country access, and the contract terms with every processor, including the hosting provider and any support vendor. Security must approve the data flows, encryption, key custody, administrator access and logging. Both teams should sign off the consent model and the erasure and export procedures before go-live, because changing them after users have registered is costly.
How long does an EU customer identity migration take?
Duration depends on the number of user records, the password hashing formats you must carry over, the number of applications that must switch to new login flows, and how many customer organizations bring their own identity providers. Each of these adds testing and cutover planning. Ask for a written schedule that separates design, build, parallel running and cutover, and confirm how the plan handles a staged rollout by customer group. No general duration applies to every organization, so treat any single figure with caution until it is tied to your inventory.
Is Keycloak or ZITADEL the better fit for EU customer identity?
Both are open source, can be self-hosted in EU infrastructure and support OpenID Connect and SAML. Keycloak is a mature option with a large community, broad protocol coverage and documented high availability designs that need a synchronously replicated database. ZITADEL offers instances as isolated virtual tenants, organizations per customer, passkeys and SCIM provisioning in the product, and is licensed under AGPL-3.0, which the team must review. Choose after testing your B2B tenancy model, passkey requirements and license obligations against real use cases.
What happens to customer data when moving off a US-hosted service?
The move should copy customer records into your EU environment under a documented plan, then stop the old service's processing and confirm deletion or return of records under your contract. Plan for the data in logs, backups and replicas, not just the primary store. Password hashes often need a migration path that avoids forced resets. Ask the provider for its export format and notice terms, and check the data processing agreement for sub-processors that could still access the data. Confirm the exit steps with counsel before cutover.
What should a retainer cover after the first go-live?
After go-live, the recurring work is patching, upgrades, monitoring, backup testing, incident response and periodic reviews of consent and erasure processes. DeployOpen offers ongoing support, upgrades and continuous testing as retainers, and most implementation work is agreed as a fixed scope with written deliverables before it starts. Ask any partner which upgrades are included, how they handle the Keycloak operator's manual approval mode or ZITADEL release changes, and what response expectations apply to your environment.
How DeployOpen scopes and runs EU customer identity projects
DeployOpen plans, implements, customizes, integrates, hardens, documents and supports self-hosted open-source identity platforms inside the client's own cloud accounts, data centers or air-gapped networks. For EU customer identity, that means the data residency, transfer and erasure decisions are made in writing before any platform is installed.
How we scope
- Map which customer data sets are held in the identity store, logs and backups, and where each is stored today.
- Record the consent, erasure and export flows the written scope must cover, with the controller's decisions on each.
- Agree the EU hosting location, operator access model and transfer exposure before the engagement starts, in writing.
How we build
- Deploy the chosen platform, such as Keycloak, ZITADEL or Ory, in the agreed EU infrastructure with data minimization configured by default.
- Configure consent records, erasure and portability procedures, and integrations with customer applications and directories.
- Test login, recovery, erasure and export paths, and document the results against the written acceptance criteria.
How we hand over
- Deliver architecture, configuration, runbooks and data flow documentation that your team and auditors can read.
- Prepare the evidence for privacy and security assessments, clearly separated from any audit report, which independent auditors issue.
- Document a tested exit path, including export of users and credentials, so the platform can move to another provider later.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer, scoped separately from the build.
- Agree how security patches and platform upgrades are rehearsed in a non-production environment before production changes.
- Review data flows and access paths again when the platform, hosting or legal conditions change, as part of the retainer scope.
Sources and further reading
- Regulation (EU) 2016/679 (GDPR), EUR-Lex ↗
- EDPB Guidelines 05/2021 on the interplay between Article 3 and Chapter V of the GDPR (version 2.0) ↗
- EDPB Recommendations 01/2020 on measures that supplement transfer tools (version 2.0) ↗
- Keycloak server administration guide ↗
- Zitadel self-hosting overview ↗
- Zitadel SCIM v2 ↗

