451  
多租户
作者: 姜天雨 于 2021年07月16日 发布在分类 / 区块链基础知识 / 底层框架资料 / GoQuorum 下,并于 2021年07月16日 编辑

通过 MPS 的多租户

先决条件

  • GoQuorum genesis.config 中设置 isMPS=true
  • 配置 JSON RPC Security plugin  
  • 使用   Tessera   21.4.0  或更新版本
  • Tessera 配置中添加 enableMultiplePrivateStates=true  并配置 residentGroups
  • 使用 --multitenancy 标志运行 GoQuorum

网络拓扑结构

一个网络可以由多租户节点和单租户节点组成。 可以使用一台或多台独立的授权服务器来保护多租户节点,但一个多租户节点只能由一台授权服务器保护。

示例网络设置

本节概述了如何设置多租户的示例。 网络运营商必须配置为每个租户在授权服务器中为每个用户配置 scope values 此示例网络包含 4 个节点。 多租户 Node1 在租户 J G (isMPS=true) 之间共享,而 Standalone Node2 由租户 D 单独使用 (isMPS=false)

粘贴图片

租户分配到多租户节点如下:

  • J Organization  拥有 J_K1  J_K2 ,并且它的租户在 Node1

  • G Organization  拥有 G_K1  G_K2 ,其租户在 Node1 

  • D Organization  拥有 D_K1 ,其租户在 Node2 上。

在实践中, J Organization G Organization 可能会决定将密钥分配给他们的部门,因此安全模型可能如下:

  • J Organization 有:

  • J Investment  可以访问 J 租赁并使用任何自我管理的以太坊账户

  • J Settlement  可以访问 租户并使用节点管理的以太坊账户  J_ACC1  和自我管理的 Wallet1 

G 组织有:

  • G Investment 可以访问 租赁并使用任何自我管理的以太坊账户

  • G Settlement  可以访问   G  租户并使用节点管理的以太坊账户  G_ACC1  和自我管理的 Wallet2 

每个授权服务器都有自己的配置步骤和客户端载入过程。网络运营商的责任是通过定义 custom scopes   并将它们授予目标客户端来在授权服务器中实现上述安全模型。

代表   J Investment   的自定义范围是:

粘贴图片

代表 G 结算的自定义范围是:

粘贴图片

客户端还必须被授予指定对 JSON RPC API 的访问权限的范围。

有关更多信息,请参阅   JSON RPC Security plugin

总之,为了反映上述安全模型,授予 J Investment  的典型范围如下:

粘贴图片

Tessera 设置

除了配置授权服务器之外,还必须更新 Tessera 配置文件以包含新标志 enableMultiplePrivateStates=true 和多租户节点的 residentGroups   

在上述设置中, Node1  residentGroups  配置为:

粘贴图片

Tessera 启动期间, residentGroups  被验证以检查每个钥匙是否 是单个常驻组 的一部分。 将密钥添加到常驻组后,它必须保留在该组中。

如果 residentGroups  配置不正确且 enableMultiplePrivateStates=true Tessera 将不会启动。

在上述设置中, Node2 作为 isMPS=false  的传统独立节点运行。 Tessera 中不需要额外的配置更改。

向多租户节点添加新租户

  • 网络管理员执行 Tessera keygen 以生成新密钥

  • 必须更新 Tessera 配置文件以将新密钥包含在常驻组中。

  • Tessera 需要重新启动才能加载新密钥。 当 Tessera 启动时,如果新密钥已生成但未添加到常驻组中,则启动将失败。

  • 应更新授权服务器,以提供对 residentGroups  配置中定义的私有状态的新租户访问权限。






 推荐知识

 历史版本

修改日期 修改人 备注
2021-07-16 13:30:19[当前版本] 姜天雨 修改内容
2021-07-16 13:29:02 姜天雨 创建版本

 附件

附件类型

PNGPNG

  目录
    区块链服务网络发展联盟