Требуемый порядок:
- Базовая аутентификация — ЕСЛИ
Авторизация
есть в шапке
- SAML-аутентификация
- Для 2 конкретный места, без авторизации
Это то, что у меня есть, но оно, похоже, не работает правильно
<Location "/">
AuthType Basic
AuthBasicProvider ldap
...
<If "-z req('Authorization')">
AuthType Mellon
MellonEnable auth
MellonEndpointPath /mellon/
...
</If>
</Location>
<LocationMatch "^/(notifyCommit|shuttingDown)/">
AuthType None
Allow from all
Satisfy any
Require all granted
</LocationMatch>
Однако каждый раз, когда я пытаюсь получить доступ к любому из двух мест, где аутентификация не требуется (notifyCommit или shutdownDown), я получаю ошибку 401.
Что я здесь делаю неправильно? у меня сложилось впечатление, что Место расположения
и LocationMatch
объединены вместе, и порядок сверху вниз.Если это правда, он должен сначала оценить «/» и увидеть, что требуется аутентификация, но затем найти раздел сопоставления местоположения и увидеть, что аутентификация не требуется для /notifyCommit/ или /shuttingDown/.
Я рассмотрел несколько других связанных вопросов и перепробовал множество вариантов, но ни один из них, похоже, не работал, включая перемещение совпадения местоположения перед разделом местоположения и SetEnvFf Request_URI ...
.
РЕДАКТИРОВАТЬ
- Для двух местоположений, где аутентификация не требуется, имя пользователя или пароль не требуются. По сути, это анонимный доступ.
- Раздел условной аутентификации SAML/Basic работает нормально.