B 使用 Marbles 样例中包含的细粒度访问控制库

从 v1.2 开始,Hyperledger Fabric 为许多管理功能提供了细粒度访问控制。Oracle Blockchain Platform 在控制台的“Developer Tools(开发人员工具)”选项卡中提供了一个大理石示例程序包,该程序包实现了链代码开发人员可用于为链代码函数创建访问控制列表的函数库。目前,它仅支持 Go 语言。

背景信息

此访问控制库示例的目标是提供以下内容:

  • 提供一种机制,允许您控制哪些用户可以访问特定的链代码函数。
  • 用户及其权利的列表应是动态的,并跨链代码共享。
  • 提供访问控制检查,以便链代码可以轻松检查访问控制列表。
  • 在链代码部署时,您可以用初始成员填充资源列表和访问控制列表。
  • 必须提供访问控制列表才能授权用户执行访问控制列表操作。

下载示例

Developer Tools(开发人员工具)选项卡上,打开 Samples(示例)窗格。单击 Marbles with Fine-Grained ACLs 下的下载链接。此软件包包含三个子软件包:
  • Fine-GrainedAccessControlLibrary.zip:

    细粒度访问控制库。它包含 Go 中的函数,链代码开发人员可以使用这些函数为链代码函数创建访问控制列表。

  • fgACL_MarbleSampleCC.zip:

    实施了具有访问控制列表的大理石样例。它包括各种功能,使您能够检查如何处理细粒度访问控制列表、组和资源,以将功能限制为特定用户/身份。

  • fgACL-NodeJSCode.zip:

    使用 Node.js SDK 运行示例的 Node.js 脚本。registerEnrollUser.js 可用于在区块链平台上注册新用户。invokeQueryCC.js 可用于对区块链平台实例运行事务处理。

术语和首字母缩略词

术语 说明
身份 表示调用方身份或链代码要检查的特定身份的 X509 证书。
身份模式

与一个或多个身份匹配的模式。建议使用以下模式:

  • X.509 主题通用名称— CN
  • X.509 主题组织单位 - OU
  • X.509 主题组织 - O
  • 此库中定义的组 -GRP
  • 属性 - ATTR

模式的格式本质上只是一个带有前缀的字符串。例如,要定义与组织 "example.com" 中的任何身份匹配的模式,模式将为 "%O%example.com"。

资源 链代码要控制访问的任何内容的名称。对于此库,它只是一个包含在平面名称空间中的命名任意字符串。名称的语义完全取决于链代码。
一组身份模式。
ACL 访问控制列表:具有标识模式列表、访问类型列表(如 "READ"、"CREATE"、"INVOKE"、"FORWARD" 或链代码要使用的任何内容)的命名实体。此库将使用访问类型 CREATE、READ、UPDATE 和 DELETE(标准 CRUD 操作)来维护其信息。除了与本库中的项相关的这四项之外,它们只是没有隐含语义的字符串。应用程序可能决定使用 "A"、"B" 和 "CUSTOM" 的访问。