You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The shell's session model is one login per identity, with every product namespace deriving its access from that one session. Measured on ThunderID v1.0.0-beta (see #41), that model does not hold:
Thunder requires an RFC 8707 resource parameter on the authorization request.
It accepts only one — "Only a single resource parameter is supported".
So a Thunder login session is pinned to exactly one resource server, and therefore to exactly one product audience, from the moment of authorization.
#41 ships Thunder support for single-product identities and refuses a Thunder identity that declares more than one product, which is a legible limit rather than a confusing runtime refusal. This issue covers lifting it.
Why this is not a surprise
docs/research/product-authentication-compatibility.md §1.5 already records "Per-product session multiplicity — one context needs several concurrent product sessions" as a required cross-cutting gap. #41 is the first hard evidence for it.
What it touches
The session model: a stored session is keyed by identity today; it would need to be keyed by identity and product.
The context schema: credentialRef is per identity and would need a per-product form.
wso2 login: one invocation currently establishes one session; it would need to establish, or lazily establish, one per product.
The broker: choosing which session answers a given namespace's request.
Backend ask, not filed upstream
Thunder supporting multiple resource parameters at authorization would remove the need for most of this. Owner: thunder-id/thunderid. Not filed there — recorded here so the ask has a home, matching how the compatibility research records backend asks with owners.
Notes
Asgardeo and Identity Server are unaffected: neither takes an audience at authorization time, so one session serves every product there. This is Thunder-specific and follows from a stricter, arguably better, audience model.
Problem
The shell's session model is one login per identity, with every product namespace deriving its access from that one session. Measured on ThunderID v1.0.0-beta (see #41), that model does not hold:
resourceparameter on the authorization request.So a Thunder login session is pinned to exactly one resource server, and therefore to exactly one product audience, from the moment of authorization.
#41 ships Thunder support for single-product identities and refuses a Thunder identity that declares more than one product, which is a legible limit rather than a confusing runtime refusal. This issue covers lifting it.
Why this is not a surprise
docs/research/product-authentication-compatibility.md§1.5 already records "Per-product session multiplicity — one context needs several concurrent product sessions" as a required cross-cutting gap. #41 is the first hard evidence for it.What it touches
credentialRefis per identity and would need a per-product form.wso2 login: one invocation currently establishes one session; it would need to establish, or lazily establish, one per product.Backend ask, not filed upstream
Thunder supporting multiple
resourceparameters at authorization would remove the need for most of this. Owner:thunder-id/thunderid. Not filed there — recorded here so the ask has a home, matching how the compatibility research records backend asks with owners.Notes
Follows from #41.