Bind the Session cookie to the App and enforce per-App client uniqueness #58
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lab/authz-bridge#58
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Security architecture review, 18 Sep 2026 (candidate 4, "Worth exploring"). The Session blob is
{id_token, refresh_token}with no appKey (the State blob carries one). Cross-App Session reuse is prevented today only by per-App issuer+audience verification: App A's id_token carriesaud= A's clientID, so it fails verification under App B. That defense holds only while ADR 0002's invariant (every App owns its own Client) holds — but the builder enforces hostname uniqueness and secret-ref well-formedness and never enforces clientID uniqueness. Two Apps configured with the same clientID + issuer (a misconfiguration, or a shared IdP tenant) make App A's Session cookie — including its refresh_token — fully valid on App B. The per-App security boundary silently degrades to per-clientID.What to build
Two small, mutually reinforcing changes:
Acceptance criteria
Blocked by