Linux下LDAP统一用户验证总结


我通过iredmail的ldap整合过的应用有:sugarcrm,ejabberd,purefptd,openvpn,Awstats 。这些应用,应该可以很好的说明ldap的整合的各种方式。

  需要说明的是:ldap上保持着用户的帐号和密码。

  OU和filter

  一般人,都是希望把需要验证的用户放到一个ou上,让应用去找这个ou下的用户进行验证,不过这样做,一个缺点就是,当一个用户需要启用ftp服务,但是不用samba的服务,怎么办?

  所以对用户进行分类,不建议采用ou这种方式。而是采用类似tag这种方式,通过filter进行过滤。比如这个用户希望启用samba服务,那么我就在这个用户的属性上添加一项samba,通过设置过滤器,就可以把所有需要使用samba服务的用户找出来,而不需要把这些用户放到一个ou里。

  下面的验证,你都可以通过设置filter的方式,灵活验证。

  1:有schema

  如果你希望应用的所有设置,都可以在ldap上进行控制,那么就需要这个应用提供schema,pureftp,就是一个很好的例子。用户的下载速度,上传速度这些设置,都是保存在ldap上,而不是软件的配置文件或者数据库里。

  这种整合,应该是比较理想的,真正实现集中管理。

  2:没有schema,支持ldap验证

  应用本身提供ldap验证,也就是通过ldap去查询用户名和密码。不过用户在这个应用的具体权限,就需要在软件里进行设置。

  一般来说,你需要设置一个默认的权限给用户,等用户登录后,你才可以给用户设置具体的权限。

  sugarcrm,就是一个例子,他是支持ldap验证,不过仅仅是支持验证。如果你设置sugar采用ldap验证,你会发现,系统里是没有用户,必须这个用户登录后,你才能在用户管理,设置他的权限。

  其实作为软件本身,如果可以做到,自己主动去ldap查询符合条件的用户,导入到系统,那就更好。还有ldap里的一些基本信息,如果也可以导入,那就更好。如sugar,可以把用户的邮箱导入。

  不过这点,很少软件可以做到。ejabberd,倒是会自动查询ldap里的用户。

  3:pam验证,不支持ldap

  应用本身不支持ldap验证,支持pam验证,那么你可以通过pam实现ldap。这种方式是可行,听起来也挺好,不过也就增加ldap验证配置的复杂程度。

  web应用,支持ldap验证,其实很简单就可以实现。仅仅是

  openvpn,就是一个例子,事实上,你想实现openvpn采用ldap验证,有两种办法,

  一种是直接通过ldap进行验证

  另外一种就是通过pam,再找ldap验证。

  4:apache验证

  这种验证方式,也就是让apache,通过ldap来验证用户,倒是简单,iredmail本身的Awstats ,就是通过这种方式实现统一验证


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3