【问题标题】:Check shibboleth SP session on application level在应用程序级别检查 shibboleth SP 会话
【发布时间】:2015-08-03 03:22:04
【问题描述】:

这个问题可能听起来很奇怪,但我有一个最坏的情况。

我的应用程序服务器在http://10.10.10.10/app(说它app-server)上,http-apache 服务器在http://some.dns.com/app(说它http-server)。两者都是不同的系统服务器。

我知道app-server 不应该直接公开访问,但我们假设它可以公开访问。现在 Shibboleth 安装在 http-server 上,保护路径 http://some.dns.com/app/secure 。而一个 servlet 被映射以从路径 /secure 获取属性。

如果有人设法创建了假的 http-apache-server(比如fake-http-server),那也指向了app-server。所以这里fake-http-server可以直接访问/secure路径,服务器可以手动发送类似shibboleth的属性,可以无保护登录系统。

我的问题是,Shibboleth 中是否有一种机制,我可以在我的应用程序中检查 shibboleth 会话 - 不仅在 http 层中

【问题讨论】:

    标签: security single-sign-on shibboleth service-provider


    【解决方案1】:

    mod_shib Apache 模块默认设置环境变量。代理 Apache 服务器无法欺骗这些变量。

    来自docs

    最安全的机制,以及允许它的服务器的默认设置, 是环境变量的使用。这个词有点笼统 因为环境变量不一定总是暗示 传统意义上的实际过程环境,因为有 通常没有单独的过程。它实际上是指一组受控的 Web 服务器提供给应用程序的数据元素以及 无法从 Web 服务器外部以任何方式进行操作。 具体来说,客户对他们没有发言权。

    如果您不信任 Apache 网络服务器,您可以解析代码中的 SAML 断言,并使用生成 SAML 断言的身份提供者 (IdP) 提供的证书验证断言中的签名。但是检查签名很困难,您需要处理密钥轮换以及如何处理 IdP 使用的新证书等情况。 Shibboleth 为您处理这些非常困难和重要的任务。

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 2021-01-03
      • 2017-08-08
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      相关资源
      最近更新 更多