天天看點

LDAP落地實戰(四):Jenkins內建OpenLDAP認證jenkins內建OpenLDAP認證參考文檔

前幾篇分文章分别介紹了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,例如

    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登入後将無法再用之前的登入方式(例如本地認證)登入

參考文檔