??作者簡介:
小曾同學(xué).com,一個(gè)致力于測試開發(fā)的博主??,主要職責(zé):測試開發(fā)、CI/CD
如果文章知識(shí)點(diǎn)有錯(cuò)誤的地方,還請大家指正,讓我們一起學(xué)習(xí),一起進(jìn)步。??
座右銘:不想當(dāng)開發(fā)的測試,不是一個(gè)好測試??。
如果感覺博主的文章還不錯(cuò)的話,還請點(diǎn)贊、收藏哦!??
企業(yè)里經(jīng)常會(huì)聽到“你的LDAP賬號(hào)是什么”,“Jenkins賬號(hào)是LDAP賬號(hào)”,“怎么通過LDAP來控制Jenkins的訪問權(quán)限”等。
那么LDAP到底是什么?怎么通過LDAP來控制Jenkins的訪問權(quán)限?我們今天就來聊聊這其中的道道。
一、??LDAP概述
LDAP 全稱為 Light Directory Access Portocol,是輕量級(jí)目錄訪問協(xié)議,屬于應(yīng)用層協(xié)議,主要用于存儲(chǔ)關(guān)于組織、用戶等信息資源,可用于實(shí)現(xiàn)單點(diǎn)登錄、認(rèn)證和授權(quán)等功能,是不是有點(diǎn)抽象?你可以把 LDAP 看作一個(gè)電話簿,電話簿就是用來查詢用戶的信息比如電話、地址、郵箱等,那么LDAP也是一樣,由一條條的信息組成,整體結(jié)構(gòu)成樹狀結(jié)構(gòu),如下圖展示,
LDAP在企業(yè)中主要用于”統(tǒng)一認(rèn)證“,除此之外還需要了解LDAP目錄中所包含的屬性,如下展示:
- dc:Domain Component,類似于DNS中的每個(gè)元素,例如baidu.com,可以看成兩個(gè)dc,分為是:dc=baidu,dc=com
- cn:common name 通用名,一般用于用戶名
- ou:OrganizationUnit 組織單位
其中,ou=People組織下面都是該企業(yè)所有用戶。
二、??Jenkins與LDAP打通
第一步:Jenkins 安裝 LDAP 插件
安裝完成之后,在Configure Global Security——Security Realm中有LDAP選項(xiàng)。點(diǎn)擊LDAP進(jìn)行配置。
第二步:在Jenkins中配置LDAP
具體配置內(nèi)容如下圖所示,
- Server:表示ldap服務(wù)地址,如 ldaps://ldaps:test.com:636
- root DN:表示搜索的起始節(jié)點(diǎn),不填的話默認(rèn)為從根節(jié)點(diǎn)開始搜索,如 dc=test,dc=com
- User search base或者Group search base,表示通過用戶還是組進(jìn)行過濾從而控制用戶訪問Jenkins。如 ou=People,表示只允許ou=People下的用戶才能登錄(主要是為了縮小LDAP的搜索范圍)
- User search filter:如果想用LDAP中的cn作為用戶名來登錄的話,應(yīng)配置為cn={0};如果是想用LDAP中的mail作為用戶來登錄的話,就需要配置為mail={0}
- Manager DN :表示在LDAP服務(wù)器不允許匿名訪問的情況下用來做認(rèn)證,如 cn=jenkinsdmo,ou=People,dc=test,dc=com
- Manager Password:輸入jenkinsdemo的密碼。(其中People組織中需要包含Jenkinsdemo用戶)
配置完成之后,點(diǎn)擊 Test LDAP settings,輸入Jenkinsdemo 用戶的賬號(hào)和密碼,當(dāng)看到下圖內(nèi)容時(shí)表示 Ldap與 Jenkins 已經(jīng)打通。此時(shí)可以使用LDAP賬號(hào)來登錄Jenkins。
需要注意以下幾點(diǎn):
- 當(dāng)使用LDAP賬號(hào)訪問Jenkins時(shí),Jenkins本地用戶將不可訪問Jenkins。
- 配置完之后一定要點(diǎn)擊Test LDAP settings測試一下,如果直接保存,萬一配置有問題,那么有可能會(huì)導(dǎo)致賬號(hào)登不上去。
三、??Jenkins控制LDAP用戶訪問權(quán)限
第一步:在LDAP中創(chuàng)建 jenkins-user 組
在 ou=group下面創(chuàng)建組 cn=jenkins-user(名字可自定義)
第二步:設(shè)置 jenkins-user權(quán)限
在 Manag Jenkins中找到 Manage and Assign Roles 配置項(xiàng),如果沒有找到,可以嘗試以下解決方案:
第一步:安裝 Role-based Authorization Strategy 插件,如果已經(jīng)安裝則可忽略該步驟
第二步:在 Configure Global Security——Authorization中勾選 Role-Based strategy。
完成以上配置后,就可以在管理中找到Manage and Assign Roles 配置項(xiàng),點(diǎn)擊進(jìn)入之后,選擇Manage Roles,先配置一些角色,比較讀寫權(quán)限,假設(shè)定義為creator,并給予相應(yīng)的權(quán)限。
保存之后,再點(diǎn)擊Assign Roles,給用戶組分配角色,因?yàn)槲覀冊贚DAP中創(chuàng)建了jenkins-user組,那么我們只需要在Assign Roles中添加jenkins-user組并給予相應(yīng)的權(quán)限。
完成以上配置,就說明你已經(jīng)完成了LDAP與Jenkins相關(guān)權(quán)限的打通。
四、??實(shí)現(xiàn)原理
使用一個(gè)小案例來說明LDAP與Jenkins打通的實(shí)現(xiàn)原理:
假如A用戶輸入LDAP賬號(hào)登錄Jenkins,此時(shí)Jenkins要查看用戶A是否在LDAP people用戶組中,如果在的話說明用戶可以訪問,隨即再查看A用戶本身所附有的權(quán)限,如果A用戶在LDAP的jenkins-user組中,說明A用戶有Jenkins的讀寫權(quán)限,那么可以正常登錄Jenkins;如果用戶A不在jenkins-user組中,則用戶A沒有讀寫權(quán)限,不可訪問。文章來源:http://www.zghlxwxcb.cn/news/detail-538449.html
關(guān)注我,不要錯(cuò)過更多精彩內(nèi)容哦!文章來源地址http://www.zghlxwxcb.cn/news/detail-538449.html
到了這里,關(guān)于Jenkins教程|聊聊Ldap與Jenkins打通那些事兒的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!