simplesamlphp / simplesamlphp/simplesamlphp-module-oidc

OIDC Logout does not trigger SAML Single Logout (SLO)

Open
#254 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PHP
Stars
50
Forks
28
Avg merge
1m
Merged PRs (30d)
2

Description

Summary

I am using SimpleSAMLphp as an IdP with the OIDC module (acting as an OP). Several clients (SPs/RPs) are connected to this IdP, some via SAML and others via OIDC. Additionally, in some cases, the IdP also acts as an SP and authenticates users through another remote IdP.

Problem

When logging out via OIDC, the IdP completes the local logout process and redirects to the specified return URL without logging out the associated SPs/RPs or any remote IdP that may have been involved.

Here is the OIDC logout URL I call:
https://myidp.tld/ssp/module.php/oidc/logout.php?id_token_hint=XXX&post_logout_redirect_uri=XXX

However, when logging out using SAML Single Logout (SLO), the logout process ensures that all SPs are logged out, including any possible remote IdP, before redirecting to the calling party.

Here is the SAML SLO URL I call:
https://myidp.tld/ssp/saml2/idp/SingleLogoutService.php?ReturnTo=XXX

Expected Behavior

Shouldn't the OIDC logout process also trigger the SAML SLO, ensuring that the session is terminated for all clients, both OIDC and SAML?

Version Info
  • SimpleSAMLphp: v2.3.2
  • OIDC Module: v5.1.0
Additional Information

Please let me know if this behavior is intended or if additional configuration is needed to enable SLO for OIDC clients. Any guidance on ensuring a consistent logout experience across both protocols would be greatly appreciated.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the OIDC module.php/oidc/logout.php entry point and compare its flow with the SAML SingleLogoutService.php endpoint described in the report. Trace how local, SAML, OIDC, and remote-IdP sessions are handled, then verify that OIDC logout reaches the expected cross-protocol logout behavior before redirecting.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
authentication, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.