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

Nav*_*een 5 php windows authentication windows-nt

我正在使用 PHP 开发 Intranet Web 应用程序。我正在尝试使用 Windows NT 登录凭据登录到应用程序。我在这里遇到的麻烦是如何获取远程用户的 Windows 用户名?我想获取用户名,然后检查各种 LDAP 组,以便我可以将它们定向到我的应用程序中的适当页面。

我到目前为止尝试过

<?php
echo $_SERVER['REMOTE_USER'];
echo $_SERVER['PHP_AUTH_USER'];
?>
Run Code Online (Sandbox Code Playgroud)

它们都返回空值。

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

Som*_*now 0

您必须首先发送 NTLM-Authenticate 标头。之后,$_SERVER-Vars 中应该有正确的用户

header('WWW-Authenticate: NTLM');
echo $_SERVER['AUTH_USER'];
Run Code Online (Sandbox Code Playgroud)

AFAIK 这只适用于 InternetExporer - 浏览器