为Apache

时间:2015-12-07 11:57:49

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:3)

所以......经过几个小时的谷歌搜索后我发现了如何做到这一点......找到答案真的应该更直接了,但不过,这里是:

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

2)将文件粘贴到modules文件夹中。 /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之后,一切都应该可行。通过<?php echo $_SERVER['PHP_AUTH_USER'] ?>

获取Windows用户的用户名