centos7 svn集成ldap用户认证
概述
? ? 前面,我記錄了一下openldap的搭建,搭建過后,這里記錄一下,如何將ldap的認證,集成到svn中。集成的辦法,目前是有兩種:
1. svn直接通過svn端口直接訪問的,通過sasl實現ldap的認證。
2. svn通過apache進行http訪問的用戶,通過配置apache,在apache上集成ldap來實現svn的ldap認證集成。
? ?這里根據這兩種情況,分別記錄說明,如何集成ldap到svn中
?
環境:
centos7
openldap?2.4.44
svn? 1.7.14-14
?
?
正文
一? svn直接通過svn端口直接訪問的,通過sasl實現ldap的認證。
?1. 安裝相關依賴包
yum install -y *sasl*?
查看saslauthd 版本:
?
2. 修改配置文件,啟動sasl服務
vim /etc/sysconfig/saslauthd -------------------------------------------------------- MECH=ldap # 只修改這一行,改為ldap --------------------------------------------------------vim /etc/saslauthd.conf # 不存在則新建 ------------------------------------------------------------------------------ ldap_servers: ldap://172.18.73.129 ldap_bind_dn: cn=admin,dc=yaobili,dc=com ldap_bind_pw: yourpassword ldap_search_base: ou=People,dc=yaobili,dc=com # 查詢的根組織節點,這樣就是只在people這個ou下查詢用戶 ldap_filter: uid=%U ldap_password_attr: userPassword # ldap中表示密碼的屬性名,默認是用這個就可以了。 ------------------------------------------------------------------------------vim /etc/sasl2/svn.conf # 沒有就新建,內容如下 -------------------------------------------- pwcheck_method: saslauthd mech_list: PLAIN LOGIN --------------------------------------------# 啟動服務 systemctl start saslauthd systemctl enable saslauthd啟動服務后,通過一下方式測試是否可以成功驗證:
testsaslauthd -u 用戶名 -p 密碼
?
3. 修改svn庫配置
通過svnadmin創建的svn庫,在conf下都會有一個配置文件svnserver.conf,修改此配置文件,將use-sasl=true 打開即可
啟用ldap認證后,原本的用戶密碼配置文件passwd的就會失效,但是權限控制依然是在authz文件中進行配置,這里我就直接用最簡單的配置所有人可讀寫:
?
4. 完成并測試
修改完配置后,需要重啟所有服務,才能生效。重啟svn和saslauthd。然后就可以通過自己本機的svn客戶端用ldap用戶直接進行登錄了。具體的自行測試登錄即可。
ok,到此,svn基于sasl的ldap集成就完成了。
?
?
?
二??在apache上集成ldap來實現svn的ldap認證集成
? ? 第二種方式,則是svn通過apache進行代理http訪問的情況下,在這種情況下,svn的訪問是通過http,然后經過apache來認證的,所以只需要在apache上集成ldap的認證即可實現svn的ldap認證。
1. 安裝依賴服務
yum -y install mod_dav_svn?
2. 修改配置
如果已經部署過apache+svn的朋友,則直接修改subversion.conf配置即可:
vim /etc/httpd/conf.d/subversion.conf -------------------------------------------------------------------------------- <Location /svn> # 這里配置的是訪問地址,也就是訪問時需要在地址后加上svn然后再加庫名 DAV svn SVNParentPath /data/svn # 這是svn庫的主目錄 SVNListParentPath on AuthzSVNAccessFile /data/svn/authzAuthName "Subversion repository" AuthType Basic AuthBasicProvider ldap AuthzLDAPAuthoritative on AuthLDAPURL "ldap://172.18.196.238:389/ ou=people,dc=yaobili,dc=com?uid?sub?(objectclass=*)" #根據設定組織自行修改 AuthLDAPBindDN "cn=admin,dc=yaobili,dc=com" #根據設定用戶自行修改 AuthLDAPBindPassword "yourpassword" #根據設定用戶密碼自行修改Require ldap-user </Location> --------------------------------------------------------------------------------其中/data/svn 為svn庫文件目錄,在/data/svn下創建的svn庫,即 svnserve -d -r /data/svn? 為svn啟動的命令。
用了apache做驗證后,原先每個庫中的conf/passwd文件就不生效了,而是使用指定的?AuthUserFile 來指定。而改為ldap后,則由ldap進行認證,但是授權文件則是由 AuthzSVNAccessFile 指定的授權文件來進行設置。這些在配置apache+svn時應該都已經設置過了。
配置方法,通過指定svn庫名來設置權限,下面是最簡單的所有人讀寫的類似設置:
[repo1:/]
* = rw
[repo2:/]
* = rw
?
3. 重啟服務生效
# 配置完成后,重啟apache服務生效 systemctl restart httpd?
ok,到此就配置完成了,直接使用svn客戶端用ldap用戶連接svn進行測試即可。
?
?
結束
? ? ok,到此就結束了,這里沒有細說apache+svn的配置方法,主要是講了apache+svn后,如果再加ldap。有什么不明白的,歡迎留言。
?
?
總結
以上是生活随笔為你收集整理的centos7 svn集成ldap用户认证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【java学习】GUI 图形程序设计
- 下一篇: 5 指令集架构汇总