可以将Shibboleth SP配置为对单个网站使用多个IdP吗?

时间:2016-10-07 22:19:17

标签: asp.net shibboleth

我在Windows Server 2012上的IIS 8上运行了一个ASP.NET网站。该网站是一个网站 - 例如www.example.com--由不同的公司使用。每家公司都有几个用户在网站上。

目前,我们要求网站上的每个用户在网站上创建一个帐户,这就是他们的身份验证方式。

但是,有些公司希望通过Shibboleth对其用户进行身份验证。我过去在Windows上安装了Shibboleth SP,但据我所知,它的设计使得整个网站都有一个Shibboleth IdP。在这种情况下,我们需要能够让用户A和B使用一个Shibboleth IdP进行身份验证,而用户X,Y和Z需要使用不同的Shibboleth IdP。

Windows上的Shibboleth SP是否可以进行此配置?是否有任何好的示例/演练特别探索这种情况?

1 个答案:

答案 0 :(得分:0)

Shibboleth服务提供商完全有能力处理来自多个身份提供商的用户。一个相当正常的用例是许多身份提供商和许多服务提供商参与SAML 2.0身份联合,这使得服务提供商可以信任和验证来自所有参与的身份提供商的所有用户。

对于您的用例,您需要

  1. 建立信任

    • 从您希望建立信任的所有身份提供商处获取元数据。
    • 对于每一个,您应该在配置文件(shibboleth2.xml)中设置一行,如下所示 <MetadataProvider type="XML" file="idpX-metadata.xml"/>
  2. 这将使您的服务提供商允许您在那里命名的所有身份提供商进行SSO。

    1. 允许用户选择与其关联的身份提供商(公司)。如果您使用Shibboleth服务提供商,这可以非常简单,因为您可以使用嵌入式发现服务(请参阅here

    2. 根据属性语句中的作用域属性或身份提供者的实体ID(SAML断言的发布者),正确区分来自不同公司的用户(出于授权原因)

    3. Shibboleth SP wiki将拥有所有必要的信息。此外,您还可以查看SP安装/配置指南,例如thisthis。他们假设参与身份联合,但对于您的用例,唯一的区别是他们将拥有单个元数据文件(联合元数据),您将拥有每个身份提供者的元数据文件。