php - 从浏览器获取用户身份

标签 php apache active-directory

我曾经在一家银行工作,它的内部网有一个非常酷的功能。登录计算机后,会通过 Apache 在 PHP 中设置全局变量,它们包含登录计算机的用户的身份。现在我找到了一份新工作,我想知道这东西是怎么工作的!我想再次实现这种事情。

我在这里使用的是什么:

  • FreeBSD 服务器,我不知道版本。
  • Apache 2.2 网络服务器
  • PHP 5,一些自定义编译,由于各种原因,我无法升级或修改。
  • 广告经理
  • 登录到他们计算机的所有用户都使用事件目录,都在同一个域中。

我以前的东西是这样的:

echo $_SERVER['username']

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

有人可以解释一下,这是如何做到的吗?

附言如果我的任何服务器设置不符合要求,请说出来,因为这样我就有理由要求老板给我一个我自己的,有更多的控制权。

最佳答案

有很多方法可以实现这一点。然而,其中很多都依赖于对客户端和服务器的控制。

明显的数据来源包括:

但是这些都没有解释该值如何出现在 session 中 - 这一定是在 PHP 代码中实现的。

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

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

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

关于php - 从浏览器获取用户身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6952707/

相关文章:

c# - Azure Active Directory 获取用户组

ruby - Ruby/Rack 中的单点登录服务器身份验证

apache - 如果找不到页面,.htaccess 301 重定向到主页

apache - HBase MapReduce作业的log4j

python - 在Python中减去(Apache日志)时间戳字符串?

c# - 针对 Active Directory 进行身份验证的 Web 服务的安全密码解决方案?

php mysqli bind_param 错误参数计数

php - 从列值不等于零的表中获取值

php - 从 $_POST 数组多次 INSERT INTO MySQL

php - 使用 PHP 将信息以 HTML 形式传递到 MySQL 数据库