Fix IDP-initiated SAML Single Logout and add diagnostic logging#5944
Draft
Fix IDP-initiated SAML Single Logout and add diagnostic logging#5944
Conversation
Co-authored-by: dominikklein <[email protected]>
…consistency Co-authored-by: dominikklein <[email protected]>
Copilot
AI
changed the title
[WIP] Fix SAML Single Logout Service not working correctly
Fix IDP-initiated SAML Single Logout requests
Feb 4, 2026
Co-authored-by: dominikklein <[email protected]>
…xposure Co-authored-by: dominikklein <[email protected]>
Copilot
AI
changed the title
Fix IDP-initiated SAML Single Logout requests
Fix IDP-initiated SAML Single Logout and add diagnostic logging
Mar 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
IDP-initiated SAML logout fails when the logout request arrives on a session without
saml_uidset. The omniauth-saml gem's defaulthandle_logout_requestrequireslogout_request.name_id == session["saml_uid"], which fails when the user logs out from another SAML-connected service.Changes
Override
handle_logout_requestinSamlDatabaseto:is_valid?and log specific errors on failurename_id(handles cross-browser/session logout)SloLogoutresponseto IDPAdd
destroy_saml_sessions(saml_uid)class method to find and terminate matching sessionsAdd diagnostic logging (debug level for PII, error level for validation failures)
Key difference from gem behavior
Note
Root cause is difficult to reproduce. Enhanced logging will help identify whether failures are due to validation issues or session mismatches.
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.