Laravel 4.1 w / ccovey / ldap-auth

时间:2014-06-26 20:40:30

标签: php laravel ldap

我已经完成并按照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'

有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

您需要设置admin_usernameadmin_password,并且还需要确保您具有SSL / TSL的正确设置,它会尝试自动猜测您的目标AD设置。除此之外,您的base_dn可能会出现错误。通过使用LDAP客户端轻松检查这些设置(类似Softerra's LDAP browser),可以节省大量麻烦。

答案 1 :(得分:0)

如果有人发现这篇文章。我必须创建OpenLDAP目录并从Active Directory创建证书。