У меня есть защищенный сайт SSO, который использует аутентификацию Shibboleth и провайдер идентификации SAML. Мне нужно разрешить поисковому роботу Google Search Appliance индексировать URL-адреса. У меня есть требование изменить HTTP-запрос с SAML на обычную аутентификацию только для пользовательского агента GSA без перезаписи URL-адресов. Как я могу настроить Apache или Shibboleth для этого?
В другом потоке я увидел предложение настроить разные подкаталоги для разных типов аутентификации. Как принять несколько вариантов аутентификации в Apache? К сожалению, этот подход удовлетворяет моим требованиям, поскольку он изменяет URL-адрес - GSA будет индексировать дополнительный токен, добавленный к URL-адресу, и выводить его в результатах поиска вместо канонических URL-адресов.
Мой shibboleth2.xml настроен для SAML 2.0. Вот фрагмент vhost в Apache. Есть ли способ добавить условную логику для типа аутентификации на виртуальном хосте в Apache 2.2 или 2.4? Или есть способ решить эту проблему с помощью конфигурации Shib?
<VirtualHost *:443>
DocumentRoot "/var/dispatcher/cache/www"
# Wish I could make use of this variable to toggle AuthTypes
SetEnvIfNoCase User-Agent ^gsa-crawler is_gsa_crawler
<Location />
# for end users
AuthType shibboleth
ShibRequestSetting requireSession 1
ShibUseHeaders On
Require valid-user
</Location>
<Location />
# for gsa
AuthType Basic
AuthName "Secure"
AuthBasicProvider file
AuthUserFile path_to/basic_pw_file
Require valid-user
</Location>
<Directory "/var/dispatcher/cache/www">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Я просто спросил нечто подобное и нашел возможное решение, которое может иметь отношение и к этой записи:
Вы в основном используете <If></If><Else></Else>
check, обернутый вокруг двух наборов директив авторизации.
Я не уверен, что ты сможешь сделать это с mod_access
- Насколько я знаю, он не поддерживает выборочный выбор механизмов аутентификации, он разрешает только список механизмов, через которые он может провалиться, пока не выйдет из строя их все или один не преуспеет. И проблема в том, что вы не можете «попробовать SAML», не перенаправив пользователя за пределы сайта.
Если бы вы сделали это на языке программирования с пассивной аутентификацией, я думаю, это было бы тривиально (если операторы и перенаправления). Но используя 'require valid-user' и другие mod_access
вещи не приведут вас туда, где, я думаю, вы пытаетесь идти.
Мой ответ в основном относится к Apache <2.4.x, так как я не уверен на 100%, что в 2.4 отсутствует ваш набор функций (они изменили много).