configurationmod_auth_sspi来查找远程用户

我已经尝试了一段时间来启动mod_auth_sspi来运行Drupal内联网。

遵循Drupal LD​​AP模块和Drupal SSO说明https://drupal.org/node/1371478 。

我正在运行一个统一的服务器8.12 – 运行Apache 2.2和PHP 5.3

mod_auth_sspi安装在模块上,并在httpd.conf文件中引用。

LDAP本身是有效的,因为去/某人可以使用他们的Active Directory中的公司login详细信息login到他们的站点。 Drupal上的testing机制也拉动了电子邮件等相关信息。

无论如何,我不能让他们自动进行身份validation。

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> 

那么虚拟主机文件包含

  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.xx SSPIOmitDomain On SSPIOfferBasic On Require valid-user #SSPIBasicPreferred On #SSPIofferSSPI off </Location> </VirtualHost> 

有关信息intranet.example.co.uk已被replace为公司名称xxx.xxx.xx是Active Directory的IP。 显然,我出于安全原因已经replace了这些位。

位置是Intranet /,因为在同一台服务器上还有另一个内部Web应用程序。

但是,当我去的网站,我收到错误消息:

“您没有通过服务器的身份validation,您可以使用下面的凭据login。”

这发生在intranet.example.co.uk和intranet.example.co.uk/user/login/sso

以下错误报告由Drupallogging:

ldap_sso_user_login_sso.step1:implementation:mod_auth_sspi,enabled:1,server_remote_user:,server_redirect_remote_user:,ssoRemoteUserStripDomainName:,seamlessLogin:1 ldap_sso_user_login_sso.implementation:username =,(realm =)find$ _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显然没有find远程用户。 此外,我有一个简单的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> 

这产生了“你似乎是用户”没有以下文本和“login到Windows NT域(没有域信息 – 也许SSPIOmitDomain在)”,这表明服务器也没有拿起远程用户。

我还没有对服务器进行任何奇怪的改动,所以我假设我遇到的问题必须是其他人使用mod_auth_sspi所遭受的问题。

虽然我的知识还不足以说明,但还是有一些事情可以做。

  • 我没有在服务器上的Tomcat。 在Apache维基( http://wiki.apache.org/httpd/ModAuthSSPI )上说mod_auth_sspi的常见问题是mod.jkconfiguration不正确。 Mod.jk似乎是一个与Tomcat相关的文件 – 但是我还没有看到Tomcat在任何地方被列为mod_auth_sspi的需求?

  • 与htaccess有什么关系? 我见过一些提到的mod_auth_sspi和htaccess,但没有具体的。 然而,htaccess是唯一的地方,我已经做了一些与服务器不同寻常的事情,因为它已被configuration为只允许与组织相同的IP地址的人访问该网站(换句话说,只有办公室的人可以使用它,而且不能从外面访问)。

任何意见或步骤,可以采取debugging这将不胜感激,因为我似乎围绕在圈子里。

谢谢。