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

Настройка mod_auth_sspi для поиска удаленного пользователя

Некоторое время я пытался запустить и запустить 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.

Это может быть пара вещей, хотя моих знаний недостаточно, чтобы сказать?

Любые советы или шаги, которые можно было бы предпринять для отладки этого, были бы весьма признательны, поскольку я, кажется, хожу по кругу.

Спасибо.