假设有一个运行多个 Web 应用程序的应用程序服务器。其中一些应用程序可以直接从 Internet 访问,但特定应用程序需要单点登录,这是通过添加正确 HTTP 标头的反向代理解决方案实现的。此反向代理实现在公司网络内的不同机器上运行。强制此特定应用程序仅处理“通过 SSO”(通过反向代理)而不是直接来自 Internet 的请求的典型方法是什么?
一些想法:
- 只需检查请求 IP 并查看它是否与代理的匹配
- 要求反向代理发送 SSL 客户端证书
- 不关心传入 HTTP 请求的来源,但请检查 SSO 包含的 HTTP 标头是否用于有效的 SSO 会话
每种方法的优缺点是什么?你是如何实现类似的东西的?特定的 SSO 实现是 IBM WebSeal,但我也对您如何解决任何其他产品的问题也很感兴趣。谢谢!