Я реализую внутреннюю CMS (Joomla 2.5) в многодоменной среде, регистрируя их с помощью Kerberos против Windows AD -> SSO. SSO с Kerberos идеально подходит для интегрированных доменов, а также SSO для CMS. Моя проблема: около 10% наших пользователей не находятся в каком-либо домене (в основном о продажах ...), поэтому они не могут пройти аутентификацию с помощью Kerberos против Windows AD. Но мы хотим предоставить доступ к интрасети и этим пользователям, даже если они не могут войти в CMS. мой вопрос: есть ли способ перенаправить этих пользователей в каталог CMS в качестве запасного варианта?
моя конфигурация apache до сих пор:
<VirtualHost *:80>
ServerAdmin someone@mydomain.com
ServerName intranet.company.local
DocumentRoot /opt/joomla/jupgrade
<Directory /opt/joomla/jupgrade>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AuthType Kerberos
AuthName "Intranet Login"
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbAuthRealms DOMAIN1 DOMAIN2 DOMAIN3 DOMAIN4 DOMAIN5
KrbServiceName HTTP
Krb5KeyTab /etc/apache2/kerberos_myserver_combined.keytab
require valid-user
#ErrorDocument 401 /noauth/401.hmtl
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel debug
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Невозможно присоединить этих пользователей к одному из доменов. Существует проект решения для одного домена, но это займет некоторое время. Ubuntu 12.04 и Apache 2.2 в качестве среды веб-сервера.
Заранее благодарим за любое предложение!
после дополнительного поиска и ошибки trail 'n' я думаю, что лучший совет для решения здесь: https://stackoverflow.com/questions/1726860/apache-authentication-redirect-on-failure-reliably
похоже, что с более высокими версиями apache больше возможностей поймать 401.
Вы можете использовать настраиваемый ответ об ошибке для перенаправления неавторизованных пользователей на другой URL или в другой каталог:
ErrorDocument 401 http://intranet.com/
ErrorDocument 401 /intranet.com/login.html