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

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

背景信息

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

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

下载示例

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

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

  • fgACL_MarbleSampleCC.zip:

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

  • fgACL-NodeJSCode.zip:

    Node.js 脚本使用 Node.js SDK 运行示例。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" 的访问权限。