Как войти в веб-приложение с помощью Kerberos/AD, но разрешить доступ не пользователям AD
Я развертываю единый вход в веб-сервере Apache против Active Directory через kerberos (mod_auth_kerb).
Модуль установлен и настроен правильно, когда я получаю доступ к веб-сайтам Apache с зарегистрированным пользователем в сети AD, Apache правильно получает учетные данные пользователя через REMOTE_USER
переменная. Дело в том, что я хочу, чтобы внешние пользователи (не входящие в сеть AD) могли получать доступ к веб-сайтам Apache через обычный вход, но они получают
401 Требуется авторизация
при доступе к сайтам.
Я думаю, что это может быть достигнуто с помощью конфигурации Kerberos, но не достигли решения. Кто-нибудь знает, возможно ли это с помощью директивы определения местоположения Kerberos, или я должен настроить для этого какой-то обходной путь, например, ограничение доступа к местоположению диапазонами ip в директиве Location конфигурации виртуального хоста?
Моя конфигурация виртуального хоста:
<VirtualHost *:80>
# General
ServerAdmin packettrc@my.es
DocumentRoot /home/moodle/moodle
ServerName my.es
LogLevel debug
ErrorLog logs/my.es-error.log
CustomLog logs/my.es.log combined
<Location />
AuthType Kerberos
AuthName "Kerberos Login MY"
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbServiceName HTTP/my.es@MY.ES
KrbAuthRealms MY.ES
Krb5KeyTab /etc/krb5.keytab
require valid-user
</Location>
</VirtualHost>
1 ответ
Попробуй заменить
Require valid-user
с
Satisfy Any
Вы можете найти некоторые идеи в этой статье. На всякий случай ссылка на руководство Apache.