node.js - 如何将角色添加到用户的证书并在链代码中使用它们?

标签 node.js hyperledger-fabric hyperledger-fabric-ca

我使用“IBM‌区 block 链平台”扩展和nodejs在 super 账本结构上开发了一个应用程序。我使用“fabric-ca-client v1.3.0”模块来注册用户和管理员证书。我想向用户添加角色,并根据链代码上的用户角色进行访问控制。我尝试注册多个证书,但该模块总是注册具有空角色和从属关系的证书,如下所示:

{"name":"admin","mspid":"Org1MSP","roles":null,"affiliation":"","enrollmentSecret":"","enrollment":{"signingIdentity":"...","identity":{"..."}}}

我在 hyperledger shim documentation 上找到了这个关于链码上角色的使用:

const ClientIdentity = require('fabric-shim').ClientIdentity;

let cid = new ClientIdentity(stub); 
object passed to Init() and Invoke() methods
if (cid.assertAttributeValue('hf.role', 'auditor')) {
   // proceed to carry out auditing
}

但我没有找到任何解决方案来注册和注册具有“hf.role”属性的用户

最佳答案

您必须先注册用户,然后再注册用户。您可以通过 cmdline 以及 REST 来执行此操作。对于注册用户时的 cmdline,您需要传递其他属性:

--id.attrs 'role=writer:ecert,email=user1@gmail.com'

然后在注册时:

--enrollment.attrs "role=writer,email,phone:opt"

在链代码中,您可以通过以下方式访问属性:

let cid = new ClientIdentity(stub); 
if (cid.assertAttributeValue('role', 'writer')) { .. }

关于node.js - 如何将角色添加到用户的证书并在链代码中使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53995678/

相关文章:

amazon-web-services - 如何使用 Hyperledger go SDK 将 Chaincode API 公开为 REST

go - 是否可以从 Hyperledger Composer 脚本文件访问 GO lang 链代码

mysql - 由于证书错误,无法为 Fabric-ca 服务器设置 mysql 数据库

ssl - 无法在 fabric-ca 中启用 tls 注册对等点

kubernetes - Hyperledger Fabric Orderer CA管理员用户注册失败

node.js - 实时 Meteor.js http.get

node.js - Heroku:应用程序 fork 后出现 Git 错误

node.js - 可以使用nodejs和puppeteer获取HTTP响应头吗?

javascript - 使用nodejs上传大文件

hyperledger-fabric - 读取核心配置文件: Unsupported Config Type时出错