关于OpenLDAP和AD帐号的整合,网上有大量的文档,绝大多数都不符合我们的需求,下面的方案是我经过调研、测试、修改、最终采用的。
. 需求概述
公司网络中有两种帐号:OpenLDAP帐号和AD帐号,用户需要记住两套密码,需要修改系统让用户只需要记住一套密码。
.
需求分析
本方案主要解决使用便利性问题:用户只需要记一个密码,就可登录相关系统。
根据已知的信息,Exchange邮件系统只能用AD认证,因此,最终的密码必须用AD的密码。具体有如下几个方法:
)用AD替换OpenLDAP
)OpenLDAP作为代理,将访问指向Windows
AD
)OpenLDAP只修改userPassword的属性,使它的值由Windows
AD提供,其它设置不变
)存在下述问题:
目前运行的一些系统只兼容AD或OpenLDAP中的一种,如果用其中一种替换另一种,会造成这些系统无法认证,修复起来需要大量时间,比如:CI。造成这种情况的原因是OpenLDAP与AD的差异性:属性、组、DN、权限管理等;
如果OpenLDAP设置为AD的代理,产生的问题和上面相同;
)对于当前的情况更可行一些。
.
方案概述
OpenLDAP内置了对于SASL的支持,本方案基于以下文档,但是去除了导出ADca证书、与OpenLDAP
ca证书整合的部分:
经过后期测试,不需要导出AD
ca证书也能实现相关功能。
.1
AD配置
1)创建bind帐号
在ou=Users,dc=gkkxd,dc=com下建立一个英文的普通帐号,比如:
cn=saslauthd,ou=Users,dc=gkkxd,dc=com
3.2
OpenLDAP配置
1)配置SASLAUTHD
安装sasl2
配置sasl2,采用ldap认证,
ldap_servers填写AD地址,ldap_bind_dn填写之前创建的帐号
2)修改帐号的userPassword
把用户帐号的userPassword值改为
{SASL}用户名@域名
这样的形式,例如:{SASL}hupeng@gkkxd.com,即可让该帐号使用AD的密码。
3.3其它工作
1)确保使用AD密码的OpenLDAP帐号在AD上有同名帐号
2)修改OpenLDAP管理系统的密码修改功能,使其能将用户密码设置为采用AD密码
3)通知用AD密码认证的用户统一通过exchange
owa进行密码的修改