【问题标题】:How does a SAML IdP communicate changes with the SP?SAML IdP 如何与 SP 沟通更改?
【发布时间】:2018-08-07 13:54:12
【问题描述】:

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

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

从 SAML 获取会话/权限更新的正确方法是什么?

【问题讨论】:

    标签: php saml simplesamlphp onelogin


    【解决方案1】:

    根据我阅读的内容,您没有收到更新,而是向 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 持续时间设置为合理的值,试试吧。

    【讨论】:

    • 这就是我所担心的。客户的印象是他们可以禁用一个用户,它也会立即将他们从我们的系统中注销,但据我所知......没有一种机制可以做到这一点。但是 SAML 文档比我希望的要复杂得多,所以我想我错过了什么。
    • 您正在谈论通过网络浏览器的前通道注销请求,因此它必须在您无法干预的用户的浏览器会话中完成。 SAML 规范具有使用 SOAP 进行注销的反向通道注销配置文件。使用 SOAP,IdP 可以向 SP 发起注销请求。但是,这意味着 IdP 必须支持 SOAP 注销,并且您的 SP 也必须支持它。使用某种数据库来存储会话也是必要的,这很麻烦。
    猜你喜欢
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多