【问题标题】:How to use shibboleth instance(s) to protect 2 domains如何使用 shibboleth 实例来保护 2 个域
【发布时间】:2018-10-15 07:51:05
【问题描述】:

我正在 2 个网站之间、2 个不同的域上实施典型的经典 SSO。一个网站(我们称之为site1)由合作伙伴开发和托管,第二个网站(我们称之为site2)由我开发和托管。 我使用合作伙伴 ADFS 作为 Idp。

我安装并配置了 Shibboleth SP3 来管理 site2 上的身份验证:当我尝试访问 site2 时,我被正确重定向到 ADFS 并且它工作正常。

我担心的是,最终用户将首先对 site1 进行身份验证,然后再访问 site2,我们不希望他再次进行身份验证。

我对此有几个问题,我不知道如何继续: - 我是否需要相同的 Shibboleth SP3 实例来管理两个站点上的身份验证、管理 cookie / 标头,或者我可以使用不同的实例(在这种情况下,我会为 site2 使用 Shibboleth,而合作伙伴将使用另一个 SP站点1) - 如何管理从 site1 到 site2 的重定向?可以是 request.redirect 吗? site1 应该发送带有特定参数的 post 还是 get 请求?

谢谢!

【问题讨论】:

    标签: single-sign-on shibboleth


    【解决方案1】:

    如果合作伙伴托管 site1,他们应该在该实例上运行 Shibboleth,并与 IdP 集成,就像您在运行 site2 的实例上一样。

    SSO 的全部目的是他们不需要重新进行身份验证。即用户访问站点 1,重定向到 ADFS 登录,身份验证(用户正在选择 IdP 会话),重定向回站点 1,站点 1 验证身份验证令牌(SAML 断言)并向他们显示内容。

    现在,当它们被推送到 site2(通过任何方式)时,site2 会触发对 ADFS 服务器的 authnrequest 作为与用户的重定向,但这次用户已经拥有 ADFS 会话,所以 ADFS 服务器只发出 SAMLResponse。他们不会让用户重新登录。

    这只是因为两个 SP 都与同一个 IdP 集成。

    在这种情况下,您可以随意重定向用户……但这意味着在两个 Web 服务器上运行 Shibboleth 实例。如果您真的只想使用一个 Shibboleth 实例,您可以创建一个 SAML 代理,其中一个网络服务器代表另一个网络服务器代理 SAML 断言,但这有点愚蠢。当它是两个不同的服务器时,更容易运行到 Shib 安装。

    如果两个站点位于同一台服务器上,您可以做同样的事情,基本上...每个站点都是网络服务器上的一个单独主机,您只需要配置每个站点(一个作为默认值,另一个作为应用程序覆盖)尽管您可能甚至不必走那么远 TBH。如果您希望将站点 1 与 IdP_A 和 IdP_B 集成,但将站点 2 与 IdP_A 和 IdP_C 集成,则只需要单独的 ApplicationOverrides。见:https://wiki.library.ucsf.edu/display/IAM/Steps+to+configure+multiple+context+in+Shib+SP

    【讨论】:

    • 谢谢,这正是我正在寻找的链接。我必须说官方文档严重缺乏具体的用例。
    猜你喜欢
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 2020-11-24
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多