Как войти в веб-приложение с помощью 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.

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