我已经安装了shibboleth 3.0.2版本。我正在托管一个单页应用程序,该应用程序需要通过ADFS登录进行保护。对于不同的用户集有两个ADFS。
关于如何实现这一点,我几乎没有疑问。
如何在shibboleth2.xml文件中配置两个IDP。元素仅允许一次。我为两个标签提供了不同的元数据文件,但是当我单击链接时 https://devserver.testhost.com/Shibboleth.sso/DiscoFeed,它向我展示了。
系统如何使用两个IDP。识别何时呼叫哪个IDP的过程应该是什么? 像使用单个IDP一样,我可以在Apache配置中执行以下操作。每当命中上下文路径时,apache都会将调用重定向到shibboleth,并将shibboleth重定向到IDP。
<Location /my-first> AuthType shibboleth ShibRequestSetting requireSession 1 require valid-user </Location>
但是我有点困惑,因为当有多个IDP时,如何确定呼叫哪个IDP。
您能帮我解决上述问题吗?
谢谢
答案 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