У нас есть некоторые правила для поддерева Location
s, которые включают Require
-ing ldap-group
и expr
-s.
Пользователя должным образом просят предоставить учетные данные для входа в систему, которые проверяются.
Однако даже если учетные данные верны, но доступ запрещен по другим причинам (например, принадлежность к неправильной группе или неправильный IP-адрес), ответ сервера всегда 401 -- вместо 403.
В результате браузеры постоянно предлагают пользователям "попробовать еще раз"... Могу ли я сказать Apache (2.4) использовать 403, если информация, предоставленная в Authorization
-заголовке, подтверждается, и это какое-то другое правило, которое отклоняет запрос?
Опять же, я знаю, почему, после аутентификации успешной, авторизация отклоняется для некоторых пользователей -- так и должно быть. Мне просто нужно сообщить таким пользователям, что: "Да, мы верим, что вы тот, за кого себя выдаете, но вам запрещен доступ к этому месту."
Похоже, mod_rewrite - единственный метод вызвать 403-ответ -- может ли выражение mod_rewrite проверить принадлежность к LDAP-группе или принудительно изменить статус с 401 на 403?
Я задал этот вопрос на сайте WebMaster's site, но не получил ответа -- люди там, кажется, больше ориентированы на контент.
Вот соответствующий фрагмент моего текущего конфига:
<Location /foo>
Require ldap-group CN=foo,OU=Groups,DC=example,DC=net
</Location>
Когда имя пользователя/пароль проверены, но требование не выполнено, мне нужно вернуть 403... В настоящее время возвращается 401.
Я думаю, что вам нужно AuthzSendForbiddenOnFailure :
AuthzSendForbiddenOnFailure On
Контекст: каталог, .htaccess
Если аутентификация прошла успешно, но авторизация не прошла, Apache HTTPD ответит кодом ответа HTTP «401 НЕАВТОРИЗОВАННО» по умолчанию. Обычно это заставляет браузеры снова отображать диалоговое окно с паролем для пользователя, что требуется не во всех ситуациях. AuthzSendForbiddenOnFailure позволяет изменить код ответа на «403 FORBIDDEN».
Обратите внимание, что он содержит предупреждение системы безопасности:
Предупреждение безопасности
Изменение ответа в случае отсутствия авторизации снижает безопасность пароля, поскольку он раскрывает для возможного злоумышленника, что его угаданный пароль был правильным.