Не могу заставить его работать с настройкой Shibboleth SP для сайта id = 2 - PullRequest
0 голосов
/ 17 октября 2018

У меня очень простая проблема, которую я не могу решить, и я чувствую себя глупо.Я пытаюсь запустить Shibboleth SP3 для единого входа для веб-сайта, размещенного в IIS.

Я настраиваю образец сайта 1 под 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 с идентификатором 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>

Идентификатор совпадает с идентификатором сайта в IIS.Я удаляю конфигурацию первого сайта, чтобы избежать проблем на этом этапе.Теперь, после перезапуска служб IIS и shib_default, когда я набираю http://localhost:81/secure/index.html,, я не перенаправлен в свой IDP.

Почему?Я что-то не так делаю?

1 Ответ

0 голосов
/ 18 октября 2018

Вы пытаетесь обезопасить двух разных прослушивателей localhost http, и я не думаю, что это поддерживается.Я бы сделал это, добавив site1.dev и site2.dev в свой файл hosts и изменив конфигурацию IIS, чтобы site1.dev указывалось как имя хоста для сайта # 1, и наоборот.

Тогда ваша конфигурация 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>

В принципе, все становится странным, если вы пытаетесь запустить HTTP на нестандартных портах (81) с Shib.Я никогда не видел, чтобы кто-то делал это, даже в среде разработки.И не смотря ни на что, у вас не может быть нескольких элементов <InProcess>, <ISAPI> и <RequestMapper>.

Редактировать: Я думаю, вам даже может понадобиться определить несколько ApplicationOverrides для того, что вы делаете.

...