接触ldap,可以说是从iRedMail开始,对这个的了解和认识也一点一点增加。
大家其实都知道通过LDAP可以实现身份统一验证,大家只需要记住一套的用户名和密码就可以。不过不同的软件实现的方式,会有很大的差异,我就把我了解,接触过的,总结一下。
1:php-ldap
现在开源的程序,php的很多,那么php的程序,如果让用户采用ldap的验证呢,其实他是需要php-ldap类似的模块,让php支持ldap,这样就可以实现直接去验证。
很多开源的web应用,如SguarCRM,WordPress,其实应该都是类似的方式。对于python,估计也是一样。
2:直接查询ldap
这个就以OpenVPN为例,实现OpenVPN的ldap验证,方式应该不少,我至少知道3种,这其实有时候让大家感觉很困惑的地方,为啥同一个功能,不同文章的做法不一样。
最省事的方式,就是让OpenVPN直接查询ldap,也就是通过OpenVPN的ldap插件来实现。现在centos和Ubuntu10.04,都已经提供现成的包,直接安装就可以,我已经成功实现。相关的文章,大家可以搜索howtoforge。
http://www.howtoforge.com/setting-up-an-openvpn-server-with-authentication-against-openldap-on-ubuntu-10.04-lts
http://www.howtoforge.com/using-iredmail-and-openvpn-for-virtual-email-hosting-and-vpn-services-centos-5.4
这个其实和邮件系统也是类似,很多人实现邮件系统和微软AD整合,需要安装很多别的软件,不过iRedMail实现的方式也是采用最简单的方式,直接设置Postfix,Dovecot去查询微软的ldap。
3:ldap schema
直接查询ldap,一般就只能返回用户名和密码是否正确,让用户使用。不过对于用户具备什么权限,就无法实现。通过LDAP的schema,就可以实现用户的权限的设置。
这个就PureFTP为例子,由于PureFTP提供schema,这样我们不但可以提供用户的统一验证,还可以在ldap上给用户设置权限。
如果你实现samba的ldap验证,其实也是类似,由于有samba的schema,所以你可以在ldap上设置你的权限。
4:PAM-ldap
PAM类似一个接口,例如ssh,他是通过pam来验证,那么我们可以通过pam-ldap来实现ldap的验证。Openvpn,其实也是支持pam验证,那么它也是可以通过这种方式实现ldap的验证。
5:Radius-ldap
这个是我这几天折腾的东西。其实OpenVPN还支持Radius,也就是说,你还可以通过Radius-ldap的方式,实现ldap验证。
我研究Radius,主要是希望解决无线网络使用ldap验证。这样看上去更加安全。
Radius,感觉有点类似pam,通过Radius,他也是可以实现mysql和ldap的验证。
很多路由器,AP,他们是没有ldap的验证选项,他就只能通过Radius来实现。
上次曾经看过,RouterOS是否支持ldap验证,后来看论坛,RouterOS支持Radius,所以你可以配置Radius采用ldap验证。
6:apache-ldap
这其实需要你的apache支持ldap,如果你是编译apache,需要你加入ldap的支持,如果是rpm,好像都是支持的。
iRedMail里的awstat,就是使用apache的ldap验证来实现的。你访问的时候,会跳出一个框,让你输入用户名和密码,他会查询ldap。
iRedMail里awstats 使用apache验证。
<Directory /var/www/awstats/>
DirectoryIndex awstats.pl
Options ExecCGI
order deny,allow
allow from all
#allow from 127.0.0.1
AuthName "Authorization Required"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative Off
AuthLDAPUrl ldap://127.0.0.1:389/o=domainAdmins,dc=iredmail,dc=org?mail?sub?(&(objectclass=mailAdmin)(accountStatus=active))
AuthLDAPBindDN "cn=vmail,dc=iredmail,dc=org"
AuthLDAPBindPassword "password"
Require valid-user
相关文章
- 阿里巴巴发布 R1-Omni:首个基于 RLVR 的全模态大语言模型,用于情感识别-视觉与音频信号的融合。单独依赖视觉或音频的模型,往往会忽略二者之间的微妙关联,导致错误理解。此外,许多模型缺乏 可解释性,无法清晰说明如何得出情感判断,更别提在陌生场景下保持稳定性。 阿里巴巴研究团队 正式推出 R1-Omni (https://r1-omni.com/),一种 基于“可验证奖励强化学习”(RLVR)的全模态大语言模型,专为情感识别优化。相比现有方法,R1-Omni 不仅能准确预测情感,还能提供详细的推理过程,让 AI 决策更透明、更可解释。 R1-Omni 如何突破情感识别难题? 💡 核心技术 1:强化学习 + 可验证奖励(RLVR)
- 【模拟滤波与数字滤波区别】--双线性变换的预畸变处理理解及验证;matlab中freqz、freqs、loglog、bode函数绘图的区别
- 训练集、测试集、验证集之间的区别及理解
- 对于深度学习中训练集(train set)验证集(validation set)和测试集(test set)的理解
- 深入理解 Session、Cookie 和 Token:网络安全和身份验证的重要概念
- 对位运算与逻辑电路统一性的浅显理解
- Android.intent.action.MAIN 与 android.intent.category.LAUNCHER 的验证理解
- android.intent.action.MAIN 与 android.intent.category.LAUNCHER 的验证理解 (转)
- 深入理解 c# 第十五章 异步方法中断的参数验证 在抛出异常时进行包装
- JS面向对象逆向学习法,让难理解的统统一边去(1)~