Skip to content

Integrate durable pairwise identities and audited legacy reconciliation - #1493

Merged
ELares merged 13 commits into
mainfrom
feat/pairwise-policy-19
Oct 10, 2026
Merged

ELares merged 13 commits into
mainfrom
feat/pairwise-policy-19

Conversation

@ELares

@ELares ELares commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Registered OIDC clients previously used public account identifiers even when pairwise identity was requested. This integrates durable per-client policy and immutable user bindings across token issuance, UserInfo, introspection, token exchange and human impersonation, while keeping authorization tied to local accounts. Existing public identities survive policy changes; new users follow the validated client policy.

Dynamic registration and six documented management operations validate sectors, enforce scoped permissions and revision checks, and provide audited history recovery and explicit reconciliation before legacy activation. Snapshots exclude identity secrets and bindings. Encrypted database backups now retain runtime ACLs so restricted roles can use restored databases.

Validation: targeted PostgreSQL/protocol/management/snapshot/migration suites, clean targeted clippy and repository invariants, encrypted CLI restore with key rotation and restricted roles, and 1.1M-grant history qualification. A real Chrome/Civio deployment verified existing account continuity, fresh pairwise registration, signed ID-token/UserInfo/introspection parity and provider restart. See docs/design/PAIRWISE-INTEGRATION.md for results and limits. Final review found no remaining code blocker; final follow-up changes only clarify documentation. Hosted CI is not a merge gate for this delivery.

Rollout: back up database and roles, stop the old issuer, apply migrations 0251-0255, then start the qualified binary. The grant index builds transactionally. Existing clients stay public and pending reconciliation; activation requires separate history evidence. Public legacy bindings are a documented privacy exception. This does not complete every issuer/JWKS or Civio milestone criterion.

Refs #19 and #1385. Hosted-profile adoption dependency: encryptixio/civio#455.

ELares added 13 commits October 10, 2026 11:03
Extend durable subject policy across remaining grant mints and recipient proofs. Recover token exchange principals from scoped grants before enforcing lifecycle rules, and derive receiving-client subject and actor identifiers.

Refs #19, #1385
Derive scoped user actors under client policy while retaining local session and family attribution. Fail closed on missing actor-session data and blocked local impersonators. Check device-grant eligibility before identity binding.

Qualify pairwise logout targeting, backchannel isolation, profile scope release and the independent session-template boundary. Refs #19, #1385.
Refs #19. Validate sector metadata through hardened HTTPS, fence concurrent replacements, and bound update fetches across token rotation. Preserve bound identities through policy changes; management and historical rollout remain pending.
Refs #19. Read policy and redirects coherently, validate closed offline policy shapes, and preserve legacy public snapshots. Keep salts, bindings and revisions out of exports; prove promotion cannot reset target identity.
Refs #19. Add revision-checked policy reads and writes with management permissions, sudo freshness, hardened sector validation and a narrow control-role grant. Preserve redirects and issued identities. Historical identity migration and rollout qualification remain pending.
Refs #19 and #1385. Keep rollout certification separate from incomplete legacy history recovery.
Refs #19 and #1385. Preserve public issuance and require explicit legacy readiness before pairwise activation.
Refs #19 and #1385. Recover retained and explicit public rosters, independently check coverage, and persist an operator-attested receipt before policy activation.
Refs #19, #153, encryptixio/civio#1385. Preserve dump ACLs so restricted runtime roles can use a restored schema without replaying migrations. Verify stable identity material after key rotation, wrong-key refusal, role isolation and atomic missing-role recovery.
Refs #19, encryptixio/civio#1385. Add the scoped client grant index without pruning revoked history or changing privileges. Replace per-user page inserts with one immutable batch. Qualify 10,000 identities against 1.1 million retained grants and document maintenance and measurement limits.
Refs #19, encryptixio/civio#1385. Record real HTTPS account continuity, new pairwise identity, token/UserInfo/introspection parity and pod replacement evidence. Distinguish copied fixtures from production migration and preserve remaining milestone scope.
@ELares
ELares merged commit 1a438c3 into main Oct 10, 2026
34 of 45 checks passed
@ELares
ELares deleted the feat/pairwise-policy-19 branch October 10, 2026 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant