从浏览器获取用户身份

时间:2011-08-05 07:10:57

标签: php apache active-directory

我曾经在一家银行工作,它的内部网有一个非常酷的功能。登录计算机后,通过Apache在PHP中设置了全局变量,它们包含计算机上登录的用户的身份。现在我正在接受一份新工作,我想知道这件事是如何运作的!我想再一次实现这一点。

我在这里工作:

  • FreeBSD服务器版本不为我所知。
  • Apache 2.2网络服务器
  • PHP 5,一些自定义编译,由于各种原因,我无法升级或修改。
  • MS AD
  • 登录到其计算机的所有用户都使用活动目录,所有用户都在同一个域中。

我曾经拥有的是这样的:

echo $_SERVER['username']

将打印当前登录用户的用户名。

有人可以解释一下,如何做到这一点?

P.S。如果我的任何服务器设置不是必需的,请说明,因为那时我有理由要求老板给我一个我自己的,有更多控制权。

2 个答案:

答案 0 :(得分:2)

有很多方法可以实施。然而,他们中的很多人依赖于控制客户端和服务器。

明显的数据来源包括:

然而,这些都没有解释该值如何出现在会话中 - 这必须在PHP代码中实现。

因此,如果不知道它是如何在您之前的网站上实施的,我们无法告诉您:

  • 是否安全且正确实施
  • 如何复制行为

鉴于您的资源列表,虽然可以实现基于直接LDAP调用的身份验证,通过您的应用程序传递用户名和密码,但我强烈建议使用(例如)openId - 但将提供程序限制为您的openid提供程序 - 将使用MSAD作为后端。

答案 1 :(得分:-3)

我没有正确理解这个问题,所以我编辑了我的帖子......

您可以使用apache auth,您可以通过ip或主机名

进行身份验证

http://httpd.apache.org/docs/2.0/en/howto/auth.html