Рейтинг:0

Shibboleth SP с одного сайта на несколько сайтов

флаг ca

В настоящее время у меня работает Shib SP (v3) для защиты веб-сайта. site1.example.com. Допустим, example.com использует IDP с именем example1_auth и он работает, как и ожидалось. У меня есть другие сайты на том же сервере, они полностью отделены от пример.com у них разные субдомены, разные цели, они просто делят ресурсы сервера (назовем сервер сервер1)

Теперь мне нужно настроить Shib SP для защиты одного из этих других веб-сайтов, давайте позвоним этому другому сайту. site2.example.com и он будет использовать example2_auth как его внутренне перемещенное лицо

У меня вопрос, как мне защитить дополнительный сайт, какие изменения необходимы для шибболет2.xml файл и атрибут-map.xml

Насколько я понимаю, мне нужно сделать как минимум следующее Добавьте дополнительный сайт в <InProcess> раздел

<InProcess>
    <ISAPI normalizeRequest="true" safeHeaderNames="true">
        <Site id="5" name="site1.example.com" scheme="https" port="443"/>
        <Site id="15" name="site2.example.com" scheme="https" port="443"/> <!--New-->
    </ISAPI>
</InProcess>

Добавьте дополнительный хост в <RequestMapper> раздел, чтобы это выглядело примерно так

<RequestMapper type="Native">
    <RequestMap>
        <Host name="site1.example.com" port="443" scheme="https">
            <Path name="secure" authType="shibboleth" requireSession="true"/>
        </Host>
        <!--New-->
        <Host name="site2.example.com" port="443" scheme="https">
            <Path name="secure" authType="shibboleth" requireSession="true"/>
        </Host>
    </RequestMap>
</RequestMapper>

Предполагая, что эти части верны. Какие изменения здесь требуются?

<ApplicationDefaults entityID="https://site1.example.com/Shibboleth"
    REMOTE_USER="eppn subject-id pairwise-id persistent-id"
    cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1">
    <Sessions lifetime="28800" timeout="3600" checkAddress="false" relayState="cookie" handlerSSL="false" cookieProps="; HttpOnly; path=/; secure" >
        <SSO entityID="site1_auth">
    SAML2 SAML1
    </SSO>
        <Logout>SAML2 Local</Logout>
        <LogoutInitiator type="Admin" Location="/Logout/Admin" acl="127.0.0.1 ::1" />
        <Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>
    </Sessions>

    <MetadataProvider type="XML" validate="true" path="C:\opt\SSO_Metadata\site1.xml"/>
    <MetadataProvider type="XML" validate="true" path="C:\opt\SSO_Metadata\site2.xml"/>

    <!-- Map to extract attributes from SAML assertions. -->
    <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>
    
    <!-- Default filtering policy for recognized attributes, lets other data pass. -->
    <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>

    <!-- Simple file-based resolvers for separate signing/encryption keys. -->
    <CredentialResolver type="File" use="signing"
        key="sp-signing-key.pem" certificate="sp-signing-cert.pem"/>
    <CredentialResolver type="File" use="encryption"
        key="sp-encrypt-key.pem" certificate="sp-encrypt-cert.pem"/>
    

Я думаю, мне нужно добавить <ApplicationOverride> раздел в этой части, но я не уверен, что это правильно, но документация указывает на лучший способ, но никогда не полностью объясняет, что это может быть, или, по крайней мере, из того, что я видел. Я считаю, что в документации по слиянию отсутствуют полноценные примеры.

Извиняюсь за длинный пост

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.