關於OpenLDAP和AD帳號的整合,網上有大量的文檔,絕大多數都不符合我們的需求,下面的方案是我經過調研、測試、修改、最終采用的。
1. 需求概述
公司網絡中有兩種帳號:OpenLDAP帳號和AD帳號,用戶需要記住兩套密碼,需要修改系統讓用戶只需要記住一套密碼。
2. 需求分析
本方案主要解決使用便利性問題:用戶只需要記一個密碼,就可登錄相關系統。
根據已知的信息,Exchange郵件系統只能用AD認證,因此,最終的密碼必須用AD的密碼。具體有如下幾個方法:
1)用AD替換OpenLDAP
2)OpenLDAP作為代理,將訪問指向Windows AD
3)OpenLDAP只修改userPassword的屬性,使它的值由Windows AD提供,其它設置不變
方法1)、2)存在下述問題:
目前運行的一些系統只兼容AD或OpenLDAP中的一種,如果用其中一種替換另一種,會造成這些系統無法認證,修復起來需要大量時間,比如:CI。造成這種情況的原因是OpenLDAP與AD的差異性:屬性、組、DN、權限管理等;
如果OpenLDAP設置為AD的代理,產生的問題和上面相同;
方法3)對於當前的情況更可行一些。
3. 方案概述
OpenLDAP內置了對於SASL的支持,本方案基於以下文檔,但是去除了導出ADca證書、與OpenLDAP ca證書整合的部分:
經過后期測試,不需要導出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進行密碼的修改
