我正计划允许访问部署到Hyperledger Fabric区块链网络中的Smart Contract。我能够创建网络,安装合同并使用fabric-sdk-java访问区块链网络(提出并提交交易)。
问题是所有事务都使用单个配置的身份(证书和私钥)构建。
为明确起见,我的REST应用程序有一个在其中定义的配置文件
user.singcert.file = ... some local file ...
user.privatekey.file = ... some local file ...
我希望使用REST API的用户将提供凭据,并且建议的交易将使用基于此凭据的内容进行签名,而无需暴露私钥。
有什么方法可以实现这一目标?我想念什么吗?
对问题进行了思考后,有了一个主意:
我可以在密码流中使用OAuth2身份验证。用户将提供一个密码,该密码将与Fabric CA结合使用以获取用户注册。除其他数据外,我还将使用带有该Fabric CA注册代码的自定义编码令牌,仅允许用户知道该密码。