【发布时间】:2015-08-05 22:23:20
【问题描述】:
我们有一个使用 WAMP(W 代表 Windows,P 代表 PHP)在 Windows 桌面的 Intranet 上托管的应用程序。我们需要实现一个新功能 - 每当用户访问我们的 Intranet 站点时,通过使用他/她的窗口登录凭据来验证用户的身份。
这里我缺少一些实现它的基本概念——如何在 PHP 中访问当前登录用户详细信息的窗口。
有什么方法可以检测出当前用户是谁,并将此用户数据传递给我们的 LDAP 服务器进行验证?
【问题讨论】:
-
PHP 不提供身份验证,Web 服务器提供。在您的情况下,Apache 并不是真正为集成 Windows 身份验证而设计的,尽管已经为它编写了模块。另一方面,如果您可以切换到 IIS,那么您将免费获得集成身份验证。
-
您可以访问环境变量,它可以告诉您用户名——但前提是用户而不是服务器正在运行应用程序。
-
@Neil:感谢您提供的信息。您能否告诉我们 IIS 将如何帮助我们实现目标?请注意,在服务器端,我们使用的是 PHP 脚本。因此,对于 LDAP 验证,我需要在我的 PHP 脚本中包含用户详细信息。从 env 变量获取有点冒险,因为它可能会被覆盖。请注意,我们也可以让用户从 MAC / Linux 桌面登录
-
@Prakash 您将更改 IIS 配置以禁止匿名访问并启用集成身份验证。然后 IIS 将与 Internet Explorer 协商身份验证。然后它将 HTTP_AUTH_USER 服务器变量设置为用户名。
标签: php