SAML IdP 如何与 SP 沟通变化?

How does a SAML IdP communicate changes with the SP?

我正在努力将 SAML SSO 集成到较旧的 PHP 应用程序中。我正在使用 simplesamlphp 来设置我的服务提供商,出于测试目的,我有一个 OneLogin 开发帐户设置了一个 "SAML Test Connector (IdP w/attr)" 测试应用程序作为我的 IdP。我可以成功登录,并且可以使用单点注销将用户注销。我目前迷失的是 IdP 如何传达更改,例如强制注销和删除对应用程序的访问权限。

我曾假设 OneLogin 会向 URL 我提供的 "Single Logout URL" 发送请求,一旦我强制用户注销或删除他们对应用程序的权限以及足够的数据以识别用户。然后我会终止该用户在服务提供商中的会话,一切都会好起来的。但是 OneLogin 并没有像我期望的那样发送该请求(它仅在我启动单个注销过程后才被调用)。另一种选择似乎是我向 OneLogin 发送请求以频繁验证会话,但这似乎效率低下。

从 SAML 获取 session/privilege 更新的正确方法是什么?

据我了解,您没有获得更新,而是向 IdP 询问更新(请求用户登录或注销,这将检查用户状态): http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html#5.3.Single%20Logout%20Profile|outline

我不认为 simplesamlphp 会充当某种政策的执行者,您以用户身份登录,您会得到您的 cookie,直到它过期。

我知道您可以在 simplesamlphp 的 config.php 中将会话 cookie 持续时间设置为合理的值,试试看。