我已经完成并按照https://github.com/ccovey/ldap-auth上的所有安装说明尝试使用Laravel 4.1进行LDAP身份验证。
adldap.php
return array(
'account_suffix' => "@xxxxxxx.xxx.xxx",
'domain_controllers' => array("dc01.xxxxxxx.xxx.xxx"),
'base_dn' => 'DC=xxxxxxxx,DC=xxx,DC=xxx',
);
现在,如果我按原样离开adldap.php文件并运行以下 route.php 文件
Route::get('/', function()
{
$credentials = array(
'username' => 'username',
'password' => 'password'
);
if($a = Auth::attempt($credentials))
{
return '<pre>' . print_r(Auth::user(), true);
}
else
{
dd($a);
}
});
我得到以下输出
bool(false)
这似乎没有意义,因为我使用的是正确的用户名/密码。从MSSQL运行ADSI时,我也在使用与域和DC相同的配置,所以我知道它有效。
现在,如果我更改 adldap.php 文件以包含admin_username,admin_password我的laravel.log中会出现以下错误
'Bind to Active Directory failed. Either the LDAPs connection failed or the login credentials are incorrect. AD said: Can't contact LDAP server'
有什么建议吗?提前谢谢。
答案 0 :(得分:0)
您需要设置admin_username
和admin_password
,并且还需要确保您具有SSL / TSL的正确设置,它会尝试自动猜测您的目标AD设置。除此之外,您的base_dn
可能会出现错误。通过使用LDAP客户端轻松检查这些设置(类似Softerra's LDAP browser),可以节省大量麻烦。
答案 1 :(得分:0)
如果有人发现这篇文章。我必须创建OpenLDAP目录并从Active Directory创建证书。