You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Open FGA:多层结构中的自定义角色配置咨询

Open FGA:多层结构中的自定义角色配置咨询

嘿,看你正在搭建一个多层级的Open FGA权限模型,涉及用户、组、角色还有不同业务实体的权限关联,先帮你把当前的模型整理成更清晰的格式,再聊聊一些可以优化的地方:

model
  schema 1.1

type user

type group
  relations
    define member: [user]

type role
  relations 
    define assignee: [user, group#member]

type holding_company
  relations
    define basic_read: [user, group#member, role#assignee] or full_read
    define full_read: [user, group#member, role#assignee]
    define subsidiary_list: [user, group#member, role#assignee]
    define subsidiary_create: [user, group#member, role#assignee]
    define subsidiary_delete: [user, group#member, role#assignee]
    
type subsidiary
  relations
    define parent: [holding_company]
    define order_list: [user, group#member, role#assignee]
    define order_create: [user, group#member, role#assignee]
    define staff_list: [user, group#member, role#assignee]
    define staff_create: [user, group#member, role#assignee]

type order
  relations
    define parent: [subsidiary]
    define read_basic: [user, group#member, role#assignee]

从当前模型来看,你已经搭好了基础的权限关联逻辑:

  • 用户可以加入组,组内成员能继承组的权限
  • 角色可以分配给单个用户或者组内成员,实现权限的批量管控
  • 控股公司、子公司、订单形成了父子级的业务实体关联,权限可以围绕这些实体展开

这里有几个小建议供你参考:

  1. 权限复用优化:比如holding_company里的basic_read依赖full_read,意味着拥有full_read权限的用户自动具备basic_read,这个逻辑没问题,但如果后续要加更多权限,可以考虑用角色来统一管理这些权限集合,避免反复写[user, group#member, role#assignee]这段重复内容
  2. 订单权限补全:当前order的read_basic内容没写完,你可以根据业务需求补充更新、删除类的权限,或者设置权限继承规则——比如让子公司的权限持有者自动拥有旗下订单的对应权限
  3. 层级权限继承:可以尝试让子公司的权限关联到控股公司的对应权限,比如subsidiary的order_list可以关联holding_company#subsidiary_list,这样控股公司有权查看子公司列表的用户,也能直接查看对应子公司的订单列表,减少重复配置

备注:内容来源于stack exchange,提问作者Leonardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 07:14:29