Некоторое время я пытался запустить и запустить mod_auth_sspi, чтобы помочь запустить интранет Drupal.
Модуль Drupal LDAP и инструкции Drupal SSO https://drupal.org/node/1371478 были отслежены.
Я использую Uniform Server 8.12 - запускаю apache 2.2 и php 5.3
mod_auth_sspi устанавливается в модули и упоминается в файле httpd.conf.
Сам LDAP работает в том смысле, что, перейдя к / user, кто-то может войти на свой сайт, используя данные для входа в компанию из своей Active Directory. Механизм тестирования в Drupal также извлекает важную информацию, такую как электронные письма и т. Д.
Однако, к сожалению, я не могу заставить их аутентифицироваться автоматически.
Файл httpd.conf также содержит:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
# Pass NTLM authentication to Apache
LoadModule sspi_auth_module modules/mod_auth_sspi.so
<IfModule !mod_auth_sspi.c>
LoadModule sspi_auth_module modules/mod_auth_sspi.so
</IfModule>
Тогда файл vhosts содержит
NameVirtualHost intranet.example.co.uk
<VirtualHost intranet.example.co.uk>
DocumentRoot "C:/UniServer2/www"
ServerName Intranet
<directory "C:/UniServer2/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</directory>
<Location /intranet/user/login/sso>
AuthType SSPI
AuthName "Intranet"
SSPIAuth On
SSPIAuthoritative On
### The domain used to authenticate with LDAP; this should match the domain
### configured in the LDAP integration configuration within Drupal
SSPIDomain xxx.xxx.x.x
SSPIOmitDomain On
SSPIOfferBasic On
Require valid-user
#SSPIBasicPreferred On
#SSPIofferSSPI off
</Location>
</VirtualHost>
Для информации intranet.example.co.uk было заменено названием компании xxx.xxx.x.x - это IP-адрес Active Directory. Очевидно, я заменил эти биты из соображений безопасности.
Местоположение - интрасеть /, потому что на том же сервере есть еще одно внутреннее веб-приложение.
Однако когда я захожу на сайт, я получаю сообщение об ошибке:
«Вы не были аутентифицированы сервером. Вы можете войти в систему, используя свои учетные данные, указанные ниже».
Это происходит как в intranet.example.co.uk, так и в intranet.example.co.uk/user/login/sso.
Drupal регистрирует следующие отчеты об ошибках:
ldap_sso_user_login_sso.step1: реализация: mod_auth_sspi, включено: 1, server_remote_user:, server_redirect_remote_user:, ssoRemoteUserStripDomainName:, seamlessLogin: 1 ldap_sso_user_login_sso.implementation: имя пользователя = (область =) найдено $ _SERVER [ 'REMOTE_USER'] не найден ldap_sso_user_login_sso.no_remote_user.seamlessLogin ldap_sso_user_login_sso.no_remote_user.drupal_goto user / login
Итак, очевидно, что Drupal не находит удаленного пользователя. Кроме того, у меня есть простой скрипт whoami.php, работающий в cgi-bin. Код для этого:
<html>
<head>
<title>whoami at <?php $_SERVER['SERVER_NAME']; ?> </title>
</head>
<body style='font-family:Verdana;font-size:-1'>
<?php
$cred = explode('\\',$_SERVER['REMOTE_USER']);
if (count($cred) == 1) array_unshift($cred, "(no domain info - perhaps SSPIOmitDomain is On)");
list($domain, $user) = $cred;
echo "You appear to be user <B>$user</B><BR/>";
echo "logged into the Windows NT domain <B>$domain</B>";
?>
</body>
</html>
Это привело к появлению «Вы выглядите как пользователь» без последующего текста и «вошел в домен Windows NT (без информации о домене - возможно, SSPIOmitDomain включен)», предполагая, что сервер также не реагирует на удаленного пользователя.
Я не вносил никаких особых изменений в сервер, поэтому предполагаю, что проблема, с которой я столкнулся, должна быть связана с другими, использующими mod_auth_sspi.
Это может быть пара вещей, хотя моих знаний недостаточно, чтобы сказать?
У меня нет Tomcat на сервере. В вики Apache (http://wiki.apache.org/httpd/ModAuthSSPI) в нем говорится, что общая проблема с mod_auth_sspi заключается в том, что mod.jk настроен неправильно. Mod.jk кажется файлом, относящимся к Tomcat, однако я нигде не видел Tomcat в списке как требование для mod_auth_sspi?
Что-то делать с htaccess? Я видел некоторые упоминания о mod_auth_sspi и htaccess, но ничего конкретного. Однако htaccess - единственное место, где я сделал что-то весьма необычное с сервером, поскольку он был настроен так, чтобы разрешать доступ к сайту только людям с тем же IP-адресом, что и организация (другими словами, только люди в офисах могут использовать его, и к нему нет доступа извне).
Любые советы или шаги, которые можно было бы предпринять для отладки этого, были бы весьма признательны, поскольку я, кажется, хожу по кругу.
Спасибо.