前幾篇分文章分别介紹了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
的,但是我替換了之後依然沒有成功,最後還是使用方法二安裝成功的
方法二:官網下載下傳安裝檔案背景上傳
- 優點:一定可以安裝成功的
- 缺點:麻煩,要去官網找插件并解決依賴
插件下載下傳位址:
https://updates.jenkins-ci.org/download/plugins/安裝方法:官網下載下傳插件 --> 登入Jenkins --> 系統管理 --> 插件管理 --> 進階 --> 上傳插件 --> 選擇檔案 --> 上傳 --> 安裝完成後重新開機
上傳插件安裝可能會失敗,大部分都是提示你目前插件依賴某些插件,隻需要下載下傳全部依賴插件,按照順序上傳安裝即可,LDAP插件安裝完成後,所有依賴的插件如下:
2. 配置LDAP認證
登入Jenkins --> 系統管理 --> 全局安全配置
通路控制選擇“LDAP”,Server輸入LDAP伺服器位址,有其他配置可以點選“Advanced Server Configuration...”
- Server:伺服器位址,可以直接填寫LDAP伺服器的主機名或IP,例如
(預設端口389),或者ldap.domain.com
,如果用了SSL,可以填寫ldap.domain.com:1389
(預設端口636),或者ldaps://ldap.domain.com
ldaps://ldap.domain.com:1636
- root DN:這裡的root DN隻是指搜尋的根,并非LDAP伺服器的root dn。由于LDAP資料庫的資料組織結構類似一顆大樹,而搜尋是遞歸執行的,理論上,我們如果從子節點(而不是根節點)開始搜尋,因為縮小了搜尋範圍那麼就可以獲得更高的性能。這裡的root DN指的就是這個子節點的DN,當然也可以不填,表示從LDAP的根節點開始搜尋
- User search base:這個配置也是為了縮小LDAP搜尋的範圍,例如Jenkins系統隻允許ou為Admin下的使用者才能登陸,那麼你這裡可以填寫
,這是一個相對的值,相對于上邊的root DN,例如你上邊的root DN填寫的是ou=Admin
,那麼user search base這裡填寫了dc=domain,dc=com
,那麼登陸使用者去LDAP搜尋時就隻會搜尋ou=Admin
下的使用者了ou=Admin,dc=domain,dc=com
- User search filter:這個配置定義登陸的“使用者名”對應LDAP中的哪個字段,如果你想用LDAP中的uid作為使用者名來登入,那麼這裡可以配置為
({0}會自動的替換為使用者送出的使用者名),如果你想用LDAP中的mail作為使用者名來登入,那麼這裡就需要改為uid={0}
。在測試的時候如果提示你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”來測試配置的準确性
- 這裡輸入的使用者名就是你上邊配置的
裡定義的LDAP中的屬性,密碼就是LDAP的密碼User search filter
3. 登入
配置完成并測試通過後就可以用LDAP直接登入了,注意:啟用了LDAP登入後将無法再用之前的登入方式(例如本地認證)登入