【问题标题】:How to logout from shibboleth如何从 shibboleth 注销
【发布时间】:2015-08-07 04:43:52
【问题描述】:

我正在使用 shibboleth 服务来实现以下目标

  1. 用户尝试访问https://sp.dev.myserver.com/secure/ 中的安全资源
  2. 重定向到 WAYF
  3. 选择 idp 并重定向到 IDP 并针对学校的 LDAP 进行身份验证 用户名:myuser@gmail.com 密码:测试
  4. 重定向到“https://sp.dev.myserver.com/secure/”并且属性在 SP 的会话中可用。

    PHP 测试

        <?php 
            echo '<p>Hello User</p>'; 
        ?> 
    
        <?php 
            echo "Given Name:  " . $_SERVER["givenName"] . ".<br>";
            echo "Email     :  " . $_SERVER["mail"] . ".";
      ?> 
    <a href="https://sp.dev.myserver.com/Shibboleth.sso/Logout">Logout ME</a>
       </body>
    </html>
    
  5. 我可以在这个 php 页面中显示经过身份验证的用户的详细信息。

  6. 现在我添加了一个超链接来执行注销并在其中添加了注销 url

  7. 现在,当我点击注销按钮时,它会重定向到 url 并显示以下内容

我关闭了浏览器并尝试访问https://sp.dev.myserver.com/secure,但会话没有被破坏,它显示了包含上次登录详细信息的页面。

我如何实现正确的退出。有人可以帮我解决这个问题吗?

PS:如果我想添加更多信息,请告诉我。提前致谢

【问题讨论】:

    标签: single-sign-on saml-2.0 shibboleth


    【解决方案1】:

    曾几何时,每当用户关闭浏览器时,所有会话 cookie 都会被删除。然后浏览器开发人员决定在关闭浏览器后保留会话 cookie 会“有帮助”。请参阅background information here

    猜测您的浏览器未设置为在关闭浏览器时清除会话 cookie。使用背景信息更改您的设置并再次尝试测试。

    由于这破坏了许多 SAML 联盟的“关闭浏览器以注销”指令(我相信您已经经历过),最初不相信实施 SLO(单次注销)的团体现在支持 SLO。如果学校的 IDP 具有 SLO 端点,您可以针对该端点实施注销。见Section 4.4 for the Single Log Out spec (PDF)。请注意,端点将在 IDP 元数据中标识为 SingleLogoutService。

    【讨论】:

    • 目前我已经从服务提供商的会话信息中构建了一个注销 url。 sp.dev.myserver.com/Shibboleth.sso/Logout?return=https://…
    • 您是否确认您的浏览器没有在会话中保留会话 cookie?
    • 我暂时使用它,虽然没有彻底测试。但是每次我注销时,会话都会清除并要求我进行身份验证。在它没有显示登录屏幕之前。现在可以了。
    • @playmaker420 你能正确解释一下你是如何解决这个问题的吗?
    • @playmaker420 没关系,伙计,当我使用 ProxyPass 将 /secure 路径指向我们部署的 Tomcat 服务器时,它以某种方式解决了。
    猜你喜欢
    • 2014-03-24
    • 2019-09-26
    • 2021-01-24
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2012-08-16
    相关资源
    最近更新 更多