如何使用Apache、PHP和LDAP从计算机获取AD用户凭据
我们正在尝试实现一个单一登录解决方案,该解决方案集成了AD和PHP web应用程序。当用户尝试访问intranet网站时,应执行以下操作:如何使用Apache、PHP和LDAP从计算机获取AD用户凭据,php,apache,authentication,active-directory,ldap,Php,Apache,Authentication,Active Directory,Ldap,我们正在尝试实现一个单一登录解决方案,该解决方案集成了AD和PHP web应用程序。当用户尝试访问intranet网站时,应执行以下操作: web应用程序要求服务器读取已登录windows/AD的用户计算机中存储的广告凭据 AD“将AD用户名传递给Apache” 使用PHP,我读取存储在$\u服务器['PHP\u AUTH\u USER']中的凭证(据我所知) 这一切都意味着只能在内部网中工作。在它之外,我们只显示一个登录表单 我们对这个过程有些困惑。从中,我们使用以下指令配置Apache,
- web应用程序要求服务器读取已登录windows/AD的用户计算机中存储的广告凭据
- AD“将AD用户名传递给Apache”
- 使用PHP,我读取存储在$\u服务器['PHP\u AUTH\u USER']中的凭证(据我所知)
<Location "/">
Options -Indexes MultiViews FollowSymLinks
Order allow,deny
Allow from all
AuthType Basic
AuthName "VALIDAUTHNAME"
AuthBasicProvider ldap
AuthzLDAPAuthoritative Off
AuthLDAPURL "ldap://IP.FOR.THE.SERVER:389/DC=MYCOMPANY,DC=CL?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "DC=MYCOMPANY,DC=MYCOUNTRY"
Require ldap-attribute gidNumber=10000
</Location>
选项-索引多视图跟随符号链接
命令允许,拒绝
通融
AuthType Basic
AuthName“VALIDAUTHNAME”
AuthBasicProvider ldap
authzldapoff
AuthLDAPURL“ldap://IP.FOR.THE.SERVER:389/DC=MYCOMPANY,DC=CL?sAMAccountName?sub?(objectClass=*)”
AuthLDAPBindDN“DC=MYCOMPANY,DC=MYCOUNTRY”
需要ldap属性gidNumber=10000
对我们必须实施的流程是否有明确的解释?我们已经阅读了很多关于反向过程的内容,将凭证传递给AD,但关于这个案例的内容并不多。我们的系统管理员在这方面没有太多经验,所以他们没有太多帮助。几个月前,我做了你想做的事情。它的配置不是很难,但是熟悉
winbind
会有所帮助。如果您没有,您的系统管理员应该能够提供帮助winbind
是samba
包的一部分,因此它可能已经安装在您的服务器上。设置winbind后,只需启用apache模块并进行一点配置。该模块的站点应该能够引导您完成它。当我最初设置它时,我用IE8、Chrome和旧版本的Firefox(可能是5或6)对它进行了测试,它们都支持NTLM身份验证。如果所有配置都正确并且工作正常,apache模块将自动使用用户名填充$\u服务器['PHP\u AUTH\u USER']
,而不需要与用户进行任何交互,并且您可以从那里使用它做任何您想做的事情。现在有更多的文档可用,即使以前缺少文档,我也只有一个主要问题,现在已经有了很好的解决方案。您是否尝试在用户未登录web应用程序的情况下执行此操作?当你说“登录用户的windows帐户”时,用户是登录到windows还是登录到web应用?是的,我试图避免显示web应用的登录表单,事实上,使用他的凭据登录用户,这就是我所说的单次登录。我正在尝试登录到我的应用程序一个用户已登录windows/AD,其计算机中存储了广告凭据。我试图在这个问题上说得更清楚些。