我目前正在使用hyperledger composer处理POC应用程序。我正在创建一个移动应用程序,它使用客户端SDK与我的超级联盟网络进行交互。我想知道身份验证的工作原理。注册一个新用户工作正常,我可以注册一个新用户作为管理员,我收到enrollmentID和enrollmentSecret。该文档告诉我,enrollmentSecret用作CA的确认,以生成证书和相应的密钥。
SDK让我知道我只使用enrollmentID和enrollmentSecret而不是证书和密钥进行身份验证。
引用另一个answer我发现:
当参与者使用注册ID和密码进行注册时,会生成注册证书并将其放入其钱包中(使用连接配置文件中的keyValStore属性进行配置)。生成注册证书后,注册机密将变为无效。秘密只能使用一次 - 它不是密码。
但是,我想要做的是给予证书和密钥的“身份”完全所有权,以便他们可以使用它在网络上进行身份验证(可能将其转换为物理形式/纸质钱包)。看看SDK文档,这似乎不可能,如果连接到网络的唯一方法是提供enrollmentId和secret,我目前不知道它是如何工作的。
或者SDK是否自动存储并使用存储在keyValStore(连接配置文件)中的证书进行身份验证?如果是这样可以以编程方式管理它?
提前致谢
答案 0 :(得分:0)
Hyperledger Composer通过使用Hyperledger Fabric证书颁发机构(CA)注册新的注册证书来发布新身份。 Hyperledger Fabric证书颁发机构生成一个注册密钥,该密钥可以提供给参与的身份,然后可以使用注册密钥从Hyperledger Fabric证书颁发机构请求其注册证书和私钥。
请参阅https://hyperledger.github.io/composer/unstable/managing/identity-issue.html
然后,您将参与者(添加到您的业务网络)绑定到该身份,该身份用于将事务提交到Fabric区块链。因此,这样做的权限是通过连接配置文件中的元数据(指向相关用户的KeyValStore的指针)和该KeyValStore中的id证书。
查看Hyperledger Composer文档。
https://hyperledger.github.io/composer/unstable/managing/identity-bind.html