当前位置: 首页 > 知识库问答 >
问题:

使用RBAC指定CRUD操作的权限

文心思
2023-03-14

我使用嵌套集模型处理对象的层次结构。我想为单个对象上的CRUD操作设置权限。作为管理访问权限的系统,我使用PHP RBAC。我怎样才能解决这个问题?

经过对问题的一些分析,我决定为对象上的每个CRUD操作创建四个权限树并单独获取每个权限是可能的,但我认为这不是最好的解决方案。

作为替代方案,我考虑使用一个premissions树,其中的节点对应于操作“read”,每个节点都有子元素“create”、“update”和“delete”,但我不确定这个模型是否可以使用PHP RBAC实现。

欢迎任何建议或参考资料。我相信,关于这个问题,我还没有找到一些材料。

共有1个答案

万俟均
2023-03-14

RBAC在这里可能不够,因为您有:

  • 资源的层次结构
  • 不同的动作
  • 用户和资源之间的潜在关系。

要实现您的场景,您可以使用RBAC并使用ABAC(基于属性的权限改造)对其进行扩展。使用ABAC,您可以获得以下好处:

  • 将授权逻辑外部化为中心策略决策点
  • 将授权逻辑表示为策略而不是角色
  • 策略可以使用用户、资源、操作和上下文的任何属性

您可以在ABAC中表达以下场景:

  • 具有角色==管理器的用户可以在文档上执行操作==编辑,如果document.location==user.location

可扩展访问控制标记语言XACML实现了ABAC。您可以在此处阅读有关XACML和ABAC的更多信息:

  • ABAC: NIST项目页面。
  • XACML介绍
 类似资料:
  • 我们将在本章中讨论的基本CRUD操作是使用Angular 2从Web服务读取数据。 例子 (Example) 在这个例子中,我们将定义一个数据源,它是一个简单的产品json文件。 接下来,我们将定义一个服务,用于从json文件中读取数据。 然后,我们将在我们的主app.component.ts文件中使用此服务。 Step 1 - 首先让我们在Visual Studio代码中定义我们的product

  • 我正在使用基于角色的访问控制(RBAC)开发一个通用的用户管理系统,但我无法区分操作表和权限表(在阅读了这么多文章之后)。 “一个主题可以有多个角色。一个角色可以有多个主题。一个角色可以有多个权限。一个权限可以分配给多个角色。一个操作可以分配多个权限。一个权限可以分配给多个操作。” EN维基百科。org/wiki/基于角色的访问控制 有人能举个简单的例子来区分它们吗?

  • 如果已知主键的值,那么可以使用这些方法进行 CRUD 操作 对 object 操作的四个方法 Read / Insert / Update / Delete o := orm.NewOrm() user := new(User) user.Name = "slene" fmt.Println(o.Insert(user)) user.Name = "Your" fmt.Println(o.Up

  • 我正在尝试在一个网站上实现RBAC(基于角色的访问控制)。 问题是嵌套对象的权限。 假设我们在网站上有一些项目。每个用户在每个项目中都可以有一个角色。例如,user1在project1中具有admin角色,在Project2中具有customer角色。 例如,admin角色包含一些权限,如添加子项目、删除子项目等。 我读过的关于RBAC的所有文档都定义了一般的权限,如添加子项目,但当用户具有此权限

  • 我正在尝试使用REST在Azure Cosmos DB上执行CRUD操作。根据链接-https://docs.microsoft.com/en-us/rest/api/documentdb/create-a-document,我已经创建了我的有效负载,并试图在Opera浏览器中使用Restman测试它。以下是我的有效载荷详细信息- 报头 身体

  • 我的目标是为CRUD操作使用一个通用类,这样我就不需要为我的应用程序中的每个域模型实现一个单独的类。 该层还在我的DTO和域模型之间进行转换。 get和delete方法工作正常。但是,如何实现save方法。对于新实体,我需要创建泛型的新实例,并将DTO映射到泛型上。 我的Service类如下所示: