Open source SSO for PCI DSS requirement 8: what the identity layer must prove
A self-hosted SSO provider can enforce most of PCI DSS Requirement 8 centrally, but the assessor judges the whole identity estate, including any application that bypasses SSO. The identity layer has to prove that every path into the cardholder data environment (CDE) runs through the same controlled login. PCI DSS is maintained by the PCI Security Standards Council (PCI SSC) and applies to merchants, processors, acquirers, issuers and service providers that store, process or transmit cardholder data, or that could affect the security of the CDE. If your organization is in one of those groups, the requirement applies to your workforce logins even when the identity provider runs on your own infrastructure.
Requirement 8.4.1 (MFA for non-console administrative access into the CDE), 8.4.2 (MFA for all access into the CDE) and 8.5.1 (MFA systems that resist replay, cannot be bypassed without documented and time-limited authorization, and require at least two factor types that must all succeed) became mandatory on 31 March 2025 under PCI DSS v4.0.1. Confirm with your payment brands and your assessor which version and reporting template apply to your entity. Compliance is documented either in a Report on Compliance completed by a Qualified Security Assessor or on a Self-Assessment Questionnaire, and each route ends with an Attestation of Compliance (AOC). A certificate is not accepted as validation. Start by listing every application, admin console, jump host and vendor connection that can reach the CDE, then check which of them authenticate through the identity provider. The gaps you find become your remediation plan.
DeployOpen plans, implements, hardens and documents the self-hosted identity stack, and prepares the configuration exports, access reviews and MFA enrollment records that an assessor will ask to see. DeployOpen does not issue reports, attestations or certifications, and the QSA or your acquirer's process decides the outcome. Ask any implementation partner to show, in writing, how each in-scope application is tied to the identity provider, how exceptions are approved and time-limited, and which evidence is generated automatically versus assembled by hand before the assessment starts.
How each Requirement 8 control maps to the identity provider
This table maps the PCI DSS Requirement 8 controls to what the identity provider must do and where it is configured in Keycloak or authentik. Read each row as a control to evidence: the left column names the requirement, the middle column states the function, and the right column names the configuration area to review with your assessor and integrator.
| Requirement | What the identity provider must do | Keycloak or authentik configuration to review |
|---|---|---|
| 8.2.1 to 8.2.4 (unique IDs, shared accounts, approved changes) | Give every person a unique identity, block shared or generic logins for people, and route account creation and changes through an approved workflow | Realm user profiles with unique usernames, no shared accounts in the directory, and admin event logging; authentik users and groups with audit of account changes |
| 8.2.5 and 8.2.6 (termination and inactive accounts) | Revoke access for leavers immediately and disable or remove accounts inactive for 90 days or more | Disable users at source or through directory sync (LDAP or Active Directory federation in Keycloak; source and sync stages in authentik); scheduled review of last login data; confirm the 90-day rule is enforced by your process or tooling |
| 8.2.7 (third-party remote access accounts) | Give vendor and third-party accounts unique identities, enable them only for approved windows and monitor their use | Separate group or realm for external users with time-limited access; expiry on accounts; conditional MFA and session limits for vendor logins |
| 8.2.8 (idle session timeout) | End sessions after a defined idle period so a user must authenticate again | Realm SSO session idle and max lifespan settings in Keycloak; authentik session and flow settings for idle expiry; confirm values with your assessor |
| 8.3.4 (lockout after invalid attempts) | Lock user IDs after no more than 10 invalid attempts for at least 30 minutes or until identity is confirmed | Keycloak brute force detection with maximum login failures and wait increment; authentik password and lockout policies in the authentication flow; test that lockout applies to both password and MFA failures |
| 8.3.6 (password length and character mix) | Require at least 12 characters with numbers and letters, or eight only where the system cannot support 12 | Keycloak realm password policy with length and digit/letter rules; authentik password policy with minimum length and character rules; document any system that limits the minimum to eight and its compensating approach |
| 8.3.7 (password history) | Block reuse of the last four passwords | Keycloak password history policy in the realm password policy; authentik password history (an enterprise-only feature on its pricing page); confirm availability in your edition |
| 8.4.1 and 8.4.2 (MFA for administrative and all CDE access) | Require MFA for non-console administrative access and for all access into the CDE; application or system accounts doing automated work are excluded from 8.4.2 | Conditional OTP or WebAuthn required actions and authentication flows scoped to CDE clients; authentik authentication stages bound to CDE applications; service accounts kept on separate, documented client credentials |
| 8.4.3 (remote access including vendors) | Require MFA for every remote network session from outside the entity's network that could reach or affect the CDE | Conditional authentication by IP range, network or client; MFA mandatory for VPN, bastion and vendor portal clients; test from outside the network |
| 8.5.1 (MFA system strength) | Use replay-resistant factors, allow no undocumented bypass (including by administrators), require two factor types and make every factor succeed | Passkeys or WebAuthn with phishing resistance; no bypass flows for admins without documented, time-limited approval; OTP plus WebAuthn or password plus passkey combinations; authentication flows set to require all stages to pass |
Which open-source identity platform fits which CDE setup
Many card-processing organizations already run Active Directory for workstations and file services, and the question is how to put MFA in front of cardholder data environment (CDE) access without rebuilding the directory. Keycloak fits this setting well because it supports LDAP and Active Directory user federation, so accounts stay authoritative in the existing directory while Keycloak handles the login flows, MFA and session rules. FreeIPA suits estates that are directory-centric and want Kerberos and LDAP from one product, though it is a different directory rather than a federation layer over Active Directory.
- Keycloak federation: Users and groups are read from Active Directory, and Keycloak enforces MFA and session timeouts on top of them.
- Keycloak database: Production use requires one of the supported databases listed in the Keycloak database guide, such as PostgreSQL within the supported version range.
- authentik directory links: LDAP is a supported provider type, but Microsoft Entra ID integration is an Enterprise-only feature.
- FreeIPA: Best suited when the team wants to replace the directory itself, with Kerberos for internal services.
- ZITADEL: Lists SCIM and SAML 2.0 in its README, so confirm the directory connectors it supports for your Active Directory version.
Confirm with the vendor which directory connector versions, password policy features and audit logs your Active Directory setup needs, and document the choice in your Requirement 8 evidence.
Teams that run cardholder workloads on Kubernetes often want the identity provider managed the same way as the rest of the platform. Keycloak has an Operator installed through Operator Lifecycle Manager, which manages Keycloak, realm import and OIDC and SAML client resources as custom resources. authentik documents a Kubernetes installation and a worker container for background tasks, and since release 2025.10 it stores its caching, tasks and sessions in PostgreSQL rather than Redis. ZITADEL is a candidate where passkeys and multi-tenancy are a priority, though its Kubernetes packaging should be checked directly.
- Keycloak Operator: Install through Operator Lifecycle Manager and keep operator updates on manual approval, as the Keycloak Operator documentation recommends.
- High availability: Keycloak's supported multi-site designs need a synchronously replicated database, which must be sized and tested as part of the CDE design.
- authentik architecture: A server container, a worker container and PostgreSQL. Expect roughly 50% more PostgreSQL connections after upgrading to 2025.10, according to its release notes.
- Upgrade cadence: Keycloak plans four minor releases a year, with breaking changes in minor releases opt-in, which affects how you schedule testing.
- Enterprise features: Confirm whether password history, enhanced audit logging and FIPS support apply to the edition you deploy, because several of these appear only in authentik's paid tiers.
Ask each vendor for its Kubernetes reference deployment and the database versions it tests against before you commit to a design.
A smaller merchant or service provider with a few hosted applications and no Active Directory often needs the fewest moving parts that still meet Requirement 8. authentik's Docker Compose guide positions Compose for test setups and small-scale production, and it calls for at least 2 CPU cores and 2 GB of RAM as a starting host. Its open-source core is MIT licensed, which keeps the core simple to review. Keycloak can also run in a single-node setup, but its production guidance expects a supported external database, which adds an operational component to maintain.
- authentik core: MIT licensed with a separate enterprise directory, so confirm which features your deployment uses are in the open-source part.
- Enterprise-only items: Password history, enhanced audit logging, privileged access management and mTLS client authentication are listed as Enterprise features on the authentik pricing page.
- Keycloak single node: Run only with a supported production database, since the default dev-file database is for development only.
- ZITADEL: AGPL-3.0 licensed with SSO, MFA and passkeys listed in its README, which is a fit when passkeys are part of the rollout.
- Support model: Check whether a paid edition or a retainer is needed for security fix timing, since authentik publishes security releases at least 24 hours in advance.
Confirm password history support, MFA token types and the audit log fields your assessor will request, because small estates often discover these gaps late in the assessment.
Platforms that fit PCI DSS identity controls and why
Requirement 8 is decided in the identity provider, but an assessor will also examine the components around it: the MFA method, the service credentials and the logs of authentication events. The cards below cover the workforce identity platforms most often shortlisted for this scope, plus the adjacent components that need to be in the same evidence set.
Keycloak for central login
Keycloak is an Apache-2.0 identity server that supports OpenID Connect, OAuth 2.0 and SAML 2.0, with user federation to LDAP and Active Directory and an admin console for account lifecycle tasks. It helps with unique IDs (8.2.1), revoking terminated users (8.2.5) and MFA for access into the cardholder data environment (8.4.2). Confirm the high availability design: Keycloak's supported clustered designs need a synchronously replicated database, and that database is part of the CDE scope question.
authentik for policy-driven access
authentik is MIT-licensed for most of its code, with an enterprise directory under a separate license. Its providers cover OIDC, SAML, LDAP, proxy and RADIUS, which helps place MFA in front of web applications, VPN gateways and legacy services that Requirement 8.4.3 covers. Confirm which controls sit in the enterprise edition: password history and enhanced audit logging are listed as enterprise-only features, and both map to Requirement 8.3.7 and audit evidence.
ZITADEL for passkeys and SCIM
ZITADEL is AGPL-3.0 licensed and lists SSO, MFA, FIDO2 and WebAuthn passkeys, SAML 2.0 and SCIM. Passkeys support the phishing-resistant factors that Requirement 8.5.1 expects of an MFA system, and SCIM supports timely deprovisioning. Confirm the AGPL obligations with counsel before modifying the code, and confirm which passkey types are accepted by your assessor, since synced passkeys raise questions addressed in PCI SSC guidance.
FreeIPA for directory-backed accounts
FreeIPA combines an LDAP directory, Kerberos and certificate authority services under one administration model, which suits organizations that keep their workforce identities in a Linux-centric directory and need Kerberos for server logins. It supports unique user IDs and central disablement of inactive accounts under Requirements 8.2.1 and 8.2.6. Confirm its MFA integration with your chosen IdP, since FreeIPA usually relies on a companion component for OTP or passkey factors and that component must meet Requirement 8.5.1 on its own.
OpenBao for service credentials
Requirement 8 covers human users, but PCI DSS assessors also review application and system accounts and the secrets they use. OpenBao, licensed under MPL-2.0, can store, rotate and distribute database passwords, API keys and certificates so that service credentials are not embedded in code. Note that Requirement 8.4.2 does not apply to automated application and system accounts, so confirm with your assessor how service credentials are scoped and documented.
Wazuh or Security Onion for authentication logs
An identity platform shows its control only if authentication events leave it. Wazuh (GPL-2.0) and Security Onion (Elastic License 2.0) can collect identity provider and directory logs, alert on lockouts and failed logins, and retain evidence that Requirement 10 reviewers will request. Confirm the license terms for Security Onion's Elastic License 2.0 before commercial use, and confirm that the identity provider's event logs, not only host logs, reach the SIEM with time synchronization.
How to configure the identity provider for the CDE
This sequence takes a self-hosted identity provider from an unscoped user directory to a configuration that covers the cardholder data environment (CDE) access paths in PCI DSS Requirement 8. The output is a documented set of realm settings, MFA rules and session controls, plus exported configuration that can support the assessor's review.
Define the CDE and remote access population
The assessed entity lists every system in the cardholder data environment, every administrative console that reaches it, and every group of people who connect from outside the network, including employees, contractors and vendors. The QSA or internal assessor will test against this list, so the scope document must match what the identity provider will actually protect. Confirm the scope with your QSA or internal assessor before any realm changes. The step is done when each application, console and remote path has a named owner and a group in the identity provider that maps to it.
Consolidate accounts and remove shared logins
Platform engineers and identity administrators export user records from each directory and application that touches the CDE, then merge duplicates into one identity per person. Shared, generic and service accounts are inventoried separately, because Requirement 8.2 expects each person to have a unique ID and the assessor will look for shared credentials. Human users who need a second identity for administration get a separately named account. The step closes when the identity provider holds one record per person, each shared or generic account has a documented owner and justification, and the list is saved for evidence.
Set the realm password and lockout policy
Identity administrators configure the realm or tenant password policy to require at least 12 characters, with both numbers and letters, a history check that blocks reuse of the last four passwords, and lockout after no more than 10 invalid attempts for at least 30 minutes or until identity is confirmed. Settings are applied in a pre-production realm first and then promoted through the normal change process. Test one login per rule to confirm the policy is enforced, and export the realm configuration so the policy is evidenced as a configuration file rather than a screenshot.
Enforce conditional MFA for CDE and admin access
Administrators create authentication flows that require MFA for every access into the CDE, every non-console administrative session, and every remote network login from outside the entity's network, including third parties. Conditional rules (for example, by client, group or source network) keep the flow narrow so that service accounts performing automated functions are handled under a documented exception. Check the flows with a test user in each group and record which factor was used. Review FAQ 1595 and FAQ 1596 on synced passkeys and phishing-resistant authentication before deciding which factor types to allow for the CDE.
Require replay-resistant, multi-factor authentication
Identity administrators limit the MFA methods accepted for CDE access to mechanisms that resist replay and use at least two different factor types, and they configure the flow so that every factor must succeed before a session is granted. Any path that allows an administrator to skip MFA is either removed or documented with management approval for a limited period. Testers attempt a replayed one-time code, a login with the second factor missing and an administrator bypass, and the results are saved with the test plan. FAQ 1584 covers how factor success feedback should be handled in this design.
Bind the identity provider to the bastion and VPN
Network engineers configure the bastion host, VPN gateway or zero trust proxy so that every remote and administrative session must complete an identity provider login before it reaches the CDE. Client secrets, redirect URIs and token lifetimes are set per client, and the network side rejects sessions that arrive without a valid token. Testers confirm that a direct connection to a CDE host without the gateway fails, and the gateway logs show which identity authorized each session. The step closes when the network path cannot reach the CDE without the identity check.
Configure session timeouts and disable inactive accounts
Identity administrators set idle session timeouts on CDE clients and administrative consoles, and they schedule a job that disables accounts with no activity for 90 days, while a joiner, mover and leaver process removes access for terminated staff on the day they leave. Because the automated check depends on the last-login data the identity provider stores, its retention and the job's output are tested against a sample account. Record the job and its results for the assessor. The step is complete when a test account is disabled after the inactivity rule and a terminated user cannot sign in.
Turn on audit logs and export the configuration
Platform engineers enable event logging for logins, failed logins, MFA events, admin changes and lockouts, and forward those events to the SIEM used for CDE monitoring. They then export the realm or tenant configuration, the authentication flows, the client list and the change history, and store them under version control with the upgrade records. Keycloak recommends testing upgrades in a pre-production environment before applying them, and the Keycloak Operator documentation recommends manual approval mode for operator updates so that no upgrade lands without review. The step closes when a sample of logs can be traced to a named user and an exported configuration matches production.
Evidence assessors ask for and which component produces it
What configuration export proves password and passphrase rules for PCI DSS 8.3?
The assessor will look for a configuration export showing the password policy applied to the realm or organization that authenticates CDE users. In Keycloak, the realm's password policy and the realm export (for example, a JSON export taken with the admin tooling) show minimum length, character rules and history settings. In authentik, the password policy objects and the flow bindings that use them serve the same purpose, and password history is an enterprise-only feature according to the authentik pricing page. Confirm with your assessor whether a point-in-time export, a live screenshot, or both will be accepted, and make sure the export shows the policy actually bound to CDE login flows, not just a policy that exists.
How do I show terminated and inactive accounts were removed under PCI DSS 8.2?
The assessor will compare a current user list against HR or termination records and check that terminated users lost access immediately (Requirement 8.2.5) and that inactive accounts were removed or disabled within 90 days (Requirement 8.2.6). The identity provider produces the user list with last login timestamps and enabled or disabled status, such as Keycloak's user search with its session and login data, or authentik's user directory. Your identity lifecycle source, such as an HR system or the identity governance platform midPoint if you run one, produces the termination events. Keep dated review reports, since a static list without dates rarely satisfies an assessor.
What MFA enrollment and factor records does an assessor expect for CDE access?
The assessor will check that MFA is required for CDE access (Requirements 8.4.1 to 8.4.3) and that the factors used meet the two-factor-type rule in Requirement 8.5.1. The identity provider produces the evidence: the authentication flow configuration that requires an OTP or WebAuthn step, the list of enrolled credentials per user with factor type, and login event logs showing the second factor succeeded. Keycloak exposes credentials per user through the admin console and admin API, and authentik records authentication events. Confirm with your assessor how they want factor types categorized, and whether passkeys synced across devices need separate justification under the PCI SSC FAQ on synced passkeys.
Which settings prove lockout and idle session timeout controls?
The assessor will check the lockout threshold (no more than 10 invalid attempts, locked for at least 30 minutes or until identity is confirmed, under Requirement 8.3.4) and the idle session timeout under Requirement 8.2.8. Export the brute force detection settings and the session timeout values from the realm or the authentik flow and session configuration, then show them applied to the CDE clients. Keep a dated record of a test lockout and a test session expiry, because a configuration file alone may not show the control operating. Confirm the exact evidence format with your assessor and your QSA before testing in production.
What admin change logs show who altered authentication settings?
The assessor will look for an audit trail of administrative changes to authentication policies, client registrations and user privileges, with the actor, time and before-and-after values. In Keycloak, admin events and the event listener configuration record administrative operations when enabled, and the configuration should be forwarded to a central log store so the records cannot be edited by the same administrators. authentik's enhanced audit logging is listed as enterprise-only on its pricing page, so confirm what your edition records. Check that the logs are retained for the period your assessor expects and that someone reviews them, because the existence of logs alone is weak evidence.
How should third-party and vendor account approvals be documented?
The assessor will check that vendor and third-party accounts are uniquely identified, enabled only when needed under Requirement 8.2.7, and protected with MFA for remote access under Requirement 8.4.3. Produce a register of third-party accounts with the business owner, approval record, access scope and enablement window, then show the identity provider groups or roles that match those approvals. The identity provider shows the account state and the MFA enrollment, while a ticketing or approval system holds the sign-off. Ask your assessor whether they want the approval record stored with the account or in a separate access review.
Can a DeployOpen engagement prepare this evidence for a QSA to review?
DeployOpen can plan, configure and document the identity provider and the evidence it produces, including exports, review procedures and test records, as part of a fixed-scope engagement with written deliverables. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue reports, attestations or certifications. The Report on Compliance is completed by a Qualified Security Assessor and the Attestation of Compliance is produced on PCI SSC templates, so the assessor decides what evidence is sufficient. Agree the evidence list with your QSA before the engagement starts, and ask the partner to deliver it in a format the assessor has confirmed.
Evidence packet for a Requirement 8 assessment
This table lists the evidence an assessor is likely to ask for under Requirement 8, which requirement each artifact supports, the component that produces it and the retention or review cadence to confirm with the QSA or internal assessor. Use it to plan exports before the assessment window opens rather than rebuilding records during it.
| Artifact | Requirements supported | Producing component and what to confirm |
|---|---|---|
| Realm and client configuration exports | 8.2.1, 8.3.4, 8.3.6, 8.3.7, 8.4.2 | Keycloak realm export or authentik blueprint files. Confirm with the assessor which export format and change history they accept, and how often exports are taken. |
| Password and lockout policy settings | 8.3.4, 8.3.6, 8.3.7 | Keycloak password policy and brute force detection settings, or authentik password policy and password history stages. Confirm whether the assessor wants screenshots, exports or both, and whether password history is covered by the edition in use. |
| Directory reconciliation reports | 8.2.2, 8.2.5, 8.2.6 | Comparison of the HR source, the identity provider and federated directories such as LDAP or Active Directory. Confirm the reconciliation frequency and who signs off on exceptions. |
| Inactive and terminated account reports | 8.2.5, 8.2.6 | Reports of accounts disabled after termination and accounts inactive for the period set in policy. Confirm the look-back window the assessor will sample against the 90-day inactivity rule. |
| MFA enrollment and factor type reports | 8.4.1, 8.4.2, 8.4.3, 8.5.1 | Enrollment status by user and factor type from the identity provider, including passkeys and hardware tokens. Confirm whether the assessor expects coverage counts by CDE access group. |
| Audit logs forwarded to a SIEM | 8.2.2, 8.2.5, 8.2.6, 8.4.2, 8.5.1 | Authentication and administrative event logs from the identity provider sent to a SIEM such as Wazuh. Confirm the retention period the QSA expects and whether log integrity controls are needed. |
| Admin and MFA bypass change tickets | 8.4.1, 8.5.1 | Approvals for any MFA bypass by administrators, documented and time limited. Confirm the authorization chain and expiry rule that management must set. |
| Customized approach or exception records | 8.2.8, 8.3.4, 8.5.1 | Risk analysis, stated objective and test evidence for any requirement met through the customized approach or a documented exception. Confirm with the QSA whether this approach is available to the entity before building it. |
| Version and patch records for the identity stack | 8.3.1, 8.4.2 | Release and upgrade records for the identity provider and its database. Confirm the supported version window with the vendor and the assessor's review cadence. |
What the identity provider alone does not satisfy
A self-hosted identity provider covers the login path for applications it federates, but Requirement 8 reaches further into local accounts, system access and the MFA design itself. The cards below mark where an SSO project can look complete while cardholder data environment access still relies on controls the IdP never sees.
Legacy apps with local accounts
Older payment, reporting or back-office applications often keep their own user tables and cannot speak SAML or OIDC. Each one still needs unique IDs, the 12-character password rule under 8.3.6, lockout under 8.3.4 and removal of inactive accounts under 8.2.6. Inventory every application that touches the CDE, record which ones authenticate locally, and decide per application whether to front it with a proxy, retire it, or document compensating treatment for its accounts.
Database and system accounts
Service accounts, database logins and operating system users sit outside the IdP unless someone brings them in. Requirement 8.2 covers shared and generic accounts, and the PCI SSC clarifies in FAQ 1080 how shared authentication credentials are handled. Ask for a list of every non-human account with an owner, a purpose and a rotation method, and confirm which of them fall under the MFA requirement, since 8.4.2 excludes application and system accounts that perform automated functions.
Console and jump host bypass
Administrators often reach servers through consoles, local logins or bastion hosts that never pass through the IdP. Requirement 8.4.1 requires MFA for all non-console administrative access into the CDE, and FAQ 1577 explains how console access is treated. Map every path into the CDE, including out-of-band consoles and emergency accounts, and confirm each one either enforces MFA or is covered by a documented and authorized exception under 8.5.1.
Phishable factors and synced passkeys
SMS codes, email one-time codes and push prompts open the door to real-time phishing, and a passkey synced across devices may not meet the assessor's view of phishing resistance. FAQ 1596 addresses phishing-resistant authentication for 8.4.1 and 8.4.3, and FAQ 1595 addresses synced passkeys under 8.4.2. Before you rely on passkeys, ask your QSA in writing whether your synced passkey design is accepted for your CDE scope.
MFA feedback and bypass controls
Requirement 8.5.1 requires MFA systems that resist replay, cannot be bypassed without documented and time-limited authorization, and require every factor to succeed before access is granted. FAQ 1584 clarifies how feedback about factor success is handled, which affects what an enrollment screen or helpdesk reset may reveal. Review your IdP's flow configuration and any administrator override, then document each bypass path and its approval.
Customized approach documentation
Using the customized approach instead of the defined approach requires a targeted risk analysis and evidence that the stated objective is met, which an IdP configuration alone does not supply. The PCI SSC explains the difference between compensating controls and the customized approach in its blog. Decide early whether any 8.x requirement will be met this way, because the analysis, control descriptions and testing become your own documentation to maintain. Which payment brands accept this for your merchant or service provider level is a question for your acquirer and the brands, since the PCI SSC does not enforce compliance or set penalties.
Common questions about PCI DSS 8 and self-hosted SSO
Can open-source SSO meet PCI DSS Requirement 8 by itself?
No. A self-hosted identity provider such as Keycloak or authentik can implement the controls Requirement 8 asks for, including unique IDs, password rules, MFA into the cardholder data environment and replay-resistant MFA, but it covers only part of the assessment. Requirement 8 also depends on how accounts are provisioned and removed, how application and system accounts are handled, how the CDE is segmented, and how the configuration and logs are evidenced. Those controls sit with your processes and other systems. Confirm the scope of your assessment with your acquirer or QSA before you design anything, because the Attestation of Compliance is issued by the assessor and the payment brands, not by the software vendor.
What drives the cost of a self-hosted SSO project for PCI DSS?
Cost comes from four areas: infrastructure and database hosting, integration work per application, the MFA rollout to staff and remote users, and ongoing support. Open-source software has no license fee for Keycloak or the community edition of authentik, but you still pay for hosting, staff time and any paid edition. The main cost drivers are how many applications must integrate, how many use legacy protocols or cannot use SAML or OIDC at all, whether you consolidate several directories, and how many users need new factors. If you consider authentik's Enterprise edition, its pricing page lists $5 per user per month billed annually plus $0.02 per external user per month, with Enterprise Plus starting at $20k annually. Ask any partner for a written quote that separates one-time work from recurring costs.
How long does a PCI DSS SSO rollout take and what does it need from our team?
Duration depends on the number of applications, the state of your directories and the change windows you can use, so no general timeline applies. Your team must provide application owners who can confirm protocols and test logins, a directory or HR source for accounts, and a decision on the MFA methods you will accept. You also need a working conversation with your QSA early, to agree how the controls will be evidenced and whether any requirement will use the customized approach. Plan change windows for cutover in the CDE and for any remote access changes. A fixed-scope written plan from a partner should state the phases and dependencies before work begins.
Can our own team build and run this in-house?
Often yes, if you have engineers who can operate PostgreSQL, containers or Kubernetes, and manage TLS, backups and identity protocols. The hard parts are rarely the first install. They are the highly available design, the upgrade process, MFA enrollment at scale and the evidence package for the assessor. Ask yourself whether you can staff on-call coverage for the identity provider, since it sits in front of every CDE login. A partner can plan, implement, harden, document and support the platform inside your own cloud account or data center, which is useful if your team has no spare capacity. Either way, the assessor will expect documented ownership of the system.
Why does Keycloak high availability need a synchronously replicated database?
Keycloak's documented high availability designs, including a single cluster spread across availability zones and the multi-cluster v2 design, both require a synchronously replicated database. The reason is consistency: if a login session or token write is acknowledged by one node but not yet present on another, a failover can lose state or produce inconsistent results. For a PCI DSS environment, that also affects the reliability of authentication logs. Check the database guide for the supported engines, which include PostgreSQL 14 to 18 among others, and confirm replication behavior with your database team. The deprecated multi-cluster v1 design used a separate Infinispan cluster per site, so new designs should follow the current documentation.
How do we handle Keycloak and authentik upgrades without breaking CDE access?
Test every upgrade in a non-production environment that mirrors your production configuration, then promote it through change control. Keycloak plans four minor releases a year, and since version 26.0 breaking changes in minor releases are opt-in, which makes testing more predictable. The Keycloak Operator documentation strongly recommends manual approval mode for operator updates. Keycloak also migrates its database schema automatically at startup by default, but the upgrading guide suggests manual migration for large deployments. For authentik, the security policy lists 2026.5.x and 2026.8.x as supported and announces security releases at least 24 hours in advance. Keep a tested rollback path and record each change for your evidence file.
How do we meet the 90-day inactive account rule in Requirement 8.2.6?
Requirement 8.2.6 requires inactive user accounts to be removed or disabled within 90 days of inactivity, and Requirement 8.2.5 requires access for terminated users to be revoked immediately. A self-hosted identity provider can disable accounts automatically based on last login time, but the rule only works if the identity provider receives reliable termination signals from HR or your directory. Build a scheduled report or job that lists accounts approaching the threshold, and keep the logs that show each disablement. Ask your QSA how the inactivity measure applies to service and system accounts, since those are handled differently. PCI SSC FAQ 1066 addresses inactive accounts and is a useful reference for your team.
How DeployOpen scopes and delivers PCI DSS identity controls
DeployOpen plans, implements, customizes, integrates, hardens, documents and supports self-hosted open-source identity platforms inside the client's own infrastructure. For PCI DSS Requirement 8, we start from the cardholder data environment boundary and the written scope, then build the identity provider, MFA and account lifecycle controls and the evidence an assessor will ask to see.
How we scope
- Map which systems, administrator paths and remote third-party accesses sit inside the cardholder data environment and need MFA.
- Record the chosen identity provider, its version, hosting location and which applications federate through it.
- Agree the written scope, deliverables and timeline before work starts, since most engagements are fixed-scope.
How we build
- Configure unique user IDs, password and passphrase rules, lockout thresholds and password history in the identity provider.
- Deploy MFA with at least two factor types, documented bypass procedures and a test of every factor before access is granted.
- Integrate in-scope applications over SAML or OIDC, then test login, lockout, session timeout and deprovisioning paths in a non-production environment.
How we hand over
- Deliver configuration exports, access control matrices and runbooks mapped to the Requirement 8 sub-requirements in scope.
- Document inactive account and terminated user revocation procedures, with a record of how each control is evidenced.
- Train administrators on change approval, upgrade handling and the steps an assessor or QSA will need to review the controls.
How we support
- Offer ongoing support, upgrades and continuous testing as a retainer after handover, scoped in writing.
- Review identity platform security releases and patch the deployment under an agreed change process.
- Confirm with your QSA which evidence they accept, since DeployOpen prepares controls and evidence but does not issue assessment reports or attestations.

