权限管理系统

权限系统是商业化软件的基础设施,通过精细化的权限控制,能够有效防止数据泄露、未授权访问等安全风险,确保系统和数据的完整性、保密性。 Zion提供了一套结合角色(RBAC)和属性(ABAC)权限管理系统。在保障数据安全的同时,还能够实现灵活、精准地进行权限控制。

基本概念

角色:一类用户的集合;通过将用户授予角色,角色绑定着多个权限的方式来进行用户权限控制 数据权限:可精准地控制角色能够访问或修改的数据内容 行为权限:用于控制角色能够使用的行为,例如:行为流、api执行、支付行为、退款行为等

开始配置

1. 打开“配置”,进入“权限管理”

2. 角色管理

系统内置了两个角色:

  • 已登录用户
    • 任何登录(通过用户名密码登录、手机密码登录等等)的用户都会自动赋予该角色,
    • 由于小程序会自动执行“静默登录”行为,因此小程序上的任意用户都拥有该角色
  • 游客
    • 未登录的访客都是该角色
    • 小程序中没有游客

除了系统内置的角色,开发者可自己创建角色。不同的项目版本可创建的角色不同:

  • 免费版:0个

  • 高级版:1个

  • 专业版:10个

点击“添加”按钮添加角色,添加后系统会给一个默认的角色名。一旦后端部署让角色生效后,名字将不可更改。

当用户拥有多个角色时,其权限为所有角色权限的并集(例如用户拥有两个角色,一个角色有支付的权限,另一个没有,最终该用户拥有支付的权限)。

如果需要在前端页面获取用户的角色,可以在“当前用户数据”里找到“角色列表”。它是一个角色名列表:['Logged-in user', 'vip user']

3. 角色的权限配置

数据权限

  1. 操作权限:进行是否能对数据进行增删改查的权限管理

  2. 字段权限:进一步配置对于这张数据表中某一列(字段)的操作权限

  3. 高级筛选:通过配置行筛选,来配置基于属性的更精细化的操作权限(例如:用户只能修改自己的数据)

行为权限

控制用户使用行为的权限,包括:API、行为流、AI、支付。除了支付以外的行为,都可以再增加“高级筛选”,用于更精细的权限控制(例如可以配置在某个时间点以后才能使用行为流等)

4. 将角色授予用户

在角色配置完了以后,就可以将其授予给某个用户。一共有两种方式

  1. 在权限管理系统中手动管理 点击「用户管理」下方的按钮,可以查看这个角色下的用户有哪些,为这个角色添加/删除用户。

  2. 在行为流中自动管理 使用行为流中的权限节点,可以对某些用户进行角色的授予和移除,实现一些自动化的场景。例如:当用户购买商品成功后,授予其VIP的角色

5. 使权限配置生效

权限配置变更后,需要部署后端使其生效。通过自动化授权的行为流也需要发布后才会生效。

权限生效后,如果用户没有权限使用某个资源,将会报错。页面上会看到类似提示消息:“User 1 has no permission for SELECT on order”。在请求里会看到这样的报错:

{
    "data": null,
    "errors": [
        {
            "errorCode": 403,
            "extensions": {
                "classification": "TABLE_ACCESS"
            },
            "locations": [
                {
                    "column": 3,
                    "line": 2
                }
            ],
            "message": "User 1 has no permission for SELECT on order",
            "operation": "order",
            "path": [
                "order"
            ]
        }
    ]
}

其中,“User 1” 表示id 为 1000000000000001 的用户,“has no permission for SELECT on order” 表示没有查询order表的权限。

理解错误信息后,就可以进入权限查看修改相关配置。

Copyright © FunctorZ 2024 all right reserved修订时间: 2025-03-21 03:35:12

results matching ""

    No results matching ""