B 使用大理石示例中包含的细粒度访问控制库
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 SDK 运行示例的 Node.js 脚本。
registerEnrollUser.js可用于在区块链平台中注册新用户。invokeQueryCC.js可用于针对区块链平台实例运行事务处理。
术语和缩略词
| 术语 | 说明 |
|---|---|
| 身份 | 表示调用方或链代码要检查的特定标识的 X509 证书。 |
| 身份模式 |
与一个或多个身份匹配的模式。建议使用以下模式:
模式的格式本质上只是一个带有前缀的字符串。例如,要定义与组织 "example.com" 中的任何身份匹配的模式,该模式将为 "%O%example.com"。 |
| 资源 | 链代码要控制访问的任何内容的名称。对于此库,它只是包含在平面名称空间中的命名任意字符串。名称的语义完全取决于链代码。 |
| 分组 | 一组身份模式。 |
| ACL | 访问控制列表:具有标识模式列表、访问类型列表(例如 "READ"、"CREATE"、"INVOKE"、"FORWARD")或链代码要使用的指定实体。此库将使用 CREATE、READ、UPDATE 和 DELETE(标准 CRUD 操作)的访问类型来维护其信息。除了这四种,因为它们与这个库中的项目有关,它们只是没有隐含语义的字符串。应用程序可以决定使用 "A"、"B" 和 "CUSTOM" 的访问权限。 |