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