Apache Basic Auth, кажется, отключить другой модуль

У меня есть Apache 2.2 (за балансировщиком нагрузки) с дополнительным сторонним модулем (веб-агентом OpenAM), который загружается через директиву LoadModule. Этот модуль проверяет каждый запрос, если он авторизован или нет. Вся установка работает, и в журнале стороннего модуля я вижу, что проверки выполняются соответствующим образом для каждого запроса, найденного в журнале доступа apache.

Ситуация изменится, если я активирую базовую аутентификацию, поместив следующие директивы в часть VirtualHost конфигурации Apache:

<Directory /path/to/docroot>
    Options -MultiViews
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/8
    Allow from <other ips>
    AuthType Basic
    AuthBasicProvider file
    AuthName "AuthZone"
    AuthUserFile /path/to/htpasswd
    Require valid-user
    Satisfy Any
</Directory>

Теперь работает базовая аутентификация, но не проверки сторонним модулем. Кажется, что каждый запрос, который был подвергнут базовой обработке аутентификации, не поступал в сторонний модуль. В журналах последнего я вижу только те запросы, которые соответствуют "Разрешить" и, таким образом, не прошли базовую аутентификационную обработку.

Я вижу все запросы в журнале доступа и вижу, что Apache отвечает кодом 200 за "пропущенные" запросы.

В чем может быть причина этого? Журнал ошибок не содержит никакой полезной информации.

1 ответ

Хотя я не могу точно сказать, для стороннего модуля и как он подключается к потоку авторизации, я бы поспорил, что причина в Satisfy Any,

Это позволяет пропустить остальные этапы авторизации при совпадении одного метода авторизации - это похоже на то, что вы видите.

Другие вопросы по тегам