NameID lookup for logout ignores logical SP boundaries
Basics
Technical
Logistics
Basics
Technical
Logistics
Description
The cache of NameID->Session mappings for logout lookup don't recognize that some sessions are bound to different SP entityID containers, which causes the IdP to issue requests for logout to those entityIDs after the initial request and causes a failure since the sessions are already gone.
The code is not able to actually retrieve the ancillary sessions because they're associated with a different applicationId, but when the find() fails, it falls through and treats that as a session "not found" and still records it as killed.
To fix this issue, we should probably treat that as an "ignore" case and leave the session in the back-index. The downside is, that will build up over time, so we probably have to consider the risk there.
The cache of NameID->Session mappings for logout lookup don't recognize that some sessions are bound to different SP entityID containers, which causes the IdP to issue requests for logout to those entityIDs after the initial request and causes a failure since the sessions are already gone.