讀古今文學網 > Maven實戰 > 9.7.1 Nexus的訪問控制模型 >

9.7.1 Nexus的訪問控制模型

Nexus是基於權限(Privilege)做訪問控制的,服務器的每一個資源都有相應的權限來控制,因此用戶執行特定的操作時就必須擁有必要的權限。管理員必須以角色(Role)的方式將權限賦予Nexus用戶。例如要訪問Nexus界面,就必須擁有Status-(read)這個權限,而Nexus默認配置的角色UI:Basic UI Privileges就包含了這個權限,再將這個角色分配給某個用戶,這個用戶就能訪問Nexus界面了。

用戶可以被賦予一個或者多個角色,角色可以包含一個或者多個權限,角色還可以包含一個或者多個其他角色。

Nexus預定義了三個用戶,以admin登錄後,單擊頁面左邊導航欄中的User鏈接,就能看到所有已定義用戶的列表,如圖9-17所示。

圖9-17 Nexus的預定義用戶

這三個用戶對應了三個權限級別:

·admin:該用戶擁有對Nexus服務的完全控制,默認密碼為admin123。

·deployment:該用戶能夠訪問Nexus,瀏覽倉庫內容,搜索,並且上傳部署構件,但是無法對Nexus進行任何配置,默認密碼為deployment123。

·anonymous:該用戶對應了所有未登錄的匿名用戶,它們可以瀏覽倉庫並進行搜索。

在Users頁面中,管理員還可以添加用戶。單擊上方的Add按鈕,選擇Nexus User,然後在用戶配置面板中配置要添加用戶的ID、名稱、Email、狀態、密碼以及包含的角色,最後單擊Save按鈕即可。

可以單擊任何一個用戶,然後選擇頁面下方的Role Tree選項卡,以樹形結構詳細地查看該用戶所包含的角色以及進一步的權限。圖9-18所示是anonymous用戶的角色樹。

圖9-18 anonymous用戶的角色樹

理解各個角色的意義對於權限管理至關重要。Nexus預定義的一些常用且重要的角色包括:

·UI:Basic UI Privileges:包含了訪問Nexus界面必須的最基本的權限。

·UI:Repository Browser:包含了瀏覽倉庫頁面所需要的權限。

·UI:Search:包含了訪問快速搜索欄及搜索頁面所需要的權限。

·Repo:All Repositories(Read):給予用戶讀取所有倉庫內容的權限,沒有倉庫的讀權限,用戶將無法在倉庫頁面上看到實際的倉庫內容,也無法使用Maven從倉庫下載構件。

·Repo:All Repositories(Full Control):給予用戶完全控制所有倉庫內容的權限。用戶不僅可以瀏覽、下載構件,還可以部署構件及刪除倉庫內容。

Nexus包含了一個特殊的匿名用戶角色(Nexus Anonymous Role),默認配置下沒有登錄的用戶都會擁有該匿名角色的權限。這個匿名用戶角色實際包含了上述所列角色中,除Repo:All Repositories(Full Control)之外的所有角色所包含的權限。也就是說,匿名用戶可以訪問基本的Nexus界面、瀏覽倉庫內容及搜索構件。

除上述角色之外,Nexus還預定義了很多其他角色,它們往往都對應了一個Nexus的功能。例如,UI:Logs and Config Files包含了訪問系統日誌文件及配置文件所需要的權限。