Skip to content

Architecture

4nass edited this page Aug 19, 2026 · 1 revision

Architecture

Goal

IdMux virtualizes one IdP session cookie into several isolated browser sessions. The IdP remains the authority for login, tokens, passwords, and business rules.

Request flow

Browser
  -> IdMux Proxy
     -> read and authenticate IDMUX_SESSION
     -> select the authuser index
     -> remove proxy cookies and routing headers
     -> send zero or one IdP identity cookie
  -> IdP
     -> return the response
  -> IdMux Proxy
     -> capture the IdP Set-Cookie
     -> update only the selected session slot
     -> send the encrypted IDMUX_SESSION cookie

Stateless rule

The proxy has no database, Redis, shared memory state, or session cache. All session selection state is inside the authenticated encrypted cookie. Several replicas can run behind a load balancer.

Responsibility boundary

The proxy handles HTTP cookies, headers, session indexes, encrypted state, and targeted logout. It does not validate passwords or JWT claims. It does not change OIDC or SAML meaning. It does not make authorization decisions.

Zero-trust rules

  • Treat every client header as untrusted.
  • Remove routing and session headers before the upstream request.
  • Forward zero or one selected IdP cookie.
  • Reject invalid or expired composite cookies.
  • Never log cookies, tokens, keys, or IdP session IDs.

Clone this wiki locally