这类接口供AppAdmin为某个业务应用设置用户、角色、权限,并进行“用户-角色”、“角色-权限”之间的关联操作。
下面所有接口在调用时都必须增加appName
参数,表明接口要处理的应用的名称。
如果要操作的业务应用在系统管理员新建到数据库时设置了appToken
字段(参考/application/add
接口),则在调用下面接口时,需要在接口参数中通过appToken
字段设置appToken
的值。否则接口会因为业务应用管理员身份校验失败收到“Application token verification failed.”错误。
1 用户设置接口
这类接口用来完成用户的增删改查等操作。
MatrixAuth是一个轻量级的权限系统,它只负责管理用户权限,但是不负责用户登录、用户信息管理等操作,而是通过一个userKey字段来唯一标识一个用户。通常,userKey字段可以是用户登录和信息系统中的用户Id等。
参数名称 |
是否必填 |
参数含义 |
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,又可以通过业务应用进行“用户-角色”关系设置的角色。
相关操作接口如下。
参数名称 |
是否必填 |
参数含义 |
appName |
是 |
该角色所属于的应用名称 |
roleName |
是 |
角色名称 |
description |
否 |
角色说明 |
type |
是 |
角色类型,必须为InterfaceControlled 、BusinessAppControlled 、InterfaceAndBusinessAppControlled 三者之一 |
appToken |
否 |
用来完成应用管理员身份校验的依据 |
/role/updateByName
: 更新角色信息。
参数名称 |
是否必填 |
参数含义 |
appName |
是 |
该角色所属于的应用名称,仅用来索引角色,不可修改 |
roleName |
否 |
角色名称,用来识别角色的唯一标识,不可修改 |
description |
否 |
角色说明,可以修改 |
type |
是 |
角色类型,必须为InterfaceControlled 、BusinessAppControlled 、InterfaceAndBusinessAppControlled 三者之一,可以修改 |
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 |
否 |
用来完成应用管理员身份校验的依据 |