adfs - 如何在 Shibboleth 中配置多个 IDP
问题描述
我已经安装了 shibboleth 3.0.2 版本。我正在托管一个单页应用程序,需要通过 ADFS 登录来保护它。对于不同的用户集,有两个 ADFS。
我对如何实现这一点几乎没有疑问。
如何在 shibboleth2.xml 文件中配置两个 IDP。元素只允许一次。我提供了两个具有不同元数据文件的标签,但是当我单击链接 https://devserver.testhost.com/Shibboleth.sso/DiscoFeed时,它向我显示了两个具有相同 IDP 的“entityID”元素。
系统如何与两个 IDP 一起工作。确定何时调用哪个 IDP 的过程应该是什么。与单个 IDP 一样,我可以在我的 Apache 配置中执行以下操作。每当上下文路径被命中时,apache 会将调用重定向到 shibboleth,并将 shibboleth 重定向到 IDP。
<Location /my-first> AuthType shibboleth ShibRequestSetting requireSession 1 require valid-user </Location>
但是我有点困惑,因为当有多个 IDP 时,如何决定调用哪一个。
你能帮我解决上述问题吗?
谢谢
解决方案
您需要将 Shibboleth Embedded Discovery Service (EDS)[1] 与您的 Service Provider 安装一起运行,以便当用户请求受保护的资源(即 /secure)时,他们会被转移到提示他们选择的发现服务他们想要对其进行身份验证的身份提供者。
/Shibboleth.sso/DiscoFeed url 用于配置 EDS,以便它知道为服务提供者配置了哪些身份提供者的详细信息,以及它应该在下拉列表中包含哪些信息。
EDS 只不过是一些 Javascript 来解析 JSON 并创建适当的 URL 供用户使用下拉菜单进行选择,但这正是您在这里所需要的。
[1] https://wiki.shibboleth.net/confluence/display/EDS10/Embedded+Discovery+Service
推荐阅读
- css - 如何控制独立于图像的跨度的垂直放置
- reactjs - 可以处理单选和多选表单更改的单个 onChange
- pyspark - pyspark 数据管道使用中间结果
- python - 如何将命令行工具添加到python包
- flutter - 显示键盘时颤动底部按钮和TextInputType溢出
- r - 如何在水平条形图中绘制具有递减值的数据,以便显示所有州的名称?
- bash - awk:如何在 M 行中的每 N 行添加一个常数?
- amazon-web-services - ParsePy:在 Bitnami Parse Image 中获取 Rest API 密钥的位置
- angular - Angular 8:observable.pipe() 不再工作了?
- gtk3 - 更改顶部 GTKWindow 的字体/大小?