Add account recovery, visible access records and shared sign-out handoff
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a092fe-13b1-7f12-ac74-7d258af4d79c
This commit is contained in:
parent
7330c25d80
commit
e54b6ee970
5 changed files with 169 additions and 13 deletions
|
|
@ -71,3 +71,20 @@ Use `user_engine.testing.scenarios` for human, tenant admin, platform
|
|||
operator, delegated agent, invalid, expired, local issuer, and missing-tenant
|
||||
fixtures. UIs should keep fixtures at the transport boundary and avoid
|
||||
embedding identity-provider logic.
|
||||
|
||||
## Account recovery
|
||||
|
||||
`/access-recovery` is public and never starts OIDC automatically. It distinguishes
|
||||
an unverified visitor from a verified current portal session, and exposes account
|
||||
and logout controls. Browser errors strip callback query parameters before
|
||||
reaching it. `/onboarding` shows the verified identity, sign-in tenant and roles,
|
||||
personal tenant memberships and recorded application/service/workload/asset
|
||||
memberships. These are the current user's records, not a fleet-wide entitlement
|
||||
inventory or a grant to every application in a tenant. No workload record means
|
||||
unknown/unrecorded access, not an inferred denial or grant.
|
||||
|
||||
POST `/logout` keeps its CSRF-protected local logout. With `scope=shared` it clears
|
||||
the portal session and sends the browser to the configured issuer's
|
||||
`/account/logout` confirmation, followed by provider-owned sign-out. No supplied
|
||||
return URL is accepted. Other RP sessions and already issued JWTs may remain
|
||||
valid. KEY-WP-0034 owns issuer confirmation; USER-WP-0026 tracks this recovery.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue