Jenkins系統(tǒng)用戶認(rèn)證配置管理
一、Jenkins系統(tǒng)用戶管理
- 1.1 Jenkins 專有用戶數(shù)據(jù)庫
- 1.2 LDAP認(rèn)證集成
- 1.3 GitLab單點登錄
- 1.4 GitHub單點登錄
我們進(jìn)入系統(tǒng)設(shè)置 > 全局安全配置,在這里可以配置jenkins的用戶認(rèn)證和授權(quán)策略。
在配置之前還是要囑咐一句,由于配置失敗或者不當(dāng)可能會影響后續(xù)用戶的登錄。在此建議大家首先在測試環(huán)境進(jìn)行測試??梢蕴崆皩?{JENKINS_HOME}/config.xml備份一下,然后配置失敗的時候迅速還原。
還有一種情況,配置gitlab和jenkins 用戶認(rèn)證時弄的jenkins沒有權(quán)限了。修改${JENKINS_HOME}/config.xml中的<useSecurity>true</usrSecurity>為<useSecurity>false</usrSecurity>以關(guān)閉Jenkins的權(quán)限認(rèn)證,然后重啟Jenkins,重新配置管理的權(quán)限,最后開啟權(quán)限認(rèn)證功能??梢詴簳r開啟允許任何人訪問。
我們先來看Authentication部分,Jenkins默認(rèn)使用的Jenkins專有用戶數(shù)據(jù)庫管理用戶,支持LDAP、GitHub、GitLab等認(rèn)證集成。但是同時只能配置一種認(rèn)證集成方式。我們主要配置這三種認(rèn)證。
1、Jenkins 專有用戶數(shù)據(jù)庫
系統(tǒng)管理>安全>管理用戶, 可以對系統(tǒng)用戶增刪改查。
我們來創(chuàng)建一個普通的用戶zeyang。
創(chuàng)建完成后,我們進(jìn)入${JENKINSS_HOME}/users目錄下可以看到如下內(nèi)容:
Jenkins的所有配置都是采用文件存儲,即xml文件。在這里users目錄包含了兩部分?jǐn)?shù)據(jù):用戶文件夾和所有用戶信息配置文件users.xml。Jenkins默認(rèn)在users目錄下創(chuàng)建一個與用戶同名的文件夾存儲該用戶的配置信息,保存在該目錄下的config.xml文件中。
這個config.xml文件中包含了用戶的配置信息,這些信息都可以在web頁面中更新。
更新完成后,點擊保存。則會更新${JENKINS_HOME}/users目錄下該用戶目錄對應(yīng)的config.xml文件。類似下面這樣:
2、LDAP認(rèn)證集成
LDAP系統(tǒng)是用于統(tǒng)一管理用戶,關(guān)于LDAP服務(wù)的部署,在測試環(huán)境推薦用Docker部署更加方便些?;旧掀髽I(yè)中都會有現(xiàn)成的LDAP服務(wù),所以我們的重點是拿到系統(tǒng)信息即可,在jenkins與LDAP能夠正常通信的前提下,你可能需要需要的信息:
- LDAP服務(wù)器地址:ldap://192.168.1.200
- LDAP服務(wù)器端口:389
- 用于認(rèn)證集成組織OU信息:ou=jenkins,dc=devops,dc=com
- 用于集成時具有查詢權(quán)限的用戶:cn=admin,dc=devops,dc=com
首先,我需要在Jenkins系統(tǒng)中安裝LDAP插件,然后進(jìn)入系統(tǒng)管理 >全局安全配置。
填寫好信息之后,我們可以點擊測試按鈕進(jìn)行測試。會模擬用戶登錄,成功后再保存配置即可。
3、GitLab單點登錄
為什么要配置GitLab單點登錄呢?之前有這樣的一個場景,每次開發(fā)人員登錄Jenkins和其他系統(tǒng)的時候都需要再次填寫登錄信息。增加了工具鏈之間的跳轉(zhuǎn)成本。為了解決這樣的問題,我們可以以GitLab為中心配置單點登錄。配置過程分為兩部分:GitLab創(chuàng)建應(yīng)用、Jenkins配置Gitlab插件信息。
首先,我們需要使用管理員賬號在GitLab中添加一個應(yīng)用。系統(tǒng)設(shè)置 > 應(yīng)用管理 > 新建應(yīng)用。
填寫Jenkins回調(diào)地址http://jenkinsserver:8080/securityRealm/finishLogin,勾選權(quán)限默認(rèn)具有read_user權(quán)限即可。(這里的地址填寫的是jenkins的實際地址)保存配置,會提示下面的信息:
OK,這些信息后續(xù)需要填寫到Jenkins中。ApplicationID secret。我們開始配置Jenkins。我們需要在Jenkins系統(tǒng)中安裝插件Gitlab Authentication, 然后導(dǎo)航到全局安全配置,填寫Gitlab系統(tǒng)地址和上面在Gitlab創(chuàng)建的應(yīng)用的ApplicationId secret。
到此就配置完成了。注意:當(dāng)Jenkins前面有代理的時候可能會出現(xiàn)跳轉(zhuǎn)錯誤的問題。這時候需要看下提示錯誤的redirect URL地址,檢查下圖配置。如果下圖配置沒有問題,請檢查代理的配置問題。另外要注意是??http?
?模式哦
4、GitHub單點登錄
配置的GitHub集成與GitLab配置很類似: 首先登錄GitHub, settings -> Developer Settings -> Oauth Apps。
新建應(yīng)用:填寫Jenkins回調(diào)地址http://jenkinsserver:8080/securityRealm/finishLogin。
保存,獲取應(yīng)用ID和secret。
接下來我們需要在Jenkins系統(tǒng)中安裝插件Github Authentication, 然后導(dǎo)航全局安全配置。填寫GitHub系統(tǒng)地址和上面在GitHub創(chuàng)建的應(yīng)用的ApplicationId secret。
最終的效果如下:
到此,我們完成了Jenkins用戶的認(rèn)證管理。大家按需配置即可。后續(xù)我們來講解權(quán)限管理為項目和用戶授權(quán)。