Hyperledger Fabric学习笔记——关键概念之MSP

1、什么是MSP

MSP的实现是一组添加到网络配置中的文件夹,MSP是一种将身份转化为角色的机制。

要在Fabric网络上进行交易,成员需要:

  1. 具有由网络信任的CA颁发的身份。
  2. 成为网络成员认可的组织的成员,MSP是将身份链接到组织成员的方式(角色),成员资格是通过将成员的公钥(也可以说是证书等)添加到组织的MSP中来实现。
  3. 将MSP添加到网络中的联盟或者通道上。
  4. 确保MSP包含在网络的策略定义中。

2、MSP域

本地MSP和通道MSP区别不在于功能(将身份转换为角色),而在于范围。本地MSP在文件系统上表示为文件夹结构,而通道MSP在通道配置中描述。物理上和逻辑上每个节点都只有一个本地MSP,而通道MSP则是逻辑定义在通道配置中,在通道的每个节点上实例化,并通过共识保持同步。

本地MSP:

为客户端和节点(peers和orders)定义了本地MSP,本地MSP定义了该节点上的权限。

通道MSP:

通道MSP在通道级别定义了管理和参与权,如果组织希望加入通道,需要在通道配置中包含包含组织成员信任链的MSP。

  • 通道MSP识别谁拥有通道级别的权限,通道MSP包含通道成员组织的MSP。
  • 每个参与通道的组织都必须为其定义MSP,建议组织与MSP之间存在一对一的映射。
  • 系统通道MSP包括参与order服务的所有组织的MSP。

3、组织在MSP中扮演什么角色?

组织与MSP之间排他性关系使得以组织命名MSP是明智的,某些情况下组织可能需要多个会员群,如在不同的通道执行非常不同的业务的情况下,例如ORG2-MSP-NATIONAL和ORG2-MSP-GOVERNMENT。

一个组织也可以分为多个组织单元(OU,可选),将OU视为组织内部的一个部门,来反映单独的业务线。当CA颁发X.509证书时,OU字段会指定身份所属的业务范围,之后的限制访问或者基于属性的访问控制可能会用到。

Node OU,是一种特殊的OU,可以被用于将角色赋予身份,Node OU 角色包括peer、client、order、admin,用于更细粒度的认可策略,策略可以要求Org1peer认可事物,而不是Org1的任何成员。

为了使用Node OU 角色必须为网络启用“身份分类”功能,当使用基于文件夹的MSP结构时,这是通过在位于MSP文件夹根目录中的config.yaml文件中启用Node OU来实现的。

扫描二维码关注公众号,回复: 9483246 查看本文章

从Fabric v1.4.3开始,新的admin role不需要将证书显式放置在MSP目录的admincerts文件夹中了,admin role而是体现在用户的签名证书中。在/signcerts文件夹中的X.509签名证书中可以看到生成的ROLE和OU属性。

 对于通道MSP,参与者具有admin角色并不意味着它们可以管理特定的资源,其管理方面的实际能力由管理系统资源的额策略确定(通道策略),例如,通道策略可能指定ORG1-MANUFACTURE admin有权向通道添加新组织,而ORG1-DISTRIBUTTON admin则无此权限。

Node OU是特殊的OU,一般的OU可以理解成组织的不同部门,而Node OU则是节点上的OU,即赋予节点不同的角色(感觉理解不够到位,有待加深)。

4、MSP结构

本地MSP文件夹包含以下子文件夹:

  • config.yaml:用于通过启用Node OU并定义接受的角色来在Fabric中配置身份分类功能。
  • cacerts:包含由此MSP表示的组织信任的根CA自签名的X.509证书列表,此文件夹中至少必须有一个根CA证书。这是最重要的文件夹,因为它标识了必须从其派生所有其他证书才能被视为相应组织的成员以形成信任链的CA。
  • intermediatecerts:包含此组织信任的中间CA的X.509证书列表,每个证书必须由MSP中的一个根CA签名,或由任何中间CA签名。中间CA可以代表组织的不同部门,也可以代表组织本身(如果商业CA被用于组织的身份管理)。此文件夹可以为空。
  • admincerts(从Fabric v.1.4.3及更高版本弃用):此文件夹包括了具有该组织管理者角色的X.509证书。
  • keystore:(私钥)此文件夹是为peer或order节点的本地MSP(或在客户端的本地MSP中)定义的,包含节点的私钥,此密钥用于签署数据,例如,作为签署阶段的一部分,签署交易建议的响应。此文件夹对本地MSP是必须的,并且必须仅包含一个私钥,显然,对此文件夹的访问必须仅限于对节点具有管理责任的用户身份。通道MSP配置不包括此文件夹,因为通道MSP仅旨在提供身份验证功能,并不具有签署能力。如果使用硬件安全模块(HSM)进行密钥管理,则此文件夹为空,因为私钥是由HSM生成并存储在HSM中的。
  • signcert:包含公钥(此处感觉官网文档写错了,似乎直接复制粘贴了私钥的部分,仅将公钥改为了私钥)。
  • tlscacerts:此文件夹包含此组织信任的根CA的自签名X.509证书的列表,这些证书用于使用TLS在节点之间进行安全通信。此文件夹中至少必须有一个TLS根CA证书。
  • tlsintermediatecacerts:中间tlsca,中间tlsca是可选的。
  • operationcerts:此文件夹包含与Fabric Operations Service API 通信所需的证书。

通道MSP包括以下其他文件夹:

  • Revoked Certificates:如果成员的身份已被吊销,则有关身份的标识信息(而不是身份本身)保存在此文件夹中。对于基于X.509的身份,这些标识符是称为主题密钥标识符(SKI)和授权访问标识符(AKI)的字符串对,并且在每次使用证书以确保未吊销证书时都会对其进行检查。此列表在概念上与CA的证书吊销列表(CRL)相同,但它也与组织中的成员资格吊销有关。结果,频道MSP的管理员可以通过发布CA的更新的CRL来快速从组织撤消参与者或节点。此“列表列表”是可选的。仅当证书被吊销时,它才会被填充。
发布了17 篇原创文章 · 获赞 0 · 访问量 674

猜你喜欢

转载自blog.csdn.net/Nemoosi/article/details/104438974
今日推荐