2017-04-27 24 views
1
  1. 如何创建一个新的用户名/密码的用户帐户,以针对composer-rest-server进行身份验证?如何向REST API进行身份验证并映射到结构凭据

  2. 我如何使用这个新创建的用户帐户对作曲者休息服务器进行验证?

  3. 我该如何管理该用户的会话?

  4. 如何将此用户映射到网络参与者?

  5. composer-rest-server用户可以映射到多个网络参与者(即执行不同的角色)吗?

  6. 我是否需要为每位composer-rest-server用户创建一个钱包?

  7. 我如何在composer-rest-server的多个实例上共享钱包?

回答

5

在Composer中,您可以建模参与者类型,如org.acme.Person。然后,您可以创建这些参与者类型的实例,例如org.acme.Person#simon,并且这些实例存储在参与者注册中心中。

然后,您可以向参与者的实例发出身份。这个过程会生成一个注册ID和密码,可以发送给该参与者,以便他们可以注册。一个身份与一个参与者相关联,但一个参与者可以具有多个身份。

当参与者使用注册ID和密码进行注册时,将生成注册证书并将其放入其钱包(使用连接配置文件中的keyValStore属性进行配置)。注册证书生成后,注册机密将失效。秘密只能使用一次 - 它不是密码。

如果钱包中已存在注册证书,则不使用注册密码。我们已经计划了一些将来的更改,以使所有API和CLI中的注册密码可选,因此您可以忽略它。

当参与者使用该注册证书提交交易时,Composer chaincode从注册证书中提取注册ID,并使用该注册ID查找该身份已发布到的参与者实例。这是“当前参与者”。

所有使用permissions.acl中定义的规则的基于Composer的访问控制都基于当前的参与者。

目前,Composer REST服务器支持在启动时在命令行上指定的单一注册ID。对Composer REST服务器的所有REST API调用均使用此注册证书来提交事务。

有目前正在做改进这项工作: https://github.com/hyperledger/composer/issues/142

请详细阅读本GitHub的问题。由于此工作仍在进行中,因此没有用于配置Composer REST服务器安全性的用户文档。

有您的列表中一些有趣的规定:

  • 我将如何管理该用户的会话?
  • 有API密钥,但没有简单的方法来检索或管理API密钥。我有关于扩展REST服务器UI(Swagger UI)以管理API密钥的想法,但没有具体的。

    1. Composer-rest-server用户可以映射到多个网络参与者(即执行不同的角色)吗?

    用户钱包当前可以包含多个身份,但默认情况下仅使用其中的一个身份。用户可以通过提交REST API调用来选择默认标识。这足够吗?

    1. 我是否需要为每个composer-rest-server用户创建一个钱包?

    每个用户都有自己的一组钱包。当用户首次登录时创建默认钱包。用户可以创建多个钱包,但默认情况下只使用其中的一个。用户可以通过提交REST API调用来选择默认钱包。你想分享用户之间的钱包吗?

    1. 我如何在composer-rest-server的实例数量上共享钱包?

    您需要使用持久数据存储(例如MongoDB)将钱包数据保存在多个实例中;再次,这是工作正在进行中,尚未记录。

    我建议,由于这是正在进行的工作,我们将讨论移至GitHub问题:-)

    相关问题