Description
Self-service account session revocation
Problem
In FusionAuth version 1.45.0
the self-service themed pages no longer use the SSO session, and instead have a discrete session.
Logging out of SSO, or your own application will not necessarily log you out of the session held for the /account
pages which is essentially an extension of your own application.
For example, if you are logged into application A with a client_id
of 377e77a7-e066-4896-b3b4-5c2bbaec96e0
and then navigate to /account/?client_id=377e77a7-e066-4896-b3b4-5c2bbaec96e0
you will now have a new access token and refresh token for this application. This session is held in http only secure cookies.
If you then log out of SSO or your own application, the state for the /account
pages is still valid.
In order to logout of the /account
session, you need to make a GET
request to /account/logout?client_id=377e77a7-e066-4896-b3b4-5c2bbaec96e0
.
Solution
One option would be to use single logout and then when logging out of an app w/ self-service enabled, we add another URL to the list of other application logout URLs for /account/logout?client_Id=377e77a7-e066-4896-b3b4-5c2bbaec96e0
.
Another option is to listen for refresh token revocation events and if a token for application
with Id 377e77a7-e066-4896-b3b4-5c2bbaec96e0
(in this example) is revoked, revoke the refresh token held for /account
as well.
Needs more investigation.
Observed in version
1.45.3
Affects versions
>= 1.45.0
Workarounds
- Ensure that you remove the account session as part of your logout process.
GET /account/logout?client_id=377e77a7-e066-4896-b3b4-5c2bbaec96e0
Only side load the account with an existing access token using theAuthorization
header.This has limited use because you will need to be able to set the request header. This is generally done from a mobile app opening a web view.
- Create a surrogate application for logout of the account application.
- Assuming you have an application with id
377e77a7-e066-4896-b3b4-5c2bbaec96e0
and you are using the/account/?client_id=377e77a7-e066-4896-b3b4-5c2bbaec96e0
route for self-service create a NEW application in FusionAuth under the same tenant - In the new application add a "Logout URL" of
https://<YOUR_FUSIONAUTH_HOST>/account/logout/377e77a7-e066-4896-b3b4-5c2bbaec96e0
- Ensure the application 377e77a7-e066-4896-b3b4-5c2bbaec96e0 has "Logout behavior" set to
All applications
- When you log out of the application FusionAuth should call logout on the self-service app when performing the logging out operation
- Assuming you have an application with id
Related
- Support account self service pages without using SSO session #1860
- Updates to self-service session management #2425
Additional context
Internal:
Community guidelines
All issues filed in this repository must abide by the FusionAuth community guidelines.
How to vote
Please give us a thumbs up or thumbs down as a reaction to help us prioritize this feature. Feel free to comment if you have a particular need or comment on how this feature should work.