Basic SSO: reuse an existing login session across applications #3673
Replies: 5 comments 1 reply
|
Keeping other aspects aside, I am wondering whether SSO should be part of the ochestratable flow or a simple config to enable SSO. While having the ochestratable flow will be useful for super users I feel it might add an unnecessary cognitive overhead in most cases. I guess my question is what sort orchestration needs can be there with regard to sessions? also wrt the stated trade off |
|
Recently we have onboarded a interceptor concept (design discussion: #2375) that allows attaching a interceptor to the flow nodes or requests. IMO SSO use case best fits to be a interceptor rather than adding as a flow executor. Currently we have defined 4 modes for the interceptors (PRE_REQUEST, PRE_NODE, POST_NODE, POST_REQUEST). Maybe we can think of introducing a new mode like |
Flow-centric browser SSO — architectureCore ideaSSO is flow-centric: a session belongs to exactly one authentication flow (keyed by The flow graph gains two node types, used as one or more checkpoint pairs:
A flow may contain multiple SSO-Check/Session checkpoint pairs (e.g. password as one checkpoint, step-up/MFA as another). Each SSO-Check binds to its Session node via a Storage model (runtime DB)Split so the hot path stays lean and the heavier state is loaded only on restore:
Note: sessions are currently stored in the RDBMS (runtime DB). In later stages we'll evaluate other storage options (e.g. an in-memory / distributed store) to optimize for high-load scenarios. Session lifecycleSession lifetime is governed by two deadlines, both configurable (product config,
The resolver rejects a session past either deadline. (The session handle itself carries no expiry — handle rotation is a follow-up; see below.) Engine-agnostic integration (key design decision)The flow engine now lives in the reusable
What gets persisted (the session context)On the fresh path the Session node writes a per-checkpoint session context — the state needed to reconstruct the subject and continue the flow when the checkpoint is later reused:
A sample session context ( Each SSO-issued token still gets a freshly rebuilt Deferred to the next stage — storage optimization & data classificationPersisting the full
|

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
What problem are we solving?
Thunder authenticates every application independently — there is no reusable login session, so a user who already authenticated in the browser must re-authenticate for each application and each attempt. Basic SSO means reusing a live session for a later application: skipping the steps already satisfied, while still enforcing whatever the flow mandates.
This needs three problems solved:
Scope: basic browser SSO only.
All reactions