我已经创建了一些需要用户登录的基于PHP的内部网资源。用户创建他们自己的登录,我验证他们是否使用cookie登录。
有人问我是否可以将登录绑定到他们的Windows登录。我最初的反应是“网页无法访问您的Windows登录--这将是一个安全风险。”但我们的一个部门使用Sharepoint,它确实将自己与Windows登录绑定在一起。
这是怎么做到的呢?我能用PHP做吗?如果是这样,为什么它不是一个可怕的安全漏洞?
发布于 2009-03-11 16:07:03
您正在寻找的是针对PHP网站的NTLM身份验证,这是完全可行的,但在PHP中似乎没有单一的方法来完成它。
看一看http://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/
您还需要将站点添加到IE中的受信任站点(或在您使用的任何浏览器中的等价物),并在受信任站点的设置中打开“发送当前用户名和密码”。
这并不是一个可怕的安全漏洞,因为凭据不是完全通过网络发送的,并且最终用户已经明确告诉浏览器将凭据发送到有问题的网站。
发布于 2009-03-11 16:02:20
PHP支持LDAP,因此您可以访问Windows的Active Directory
在SourceForge上有一个项目:adLDAP -“使用PHP for Active Directory进行LDAP身份验证”
发布于 2009-03-11 16:12:35
这通常是使用LDAP和NTLM的组合来完成的。IE和Firefox等浏览器可以进行NTLM身份验证,我相信这就是Sharepoint的工作方式。我运行一个基于Java的门户应用程序,该应用程序使用LDAP同步用户,使用NTLM进行身份验证。
您绝对不想让用户在浏览器中输入域用户名和密码。在过去的几年中,我见过几个项目使用这种方法和LDAP对Windows用户进行身份验证。你说得对,这是个安全问题。用户应仅在登录工作站时输入其密码一次。你最不想要的就是保存在cache / temp文件中的密码。
我很抱歉,我不能提供一个“这是如何使用PHP应用程序”的答案。据我所知,这个问题没有一个答案。
(我过去做过的一件事是使用IIS中的PHP,但我从未真正检查过它是有效的还是糟糕的形式。如果您使用的是IIS,那么PHP将用Windows用户的用户名(DOMAIN\user)填充服务器变量REMOTE_USER。它对我当时正在做的事情起作用了。)
https://stackoverflow.com/questions/635171
复制相似问题