这类接口供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 |
否 |
用来完成应用管理员身份校验的依据 |