美文网首页
casbin 基于角色的访问控制(RBAC)

casbin 基于角色的访问控制(RBAC)

作者: 风亡小窝 | 来源:发表于2023-11-21 16:55 被阅读0次

    模型 model

    [request_definition] # 请求定义
    r = sub, obj, act
    
    [policy_definition] # 策略定义
    p = sub, obj, act
    
    [role_definition] # 角色定义
    g = _, _
    
    [policy_effect] # 策略效果
    e = some(where (p.eft == allow))
    
    [matchers] # 匹配器
    m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act
    

    策略 policy

    p, userA, file1, read
    p, userB, file2, write
    
    p, admin, file2, read # admin 对 file2 可读
    p, admin, file2, write # admin 对 file2 可写
    
    g, userA, admin # 授予 userA  admin 角色权限,这样 userA 就继承 admin 角色权限,对 file2 可读可写
    

    几种不同的Policy Effect

    白名单模式。只要存在一条策略 allow 就允许,否则拒绝。

    [policy_effect]
    e = some(where (p.eft == allow))
    

    黑名单模式。只要存在一条策略 deny 就拒绝,否则允许。

    [policy_effect]
    e = !some(where (p.eft == deny))
    

    黑白名单模式,黑名单优先。存在一条策略 allow 且 不存在一条策略 deny 就允许,否则拒绝。

    [policy_effect]
    e = some(where (p.eft == allow)) && !some(where (p.eft == deny))
    

    相关文章

      网友评论

          本文标题:casbin 基于角色的访问控制(RBAC)

          本文链接:https://www.haomeiwen.com/subject/wuabwdtx.html