如何在Shibboleth中配置多个IDP

时间:2018-08-22 08:07:07

标签: adfs shibboleth

我已经安装了shibboleth 3.0.2版本。我正在托管一个单页应用程序,该应用程序需要通过ADFS登录进行保护。对于不同的用户集有两个ADFS。

关于如何实现这一点,我几乎没有疑问。

  1. 如何在shibboleth2.xml文件中配置两个IDP。元素仅允许一次。我为两个标签提供了不同的元数据文件,但是当我单击链接时 https://devserver.testhost.com/Shibboleth.sso/DiscoFeed,它向我展示了。

  2. 中提供的两个具有相同IDP的“ entityID”元素
  3. 系统如何使用两个IDP。识别何时呼叫哪个IDP的过程应该是什么? 像使用单个IDP一样,我可以在Apache配置中执行以下操作。每当命中上下文路径时,apache都会将调用重定向到shibboleth,并将shibboleth重定向到IDP。

<Location /my-first>
  AuthType shibboleth
  ShibRequestSetting requireSession 1
  require valid-user
</Location>

但是我有点困惑,因为当有多个IDP时,如何确定呼叫哪个IDP。

您能帮我解决上述问题吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您需要与服务提供商安装一起运行Shibboleth嵌入式发现服务(EDS)[1],以便当用户请求受保护的资源(即/ secure)时,他们被踢到发现服务中,提示他们选择要对其进行身份验证的身份提供者。

/Shibboleth.sso/DiscoFeed URL用于配置EDS,因此它知道为服务提供者配置了哪些身份提供者的详细信息,以及在下拉菜单中应包含哪些信息。

EDS只是一些Java脚本,用于解析JSON并创建适当的URL供用户从下拉菜单中选择,但这正是您在这里所需要的。

[1] https://wiki.shibboleth.net/confluence/display/EDS10/Embedded+Discovery+Service