Release v2.10.2
Summary
Hardens the cookie/session posture so a browser holding old cookies cannot retain access indefinitely: revoking a user's access now takes effect within minutes without validating against backing services on every request.
Changed
- The auth session is bounded by an absolute lifetime (default 12h, configurable via
Cratis:AuthProxy:Session:Lifetime); sliding expiration is off by default so activity cannot extend a session indefinitely. The auth cookie remains session-scoped, so closing the browser ends it. - The identity-details cookie now expires after the identity re-validation interval (default 10 min), forcing periodic re-resolution of identity and authorization instead of living for the whole browser session.
- A tenant resolved through the selection strategy is re-validated against the tenants endpoint on an interval (default 10 min); when the tenant is no longer available to the user, the tenant cookies are cleared and the request replays through fresh resolution.
- Auth, correlation, and nonce cookies now use
SecurePolicy.SameAsRequestinstead ofNone.
Added
Cratis:AuthProxy:Sessionconfiguration section:Lifetime,SlidingExpiration,IdentityRevalidationInterval,TenantRevalidationInterval(zero/negative interval opts out), with documentation.
All 576 specs pass (28 new covering the option defaults, cookie configuration, identity cookie expiry, and tenant re-validation). Not verified live against a deployed IdP — in-process spec coverage only.
🤖 Generated with Claude Code