使用Windows身份验证作为intranet应用程序的登录凭据


Use Windows authentication as login credentials for intranet applications

我正在用PHP开发一个intranet web应用程序。我正在尝试使用Windows NT登录凭据登录到应用程序。我在这里遇到的问题是如何获得远程用户windows用户名?我想获得用户名,然后对照各种LDAP组进行检查,以便将它们引导到我的应用程序中的相应页面。

到目前为止,我已经尝试过

<?php
echo $_SERVER['REMOTE_USER'];
echo $_SERVER['PHP_AUTH_USER'];
?>

它们都返回空值。

更新:使用$_SERVER['REMOTE_ADDR']我可以获得计算机的IP地址。我是否可以获得userid/username(任何唯一的)并使用它与LDAP组进行比较?我想这样做,当他们进入网站主页并存储会话,然后在整个网站上使用会话变量时。

不确定您是否还需要帮助,但最近我不得不创建代码,使用IIS运行的windows身份验证将intranet用户自动登录到我们的网站。当使用windows身份验证和ISS以获取登录用户时,首先确保启用了windows身份验证并禁用了匿名身份验证。

$_SERVER['AUTH_USER']; // obtain the LanID of the logged in user.

如果你需要更多信息,请告诉我。

您必须首先发送NTLM身份验证标头。之后,$_SERVER-Vars 中应该有合适的用户

header('WWW-Authenticate: NTLM');
echo $_SERVER['AUTH_USER'];

AFAIK这只适用于InternetExporer浏览器