制品仓库工具的权限管理最终都是为了解决用户和仓库之间的操作关系。不同工具间的差异主要就是在两者之间如何做映射。最简单的当然就是用户直接和仓库之间进行关联。
直接权限管理
但显然这种管理方式带来的就是维护成本太大,要对每个用户每个仓库进行权限维护。
分组权限管理
进而衍生出对用户和仓库做相应的分组,然后再以分组的形式进行权限映射。
引入分组,用户相对于用户分组是固定的,仓库对于仓库分组是固定的,因此维护量就集中在了用户分组和仓库分组上面。对于仓库的维护的工作量做了一定的简化。
Nexus权限管理
Nexus的权限管理基本就是直接采用的“分组权限管理”的方式。
略有差异的是
- Nexus对于用户分组定义为Role,User和Role的关系是M:N。Role支持从LDAP导入分组。
- Nexus对于仓库做了权限的细化,使用了Privilege的概念进行管理。每个仓库都拆分为了create/delete/update/read四种method。Role和Privilege的关系是M:N。Privilege支持Catalog级的划分,即所有的Maven仓库CRUD、NPM仓库CRUD。
Artifactory权限管理
Nexus的权限管理接近于“用户+仓库分组权限管理”的管理方式。
略有差异的是
- Artifactory将用户分组和仓库的映射管理包装在了一个Permission里面,一个Permission包括多个用户分组和仓库。
- Permission里面存放了用户分组(也可以直接是用户)和仓库的引用,在Permission里面配置用户分组和仓库的关系。
-
Group支持从LDAP导入。