接上一篇《安裝Harbor》,安裝好之后,接下來我們使用OpenLDAP來進行Harbor web界面的登陸驗證及權限分配!
OpenLDAP:
使用OpenLDAP的都知道,這是一個集中的用戶賬號管理系統;使用輕量級目錄訪問協議(LDAP)構建集中的身份驗證系統可以減少管理成本,增強安全性,避免數據復制的問題,並提高數據的一致性。
隨着服務器的增加,隨着用戶權限的復雜性增加,只有幾台服務器時,可能你還可以每台機器都去手動的新建幾個用戶,或者設置權限。
但如果是幾十、幾百、上千或者更多的機器呢?難道你還一個個的手動去新建用戶嗎?一個公司如果有着幾十、幾百或更多的人員時,難道你還能手動的操作嗎?更別說復雜的權限設置了......
OpenLDAP就是因此而生的其中一個集中的用戶賬號管理系統,而我認為這也是一個比較好的管理系統。
我們公司200左右的人,3000+的服務器,不同的部門,不同的項目,不同的人員,reader或者是新人,每個人都有他們自己的賬號,不同的權限。我們只能使用OpenLDAP進行這些復雜的權限賬號管理。
基於此,docker的registry鏡像倉庫,這么復雜的人員分布,這么多的業務與項目,難道我們也一個個的新建registry賬號或者共用一個賬號嗎?很明顯這是不可能的!
既然我們上面用了Harbor,恰好Harbor也支持OpenLDAP進行賬戶管理,這也是我們看中Harbor作為docker registry鏡像倉庫其中重要的一點!這樣只需要維護OpenLDAP這一套系統就可以了,跟以前完全不沖突,也完全不需要重新定義每個人的用戶密碼!
轉載請標明出處:http://www.cnblogs.com/huangjc/p/6272938.html
下面我們就進入正式的操作吧:
Harbor默認是使用mysql數據庫進行用戶管理,那么我們就需要修改Harbor的配置文件:
# vim harbor.cfg #編輯如下幾行: auth_mode = ldap_auth #驗證模式 ldap_url = ldaps://172.16.100.100 #openldap server ldap_basedn = ou=people,dc=mydomain,dc=com #這個根據自己的實際情況修改咯
保存之后,停止harbor:
docker-compose stop
然后重新執行install:
./install.sh
到此,就修改配置完成並生效啦!
接下來登陸瀏覽器測試操作並設置相關權限:
首先說明一下,我這里發現的一個小問題:OpenLDAP的用戶需要先登陸一次Harbor界面,后續Harbor才能對其進行權限的操作;這個應該是Harbor先前並不知道OpenLDAP有這個用戶的存在,只有登陸了之后才記錄了這個用戶的原因吧!!
當然這個也可能是我設置的問題吧,后續哪位大牛看到並且有好的方法,煩請指點一下!
(1)首先登陸一個我自己的用戶,會看到只能新建自己的項目,並push/pull自己的鏡像,其他人的倉庫都不能操作,也沒有備份策略等:
我新建了一個我自己的項目,但是沒有備份權限,也只能操作我自己的項目,可以新加其他用戶訪問我的項目:
登陸gxx這個用戶,發現這個用戶也能訪問我創建的項目:
(2)對用戶進行權限設置:
admin是Harbor默認的超級管理員,可以看到所有人的項目,所有的操作都可以使用admin來進行操作,當然也可以賦予別人為管理員:
登陸admin后,可以看到剛才由huangjc用戶所創建的項目,也可以將gxx用戶提升為這個項目的管理員:
admin也可以將某個用戶提升為Harbor web的管理員,這樣這個用戶就可以像admin一樣具有Harbor操作的所有權限:
登陸huangjc這個用戶,你就會發現,這些是管理員才擁有的權限,現在我也擁有了,我現在的權限就跟admin一樣了:
到此,Harbor的OpenLDAP的操作就這樣先吧!