Open source citizen identity for public sector

Citizen login for government services has to meet assurance, accessibility and federation rules before it meets features. This page covers how self-hosted open source identity fits, what agencies must evidence and what to ask a partner.

On this page

Why open source citizen identity for public sector is different

An agency running citizen login needs one trusted account that works across benefits, tax, licensing and permit services, and it must prove three things to auditors and the public: the assurance level of each login, that the service is accessible, and that citizen data stays where the law requires. Citizen identity is not workforce single sign-on with more users. Staff come from a directory the agency controls, while citizens arrive with national eID credentials, regional accounts and mobile identity wallets that the agency does not issue. Commercial customer identity platforms add a second constraint: many public bodies must run the identity service on government infrastructure, under procurement and lawful-access rules, rather than in a vendor's cloud. For most of these requirements, Keycloak is the most common fit among open-source options, because it supports OpenID Connect, OAuth 2.0 and SAML 2.0, identity brokering to external identity providers and user federation. ZITADEL and Ory are credible alternatives when the design depends on multi-tenancy for many agencies or on API-first control, and the choice should follow those needs rather than a general preference.

Start with assurance. The NIST SP 800-63 digital identity guidelines define identity assurance levels for identity proofing, authentication and federation, and each citizen service should be assigned a level before the platform is selected. The levels are not restated here, so confirm the current wording and requirements directly against the NIST publications and the agency's own legal basis, then map each authenticator type, including passwords, OTP, passkeys and eID-backed login, to the level it can support. Next, check the eID integration path. Brokering a national scheme through an OIDC or SAML connection in Keycloak needs the scheme's metadata, signing keys, attribute mapping and a decision on where identity proofing happens. Finally, confirm where the platform runs. Hosting in the agency's data center or a sovereign cloud region, with the database, backups and logs in the same jurisdiction, is a design decision that affects the rest of the architecture and should be settled before any vendor or partner is asked for a quote.

Which requirements shape a citizen identity build

This table maps each public sector requirement to the source that creates it and the build decision it forces on a citizen login platform. Read it row by row before choosing an assurance design, hosting model or accessibility plan, because several rows depend on who operates the service and what data it touches. Confirm applicability with counsel and your assessor, since a requirement that binds one agency may not bind a neighboring one.

RequirementWhat it asks forBuild impact
NIST SP 800-53 baselines (low, moderate, high)SP 800-53B selects 149, 287 and 370 controls and enhancements for low, moderate and high baselines in Release 5.2.0Choosing the baseline sets the MFA, logging, configuration and continuity controls the identity platform must evidence. Moderate or high baselines usually push you toward dedicated audit log retention and tighter change control.
FISMA and Inspector General assessmentAgency systems are independently assessed by Inspectors General, who report to OMBExpect assessors to test the identity platform as an agency system. Keep configuration baselines, access reviews and incident records in a form an independent reviewer can sample without help from the build team.
FedRAMP scope under M-24-15Cloud products that process federal information on behalf of an agency, offered as a shared service, fall in scope; single-agency systems on cloud infrastructure may notWhether you host in a public cloud decides if an authorization is needed. Confirm with the agency whether a citizen login run for one agency is a shared service, since that answer sets the hosting options.
CJIS Security Policy v6.1 encryption and scanningFIPS 140-3 validated modules or FIPS 197 AES with at least 256-bit keys for CJI in transit and at rest outside physically secure locations, and vulnerability scanning at least monthlyApplies where login links to criminal justice data. Plan for validated cryptographic modules in the identity stack, key lengths on every connection, and a monthly scan schedule covering the identity servers and their database.
32 CFR 2002.14(h)(2) and NIST SP 800-171 for CUIFederal agencies apply NIST SP 800-171 to controlled unclassified information on non-federal systems unless the CUI category sets other safeguardsIf citizen records carry CUI and run on contractor or partner infrastructure, the operator inherits SP 800-171 requirements. Confirm the CUI categories with the agency before fixing the audit log, access and encryption design.
28 CFR 35.200 WCAG 2.1 Level A and AAState and local government web content and mobile apps, including contracted ones, meet WCAG 2.1 Level A and AA from 26 April 2027 for entities serving 50,000 or more people and from 26 April 2028 for smaller entities and special districtsLogin, registration, MFA prompts and recovery screens are all in scope. Budget for accessible custom login themes, keyboard and screen reader testing of every authentication step, and an accessible alternative to image-based or timed challenges.
NIS2 public administration scopeCentral government entities are covered regardless of size; Member States may extend coverage to local administration; national security, public security, defense and law enforcement are excludedDetermines whether the identity service carries NIS2 incident reporting and supply chain duties. Confirm with the national competent authority whether the agency or its operator falls in scope, and separate any law enforcement-linked identity flows that the exclusion may cover.

Where the identity platform runs: public cloud, government data center or air-gapped

When the agency owns the hardware, virtualization and database, it controls the change calendar and the key material, but it also carries every patch and every failover test. Keycloak's documented high availability designs set the baseline for what the agency must build and operate.

  • High availability design: A single cluster can be spread across availability zones, or multi-cluster deployments (v2) can run without an external Infinispan cluster. The deprecated v1 model used a separate Infinispan cluster per site, so confirm early that it is not the design you are inheriting.
  • Database replication: Both supported designs need a synchronously replicated database, so the agency must fund, size and test that database tier, not only the Keycloak nodes.
  • Patching cadence: Keycloak plans four minor releases a year, and breaking changes in a minor release are opt-in, which gives the platform team time to schedule upgrades inside its own change windows.
  • Operator updates: If the platform runs on Kubernetes, the Operator documentation strongly recommends manual approval mode so that upgrades happen only when the agency approves them.
  • Key holding: The agency holds TLS certificates, database credentials and backup encryption keys directly. Confirm where those keys are generated, who can export them and how they are rotated.

Confirm that your data center can provide two sites with synchronous storage replication, and read the Keycloak high availability overview before you commit to a topology.

Which open source identity platforms fit citizen login

Citizen login is a public-facing identity service with strict assurance, accessibility and federation needs, so the platform choice shapes both the build and the licensing position. The cards below cover the main open source candidates, the question each one raises for an agency, and the staff-side companion that keeps workforce accounts governed.

Keycloak for citizen login

Keycloak is licensed under Apache-2.0 and supports OpenID Connect, OAuth 2.0 and SAML 2.0, with identity brokering and user federation for connecting to existing directories and national eID schemes. For public sector use, the questions are whether your chosen production database is on the supported list, which high availability design fits your hosting, and how you will handle upgrades. The Operator documentation recommends manual approval mode for operator updates, so plan that approval step into your change process. Confirm which Red Hat or community distribution your procurement and support model requires.

ZITADEL and the AGPL question

ZITADEL covers SSO, MFA, passkeys with FIDO2 and WebAuthn, OpenID Connect certification, SAML 2.0, SCIM and multi-tenancy, which suits agencies that serve several departments or delegated administrators from one platform. It is licensed under AGPL-3.0, which requires that network-accessible modifications be made available to users under the same license. Agencies should have counsel confirm whether any modifications, integrations or hosted contractor changes trigger those obligations, and whether the contract allows the agency to publish its changes. Multi-tenancy can also reduce the need for separate instances per department.

Ory Kratos and Hydra as a split stack

Ory Kratos handles identity and user management, while Ory Hydra acts as the OAuth 2.0 and OpenID Connect server, and both are licensed under Apache-2.0. The split suits teams that want to own the login flows and the token service separately, but it means your team assembles and tests the integration between them. Agencies should map which parts of assurance, consent and session handling must be built and evidenced by their own staff. Confirm that the team can support two components on a shared release calendar before choosing this route over a single platform.

authentik and its enterprise directory

authentik is licensed under MIT, but the authentik/enterprise directory carries a separate enterprise license, so the license boundary must be checked against the features your citizen login needs. Agencies should list required capabilities such as directory features, support terms and enterprise-only components, then confirm in writing which of them fall under the MIT core. A community deployment can meet many login needs, but any dependency on enterprise-licensed code changes the procurement and redistribution position. Ask the vendor or DeployOpen to show the exact file paths behind each required feature.

midPoint for staff account governance

Citizen login serves the public, but the staff accounts that administer it need joiner, mover and leaver processing and periodic access certification. midPoint is an identity governance and administration platform licensed under the European Union Public License 1.2 or later, and it can act as the source of truth that provisions staff identities into the login platform. The 4.8 Curie release is a long-term support line supported until October 17, 2028, which matters for agencies planning multi-year operations. Confirm how staff directories and HR sources feed midPoint before you connect it.

How a citizen identity rollout moves from assurance mapping to live services

The sequence turns a set of citizen services into a tested, federated and operated identity platform, with each phase ending in a documented decision or check. Assurance requirements are fixed first, so architecture, eID onboarding, accessibility and cutover are all measured against the same agreed targets.

  1. Map each service to an assurance level

    The agency, its legal team and DeployOpen review each citizen service and assign an assurance level under NIST SP 800-63, based on the harm a misused or compromised account could cause and the sensitivity of the data behind it. The same pass identifies which applicable baselines apply, such as the moderate or high control baselines in NIST SP 800-53B if the platform touches federal systems, or the CJIS Security Policy if criminal justice information is involved. The output is a signed requirements register listing, per service, the authenticator types, identity proofing method, session rules and audit events required. The step is done when the agency has approved the register and every open question has a named owner.

  2. Decide architecture and hosting boundaries

    Architects choose where the identity platform runs, such as government-operated data centers, a sovereign cloud region or an air-gapped segment, and whether Keycloak or another open source option fits the assurance and protocol requirements. They document the database, high availability design, backup location, key storage and the boundary between the identity provider and the services that trust it. Where a cloud service would hold citizen data, the team confirms with the agency whether any FedRAMP or equivalent authorization applies before anything is provisioned. The output is an approved architecture decision record and a hosting statement that the agency's security office can assess.

  3. Onboard federation and national eID schemes

    The team connects the platform to national eID schemes and to any existing workforce or regional identity sources through the protocols each scheme supports, typically OpenID Connect or SAML 2.0, and sets up attribute mapping so claims arrive in the form each service expects. Scheme operators and the agency confirm test onboarding, certificate and metadata exchange, and the assurance level each scheme can carry. The output is a federation matrix showing which schemes are trusted for which services, with test evidence for each login path and a documented process for rotating signing keys and metadata.

  4. Test accessibility against WCAG 2.1 AA

    Login, registration, identity proofing, consent and recovery pages are tested against WCAG 2.1 Level A and AA, which the ADA Title II rule requires for state and local government web content and mobile apps from the dates in 28 CFR 35.200. Testers combine automated scans with manual checks using keyboard only navigation, screen readers, zoom and high contrast settings, and they include the error messages and timeout warnings that citizens are most likely to hit. The output is a findings log with severity, owners and retest results, and a statement of which pages still carry known issues. Remediation in the login flow is re-verified before the pilot begins.

  5. Run a pilot with one service

    The team selects a single citizen service with a limited, well understood user group and enables the new login flow alongside the existing method for that service only. Monitoring covers failed logins, proofing outcomes, help desk tickets, session timeouts and audit log completeness, and the agency reviews these against the requirements register. Load testing at the expected peak is run before the pilot opens to the public. The output is a pilot report listing defects found, changes made, measured outcomes against the agreed targets and a go or no-go decision signed by the service owner and the security office.

  6. Migrate users and cut over services

    Existing accounts, if any, are moved to the new platform through an agreed method, such as account linking at next login or a supervised bulk import, and the team confirms how password hashes or credentials are handled so citizens are not locked out without a recovery path. Services are switched one at a time, with a rollback plan that keeps the previous login route available for a defined period set by the agency. Cutover is complete when each service has passed its acceptance tests, its audit events reach the agency's logging platform and the legacy route is retired or formally kept for a documented reason.

  7. Hand over operations and upgrades

    DeployOpen documents runbooks for backups, restores, certificate and key rotation, scaling, incident response and upgrades, and trains the agency's operators on them. Upgrade handling follows the platform's release model: for Keycloak, that means reviewing minor and major release notes, testing in a non-production environment, and applying operator updates under manual approval so changes are not applied unintentionally. Ongoing support, upgrades and testing can be placed under a retainer if the agency wants them. The output is an operations handover package, a tested restore record and a named support model, confirmed in writing before the engagement closes.

Integration points that citizen identity must connect

A citizen login platform is only as useful as the systems it connects to. The cards below cover the external eID schemes, the service applications that consume identity, the logs and secrets the platform depends on, and the staff access path that administers it. Each one needs a named owner and a written interface before build work starts.

National and regional eID brokering

Citizens may be able to sign in with a national eID scheme or a regional credential issued by another authority. Keycloak can broker such upstream identity providers, but the platform must map each scheme's assurance level, attribute set and logout behavior to the NIST SP 800-63 level the service requires. Confirm with the eID scheme operator which attributes are released, how identifiers are stable over time, and whether the scheme accepts your redirect URIs and certificate rotation schedule.

Service-side OIDC clients

Each benefits portal, form service or case front end becomes an OpenID Connect client with its own scopes, redirect URIs and token lifetimes. Standardizing client registration, using the Keycloak Operator's KeycloakOIDCClient resource where it fits, keeps those settings reviewable as code. Confirm with each service owner which claims they need, whether they call APIs on behalf of the citizen, and how sessions end when a citizen signs out of one service but not another.

Case management and benefits systems

Case files, eligibility engines and payment systems hold the records a citizen's identity is linked to. The identity platform should supply a stable subject identifier and verified attributes, while the case system keeps ownership of the record. Confirm with the system owner how a citizen account is matched to an existing case, how proxy or representative access is recorded, and what happens to linked records when an account is merged or closed.

Authentication logs into the SIEM

Every login, failed attempt, MFA challenge and token issuance is evidence for incident response and for audit controls over systems that hold personal data. Forwarding these events to Wazuh or another SIEM lets security staff correlate citizen account takeover attempts with network and endpoint activity. Confirm with the security team which event types are required, how long they are retained, and whether citizen identifiers must be pseudonymized before they leave the identity platform.

Client secrets and keys in OpenBao

Client secrets, signing keys for tokens, database credentials and certificates for upstream eID connections are sensitive material that should not sit in configuration files. OpenBao can store and distribute these values under access policies with audit logging. Confirm with the security team who may rotate signing keys, how a key rotation is rolled out across Keycloak nodes without breaking active sessions, and where the recovery keys are held.

Staff access through midPoint

Caseworkers, help desk staff and platform administrators reach citizen data through a separate, governed identity path. midPoint can handle joiner, mover and leaver events from the HR or employee directory, assign roles to staff, and run access certifications on a schedule set by policy. Confirm with the HR and IGA owners which source system is authoritative, how contractor accounts are ended, and which administrative roles require a second reviewer.

Evidence assessors and regulators ask for from citizen login

This table maps the evidence an assessor or regulator typically asks to see for a citizen login service to the component that produces it and the team that owns it. Read it as a checklist for scoping the evidence pack before an assessment starts. DeployOpen prepares this evidence from the running system, but independent assessors and certification bodies issue any opinion on it.

EvidenceProducing componentOwner and what to confirm
Audit log exports of administrative and user eventsKeycloak event logs and admin event logs, exported to a central log storeAgency security team. Confirm retention period, log integrity controls and who can read the logs.
Operational metrics for login volume and failuresKeycloak metrics endpoint (Micrometer/Prometheus format) feeding dashboards and alertsPlatform team. Confirm which metrics are retained as evidence of availability and anomalous login activity.
Configuration baselines for realms, clients and password or MFA policyExported realm configuration, Keycloak Operator custom resources and version-controlled manifestsPlatform team with security sign-off. Confirm that baselines are reviewed and changes are tracked to an approver.
Authentication assurance recordsRealm settings mapping flows to NIST SP 800-63 assurance levels, MFA enrollment records and federation trust configurationIdentity owner and agency policy team. Confirm which assurance level each service requires and how that decision is documented.
Accessibility test reports for login and registration pagesAutomated scans and manual testing against WCAG 2.1 Level A and AA, including themed Keycloak pagesDigital service team and accessibility specialist. Confirm the tester is independent of the build team and the scope covers every custom theme.
Backup and restore test recordsDatabase backup jobs and timed restore tests into an isolated environmentOperations team. Confirm that restores were completed, time taken was measured and results were signed off.
Upgrade and patch recordsChange tickets, Keycloak release notes reviewed, pre-production test results and rollback plansPlatform team and change board. Confirm that the Operator approval mode and schema migration choice were recorded for each upgrade.
Vulnerability scan and penetration test resultsScanning of the platform, its container images and the public login endpoints, plus security testing reportsSecurity team. Confirm findings, remediation dates and retest evidence are tracked together.

What agencies ask before hiring an implementation partner

What drives the cost of a citizen identity implementation, and what is fixed scope?

The cost depends on the written scope: which assurance levels the services need, how many federated national eID schemes and agency services must connect, how many user journeys (registration, identity proofing, recovery, delegated access) are in scope, and how much accessibility testing is required. Most DeployOpen engagements are fixed-scope, so scope, deliverables and timelines are agreed in writing before work starts, and the quote follows from that scope. Recurring costs include the infrastructure that runs the platform, upgrades, and any retainer for ongoing support. Ask each bidder to separate one-time delivery from recurring operations, and to state which items are excluded from the fixed price. DeployOpen does not publish a price list.

How long does it take to put a citizen login service live?

The timeline depends on the integrations and the approval path, not on the software alone. The main variables are the number of eID connections, the number of agency services that need single sign-on, the accessibility and security testing required before launch, and how long the agency's own approvals take. No duration is fixed here because no researched figure applies to your environment. Ask for a phased plan in the written scope with named milestones, such as a pilot with test users, a federation test with each eID scheme, and a controlled production cutover. Confirm which of these milestones depend on the national eID scheme operator or other third parties.

What does the agency need to provide before implementation starts?

The partner will need decisions and access from the agency, not only infrastructure. Typical inputs are:

  • A named policy owner who can confirm the assurance level each service requires under NIST SP 800-63 and local rules
  • Technical contacts for each national eID scheme and for every service that will trust the login
  • A set of test users and test identities for registration, step-up and recovery journeys
  • Access to the hosting environment on public infrastructure, plus approved network and certificate paths
  • Sign-off on accessibility requirements and on the audit and log retention rules

Ask each partner to list these inputs in the written scope, with the owner and the date each one is needed.

Can our in-house team run a self-hosted Keycloak identity platform after launch?

Yes, if the team has the skills and capacity to operate it, and the scope includes a handover. Keycloak is an Apache 2.0 licensed server with a supported production database list, documented high availability designs, and an Operator for Kubernetes. Running it still requires people who manage the database, clustering, certificates, backups, monitoring (Keycloak documents metrics) and upgrades. Ask the partner what documentation, runbooks and training are included, and whether support after launch is a fixed handover or a retainer. Confirm that your team can operate the chosen high availability design and that its database meets the synchronous replication requirement the project documents for both supported multi-site designs.

How are Keycloak upgrades approved if the operator recommends manual approval?

Upgrades should follow a written approval path, because the Keycloak Operator documentation strongly recommends manual approval mode to avoid unintended automatic upgrades. Keycloak plans four minor releases a year since version 26.0 and says breaking changes in a minor release are opt-in, but each upgrade still needs testing against your realms, custom providers and federation settings. Ask the partner to describe the change approval board, the test environment, the rollback plan and the schema migration method. Keycloak migrates its database schema automatically at startup by default, and it also supports manual migration, which the upgrading guide suggests for large deployments. Confirm which option your agency's change policy requires.

Does FedRAMP or CJIS apply to a citizen identity platform?

It depends on who the service is for and what data it handles, so confirm it with your agency's authorizing official before scoping. FedRAMP scope covers cloud products and services that create, collect, process, store or maintain federal information on behalf of an agency, and systems used only for a single agency's operations on cloud infrastructure, not offered as a shared service, are out of scope. CJIS Security Policy applies when criminal justice information is in the system. Version 6.1 took effect on 26 June 2026 and requires FIPS 140-3 certified modules or FIPS 197 AES with at least 256-bit keys for CJI outside physically secure locations. Ask the partner to map each control to the policy that applies and to state which evidence it prepares. DeployOpen prepares controls and evidence for assessments but does not issue authorizations or certifications.

Which NIST SP 800-63 assurance level does a citizen login need?

The required assurance level is set by the service owner's risk assessment, not by the identity platform. Ask the agency's policy owner to assign an assurance level to each service and to confirm that the chosen authenticators and federation paths meet it. Keycloak supports OpenID Connect, OAuth 2.0 and SAML 2.0, which cover the federation patterns most agencies use, but authenticator strength and identity proofing decisions must be checked against the assurance level in the written scope. Ask the partner which authenticators it will configure, how it will record authentication context in tokens, and how step-up authentication is handled for sensitive transactions.

How is accessibility tested for citizen-facing login pages?

Login pages are part of the web content that must meet the accessibility standard, so they should be tested before launch and kept under test after each change. Under the ADA Title II rule, state and local government web content and mobile apps, including content provided through contracts, must meet WCAG 2.1 Level A and AA from 26 April 2027 for entities serving 50,000 or more people and from 26 April 2028 for smaller entities and special districts. Ask the partner to state how login pages will be tested, who performs the testing, how the Keycloak login theme is customized, and what evidence is delivered. Confirm your entity's population category with counsel.

What to ask an implementation partner for citizen identity

Start with assurance mapping. Ask the partner to show, for each citizen journey, which NIST SP 800-63 assurance level (identity, authenticator and federation levels) the design targets and which Keycloak or ZITADEL settings deliver it, such as the authentication flow, the authenticator types allowed and the session lifetimes. Ask for the mapping as a written table you can test against, and ask how a service owner can change an assurance level for one service without weakening the others. A partner who cannot show the mapping in a document has not done the design work yet. Next, ask how accessibility is tested. The ADA Title II rule in 28 CFR 35.200 requires state and local government web content and mobile apps, including content supplied through contracts, to meet WCAG 2.1 Level A and AA, with the compliance date depending on the size of the population served. Ask who runs automated and manual testing on the login, registration, recovery and consent screens, which assistive technologies are used, whether results are delivered per screen with defects tracked to closure, and whether the partner will test the themed pages you customize, not only the default Keycloak theme.

Ask for named eID federation references. Request a list of national or regional eID schemes the partner has connected to a production identity platform, and ask them to confirm each one in writing, including the protocol used (for example OpenID Connect or SAML 2.0), the assurance level the scheme supports and who on your side must approve the trust relationship. Do not accept a general statement that the platform "supports eID". Keycloak's identity brokering is a capability, not evidence of a working scheme connection. Then ask about hosting, key custody and evidence. Confirm in writing where the platform runs, who holds the signing and encryption keys and the database credentials, and how those keys are rotated and backed up. Ask for the evidence pack the partner delivers for each assessment, such as configuration exports, access reviews, logging and audit settings, and vulnerability scan results, and ask who signs off that the pack is complete. Finally, ask for the upgrade approach and the support retainer scope in the same document: how minor and major Keycloak releases are tested and promoted, whether manual approval mode is used for operator updates, who performs security patching, the response expectations and what the retainer excludes. Ask for these terms in the written scope, since support boundaries are where public sector programs most often fail.

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.