我知道我们可以通过使用ABAC在链码中实现访问控制。
例如,有2个组织。
Org1的用户有一个属性:org_id=org1。
Org2的用户有一个属性:org_id=org2。
但是,如果fabric-ca-server没有让用户在组织中具有指定属性的功能,用户可以在fabric-ca的admin的帮助下伪装他们的属性。
(我的意思是,org1的用户可以有一个属性:org_id=org2,如果他们真的想这样做的话。)
最后,我认为链码中的ABAC没有任何意义。
我怎么才能ABAC呢?有没有合适的用例?
发布于 2019-10-02 21:09:10
当用户在CA中注册时,注册他们的人员/ID可以为他们分配属性-例如,使用fabric-ca-client命令行:
fabric-ca-client register --id.name clare --id.secret hellothere --id.maxenrollments -1 --id.attrs 'department=Finance:ecert,role=buyerapproval:ecert'
这些属性将在clare注册时出现在证书中,然后在此示例中,当Clare提交事务时,可以在智能合约(链码)中检查角色和部门。
(有必要在属性上设置标志ecert,以确保它包含在证书中。)
这些属性是在CA中设置的,因此仅适用于设置属性后在注册时颁发的证书-不会修改现有证书。
https://stackoverflow.com/questions/58197886
复制相似问题