在应用程序级

时间:2015-05-21 12:38:58

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

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

我的应用服务器位于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层

1 个答案:

答案 0 :(得分:1)

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

来自docs

  

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

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