【问题标题】:Setting Up Windows Authentication for Apache为 Apache 设置 Windows 身份验证
【发布时间】:2016-03-12 00:33:25
【问题描述】:

首先,我已经在互联网上搜索了大约一个小时,试图找出如何做到这一点但没有成功 - 因此我正在写这个问题。

我有一个需要访问用户 Windows 用户名的 Intranet 站点(不是运行 Apache 的服务器,而是访问 Intranet 站点的用户)。

我已经安装了 adLDAP 并让它在用户可以登录的地方工作,以检查用户所在的组。但是,为了让我的网站更安全,我宁愿它访问 Windows 用户名。

我看到有一个名为 mod_auth_sspi 的 apache 模块,但我找不到如何安装它甚至在我的代码中实现(使用)它。

我在 Windows Server 2008 上使用 Apache v2.4、PHP 5.6.8。

【问题讨论】:

  • 经过一周的研究,我发现了这个教程community.spiceworks.com/how_to/… 这解决了 Apache 2.4 的问题。所有模块都连接在那里。只需确保下载所有 DLL 文件并将其存储在相应文件夹下即可。对我来说就像一个魅力
  • 如果这在 2019 年仍然有效,任何人都可以解释一下吗?

标签: php apache windows-server-2008 windows-authentication


【解决方案1】:

所以...在谷歌搜索几个小时后,我发现了如何做到这一点...确实应该更直接地找到答案,但是,它是:

1) 为您的系统下载以下模块(32 位或 64 位):https://www.apachehaus.net/modules/mod_authnz_sspi/

2) 将文件粘贴到您的模块文件夹中。 /apache/modules/

3) 编辑以下配置文件:

3.1) php/php.ini:取消注释extension=php_ldap.dll 行。

3.2) apache/conf/httpd.ini:将以下内容添加到 LoadModules 部分的末尾:

LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so

3.3) 找到<Directory 标记并删除开始和结束标记及其内容。然后粘贴以下内容:

<Directory /> 
Options None 
AllowOverride All 
Order allow,deny 
Allow from all 
AuthName intranet
AuthType SSPI 
SSPIAuth On 
SSPIAuthoritative On 
SSPIOfferBasic On 
SSPIOmitDomain On 
Require valid-user 
</Directory>

然后在重新启动 Apache 后,它应该可以工作了。通过&lt;?php echo $_SERVER['PHP_AUTH_USER'] ?&gt;获取Windows用户的用户名

【讨论】:

  • 不幸的是,我已遵循所有这些并重新检查并仔细检查了我的工作,但我仍然无法使其正常工作。
  • @Lynchie 在什么情况下你试图让它工作;它在什么方面不起作用?
  • 嗨 Callum,基本上我想获取环境用户名,以便我可以使用它来控制 CSS 样式表。
  • 我试过这个,Apache 之后没有启动。
  • 需要注意的一个设置步骤 - 确保 SSPI (mod_authnz_sspi) 模块的内部版本号 vc_XX(例如 vc_14)与已安装 Apache 的内部版本号 vc_XX 版本匹配。
猜你喜欢
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 2011-08-04
  • 2022-10-16
  • 2010-10-05
  • 2013-10-30
相关资源
最近更新 更多