Eu tenho tentado há algum tempo colocar o mod_auth_sspi em funcionamento para ajudar a executar uma Intranet do Drupal.
O módulo Drupal LDAP e as instruções do Drupal SSO link foram seguidos.
Estou executando um Uniform Server 8.12 - executando o apache 2.2 e o php 5.3
mod_auth_sspi é instalado nos módulos e referenciado no arquivo httpd.conf.
O próprio LDAP funciona, indo para / user alguém pode entrar em seu site usando os detalhes de login da empresa de seu Active Directory. O mecanismo de teste no Drupal também obtém informações relevantes, como e-mails, etc.
No entanto, infelizmente, não consigo autenticar automaticamente.
O arquivo httpd.conf também contém:
# 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>
Em seguida, o arquivo vhosts contém
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>
Para obter informações, intranet.example.co.uk foi substituído por nome da empresa xxx.xxx.x.x é o IP do Active Directory. Obviamente, eu substitui esses bits por motivos de segurança.
O local é intranet / porque também há outro aplicativo da Web interno no mesmo servidor.
No entanto, quando vou ao site, recebo a mensagem de erro:
"Você não foi autenticado pelo servidor. Você pode fazer login com suas credenciais abaixo."
Isso acontece tanto em intranet.example.co.uk como em intranet.example.co.uk/user/login/sso
Os seguintes relatórios de erros são registrados pelo Drupal:
ldap_sso_user_login_sso.step1: implementação: mod_auth_sspi, ativado: 1, server_remote_user:, server_redirect_remote_user:, ssoRemoteUserStripDomainName:, seamlessLogin: 1 ldap_sso_user_login_sso.implementation: username =, (realm =) encontrado $ _SERVER ['REMOTE_USER'] não encontrado ldap_sso_user_login_sso.no_remote_user.seamlessLogin ldap_sso_user_login_sso.no_remote_user.drupal_goto user / login
Então, claramente, o Drupal não está encontrando o usuário remoto. Além disso, tenho um simples script whoami.php rodando em cgi-bin. O código para isso é:
<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>
Isso produziu "Você parece ser usuário" sem o seguinte texto e "logado no domínio do Windows NT (sem informações de domínio - talvez SSPIOmitDomain esteja ativado)", sugerindo que o servidor também não está atendendo o usuário remoto.
Eu não fiz nenhuma alteração específica no servidor, então estou assumindo que o problema que estou tendo deve ser um sofrido por outros usando mod_auth_sspi.
Algumas coisas poderiam ser, embora meu conhecimento não seja suficiente para contar?
Eu não tenho o Tomcat no servidor. No wiki do Apache ( link ) ele diz que um problema comum com o mod_auth_sspi é que o mod.jk não está configurado corretamente. Mod.jk parece ser um arquivo relevante para o Tomcat - no entanto, eu não vi o Tomcat listado em nenhum lugar como um requisito para o mod_auth_sspi?
Algo a ver com o htaccess? Eu vi alguns mencionados de mod_auth_sspi e htaccess mas nada específico. No entanto, o htaccess é o único lugar onde fiz algo vagamente incomum com o servidor, pois ele foi configurado para permitir que apenas pessoas com o mesmo endereço IP da organização acessem o site (em outras palavras, apenas pessoas nos escritórios podem usá-lo, e não pode ser acessado de fora).
Qualquer conselho ou passos que possam ser dados para depurar isso serão muito bem-vindos, já que pareço estar dando voltas.
Obrigado.