MSP Identity Validity Rules——MSP身份验证规则
正如Hyperledger Fabric Membership Service Providers (MSP)——成员服务中描述所提到的,MSPs可以配置一组根证书权限(rCAs——root certificate authorities),并且可以选择一组中间证书授权机构(iCAs——intermediate certificate authorities)。一个MSP的iCA证书必须由MSP其中的一个rCAs或iCAs的签名。MSP的配置可能包含证书撤销列表或CRL,如果任何一个MSP的rCA(root certificate authorities——根管理证书)都被列入CRL中,那么MSP配置中的CRL中不能包含任何iCA,否则MSP的设置将会失效。
每个rCA都是一个树形根证书。也就是说,每个rCA可能是一个或多个iCAs证书的签名者,而这些iCAs将是其他iCAs或用户证书的签名者。这里有几个例子:
rCA1 rCA2 rCA3
/ \ | |
iCA1 iCA2 iCA3 id
/ \ | |
iCA11 iCA12 id id
|
id
默认的MPS实现接受由适当的权威机构签署的有效身份的X.509证书。在上面的图中,只有iCA11、iCA12、iCA2、iCA3和rCA3的证书才会被认为是有效的。由内部节点签署的证书将被拒绝(县官不如现管)。
注意,如果在MSP配置中指定了一个或多个组织单元,那么证书的有效性也会受到类似的影响。一个组织单元在MSP配置中指定为成对的两个值,比如(parent-cert,ou-string)分别表示组织机构认证授权的组织单元证书以及实际的组织单元ID。如果证书C是由iCA或rCA为了MSP配置中指定了一个组织单元签署的,那么C就被认为是有效的,如果在其他需求中,作为它的OU字段,其中一部分将包括ou-string。