无法使用Shibboleth SP配置站点ID = 2的情况

时间:2018-10-17 09:32:36

标签: single-sign-on shibboleth

我有一个非常简单的问题,无法解决,我感到很愚蠢。 我正在尝试为IIS托管的网站运行Shibboleth SP3 for SSO。

我在IIS下用index.aspx配置一个示例网站。

我将ISAPI和RequestMap配置如下:

<InProcess logger="native.logger">
    <ISAPI normalizeRequest="true" safeHeaderNames="true">           
    <Site id="1" name="localhost" scheme="http" port="80"/>
    </ISAPI>    
</InProcess>
<RequestMapper type="Native">
    <RequestMap>
        <Host name="localhost">
           <Path name="secure" authType="shibboleth" requireSession="true" />
</RequestMap>

效果很好,我被重定向到Idp,提取了我的声明。现在,我想在IIS中使用另一个ID为2的站点。这是我的配置:

<InProcess logger="native.logger">
    <ISAPI normalizeRequest="true" safeHeaderNames="true">           
    <Site id="2" name="localhost" scheme="http" port="81"/>
    </ISAPI>    
</InProcess>
<RequestMapper type="Native">
    <RequestMap>
        <Host name="localhost">
           <Path name="secure" authType="shibboleth" requireSession="true" />
</RequestMap>

该ID与IIS上的站点ID匹配。为了避免出现此问题,我删除了第一个站点的配置。 现在,在重新启动IIS和shib_default服务之后,当我键入http://localhost:81/secure/index.html时,不会重定向到我的IDP。

为什么?我有做错什么吗?

1 个答案:

答案 0 :(得分:0)

您正在尝试保护两个不同的localhost http侦听器,但我认为不支持这种方法。我这样做的方法是将site1.devsite2.dev添加到您的主机文件中,并更改IIS配置,以便将site1.dev声明为站点#1的主机名,反之亦然。 / p>

然后,您的shibboleth配置将如下所示:

<InProcess logger="native.logger">
    <ISAPI normalizeRequest="true" safeHeaderNames="true">
        <Site id="1" name="site1.dev" scheme="http" port="80"/>           
        <Site id="2" name="site2.dev" scheme="http" port="80"/>
    </ISAPI>    
</InProcess>
<RequestMapper type="Native">
    <RequestMap>
        <Host name="site1.dev">
           <Path name="secure" authType="shibboleth" requireSession="true" />
        </Host>
        <Host name="site2.dev">
           <Path name="secure" authType="shibboleth" requireSession="true" />
        </Host>
    </RequestMap>
</RequestMapper>

基本上,如果您尝试使用Shib在非标准端口(81)上运行HTTP,事情会变得很奇怪。即使在开发环境中,我也从未见过有人这样做。而且无论如何,您不能有多个<InProcess><ISAPI><RequestMapper>元素。

编辑:我认为您可能甚至需要为正在执行的操作定义多个ApplicationOverride。