LDAP认证+数据库实体用户

时间:2018-08-15 17:11:26

标签: symfony4

我有一个要求,我需要通过LDAP对用户进行身份验证,但需要从User实体加载/同步用户:

我已经阅读(并重新阅读了)安全文档,但是特别是:

https://symfony.com/doc/current/security/ldap.html

  

http_basic_ldap身份验证提供程序,用于进行身份验证   使用HTTP Basic的LDAP服务器。像所有其他身份验证一样   提供程序,它可以与任何用户提供程序一起使用。

听起来应该是可能的-也许通过将LDAP身份验证提供程序与Doctrine User类一起使用?

我一直无法弄清楚如何在security.yamlservices.yaml

中进行布线

有想法吗?

1 个答案:

答案 0 :(得分:1)

我建议使用ADLDAP2 library

此库符合您的需求。使用ADLDAP2,您可以通过LDAP服务器进行身份验证,还可以加载/同步用户数据。

您可以synchronize any attribute

 'sync_attributes' => [

     'username' => 'samaccountname',
     'name' => 'cn',

 ],

甚至synchronize password

  

密码同步

     

密码同步选项可让您   自动将用户LDAP密码同步到您的本地数据库。   这些密码由laravel在本地进行哈希处理。

     

启用此选项还将允许用户登录其帐户   使用存在LDAP连接时最后使用的密码。

     

如果禁用此选项,则会随机应用本地用户帐户   16个字符的哈希密码,将失去对该帐户的访问权限   LDAP连接断开时。

     

此功能默认为禁用。

     

'password_sync' => env('ADLDAP_PASSWORD_SYNC', false),

有一个bundle for Symfony