Self-hosted SSO for EU data sovereignty

Moving workforce login from a US-hosted identity provider to self-hosted open source on EU infrastructure changes who can access identity data, which licenses apply and how MFA is evidenced. This page covers those decisions.

On this page

Why self-hosted SSO for EU data sovereignty starts with where identity data can be accessed from

An EU organization whose workforce logins pass through a US-hosted identity provider has a transfer question before it has a technical one. Every login exposes names, email addresses, group memberships and authentication logs, and under the GDPR, moving that data to a third country or allowing someone there to view it is a transfer that needs a lawful basis under Chapter V. Self-hosted Keycloak, authentik or ZITADEL on EU infrastructure can keep identity data under the organization's control, but only if the scope covers more than the servers. Remote access from a third country, even just displaying records on a screen during support, counts as a transfer under the EDPB's Guidelines 05/2021, so vendor support sessions, log shipping, backup replication and monitoring integrations must be mapped alongside the identity stack itself.

This is why a sovereignty-driven SSO project differs from a generic one. A standard rollout starts with protocols, applications and MFA policy. Here, the first deliverable is a data-flow map that lists every place identity data is stored, processed or reachable: the database, the container registry, the SMTP relay, the SIEM forwarder, the backup target, and the account and tooling used by any support provider. Each item needs a named location and a named administrator, and each external access path needs a written decision on whether it is allowed, how it is logged and whether the provider's staff can reach data in the clear. Where a vendor or partner is subject to third-country law with extraterritorial reach, the EDPB's Example 12 notes that complying with a foreign authority's request would itself be a transfer, so that exposure must be assessed before engagement.

In practice, Keycloak offers the broadest protocol coverage and a supported path through Red Hat build of Keycloak, authentik is designed around a small set of containers backed by PostgreSQL, and ZITADEL is an AGPL-3.0 platform with built-in multi-tenancy. Licensing and feature gates need checking before the choice is made: authentik's enterprise directory carries a separate license, and its pricing page places Microsoft Entra ID and Google Workspace integrations in the Enterprise edition. Confirm with each vendor which features your environment needs, whether AGPL obligations apply to the modifications you plan, and whether the paid edition's support and hosting terms keep identity data inside the agreed jurisdiction.

Which GDPR, NIS2 and data access requirements shape the SSO design

This table maps each GDPR, NIS2 and data access requirement to what it means for a self-hosted identity provider, including where identity data flows and who can reach it. Read each row as a design question to settle before choosing Keycloak, authentik or ZITADEL, and confirm the legal reading with counsel and your data protection officer.

RequirementWhat it means for the SSO buildWhat to confirm or evidence
GDPR Article 44 transfersAny transfer to a third country, including onward transfers, must meet Chapter V. Storing directory or login data in a cloud region outside the EEA is a transfer.Hosting locations for database, backups, logs and monitoring, mapped per data flow
Remote access and supportVendor engineers viewing the identity console or logs from a third country count as transfers, even without a copy of the data.Support access paths, follow-the-sun rules, and jump hosts used for admin sessions
GDPR Article 48 disclosure ordersA third-country court or authority order to disclose identity data is enforceable in the EU only under an international agreement such as a mutual legal assistance treaty.Whether the hosting provider or managed partner is subject to foreign disclosure orders
CLOUD Act reach (18 U.S.C. 2713)A US provider must preserve or disclose data in its possession, custody or control, wherever that data is located. US-controlled vendors remain exposed even on EU servers.Ownership and control of the hosting, support and tooling providers, and their contract terms
EDPB Recommendations 01/2020Where a provider needs data in the clear and foreign powers exceed what is necessary and proportionate, the EDPB does not expect an effective technical supplementary measure to exist. Encryption alone may not close the gap.Transfer impact assessment that tests the provider's access to keys, logs and admin consoles
EU Data Act Article 32 (non-personal data)Providers of data processing services must take measures against third-country governmental access to non-personal data held in the EU. Directory metadata, configuration and audit exports may fall here.Provider measures for non-personal data, and switching rights to on-premises infrastructure
NIS2 MFA and access control expectationsWorkforce login to in-scope systems needs multi-factor authentication and privileged account controls. The sibling NIS2 page covers Article 21(2)(j) in detail.MFA coverage by application and privilege level, with enrollment and recovery records
Identity data as personal dataDirectory attributes, login logs and MFA enrollment records all identify people. Each category needs a stated purpose, retention period and access limit.Data inventory, retention settings for logs and events, and who can export enrollment data

Which open-source identity platform fits an EU sovereignty brief

For an EU sovereignty brief, the identity provider is the component that decides where authentication data lives and which license terms bind the code you run. The four options below differ in license, protocol coverage and how much you build yourself, so the choice should start from those trade-offs rather than from feature lists.

Keycloak under Apache-2.0

Keycloak covers OpenID Connect, OAuth 2.0 and SAML 2.0, with LDAP and Active Directory user federation, identity brokering and an admin console. It is a Cloud Native Computing Foundation incubating project under Apache-2.0, so you can host, modify and redistribute it without a copyleft obligation on your changes. Check the supported production databases and the documented high availability designs, which both require a synchronously replicated database. Confirm which distribution and support model you need before choosing between the community project and a vendor build.

authentik under MIT with enterprise carve-out

authentik is MIT licensed except the authentik/enterprise directory, which carries a separate enterprise license. Since the 2025.10 release it runs on PostgreSQL alone, with no Redis, which simplifies the stack you must back up and patch. Several capabilities, including Microsoft Entra ID and Google Workspace integrations, mTLS client certificate authentication and enhanced audit logging, are enterprise-only, so map your must-have features against the license before you commit. Verify the security support window for your version.

ZITADEL under AGPL-3.0

ZITADEL offers SSO, MFA, passkeys through FIDO2 and WebAuthn, OpenID Connect certification, SAML 2.0, SCIM and multi-tenancy. Its AGPL-3.0 license means that if you modify ZITADEL and let users interact with the modified version over a network, you may have to offer them the source of your modifications. Unmodified self-hosting carries lighter duties, but any custom patches should be reviewed by counsel before go-live. Confirm which features you need are in the open-source edition.

Ory Kratos and Hydra as building blocks

Ory Kratos handles identity and user management, while Ory Hydra acts as the OAuth 2.0 and OpenID Connect server. Both are Apache-2.0 licensed, which keeps license obligations light for custom code. They are components rather than a finished workforce login product, so you must build the admin experience, federation, provisioning and audit trail yourself. Budget for that engineering and for ongoing maintenance of the integration layer.

Confirm license terms with counsel

The practical difference is who must receive source code. Apache-2.0 and MIT allow private modification without releasing changes, while AGPL-3.0 can require source disclosure to network users of a modified service. Ask counsel to confirm whether your internal modifications, connectors or hosting by a partner trigger those duties, and whether an enterprise module or edition changes the analysis. Record the answer alongside your sovereignty assessment.

How to deploy the identity provider in EU infrastructure

An EU cloud account keeps the identity provider on infrastructure the organization already buys from a cloud provider, with regions chosen inside the EU or EEA. The organization still operates the software, so it controls configuration, patching and who holds administrative credentials. Region choice does not settle the legal question on its own. The provider's own support access, its sub-processors and any third-country legal exposure must be assessed as part of the transfer analysis.

  • Database placement: Keycloak supports PostgreSQL 14 to 18 among its listed production databases. authentik runs on PostgreSQL only, which stores all configuration and data except uploaded files. Place the database in the same EU region as the identity nodes and confirm the managed database service's supported versions.
  • High availability: Keycloak's supported high availability designs both need a synchronously replicated database. Confirm that the managed database offers synchronous replication across the zones you select, and test failover before go-live.
  • Logs: Route authentication and admin event logs to an EU log store under your control. Confirm that log shipping and any managed monitoring service keep data in the EU.
  • Backups: Keep backups in the same EU region or another EU location, encrypted with keys you manage. Check where snapshots are replicated by default.
  • Provider access: Ask the provider which staff can view customer data and from which countries support sessions run.

Before you sign, check the data residency, support access and legal request terms in the contract, not just the region name shown in the console.

Phases for replacing a US-hosted identity provider without a login outage

The sequence moves identity from a US-hosted provider to a self-hosted EU deployment in stages, so each application cuts over only after its data, license, directory and MFA path have been verified and the old provider can be retired with evidence.

  1. Map identity data and transfer paths

    Inventory every place identity data flows today: directory attributes, login logs, MFA factors, support access and the admin accounts of the US provider. Record which data is personal data under GDPR, where it is stored and processed, and which staff or vendor personnel can view it from a third country. Remote display of data from outside the EEA counts as a transfer under EDPB Guidelines 05/2021, so include vendor support sessions in the map. The output is a signed data flow register and a transfer inventory that the controller and DPO accept before any target design work begins.

  2. Confirm the switching rights in your contract

    Before committing to a target, ask your current provider's contract team which export formats, configuration exports and notice periods apply. The EU Data Act gives customers switching rights, including a maximum two-month notice period and a 30-day transition, and bans switching charges from 12 January 2027 under Articles 25, 29 and 50. Confirm how these rights apply to your specific agreement with counsel, since the terms in your contract govern. The output is a written list of exportable objects (users, groups, clients, policies, MFA enrollments) and the dates your contract allows.

  3. Select the target and review licenses

    Choose among Keycloak (Apache-2.0), authentik (MIT for most code, with a separate enterprise license for the authentik/enterprise directory) and ZITADEL (AGPL-3.0). Review whether the license terms fit your use: AGPL-3.0 obligations apply if you modify and offer the software over a network, and enterprise directories carry their own terms. Confirm which features you need, such as Microsoft Entra ID or Google Workspace integration, which authentik lists as enterprise-only. The output is a target design document with a license decision record and a hosting plan inside EU infrastructure, including database, backup and administrator access locations.

  4. Stand up a parallel EU instance

    Deploy the chosen platform in EU-controlled infrastructure alongside the existing provider, not in place of it. For Keycloak, plan the database from the supported list and an high availability design that uses a synchronously replicated database. For authentik, note that version 2025.10 removed Redis and moved its functions to PostgreSQL. Federate the existing corporate directory read-only, so the new instance sees the same users without changing the source. The output is a tested instance with directory sync, backup and restore verified, and admin access restricted to named EU-based staff.

  5. Cut over applications in waves

    Move applications in small groups, starting with low-risk internal tools. For each application, confirm whether it uses SAML or OIDC, change its client configuration to point to the EU instance, and run a test login with real user accounts in a non-production or pilot group. Keep the old provider active as a fallback for each wave until the group has run without incident. Applications that cannot use SAML or OIDC need a separate decision, such as a proxy or a managed exception list. The output is a cutover log per wave with rollback steps and the sign-off of the application owner.

  6. Enroll staff in MFA on the new provider

    Migrate or re-enroll multi-factor authentication factors according to your policy, and do not assume that factors can be exported from the old provider. Where a regulation requires MFA for workforce access, such as the FTC Safeguards Rule for covered financial institutions, define which factors are accepted and how phishing-resistant options such as passkeys are offered. Record enrollment rates per group and set a recovery path for staff who lose a device. The output is an enrollment report, a recovery procedure tested by the service desk, and the policy configuration exported as evidence.

  7. Decommission the old provider and keep exit evidence

    Once every application has cut over and the fallback window has closed, remove client configurations, revoke vendor admin access, and request deletion or return of identity data under the contract, documenting the request and the vendor's confirmation. Keep a record of the data flow register, the transfer assessment, the license decision, and the cutover logs, because these are the items a data protection authority or an auditor will ask for. Ask a qualified auditor or counsel to confirm which of these records your regulator expects. The output is a decommissioning record and an exit evidence pack held by the controller.

What evidence a data protection or security assessor will ask for

What inputs does a transfer impact assessment need for a self-hosted identity provider?

A transfer impact assessment starts from a map of where identity data flows, who can reach it, and which third-country laws could reach it. For a self-hosted Keycloak, authentik or ZITADEL deployment on EU infrastructure, the inputs are the hosting location of the database and backups, the list of administrators and support vendors with remote access, and any external services the identity provider calls, such as email, SMS or social login brokers. The EDPB Guidelines 05/2021 treat remote access from a third country, even screen display for support, as a transfer, so support paths belong in the assessment. Ask your implementation partner to document each path in writing and to confirm which of your own contracts with cloud or support providers carry third-country exposure. The assessor will also look at the GDPR text on Chapter V conditions that apply to each identified flow.

What records of processing and data location should cover identity data?

The record of processing should name the identity data categories (account identifiers, credentials, MFA enrollment data, login logs, session metadata), the purposes, the retention periods and the physical and logical location of each store. For a self-hosted deployment, the producing components are the identity provider's database (PostgreSQL in the supported authentik architecture, or one of the Keycloak supported production databases), the backup target, log shipping destinations and any directory federation source such as LDAP or Active Directory. Keep the data location table current after each upgrade or infrastructure change, because a new sidecar or log exporter can move personal data outside the intended region. Confirm the retention settings for sessions and events in your own environment rather than relying on defaults.

Which configuration exports prove MFA and session policy are enforced?

Assessors usually want an export of the authentication flow, required actions, MFA policy, password rules, lockout and session timeouts, taken from the running system and dated. In Keycloak, the realm export and the authentication flow definitions show these settings; in authentik, the blueprints and flow and stage bindings serve the same purpose; in ZITADEL, the login policy and organization settings do. Store these exports in version control so changes appear as reviewed diffs. Pair them with a sample of login attempts that show the policy applied, since an export alone does not prove the policy was active during a given period. The Keycloak database guide and configuration production documentation list the settings to capture for your version.

Which admin access logs should show support and vendor access to the identity provider?

Assessors look for a log of every administrative session, including which account made each change, from which network, and what was changed. The producing components are the identity provider's admin event and audit logging, the operating system and database audit logs, and the bastion or privileged access tool used for vendor sessions. Note that enhanced audit logging is listed as an enterprise-only feature on the authentik pricing page, so confirm which audit capabilities your chosen edition includes. Retain these logs in a location the vendor cannot silently alter, and record every remote session that a support engineer opens from a third country, because that access is itself a transfer.

What license and version records does an assessor need for each identity component?

The assessor needs a current bill of materials that lists each component, its exact version, its license, and its patch status. For a typical stack this includes the identity provider, its database, the operating system, the container runtime, and any connectors or themes. License differences matter: Keycloak is under Apache-2.0, authentik's core is under MIT with a separate enterprise license for its enterprise directory, and ZITADEL is under AGPL-3.0, which carries network-use obligations if you modify the code and expose it to users. Record the version and release date from the project's release page at the time of each review. Ask your partner to confirm which license applies to any extension or paid edition you add, because the paid edition terms are separate documents.

Which evidence shows that a self-hosted identity provider can be upgraded safely?

Assessors commonly ask for a written upgrade procedure, test results from a non-production copy, and a record of the versions in use over time. For Keycloak, the operator documentation recommends manual approval mode for operator updates, and schema migration can run automatically at startup or be applied manually, so record which method you chose. For authentik, the security policy lists which versions receive security fixes and announces security releases at least 24 hours ahead, which should be reflected in your patch calendar. Keep the change record for each upgrade, including the database backup taken before it, the rollback plan, and the sign-off.

How should a team respond to a third-country authority request for identity data?

Assessors will expect a documented response procedure that covers how requests are logged, reviewed by legal counsel, and limited to what is necessary. The CLOUD Act provision at 18 U.S.C. 2713 applies to US-headquartered providers regardless of data location, and GDPR Article 48 limits recognition of third-country disclosure orders to those based on an international agreement. Because the EDPB Recommendations 01/2020 say no effective technical supplementary measure exists where a provider must access data in the clear under overbroad powers, the procedure should also cover contractual and architectural choices, such as keeping keys and data under EU control. Ask your legal team to confirm how these rules apply to your specific supplier chain, since DeployOpen does not issue legal opinions or audit reports.

Does DeployOpen issue a certification or audit report for a self-hosted SSO deployment?

No. DeployOpen prepares systems, controls and evidence for compliance assessments, but independent auditors and certification bodies issue audit reports, attestations and certifications. In practice, the engagement produces the configuration exports, architecture and data location documentation, license and version records, and runbooks described above, scoped in writing before work starts. Ask any implementation partner to list the evidence artifacts they will deliver, who maintains each one after handover, and which items remain your responsibility, such as legal review of transfer risk and the final assessor selection.

How Apache, MIT and AGPL licenses change what an EU buyer can do

The license decides what your organization may run, change and offer to others without paying a vendor, and it matters most when the identity provider sits on EU infrastructure you control. Keycloak and Ory are licensed under Apache-2.0, a permissive license that lets you use, modify and host the software internally, including inside a subsidiary or a managed service you run for your own staff, while keeping the license notice and noting your changes. authentik's core is under MIT, which is similarly permissive, but the authentik/enterprise directory carries a separate enterprise license, so code you pull from that directory is governed by different terms. ZITADEL is licensed under AGPL-3.0, a copyleft license whose network clause can require you to publish modified source to users who interact with the software over a network. For an internal workforce login used only by employees, that obligation is usually narrower than it sounds, but any modification you make and expose to outside users, such as a customer-facing portal, needs review.

Paid editions sit outside the open license. The authentik pricing page separates a free Open Source edition from Enterprise and Enterprise Plus, and lists features such as Google Workspace and Microsoft Entra ID integrations, mTLS client certificate authentication and enhanced audit logging as enterprise-only. Before you rely on any of these features in an EU deployment, confirm with the vendor which edition and license cover each one, and ask for the written terms that apply to your use. Red Hat build of Keycloak is a separate supported product, so its subscription terms, not the upstream Apache-2.0 license alone, govern support and distribution.

Some points must go to legal counsel rather than being assumed. Ask counsel to confirm whether your planned hosting, any contractor who operates the platform for you, and any customer-facing use fall within the AGPL-3.0 network clause or the MIT and Apache notice obligations. Ask whether a paid editions contract or a partner's support agreement adds restrictions on redistribution. Keep the license files and the exact version you deploy in your records, because the terms that applied at adoption are the ones you will be asked to explain during due diligence. The license question is separate from the data-transfer question: a permissive license does not change where identity data is stored or which law can compel access to it.

What does a self-hosted EU SSO project cost and require?

What drives the cost of a self-hosted EU SSO project?

The cost is driven mainly by who runs the identity provider, how many applications must be integrated, and how much legal and data mapping work precedes the build. The open-source software itself carries no license fee for Keycloak, which is Apache 2.0, but you pay for infrastructure, a supported database, application integration effort, MFA rollout, testing, and ongoing operations. Ask any partner for a written scope that lists each cost line separately: infrastructure and database (one-time setup plus recurring hosting), integration per application (one-time), MFA enrollment support (one-time plus help desk load), legal review of data flows (one-time), and operations and upgrades (recurring). Each line should name who is paid for what.

Do I need a paid edition of an open-source identity provider?

Usually not for core single sign-on. Keycloak is Apache-2.0 licensed and authentik's repository puts most code under MIT, with enterprise features in a separately licensed directory. Paid editions are worth pricing only when you need a specific feature they gate. For authentik, the pricing page places Google Workspace and Microsoft Entra ID integrations, mTLS client certificate authentication, privileged access management, password history and enhanced audit logging in its Enterprise tier. Enterprise Plus adds dedicated support with SLAs and FIPS compliance for FedRAMP requirements. Before you commit, confirm with the vendor which features your design depends on, and include subscription costs as a recurring line item in your quote.

Can our internal team run the SSO project without an implementation partner?

Yes, if your team has the skills to operate a production identity system, but the work is larger than the software installation. The hard parts are the directory and application inventory, data mapping for GDPR and transfer analysis, high availability design, upgrade testing and MFA enrollment for staff. Keycloak documents three high availability architectures, and each supported design needs a synchronously replicated database, which is a design decision your team must own. Keycloak also documents that its Operator should use manual approval for updates. A partner can deliver a fixed-scope project with written deliverables, while your team keeps operating the platform. Decide which of these tasks you will carry in-house before requesting quotes.

What must our internal team provide before the project starts?

Your team must supply access, decisions and sign-off. Expect to provide read access to the source directories (such as Active Directory, LDAP or an existing identity provider), a list of applications with their owners and protocols (SAML, OpenID Connect or none), and a named business owner for each application who can approve testing. Data protection and legal staff must sign off the data mapping: which personal attributes flow to which systems, where the database and backups sit, and whether any remote administration or support access comes from outside the EEA. Ask the partner to list these inputs in the written scope so that delays are visible before work begins.

How long does an EU SSO migration typically take?

The duration depends on the number of applications, the state of the directory, and how many applications lack SAML or OpenID Connect support. No timeline for this project is supplied here, so treat any figure from a vendor as a claim to verify. The schedule is usually driven by application owner availability, testing cycles for each integration, and the staged cutover of users from the old provider. Ask for a phased plan with a named pilot group, a list of applications per phase, and exit criteria for each phase. Ask how the plan handles applications that cannot use single sign-on, since those often extend the timeline.

When does a support retainer make sense after go-live?

A retainer makes sense when the identity provider becomes a critical dependency and your team cannot absorb upgrades, security fixes and monitoring on its own. Keycloak plans four minor releases a year and a major release every two to three years, and authentik publishes security releases with at least 24 hours of advance notice, so someone must track and test each release. Ask for a retainer scope that covers patch testing, upgrade windows, incident response hours and periodic security testing. Compare that scope against your internal staffing. Retainer prices should come from a written quote, not a published rate card.

Does a self-hosted deployment remove all EU transfer risk by itself?

No. Hosting in an EU data center reduces exposure, but it does not settle the legal analysis by itself. EDPB Guidelines 05/2021 treat remote access from a third country, even just displaying data for support, as a transfer. Vendor support sessions, cloud backups, and telemetry sent outside the EEA can each create a transfer. Ask your counsel to review every support path, backup location and log destination. Keep the written scope explicit about which systems and personnel can access identity data, and where each one is located.

How DeployOpen scopes and supports an EU identity deployment

DeployOpen is a Chainscore Labs company that plans, implements, hardens, backs up, upgrades and documents self-hosted open-source platforms inside the client's own infrastructure. For an EU identity deployment, that means the identity provider runs in cloud accounts, data centers or private networks that the client controls, with the client's own choice of EU region or facility. DeployOpen does not operate a multi-tenant identity service on its own systems, and the work covers the platform itself: realm or organization design, database and high availability layout, federation to the directories the client already runs, MFA enrollment, logging and the backup and restore path.

Most engagements are fixed-scope. Before work starts, the parties agree in writing on the scope, the deliverables and the timeline, including which applications are integrated, which directories are federated and which configuration exports will be handed over as documentation. Ask for the deliverables list to name each item, such as the deployed components, the runbooks for database failover and operator-managed upgrades, and the test records for each integration. Confirm who owns the configuration and the documentation at the end of the engagement, and how changes requested after sign-off are priced.

DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. Independent auditors and certification bodies make those determinations. For data sovereignty questions, the legal assessment of transfers, processors and third-country exposure stays with the client's counsel and data protection officer. Ongoing support, upgrades and continuous testing are available as retainers, which matter for identity platforms because Keycloak and authentik ship releases on their own cadence and need tested upgrade paths. Ask any partner, DeployOpen included, to define in writing who responds to a sign-in outage and within what hours.

Talk to our team.

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

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