目录

用户体系

管理员工具

用户管理

系统参数

系统权限管理

role.create-application.enabled

role.manage-app-master.enabled

删除应用

删除集群

删除AppNamespace

删除Namespace

开放平台授权


用户体系

每个app(应用)拥有一个负责人,可以有多个管理员,可以在创建应用时指定。如下图:

其中 

  • 【应用负责人】和【应用管理员】可以分别指定不同的用户,可以和【登录用户】不一致。本例中登录用户为fengxiankf,应用负责人为zhaofacai,应用管理员为zhaofacai、zhaoxiaoshuai
  • 应用负责人默认为应用管理员
  • 应用管理员具如下权限
1创建集群
2创建Namespace命名空间
3修改应用信息,包括部门、应用名称、应用负责人
4

修改Namespace命名空间,包括修改权、发布权的指定。命名空间的创建用户和超级管理员默认拥有修改权、发布权,其他用户均需要通过授权才能获得。

5为应用新增管理员(role.manage-app-master.enabled=false情况下)

管理员工具

portal中有超级管理员用户,默认为apollo(可以修改),可以进行【管理员工具】操作

用户管理

这其中的字段应该都好理解,就不一一赘述了。

系统参数

一些系统级的参数配置,存储在ApolloPortalDB.ServerConfig表中。超级管理员也可以通过SuperAdmin参数来修改。下面将要讲到的role.create-application.enabled(是否开启应用创建权限控制)、role.manage-app-master.enabled(是否开启分配管理员权限控制)俩个参数,也存储在该表中。

 

系统权限管理

 

这里的用户设置只有在这俩个参数role.create-application.enabled(是否开启应用创建权限控制)、role.manage-app-master.enabled(是否开启分配管理员权限控制)开启下设置才生效。其中

role.create-application.enabled

当该开关不开启(值等于false或者不设置)时,所有用户都具有创建应用的权限,可以创建应用;

当该开关开启(值等于true)时,只有超级管理员和已指定的用户可以创建应用,页面功能就是完成用户的指定。

role.manage-app-master.enabled

当该开关不开启(值等于false或者不设置)时,某个应用的管理员用户都可以去管理该应用的管理员,包括添加新管理员、删除已存在的管理员;

当该开关开启(值等于true)时,只有超级管理员和已指定的用户可以管理管理员信息,页面功能就是完成用户的指定。

删除应用

只有超级管理员可以删除应用,删除应用时将逻辑删除如下信息

  1. 应用信息,对应于表ApolloConfigDB.App、ApolloPortalDB.App
  2. 该应用所有的AppNamespace 元信息,对应表ApolloPortalDB.AppNamespace、ApolloConfigDB.AppNamespace
  3. 该应用所有的Namespace数据(包括所有集群),对应表ApolloConfigDB.Namespace
  4. 该应用的Namespace所有的item数据(用于存储配置数据),对应表ApolloConfigDB.Item

其中 AppNamespace用于定义Namespace,定义它的相关属性,如是否公共(isPublic)、存储格式(Format xml or json or properties等)。每个Namespace都对应一个AppNamespace(通过NamespaceName关联)。

删除集群

删除集群只有超级管理员可以进行,执行删除集群时,将删除如下信息

  1. 该集群下所有的Namespace数据,对应表ApolloConfigDB.Namespace
  2. 对应Namespace所有的item数据(用于存储配置数据),对应表ApolloConfigDB.Item

删除AppNamespace

 删除AppNamespace元数据只有超级管理员可以进行,执行删除元数据时,将删除如下信息 

  1. 该AppNamespace关联的所有Namespace数据,对应表ApolloConfigDB.Namespace
  2. 对应Namespace所有的item数据(用于存储配置数据),对应表ApolloConfigDB.Item

删除Namespace

 其中Namespace的删除可以由且只能由应用管理员在应用页面进行删除 

  当无应用管理员权限的用户去删除命名空间时,会报如下错误

当删除Namespace,不删除AppNamespace时,每次进入应用时,都会提示有Namespace的缺失

可以通过右下角的【补缺Namespace】的菜单自动补齐缺失的Namespace

 

开放平台授权

创建第三方应用

Apollo提供了一套的Http REST接口,使第三方应用能够自己管理配置。虽然Apollo系统本身提供了Portal来管理配置,但是在有些情景下,应用需要通过程序去管理配置。

通过以上完成第三方应用的创建。创建成功后,系统会生成该第三方应用对应Token值。在调用apollo的开放平台接口,需要上送该Token,系统根据该token值来确认属于哪个第三方应用,对操作的Namespace是否有权限。

第三方应用ID的概念会让人觉得同用户概念,其实不是。在调用apollo的开放平台接口时除了上送Token,一般还要上送用户信息,对命名空间的操作都是以该用户的名义进行,而不是第三方应用。第三方应用ID只是用来实现赋权和鉴权。

可以在该界面输入第三方应用ID,点击【查询】获取该第三方应用对应的Token值。

赋权

查询接口默认都是可以访问的,但是对Namespace的修改和发布,及创建集群、命名空间、分配应用管理员的接口需要权限控制。

在如上界面可以按Namespace进行赋权,赋权后第三方应用可以获得对该命名空间的修改和发布权限;也可以按app进行赋权,赋权后可以获得创建集群、命名空间、分配应用管理员的权限、及该应用下所有命名空间的修改和发布权限。

如果在没有赋权的情况下调用apollo开放平台的接口,会报如下错误,message: {"exception":"org.springframework.security.access.AccessDeniedException","message":"Access is denied","status":403,"timestamp":"2022-12-29T19:46:08.746"}

Logo

为开发者提供自动驾驶技术分享交流、实践成长、工具资源等,帮助开发者快速掌握自动驾驶技术。

更多推荐