接口文档

这类接口供AppAdmin为某个业务应用设置用户、角色、权限,并进行“用户-角色”、“角色-权限”之间的关联操作。

下面所有接口在调用时都必须增加appName参数,表明接口要处理的应用的名称。

如果要操作的业务应用在系统管理员新建到数据库时设置了appToken字段(参考/application/add接口),则在调用下面接口时,需要在接口参数中通过appToken字段设置appToken的值。否则接口会因为业务应用管理员身份校验失败收到“Application token verification failed.”错误。

1 用户设置接口

这类接口用来完成用户的增删改查等操作。

MatrixAuth是一个轻量级的权限系统,它只负责管理用户权限,但是不负责用户登录、用户信息管理等操作,而是通过一个userKey字段来唯一标识一个用户。通常,userKey字段可以是用户登录和信息系统中的用户Id等。

  • /user/add : 增加一个用户。
参数名称 是否必填 参数含义
appName 该用户所属于的应用名称
userKey 用来识别用户的唯一标识,通常可以使用业务应用中的userId、工号等字段
userName 用户名称
appToken 用来完成应用管理员身份校验的依据
  • /user/updateByKey : 更新用户信息。
参数名称 是否必填 参数含义
appName 该用户所属于的应用名称,仅用来索引用户,不可修改
userKey 用来识别用户的唯一标识,仅用来索引用户,不可修改
userName 用户名称,可以修改
appToken 用来完成应用管理员身份校验的依据
  • /user/queryByAppName : 查询某应用的所有用户。
参数名称 是否必填 参数含义
appName 该用户所属于的应用名称
appToken 用来完成应用管理员身份校验的依据
  • /user/queryByKey : 依据应用名称和用户标识查询一个用户。
参数名称 是否必填 参数含义
appName 该用户所属于的应用名称
userKey 用来识别用户的唯一标识
appToken 用来完成应用管理员身份校验的依据
  • /user/deleteByKey : 删除某应用下的某个用户。
参数名称 是否必填 参数含义
appName 应用名称
userKey 用户的索引标识
appToken 用来完成应用管理员身份校验的依据

2 角色设置接口

MatrixAuth是一个分布式的权限系统,某个应用接入后,它可以控制该应用中的“用户-角色-权限”关系。然而,这种控制并不总是成立的。例如存在一个业务应用为校园管理系统,则MatrixAuth可以将该业务应用中的某个用户设置为“管理员”,使其行使一些管理权限。但是,MatrixAuth可能无法将某个用户设置为“班主任”,因为“班主任”这一角色的设立是由校园管理系统这一业务应用操作的,而不应该由MatrixAuth这一业务无关的权限系统负责。

因此,某些角色的关系可以由MatrixAuth设置,而某些则不可以。据此,我们将MatrixAuth中的角色分为三类,其对应的枚举值编码和说明如下:

  • InterfaceControlled:只能通过MatrixAuth的界面API进行“用户-角色”关系设置的角色,例如“管理员”。
  • BusinessAppControlled:只能通过业务应用进行“用户-角色”关系设置的角色,例如“班主任”。
  • InterfaceAndBusinessAppControlled:既可以通过MatrixAuth的界面API,又可以通过业务应用进行“用户-角色”关系设置的角色。

相关操作接口如下。

  • /role/add : 增加一个角色。
参数名称 是否必填 参数含义
appName 该角色所属于的应用名称
roleName 角色名称
description 角色说明
type 角色类型,必须为InterfaceControlledBusinessAppControlledInterfaceAndBusinessAppControlled三者之一
appToken 用来完成应用管理员身份校验的依据
  • /role/updateByName : 更新角色信息。
参数名称 是否必填 参数含义
appName 该角色所属于的应用名称,仅用来索引角色,不可修改
roleName 角色名称,用来识别角色的唯一标识,不可修改
description 角色说明,可以修改
type 角色类型,必须为InterfaceControlledBusinessAppControlledInterfaceAndBusinessAppControlled三者之一,可以修改
appToken 用来完成应用管理员身份校验的依据
  • /role/queryByAppName : 查询某应用的所有角色。
参数名称 是否必填 参数含义
appName 该角色所属于的应用名称
appToken 用来完成应用管理员身份校验的依据
  • /role/queryByName : 依据应用名称和角色标识查询一个角色。
参数名称 是否必填 参数含义
appName 该角色所属于的应用名称
roleName 角色名称,用来识别角色的唯一标识
appToken 用来完成应用管理员身份校验的依据
  • /role/deleteByName : 删除某应用下的某个角色。
参数名称 是否必填 参数含义
appName 应用名称
roleName 角色名称,用来识别角色的唯一标识
appToken 用来完成应用管理员身份校验的依据

3 权限设置接口

这类接口用来完成权限的增删改查等操作。

  • /permission/add : 增加一个权限。
参数名称 是否必填 参数含义
appName 该权限所属于的应用名称
permKey 权限编码,用来识别权限的唯一标识,仅用来索引权限
name 权限名称
description 权限说明
appToken 用来完成应用管理员身份校验的依据
  • /permission/updateByKey : 更新权限信息。
参数名称 是否必填 参数含义
appName 该权限所属于的应用名称,仅用来索引权限,不可修改
permKey 权限编码,用来识别权限的唯一标识,仅用来索引权限,不可修改
name 权限名称
description 权限说明
appToken 用来完成应用管理员身份校验的依据
  • /permission/queryByAppName : 查询某应用的所有权限。
参数名称 是否必填 参数含义
appName 该权限所属于的应用名称
appToken 用来完成应用管理员身份校验的依据
  • /permission/queryByKey : 依据应用名称和权限编码查询一个权限。
参数名称 是否必填 参数含义
appName 该权限所属于的应用名称
permKey 权限编码,用来识别权限的唯一标识,仅用来索引权限
appToken 用来完成应用管理员身份校验的依据
  • /permission/deleteByKey : 删除某应用下的某个权限。
参数名称 是否必填 参数含义
appName 应用名称
permKey 权限编码,用来识别权限的唯一标识,仅用来索引权限
appToken 用来完成应用管理员身份校验的依据

4 “用户-角色-权限”关联关系设置接口

这类接口用来完成“用户-角色-权限”关联关系设置。

  • /auth/addUserXRole : 为指定用户增加一个角色。
参数名称 是否必填 参数含义
appName 所属于的应用名称
userKey 用户标识
roleName 角色名称
appToken 用来完成应用管理员身份校验的依据
  • /auth/deleteUserXRole : 为指定用户删除一个角色。
参数名称 是否必填 参数含义
appName 所属于的应用名称
userKey 用户标识
roleName 角色名称
appToken 用来完成应用管理员身份校验的依据
  • /auth/addRoleXPermission : 为指定角色增加一个权限。
参数名称 是否必填 参数含义
appName 所属于的应用名称
roleName 角色名称
permKey 权限编码
appToken 用来完成应用管理员身份校验的依据
  • /auth/deleteRoleXPermission : 为指定角色删除一个权限。
参数名称 是否必填 参数含义
appName 所属于的应用名称
roleName 角色名称
permKey 权限编码
appToken 用来完成应用管理员身份校验的依据

MatrixAuth——高性能轻量级分布式权限系统