LDAP落地實戰(四):Jenkins整合OpenLDAP認證

運維咖啡吧發表於2018-08-06

前幾篇分文章分別介紹了OpenLDAP的部署管理和維護以及svn、git的接入,今天我們再下一城接入jenkins。

前情提要:LDAP系列文章

Jenkins整合OpenLDAP認證

1. 安裝LDAP外掛

使用LDAP認證需要安裝LDAP外掛,安裝外掛有兩種方法:

方法一:後臺外掛管理裡直接安裝

  • 優點:簡單方便,不需要考慮外掛依賴問題
  • 缺點:因為網路等各種問題安裝不成功

安裝方法:登入Jenkins --> 系統管理 --> 外掛管理 --> 可選外掛 --> 搜尋LDAP --> 選中 --> 直接安裝 --> 安裝完成重啟

搜尋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外掛安裝完成後,所有依賴的外掛如下:

LDAP依賴外掛列表

2. 配置LDAP認證

登入Jenkins --> 系統管理 --> 全域性安全配置

配置LDAP-1

訪問控制選擇“LDAP”,Server輸入LDAP伺服器地址,有其他配置可以點選“Advanced Server Configuration...”

配置LDAP-2

  • Server:伺服器地址,可以直接填寫LDAP伺服器的主機名或IP,例如ldap.domain.com(預設埠389),或者ldap.domain.com:1389,如果用了SSL,可以填寫ldaps://ldap.domain.com(預設埠636),或者ldaps://ldap.domain.com:1636

配置LDAP-3

  • 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伺服器的壓力

配置LDAP-4

  • 配置完成後可以點選下方的“Test LDAP sttings”來測試配置的準確性

配置LDAP-5

  • 這裡輸入的使用者名稱就是你上邊配置的User search filter裡定義的LDAP中的屬性,密碼就是LDAP的密碼

3. 登入

配置完成並測試通過後就可以用LDAP直接登入了,注意:啟用了LDAP登入後將無法再用之前的登入方式(例如本地認證)登入

LDAP賬號登入jenkins

參考文件

掃碼關注公眾號檢視更多原創文章

相關文章