Hyperledger Fabric中的用户级别访问/权限

时间:2019-01-10 13:03:50

标签: hyperledger-fabric

我正在Hyperledger Fabric(1.4)中运行Fabcar示例,我想使用Fabcar示例中的 registerUser.js 创建一个用户,该用户仅具有 read 访问权限链码。因此,当我运行 query.js 时,我应该得到 queryAllCars 的结果,但是同一用户不能运行invoke.js createCar (防止对链代码的写访问)。

那么,要实现上述场景(不使用作曲家),应该怎么做?

  1. 如何在网络级别实施基于角色的访问?
  2. 如何在链代码级别实现基于角色的访问?

我正在使用docker从Fabric-samples运行Fabcar应用。

如果在Fabcar示例的 registerUser.js 中注册用户时指定了该用户角色 const secret = await ca.register({ affiliation: 'org1.department1', enrollmentID: 'user1', role: 'user' }, adminIdentity);

然后该用户只能查询链代码,而不能调用它。

1 个答案:

答案 0 :(得分:0)

您可以使用调用链码的用户的ClientIdentity来控制对每个功能的访问。

const ClientIdentity = require('fabric-shim').ClientIdentity;
let clientIdentity = new ClientIdentity(stub);
if (client.getMSPID() === 'user') {
  return;
}