首页 » Maven实战 » Maven实战全文在线阅读

《Maven实战》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包含了访问系统日志文件及配置文件所需要的权限。