【发布时间】:2017-01-03 07:21:07
【问题描述】:
在我们开始研究如何将PingFederate 集成到我们的基础架构之前的一段时间。
我们的初始用例如下:我们为我们的应用程序提供多租户访问,不同的公司可能使用不同的(他们的)身份提供者来访问我们的应用程序。
目前流程仅限于以下工作流程: Mutiple Idp(s) to one SP
不过未来流量可能会扩展到Many-to-many relations
目前我们正在使用 NGINX 作为反向代理,并且根据 PingFed 文档,完全难以理解我们现在拥有的部署选项。
基于取自此guide 的图表
对于 apache httpd,这种集成是如何工作的或多或少已经很清楚了。主要有 apache PingFed Agent 与 apache 上的 SSO 流一起工作,主要是验证“会话”或启动 SSO 流。
Processing Steps
1. A user attempts to access a resource on the Apache server protected by the PingFederate
Apache Agent.
2. The user is redirected to the PingFederate server for authentication.
(If an OpenToken session already exists, the user is granted immediate access.)
3. The PingFederate server redirects the user’s browser to an IdP for authentication using either the
SAML or WS-Federation protocols. The IdP partner authenticates the user and returns a SAML
assertion.
4. PingFederate validates the assertion and creates an OpenToken for the user including any
configured attributes. PingFederate then redirects the browser, including the OpenToken, back to
the Apache Agent.
5. The Agent verifies the OpenToken and grants access to the protected resource. The User ID and
any attributes from the OpenToken are exposed to the resource as HTTP Request Headers or Apache Environment Variables.
主要在第 5 步,apache 代理使用请求标头或 Apache 环境变量将有关用户的信息传递给实际应用程序。
根据上面提到的所有信息,这里有 2 个问题:
- 如何为 PingFed 和 NGINX 进行类似的部署(对于这个问题中使用 apache httpd 描述的选项)?
- 是否需要与 PingFederate 一起使用 Web 服务器(反向代理)。或者 Ping Federate 也可以充当 WebServer?如果是,可能会感谢一些链接和其他解释。
【问题讨论】:
标签: nginx single-sign-on saml-2.0 httpd.conf pingfederate