Openldap整合windowsAD認(rèn)證

Openldap 整合windows AD認(rèn)證

成都創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今,先為陸良等服務(wù)建站,陸良等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為陸良企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

I.解決的問(wèn)題

Openldap是開(kāi)源的目錄服務(wù)實(shí)現(xiàn),windows AD是微軟的目錄服務(wù)現(xiàn)實(shí)?,F(xiàn)狀是有的場(chǎng)景(應(yīng)用、客戶端)跟openldap結(jié)合比較容易,有的場(chǎng)景又是必須要用AD,所以幾乎不可能棄用其中的任意一種。但同時(shí)維護(hù)兩套系統(tǒng)意味著維護(hù)工作大量增加(不僅僅只是增加一倍,要考慮信息分別維護(hù)、同步etc等)、出錯(cuò)幾率增加。

其中的一種較成熟、使用比較多的解決方案是:openldap使用windows AD的認(rèn)證,這樣只需要在AD上維護(hù)一套用戶密碼即可。

II.流程圖
Openldap 整合windows AD認(rèn)證

如圖,相關(guān)組件分四大部分:

1.LDAP client ;這個(gè)是實(shí)際調(diào)用ldap服務(wù)的系統(tǒng),也可以是類似ldapsearch之類的client 程序

2.Openldap; 開(kāi)源服務(wù)端,實(shí)際進(jìn)程為slapd

3.Saslauthd;簡(jiǎn)單認(rèn)證服務(wù)層的守護(hù)進(jìn)程,該進(jìn)程要安裝在openldap服務(wù)器
4.Active directory;即windows AD,這個(gè)不用解釋

III.具體配置

A.檢查Openldap

檢查openldap安裝時(shí)是否有編譯參數(shù) ./configure --enable-spasswd;如沒(méi)有需要重新編譯,否則不支持之后形如 userPassword: {SASL}user@domain的語(yǔ)法配置

Openldap的安裝本文不再詳細(xì)介紹

B.Saslauthd安裝配置

1.安裝 yum install cyrus-sasl

通過(guò)命令可查看

[root@localhost ~]# rpm -ql cyrus-sasl|grep bin

/usr/sbin/pluginviewer

/usr/sbin/saslauthd #守護(hù)進(jìn)程,主程序

/usr/sbin/testsaslauthd #測(cè)試程序

[root@localhost ~]# rpm -ql cyrus-sasl|grep etc

/etc/rc.d/init.d/saslauthd #啟動(dòng)腳本

/etc/sysconfig/saslauthd #配置文件,conf

2.【可選】先熟悉、測(cè)試sasl本身

比如 adduser blake ; passwd blake #增加一個(gè)linux系統(tǒng)測(cè)試賬號(hào),設(shè)置密碼

配置saslauthd使用shadow認(rèn)證

      編輯 /etc/sysconfig/saslauthd,修改使 MECH=shadow一行 ,最終修改為MECH=ldap

啟動(dòng)saslauthd進(jìn)程,service saslauthd start

測(cè)試testsaslauthd -u blake -p 密碼

這里如密碼正確應(yīng)該出現(xiàn)認(rèn)證成功,密碼錯(cuò)誤則失敗,到這里可理解sasl本身OK的。后續(xù)配置還會(huì)用 testsaslauthd 程序測(cè)試、調(diào)試。驗(yàn)證OK后可刪除用戶。

3.配置sasl關(guān)聯(lián)到ad域

【可選】先用ldap客戶端測(cè)一下windowad域是否可用,用戶密碼是否正確,比如

ldapsearch -x -H ldap://192.168.0.101 -D "CN=administrator,CN=Users,DC=test,DC=com" -w 密碼 -b "DC=test,DC=com"

這個(gè)命令ldapsearch是客戶端程序,IP地址是windows AD的地址,-x參數(shù)表示簡(jiǎn)單認(rèn)證,-D參數(shù)后面的一串是AD里的用戶DN,其中DC=test是AD域的域名,-w后面跟密碼,-b指base DN。

這個(gè)命令要成功輸出東西,否則就是ldap服務(wù)器連windows AD出問(wèn)題,需檢查網(wǎng)絡(luò)、用戶、密碼、DN等等。

下面配置sasl訪問(wèn)ad,再次修改 vi /etc/sysconfig/saslauthd,修改兩行:MECH=ldap FLAGS="-O /etc/saslauthd2ad.conf"

然后新建一個(gè) /etc/saslauthd2ad.conf ,寫入下面內(nèi)容

/etc/saslauthd2ad.conf

ldap_servers: ldap://192.168.0.101

ldap_search_base: CN=Users,DC=test,DC=com

ldap_timeout: 10

ldap_filter: sAMAccountName=%U

ldap_bind_dn: CN=administrator,CN=Users,DC=test,DC=com

ldap_password: password

ldap_deref: never

ldap_restart: yes

ldap_scope: sub

ldap_use_sasl: no

ldap_start_tls: no

ldap_version: 3

ldap_auth_method: bind

如:ldap_servers: ldap://192.168.0.7 ldap://192.168.0.20
ldap_search_base: DC=shuobaotang,DC=com
ldap_timeout: 10
ldap_filter: sAMAccountName=%U
ldap_bind_dn: CN=ldap_office,CN=Users,DC=shuobaotang,DC=com
ldap_password: *****
ldap_deref: never
ldap_restart: yes
ldap_scope: sub
ldap_use_sasl: no
ldap_start_tls: no
ldap_version: 3
ldap_auth_method: bind

該文件的主要參數(shù):

ldap_servers: LDAP URI, windowsAD地址

ldap_bind_dn: DN for connection ,一個(gè)windows AD用戶的DN,實(shí)際不需要admin的

ldap_password: Password for connection,密碼

ldap_search_base: Search base

ldap_filter: Search filter ,%U 表示user, %u 表示user@domain

重啟服務(wù)service saslauthd restart

測(cè)試testsaslauthd -u administrator -p 密碼 ,這里就是使用AD域的用戶-密碼認(rèn)證了,并不只是寫到配置文件里面的administrator,而是所有AD用戶都已經(jīng)可以用testsaslauthd程序測(cè)試驗(yàn)證??蛇M(jìn)一步AD里面加用戶、或改密碼測(cè)試。需注意AD修改密碼,老密碼依然可用5分鐘。如驗(yàn)證不通過(guò)檢查 sasl的配置。

C.配置openldap使用Saslauthd

修改openldap的配置文件 /etc/openldap/slapd.conf加入

sasl-host localhost

sasl-secprops none

這兩行配置是告訴openldap使用本機(jī)的sasl

再修改/新建sasl的配置文件,vi /etc/sasl2/slapd.conf

mech_list: plain

pwcheck_method: saslauthd

saslauthd_path: /var/run/saslauthd/mux

這個(gè)配置文件相當(dāng)于sasl的前端,意思是來(lái)自于slapd的請(qǐng)求,讓saslauthd接手處理。注意這兩個(gè)配置文件文件名是相同的,但卻是不同軟件包的配置文件。如果slapd是用非root的OS用戶啟動(dòng)的,那還要將用戶加到組里。

usermod -a -G sasl ldap

最后修改openldap里面的用戶配置,比如在openldap里新建用戶blake,設(shè)置userpassword: {SASL}blake,這樣openldap就會(huì)講用戶blake轉(zhuǎn)發(fā)給sasl程序認(rèn)證,而sasl又會(huì)進(jìn)一步轉(zhuǎn)發(fā)給windows AD,至此配置完成。

最終測(cè)試:

ldapsearch -w 密碼1 -H ldap://192.168.0.107 -D "cn=blake,ou=users,dc=saybot,dc=com" -b "cn=blake,ou

=users,dc=saybot,dc=com"

這個(gè)測(cè)試命令,blake用戶在openldap和windows AD上都存在,IP是本機(jī)openldap的IP,DN,查詢DN也都是openldap的信息,但是密碼卻是在windows AD上管理的。如成功,到windows AD上修改用戶密碼,用新密碼驗(yàn)證,再等5分鐘,舊密碼失效。到此配置完成。

IV.配置SSL
/TLS支持

前面的配置有一個(gè)安全問(wèn)題。這樣配置下來(lái)密碼從openldap到windows AD只是明文傳輸。如果不是在內(nèi)網(wǎng)、或有×××保護(hù),就有可能被截取。并且,openldap 到 windows AD 之間其實(shí)是會(huì)傳輸兩個(gè)用戶名/密碼。一個(gè)是配置在saslauthd 里面的的用戶,一個(gè)是真正連入openldap的認(rèn)證用戶。

/TLS支持

前面的配置有一個(gè)安全問(wèn)題。這樣配置下來(lái)密碼從openldap到windows AD只是明文傳輸。如果不是在內(nèi)網(wǎng)、或有×××保護(hù),就有可能被截取。并且,openldap 到 windows AD 之間其實(shí)是會(huì)傳輸兩個(gè)用戶名/密碼。一個(gè)是配置在saslauthd 里面的的用戶,一個(gè)是真正連入openldap的認(rèn)證用戶。

file0002.jpg

一次認(rèn)證,可截獲2個(gè)用戶名/密碼,都是明文

解決方案有這么幾種:

?外層網(wǎng)絡(luò)層加密,比如×××隧道

?使用windows安全認(rèn)證如NTLM 、Kerberos

?啟用SSL/TLS鑲套協(xié)議

本文采用TLS方案

D.Windowsad啟用TLS

Windows AD啟用TLS支持需要先安裝證書服務(wù),即 AD CS,建議在功能里面安裝相關(guān)管理工具。安裝完成后執(zhí)行 certutil -dcinfo verify ,再用ldp.exe程序本地驗(yàn)證。

Openldap 整合windows AD認(rèn)證

通過(guò)后在用ldapsearch遠(yuǎn)程驗(yàn)證。這個(gè)有幾個(gè)注意點(diǎn),過(guò)程如下:

4.導(dǎo)出windows證書,并配置給ldapsearch

windows的證書導(dǎo)出如圖:

一次認(rèn)證,可截獲2個(gè)用戶名/密碼,都是明文

解決方案有這么幾種:

?外層網(wǎng)絡(luò)層加密,比如×××隧道

?使用windows安全認(rèn)證如NTLM 、Kerberos

?啟用SSL/TLS鑲套協(xié)議

本文采用TLS方案

D.Windowsad啟用TLS

Windows AD啟用TLS支持需要先安裝證書服務(wù),即 AD CS,建議在功能里面安裝相關(guān)管理工具。安裝完成后執(zhí)行 certutil -dcinfo verify ,再用ldp.exe程序本地驗(yàn)證。

Openldap 整合windows AD認(rèn)證

通過(guò)后在用ldapsearch遠(yuǎn)程驗(yàn)證。這個(gè)有幾個(gè)注意點(diǎn),過(guò)程如下:

4.導(dǎo)出windows證書,并配置給ldapsearch

windows的證書導(dǎo)出如圖:

Openldap 整合windows AD認(rèn)證

Openldap 整合windows AD認(rèn)證

講導(dǎo)出的文件傳到ldapsearch所在服務(wù)器

修改配置文件(ldap客戶端配置文件和openldap客戶端配置文件是不同的)

/usr/local/openldap2.4/etc/openldap/ldap.conf

加入 TLS_CACERT /etc/openldap/certs/ca2.crt

5.可能需要修改/etc/hosts

192.168.0.101 WIN-QLMQQENMPLO.test.com

因?yàn)闀?huì)驗(yàn)證主機(jī)名是否與證書里的字段匹配,所以不能用ip地址訪問(wèn)

測(cè)試命令:

ldapsearch -x -H ldaps://WIN-QLMQQENMPLO.test.com -D "CN=blake,CN=Users,DC=test,DC=com" -w 密碼 -b "CN=administrator,CN=Users,DC=test,DC=com"

注意連接協(xié)議是ldaps,默認(rèn)636端口,不再是ldap

這里OK了再繼續(xù)。否則后面也容易出問(wèn)題

E.Sasl配置TLS

修改配置文件/etc/saslauthd2ad.conf

[root@localhost log]# cat /etc/saslauthd2ad.conf

ldap_servers: ldaps://WIN-QLMQQENMPLO.test.com/

ldap_search_base: CN=Users,DC=test,DC=com

ldap_filter: sAMAccountName=%U

ldap_bind_dn: CN=administrator,CN=Users,DC=test,DC=com

ldap_password: 密碼

ldap_tls_cacert_file: /etc/openldap/certs/ca-test.cer

這里和前面的配置有2點(diǎn)不同,一是協(xié)議變?yōu)閘daps,而是最后一行指定了證書。就是前面從windows導(dǎo)出的證書。這里的邏輯是:自簽名的ssl/tls證書,ldaps要求把自簽名用到的ca證書配置給客戶端。Ldapsearch程序修改ldap.conf文件,sasl則修改本文件。

使用testsaslauthd -u administrator -p 密碼 命令驗(yàn)證

F.Openldap配置TLS

Openldap服務(wù)端也可以配置TLS,配置文件是slapd.conf

比如 /usr/local/openldap2.4/etc/openldap/slapd.conf

增加3行

TLSCACertificateFile /etc/openldap/certs/ca.crt

TLSCertificateFile /etc/openldap/certs/ldap.crt

TLSCertificateKeyFile /etc/openldap/certs/ldap.key.pem

這里第一行是自簽名用到的ca證書(可以不是本機(jī),可以用前面的windows服務(wù)器來(lái)簽證書),第二行是本機(jī)服務(wù)器證書,第三行是本機(jī)服務(wù)器證書密鑰。證書的概念這里不詳細(xì)講解。

之后,用命令開(kāi)啟TLSslapd -4 -h "ldap:/// ldaps:///"

特別注意,這里要驗(yàn)證openldapTLS的話又比較麻煩

可以先openssl s_client -connect localhost:636看一下證書對(duì)不對(duì)

然后配置ldapsearch 1.合并證書,即ldap.conf 配置文件里面,TLS_CACERT 參數(shù)指定的文件,直接用cat命令講兩個(gè)ca證書合并(一個(gè)是前面windows的,一個(gè)是簽發(fā)給openldap的) 2.修改/etc/hosts 192.168.0.107 ldap

測(cè)試驗(yàn)證命令:ldapsearch -w 密碼 -H ldaps://ldap -D "cn=blake,ou=users,dc=saybot,dc=com" -b "cn=blake,ou

=users,dc=saybot,dc=com"

G.概念總結(jié)

TLS的配置整體比較麻煩,把握以下概念:

?Ldap協(xié)議是389端口,明文;TLS加密后協(xié)議是ldaps ,636端口

?Windowsad開(kāi)啟ldaps(TLS)安裝活動(dòng)目錄證書(AD CS)服務(wù)

?證書有2種,1是服務(wù)器證書,2是簽發(fā)服務(wù)器證書的ca證書

?自簽名的情況下,客戶端需要額外配置ca證書(第二種)

文章題目:Openldap整合windowsAD認(rèn)證
鏈接地址:http://bm7419.com/article26/gipjcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、品牌網(wǎng)站建設(shè)標(biāo)簽優(yōu)化、App開(kāi)發(fā)商城網(wǎng)站、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)