【发布时间】:2018-05-14 19:57:50
【问题描述】:
我有一个关于访问控制的问题。
具体来说,问题是一方面为参与者或资产定义的访问控制规则与为访问这些参与者/资产的交易定义的资产控制规则之间的关系。
这是一个例子:
假设 Hyperledger Fabric 网络用于为公司员工创建某种社交网络。
以下规则规定员工对其自己的数据具有写入权限:
rule EmployeesHaveWriteAccessToTheirOwnData {
description: "Allow employees write access to their own data"
participant(p): "org.company.biznet.Employee"
operation: UPDATE
resource(r): "org.company.biznet.Employee"
condition: (p.getIdentifier() == r.getIdentifier())
action: ALLOW
}
让我们假设写访问是通过一个名为“UpdateTransaction”的事务来实现的。进一步假设(可能是偶然的)事务“UpdateTransaction”的访问控制规则的动作值被设置为“Denied”
rule EmployeeCanSubmitTransactionsToUpdateData {
description: "Allow employees to update their data"
participant: "org.company.biznet.Employee"
operation: CREATE
resource: "org.company.biznet.UpdateTransaction"
action: Denied
}
现在有以下情况:
每位员工(通过规则 1)都有权更改他/她的数据。 同时不允许员工提交事务“UpdateTransaction”来更改数据(见规则2)。
现在员工是否无法更改他们的数据?或者员工是否仍然能够在不提交事务“UpdateTransaction”的情况下更改他们的数据?
换一种说法:参与者有没有办法在不使用 .cto 文件中定义的任何事务的情况下访问数据(他们拥有访问权限)?
【问题讨论】:
标签: access-control hyperledger-composer