Назад | Перейти на главную страницу

Как принять несколько вариантов аутентификации в Apache?

Я хочу защитить путь в моем VirtualHost, но разрешить пользователям различные варианты аутентификации (например, mod-auth-cas, mod-auth-openid и mod-auth-digest.) Как мне настроить определение виртуального хоста, чтобы разрешить несколько auth-types для того же места?

Проблема с несколькими типами аутентификации заключается в том, что они, как правило, имеют несовместимые протоколы. Вы можете попробовать технику, показанную на Документация Shibboleth, где вы помещаете все в подкаталог, создаете символическую ссылку на этот каталог для каждого типа аутентификации, который хотите поддерживать, а затем настраиваете каждое расположение символической ссылки для другого типа аутентификации.

<Location /basic>
    AuthType Basic
    AuthUserFile /path/to/.htpasswd
    require valid-user
</Location>
<Location /cas>
    AuthType CAS
    require valid-user
</Location>
<Location /openid>
    AuthOpenIDEnabled On
    require valid-user
</Location>

У меня была почти такая же ситуация, решаемая следующим образом:

на уровне конфигурации сервера в apache2.conf (при условии, что дистрибутивы на основе Debian)

<AuthnProviderAlias method1 auth1_name  >
# config options
# ...
</AuthnProviderAlias>

<AuthnProviderAlias method2 auth2_name  >
# config options
# ...
</AuthnProviderAlias>

в файле конфигурации виртуального хоста:

<VirtualHost *>
# config options
# ...

<Location /your_location>
# config options
AuthBasicProvider auth1_name auth2_name
# other needed config options
# ...
</Location>
</VirtualHost>

таким образом вы можете использовать разные методы авторизации / аутентификации с разными именами в одной директиве Location для разных VirtualHosts.

подробнее о моем решении в небольшом сообщении в блоге: текст ссылки

HTH, чао :) Джанлука

Ты пробовала "Удовлетворительно"?