Мы пытаемся установить Shibboleth в первый раз, и у нас все работает идеально при применении единого знака для веб-сайта в домене верхнего уровня, но не в подкаталоге.
Вот наш файл конфигурации виртуального хоста Apache, который отлично работает:
<VirtualHost *:443>
... some other settings
<Location />
AuthType shibboleth
Require shibboleth
ShibRequireSession On
Order allow,deny
Allow from all
</Location>
</VirtualHost>
С этой конфигурацией мы можем сделать это:
СЦЕНАРИЙ А
https://myawesomewebsite.com/secure
в моем браузереhttps://somesinglesignon.com/authenticate
https://somesinglesignon.com/authenticate
и нажмите "Отправить"https://myawesomewebsite.com/secure
Все выше работало отлично.
Теперь я собираюсь изменить свой файл виртуального хоста так, чтобы <Location />
становится <Location /secure>
. Итак, мой файл виртуального хоста теперь выглядит так:
<VirtualHost *:443>
... some other settings
<Location /secure>
AuthType shibboleth
Require shibboleth
ShibRequireSession On
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Теперь, когда я пытаюсь повторить шаги с 1 по 4, вместо этого получаю следующее:
СЦЕНАРИЙ B
https://myawesomewebsite.com/secure
в моем браузереhttps://somesinglesignon.com/authenticate
https://somesinglesignon.com/authenticate
и нажмите "Отправить"https://myawesomewebsite.com/Shibboleth.sso/SAML2/POST
Почему шаг 4 сценария A отличается от шага 4 сценария B? Как сделать А.4 таким же, как В.4?
Попробуйте следующее:
<Location />
AuthType shibboleth
require shibboleth
Order allow,deny
Allow from all
</Location>
<Location /secure>
AuthType shibboleth
ShibRequireSession On
ShibUseHeaders On
require valid-user
</Location>
#<Location /secure>
# AuthType shibboleth
# Require shibboleth
# ShibRequireSession On
# Order allow,deny
# Allow from all
#</Location>
Я нашел это полезным: http://shibboleth.1660669.n2.nabble.com/Protect-single-sub-directory-Moodle-with-SP-reverse-proxy-td6590009.html