Fabric CA 1.4 官方文档

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

注册新身份

执行注册请求的身份必须已经登记过,并且还需要适当的权限来登记指定的身份类型。

另外,Fabric CA server将在注册过程中进行三个授权检查:

  1. 注册者的hf.Registrar.Roles属性值中必须包含要注册身份的类型。例如,如果 注册者的hf.Registrar.Roles属性值为peer,app,user,那么注册者可以注册peer、app 和user类型的身份,但是无法注册orderer类型的身份。

  2. 注册者的联盟必须与要注册身份的联盟(或其前缀)一致。例如,联盟a.b的注册者 可以注册联盟a.b.c的身份,但是不能注册联盟a.c的身份。如果身份要求根联盟,那么 联盟请求应当是.并且注册者必须属于根联盟。如果在注册请求中没有指定联盟,那么 注册中的身份将被赋予注册者的联盟。

  3. 如果以下条件都满足,注册者可以注册一个用户:TODO

下表列出了可以用于身份注册的所有属性,属性的名称是大小写敏感的。

名称 类型 描述
hf.Registrar.Roles List 注册者允许管理的角色列表
hf.Registrar.DelegateRoles List 注册者可以赋予被注册身份的hf.Registrar.Roles属性的角色列表
hf.Registrar.Attributes List 注册者允许注册的属性列表
hf.GenCRL Boolean 要注册的身份是否可以生成CRL
hf.Revoker Boolean 要注册的身份是否可以回收证书
hf.AffiliationMgr Boolean 要注册的身份是否可以管理联盟
hf.IntermediateCA Boolean 要注册的身份是否可以登记中间CA

下面的命令以admin的身份,注册一个新的用户admin2,并设置其联盟为org1.department1, hf.Revoker为true:

export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/admin
fabric-ca-client register --id.name admin2 --id.affiliation org1.department1 --id.attrs 'hf.Revoker=true,admin=true:ecert'

可以使用-id.attrs标志设置多个属性,例如:

fabric-ca-client register -d --id.name admin2 --id.affiliation org1.department1 --id.attrs '"hf.Registrar.Roles=peer,user",hf.Revoker=true'

或者:

fabric-ca-client register -d --id.name admin2 --id.affiliation org1.department1 --id.attrs '"hf.Registrar.Roles=peer,user"' --id.attrs hf.Revoker=true

可以在配置文件中为注册命令设置默认值,例如:

id:
  name:
  type: user
  affiliation: org1.department1
  maxenrollments: -1
  attributes:
    - name: hf.Revoker
      value: true
    - name: anotherAttrName
      value: anotherAttrValue

下面的命令注册一个新的身份admin3,并且使用了配置文件中的信息:

export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/admin
fabric-ca-client register --id.name admin3

下面的命令注册一个peer节点身份:

export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/admin
fabric-ca-client register --id.name peer1 --id.type peer --id.affiliation org1.department1 --id.secret peer1pw

注意联盟名称是大小写敏感的。例如服务器的配置文件可能看起来是这样:

affiliations:
  BU1:
    Department1:
      - Team1
  BU2:
    - Department2
    - Department3

BU1、Deparment1、BU2都以小写形式存储,这是因为Fabric CA使用Viper来读取 配置文件。要注册一个Team1联盟的身份,可以使用如下命令:

export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/admin
fabric-ca-client register --id.name client1 --id.type client --id.affiliation bu1.department1.Team1