前言

Harbor 擁有完整的認證與授權機制,可以讓使用者限制只能存取特定 Project 進行特定操作,建立完整的隔離環境,避免存取與自己不相關的資源。Harbor 認證機制可以支援資料庫、LDAP、OIDC 與 UAA 方式,當選擇其中一種認證機制後,即不能更換,除非刪除使用者 (資料庫認證) 或既有群組 (LDAP 與 OIDC),才能更換認證機制。


官方不推薦使用 UAA 認證機制,所以目前也不提供文件教學





認證機制介紹

一、資料庫認證方式

Harbor 啟動元件時包含了 PostgreSQL,若你選擇使用資料庫認證方式,則會將使用者資料儲存於 PostgreSQL。如果此 Harbor 可以開放給外部使用者使用,你可以透過資料庫認證方式內註冊功能提供使用者註冊。


二、LDAP 與 OIDC 認證機制

企業內部若已經擁有 AD 或已經提供 OIDC 認證機制服務,我們會建議你使用 LDAP 與 OIDC 認證。透過既有的人員管理機制,你可以不需要在有人員異動時辛苦調整 Harbor 使用者。除此之外,你也可以以群組的方式指派權限,而不需要逐一使用者進行權限設定。




Harbor 隔離環境

Harbor 對於權限設定的粒度相當細緻,你可以對於特定指成員指定特定 Project 特定權限,達到完全隔離的環境:使用者無法檢視沒有權限的 Project。在 Project 中你可以以使用者或群組方式設定權限 (群組方式必須選擇 LDAP 或 OIDC 方式設定)



權限可以分為專案管理員、專案維護者、開發人員、訪客與受設限制的訪客。避免誤刪 image 情況發生,你可以考慮設定多數使用者為訪客 (可以 read/pull image),而特定人員擁有較高權限。


如果你選擇的是 LDAP 與 OIDC 認證方式,你可以以群組 (Group) 方式設定權限,避免對於每一位新加入的使用者都要做一次權限設定 (下兩張圖截錄至官方教學文件 https://goharbor.io/docs/2.2.0/working-with-projects/create-projects/add-users/#add-ldapad-groups-to-projects)






機器人帳戶

除了使用者帳戶,Harbor 也提供機器人帳號在持續整合或監控上做更多不同的整合。機器人帳戶會以 Token 方式進行驗證,一樣可以設定不同權限,作為操作 Artifact 或呼叫 HarborAPI 使用(較舊版本不行)。你可以在左邊選單找到系統管理 > 機器人帳號,點選上方新增機器人帳號按鈕,開始新增機器人帳號。




輸入機器人帳號名稱與到期時間



選擇相對應的系統權限



選選擇所需的專案權限。



選擇專案內所擁有的權限。



機器帳號建立完成,請注意權杖 (Token) 為一次性顯示,關閉畫面前請複製或匯出檔案,避免 Token 遺失需要重置。




接下來,使用者即可透過機器人帳號呼叫 Harbor API 或下載 Image。