有可能在PHP站点上进行Windows身份验证吗?


is it possible to have windows authentication on a php site?

我们正在运行一个内置IIS的php 5.2内部网站。

当前每个用户都分配了一个登录名。使用php对登录信息进行授权,并根据sql server数据库表确认信息。

PHP使用sql server身份验证向sql server发送select语句

我们希望保留sql server身份验证;但是,我们希望用户能够使用Windows身份验证进入站点。

如何在php站点上实现windows身份验证?

您可以使用PHP的LDAP绑定来实现这一点。

下面是一个使用ldap_bind PHP扩展实现此功能的示例。

这个例子实现的是使用Active Directory根据目录服务对您的客户端进行身份验证,该服务提供Active directory 上当前注册用户的列表。

如果您正在使用活动目录,那么您可以使用LDAP来验证针对域的连接:

// load from login form
$user = 'user';
$pass = 'pass';
$ldap = ldap_connect( "example.com" );
if( false === ( $bind = ldap_bind( $ldap, $user, $pass ) ) ) {
  // auth error
} else {
  // user is authenticated
}