Kubernetes實錄系列記錄文檔完整目錄參考: Kubernetes實錄-目錄
相關記錄鏈接地址 :
Harbor支持的認證後端有4種類型,分別是database
,LDAP/AD
,UAA
,OIDC
,其中UAA目前來說還是不建議使用的狀態。默認採用的是數據庫(database)
作爲認證,這裏測試使用LDAP作爲認證後端。
備註: 默認使用數據庫作爲認證後端,並且已經創建了用戶就不能修改認證方式了,所以要在配置初始就決策好用哪種認證後端。
主機名稱 | ip地址 | 操作系統 | 角色 | 軟件版本 | 備註 |
---|---|---|---|---|---|
opsharbor-shqs-1 | 10.99.73.38 | CentOS 7.6 | docker hub | docker-ce 19.03.11 docker-compose 1.26.0 harbor 1.10.3 |
測試域名: registry.ejuops.com |
sysldap-shylf-1 | 10.116.72.11 | CentOS 7.6 | openLDAP | openldap-2.4.44 | 測試域名: 直接IP地址 |
一、準備工作
- harbor環境的配置參考上一篇文檔: 配置企業級鏡像倉庫Harbor
https://registry.ejuops.com/
- openLDAP的安裝參考文檔:配置OpenLDAP服務單節點模式,如果配置其他模式(主從或者多主)在該文檔裏面也有相關配置的鏈接
ldapURL:ldap://10.116.72.11 LDAP搜索DN:cn=Manager,dc=example,dc=com #諮詢ldap管理員,如果ldap支持匿名搜索這個不用配置 LDAP搜索密碼:xxxxxx #諮詢ldap管理員,如果ldap支持匿名搜索這個不用配置 LDAP基礎DN:ou=People,dc=example,dc=com LDAP過濾器:objectclass=posixAccount #如果開啓了memberof屬性參考下面的組管理 LDAP用戶UID: uid #根據實際情況配置,諮詢ldap管理員,可能是cn,uid或者其他 LDAP搜索範圍:子樹 # 如果配置了memberof屬性可以設置組相關配置,上面的LDAP過濾器可以修改爲:(&(objectclass=posixAccount)(memberof=cn=harbor,ou=Group,dc=example,dc=com)) LDAP組基礎DN:ou=Group,dc=example,dc=com LDAP組過濾器:objectclass=groupOfUniqueNames LDAP組ID屬性:cn LDAP組管理員DN: cn=harbor,ou=Group,dc=example,dc=com # 這個可以不用配置,這裏說明改組內的成員都是管理員 LDAP 組成員: memberof LDAP搜索範圍:子樹
- harbor處於啓動狀態
二、Harbor集成openLDAP(不進行組管理)
openLDAP沒有啓用memberof屬性,無法進行組管理。只有ldap中滿足LDAP過濾器
條件 objectclass=posixAccount
都可以登錄,登錄後是普通用戶權限,然後在harbor用戶管理頁面進行權限授權.
配置完成後,點擊【測試LDAP服務器】成功後直接保存即可,退出登錄。然後重啓harbor服務
docker-compose down
docker-compose start
可以使用ldap的用戶進行登錄了,因爲我們的過濾器簡單,所有滿足條件的用戶都可以登錄進來,並且是普通權限。
如下是ldap裏面的一個用800001的登錄過程。
三、Harbor集成openLDAP,啓用memberof屬性,進行組管理
-
上面的配置以及使用的過濾器導致所有的ldap用戶都可以登錄harbor,這個不滿足我們的需求。實際使用中經常是ldap配置一個組,將需要登錄ldap的用戶添加到該組,只有該組內的成員方可以登錄harbor。
-
還可能配置另一個組,將需要管理員權限的用戶添加到這個組裏面,登錄後直接具有管理員權限。需要過濾器配合。我們將配置一個組 harbor 該組內的用戶
組:cn=harbor,ou=Group,dc=example,dc=com 組成員:800001,800002,非組成員:800003
將LDAP過濾器配置爲
(&(objectclass=posixAccount)(memberof=cn=harbor,ou=Group,dc=example,dc=com))
如此,只能組內用戶可以登錄了。
-
配置組管理
可以退出登錄,重新使用ldap賬戶登錄驗證了。
OK,到這裏完成harbor與openldap的集成。
參考文檔:
官方:https://goharbor.io/docs/1.10/administration/configure-authentication/ldap-auth/
博文:https://www.58jb.com/html/harbor-auth-with-ldap.html