[系统集成] OpenLDAP使用AD密码

 关于OpenLDAP和AD帐号的整合,网上有大量的文档,绝大多数都不符合我们的需求,下面的方案是我经过调研、测试、修改、最终采用的。

1. 需求概述

公司网络中有两种帐号:OpenLDAP帐号和AD帐号,用户需要记住两套密码,需要修改系统让用户只需要记住一套密码。


2. 需求分析

本方案主要解决使用便利性问题:用户只需要记一个密码,就可登录相关系统。


根据已知的信息Exchange邮件系统只能用AD认证,因此,最终的密码必须用AD的密码。具体有如下几个方法:

1)用AD替换OpenLDAP

2OpenLDAP作为代理,将访问指向Windows AD

3OpenLDAP只修改userPassword的属性,使它的值由Windows AD提供,其它设置不变


方法1)、2)存在下述问题:

目前运行的一些系统只兼容ADOpenLDAP中的一种,如果用其中一种替换另一种,会造成这些系统无法认证,修复起来需要大量时间,比如:CI。造成这种情况的原因是OpenLDAPAD的差异性:属性、组、DN、权限管理等;

如果OpenLDAP设置为AD的代理,产生的问题和上面相同;



方法3)对于当前的情况可行一些。

3. 方案概述

OpenLDAP内置了对于SASL的支持,本方案基于以下文档,但是去除了导出ADca证书、与OpenLDAP ca证书整合的部分

http://blogs.msdn.com/b/alextch/archive/2012/04/25/configuring-openldap-pass-through-authentication-to-active-directory.aspx



经过后期测试,不需要导出AD ca证书也能实现相关功能。

3.1 AD配置

1创建bind帐号

ou=Users,dc=test,dc=com下建立一个英文的普通帐号,比如:

cn=saslauthd,ou=Users,dc=test,dc=com



3.2 OpenLDAP配置

1)配置SASLAUTHD

安装sasl2

配置sasl2,采用ldap认证, ldap_servers填写AD地址,ldap_bind_dn填写之前创建的帐号



2)修改帐号的userPassword

把用户帐号的userPassword值改为 {SASL}用户名@域名 这样的形式,例如:{SASL}hupeng@test.com,即可让该帐号使用AD的密码。



3.3其它工作

1)确保使用AD密码的OpenLDAP帐号在AD上有同名帐号

2)修改OpenLDAP管理系统的密码修改功能,使其能将用户密码设置为采用AD密码

3)通知用AD密码认证的用户统一通过exchange owa进行密码的修改

posted @ 2016-01-29 15:33  hahp  阅读(6009)  评论(0编辑  收藏  举报