前幾篇分文章分別介紹了OpenLDAP的部署管理和維護以及svn、git的接入,今天我們再下一城接入jenkins。
前情提要:LDAP系列文章
Jenkins整合OpenLDAP認證
1. 安裝LDAP外掛
使用LDAP認證需要安裝LDAP外掛,安裝外掛有兩種方法:
方法一:後臺外掛管理裡直接安裝
- 優點:簡單方便,不需要考慮外掛依賴問題
- 缺點:因為網路等各種問題安裝不成功
安裝方法:登入Jenkins --> 系統管理 --> 外掛管理 --> 可選外掛 --> 搜尋LDAP --> 選中 --> 直接安裝 --> 安裝完成重啟
因我們已經安裝過了LDAP外掛,所有這裡搜尋不到LDAP外掛,只有LDAP Email外掛
如果安裝失敗,網上也有說在外掛管理 --> 高階 --> 升級站點裡替換URL為https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
的,但是我替換了之後依然沒有成功,最後還是使用方法二安裝成功的
方法二:官網下載安裝檔案後臺上傳
- 優點:一定可以安裝成功的
- 缺點:麻煩,要去官網找外掛並解決依賴
外掛下載地址:updates.jenkins-ci.org/download/pl…
安裝方法:官網下載外掛 --> 登入Jenkins --> 系統管理 --> 外掛管理 --> 高階 --> 上傳外掛 --> 選擇檔案 --> 上傳 --> 安裝完成後重啟
上傳外掛安裝可能會失敗,大部分都是提示你當前外掛依賴某些外掛,只需要下載全部依賴外掛,按照順序上傳安裝即可,LDAP外掛安裝完成後,所有依賴的外掛如下:
2. 配置LDAP認證
登入Jenkins --> 系統管理 --> 全域性安全配置
訪問控制選擇“LDAP”,Server輸入LDAP伺服器地址,有其他配置可以點選“Advanced Server Configuration...”
- Server:伺服器地址,可以直接填寫LDAP伺服器的主機名或IP,例如
ldap.domain.com
(預設埠389),或者ldap.domain.com:1389
,如果用了SSL,可以填寫ldaps://ldap.domain.com
(預設埠636),或者ldaps://ldap.domain.com:1636
- root DN:這裡的root DN只是指搜尋的根,並非LDAP伺服器的root dn。由於LDAP資料庫的資料組織結構類似一顆大樹,而搜尋是遞迴執行的,理論上,我們如果從子節點(而不是根節點)開始搜尋,因為縮小了搜尋範圍那麼就可以獲得更高的效能。這裡的root DN指的就是這個子節點的DN,當然也可以不填,表示從LDAP的根節點開始搜尋
- User search base:這個配置也是為了縮小LDAP搜尋的範圍,例如Jenkins系統只允許ou為Admin下的使用者才能登陸,那麼你這裡可以填寫
ou=Admin
,這是一個相對的值,相對於上邊的root DN,例如你上邊的root DN填寫的是dc=domain,dc=com
,那麼user search base這裡填寫了ou=Admin
,那麼登陸使用者去LDAP搜尋時就只會搜尋ou=Admin,dc=domain,dc=com
下的使用者了 - User search filter:這個配置定義登陸的“使用者名稱”對應LDAP中的哪個欄位,如果你想用LDAP中的uid作為使用者名稱來登入,那麼這裡可以配置為
uid={0}
({0}會自動的替換為使用者提交的使用者名稱),如果你想用LDAP中的mail作為使用者名稱來登入,那麼這裡就需要改為mail={0}
。在測試的時候如果提示你user xxx does not exist
,而你確定密碼輸入正確時,就要考慮下輸入的使用者名稱是不是這裡定義的這個值了 - Group search base:參考上邊
User search base
解釋 - Group search filter:這個配置允許你將過濾器限制為所需的objectClass來提高搜尋效能,也就是說可以只搜尋使用者屬性中包含某個objectClass的使用者,這就要求你對你的LDAP足夠了解,一般我們也不配置
- Group membership:沒配置,沒有詳細研究
- Manager DN:這個配置在你的LDAP伺服器不允許匿名訪問的情況下用來做認證(詳細的認證過程參考文章ldap落地實戰:subversion整合ldap認證中關於LDAP伺服器認證過程的講解),通常DN為
cn=admin,dc=domain,dc=com
這樣 - Manager Password:上邊配置dn的密碼
- Display Name LDAP attribute:配置使用者的顯示名稱,一般為顯示名稱就配置為uid,如果你想顯示其他欄位屬性也可以這裡配置,例如mail
- Email Address LDAP attribute:配置使用者Email對應的欄位屬性,一般沒有修改過的話都是mail,除非你用其他的欄位屬性來標識使用者郵箱,這裡可以配置
下邊還有一些配置如:環境變數Environment Properties、servlet容器代理等,很少用就不多解釋了。有一個配置Enable cache
可能會用得到,當你的LDAP資料量很大或者LDAP伺服器效能較差時,可以開啟快取,配置快取條數和過期時間,那麼在過期時間內新請求優先查詢本地快取認證,認證通過則不會去LDAP伺服器請求,以減輕LDAP伺服器的壓力
- 配置完成後可以點選下方的“Test LDAP sttings”來測試配置的準確性
- 這裡輸入的使用者名稱就是你上邊配置的
User search filter
裡定義的LDAP中的屬性,密碼就是LDAP的密碼
3. 登入
配置完成並測試通過後就可以用LDAP直接登入了,注意:啟用了LDAP登入後將無法再用之前的登入方式(例如本地認證)登入