接入应用并提供应用所需的角色和权限的定义、管理。目前只提供和QAQ共享成员的模式。角色分为两个层级:
应用层(app)和项目层(project)
应用层的角色及附属权限作用于应用的所有项目,项目层的角色仅在该项目内有效。uniauth已经提供了一套预定义的项目角色供使用,包括(项目管理员、QA、策划、程序、产品经理、美术、营销、PM、商务等)。应用层角色可以自行定义。
各个应用的权限和角色独立,完全自定义。可以满足项目的自定义权限需求。有特殊权限的角色是少数,由各个应用自己控制。
一部分没有项目概念的应用,可以通过简单的自定义角色来完成权限控制。
大多数应用都没有自己维护各个项目成员和项目里成员角色的需求,可以把通过一个共享的项目成员角色表共享信息快速地建立自己权限系统,也方便成员管理和权限配置。极少数需要细粒度控制项目权限的应用的需求,可以共享项目成员信息,自定义项目成员角色。
应用接入时首先需要再uniauth 平台上进行注册,并定义所需的角色和权限。 Uniauth地址:https://qaq.openqaq.fun/uniauth
- component:selector
- component:user_profile
- contact:contact.base:readonly
- contact:user.base:readonly
- contact:user.email:readonly
- contact:user.employee_id:readonly
- im:resource(获取与上传图片或文件资源)
- im:message(获取与发送单聊、群组消息)
- im:message.group_at_msg:readonly(接收群聊中@机器人消息事件)
- im:message.p2p_msg:readonly(读取用户发给机器人的单聊消息)
- im:message:send_as_bot(以应用的身份发消息)
-
权限
对应用资源操作的许可。(如性能测试,可以定义三种权限:在项目中申请测试、在项目中查看报告等。) -
角色
角色是一组权限集合。一个用户在某个应用里可以有多个角色,一个用户在某个应用里所拥有的权限的等于所有角色权限的叠加。 -
角色与项目(用户组)
项目(用户组)是一组不同角色(也可以是同一角色)用户的集合。具体一点讲目前基本可以认为是一个游戏项目组,包含了这个项目组的所有成员,项目组中不同的职位可以被定义成各种角色,目前通常这么定义角色,但不是必须。 -
角色分层
角色分为二层次:- 第二层是应用角色,通过用户和应用可以得到用户的应用角色;
- 最底层是应用里项目相关角色,通用用户、应用、项目三个可以确定一个用户的项目角色。