B Marbleサンプルに含まれるファイングレイン・アクセス・コントロールのライブラリの使用

Hyperledger Fabricではv1.2より、多くの管理機能にファイングレイン・アクセス・コントロールを使用できるようになりました。Oracle Blockchain Platformでは、コンソールの「開発者ツール」タブにあるMarbleサンプル・パッケージのバージョンが更新され、関数のライブラリが実装されたことにより、チェーンコード開発者はこれを使用して、チェーンコード関数に対するアクセス制御リストを作成できるようになりました。現在サポートされているのはGo言語のみです。

トピック

背景

このアクセス制御ライブラリのサンプルは、次の内容の実現を目的としています:

  • 特定のチェーンコード機能にアクセス可能なユーザーを制御するメカニズムを提供すること。
  • ユーザーと各ユーザーの権限のリストを動的なものとし、チェーンコード間で共有すること。
  • チェーンコードでアクセス制御リストを簡単にチェックできるよう、アクセス制御のチェック機能を提供すること。
  • チェーンコードのデプロイ時に、リソースのリストとアクセス制御リストに初期メンバーを入力できるようにすること。
  • アクセス制御リストを指定して、アクセス制御リストの操作の実行をユーザーに許可できるようにすること。

サンプルのダウンロード

「開発者ツール」タブで、「サンプル」ペインを開きます。ファイングレンACLを含むMarbleの下にあるダウンロード・リンクをクリックします。このパッケージには、次の3つのサブパッケージが含まれています:
  • Fine-GrainedAccessControlLibrary.zip:

    ファイングレイン・アクセス制御のライブラリ。これには、Go言語で記述された関数が含まれており、チェーンコード開発者はこれを使用して、チェーンコード関数に対するアクセス制御リストを作成できます。

  • fgACL_MarbleSampleCC.zip:

    アクセス制御リストが実装されたMarbleサンプル。これには様々な関数が含まれており、特定のユーザー/ IDに関数を制限するために、ファイングレイン・アクセス制御リストやグループ、リソースをどのように使用するかを確認できます。

  • fgACL-NodeJSCode.zip:

    Node.js SDKを使用してサンプルを実行するNode.jsスクリプト。registerEnrollUser.jsを使用して、新しいユーザーをBlockchain Platformに登録できます。invokeQueryCC.jsは、Blockchain Platformインスタンスに対するトランザクションの実行に使用できます。

用語と頭字語

用語 説明
ID コール元のIDまたはチェーンコードがチェックする特定のIDを表すX509証明書。
IDパターン

1つ以上のIDに一致するパターン。次のパターンをお薦めします:

  • X.509サブジェクト共通名 – CN
  • X.509サブジェクト組織単位 – OU
  • X.509サブジェクト組織 – O
  • このライブラリに定義されているグループ – GRP
  • 属性 – ATTR

パターンの形式は、基本的には接頭辞の付いた文字列です。たとえば、組織example.comの任意のIDに一致するパターンを定義する場合、パターンは%O%example.comになります。

リソース チェーンコードでアクセスを制御する対象の名前。このライブラリでは、フラットなネームスペースに含まれる任意の名前付き文字列にすぎません。名前のセマンティクスは、すべてチェーンコードによって決定されます。
グループ IDパターンのグループ。
ACL アクセス制御リスト: 名前付きのエンティティで、これにはIDパターンのリスト、アクセス・タイプ(READ、CREATE、INVOKE、FORWARDなど)のリスト、チェーンコードで使用するものが含まれます。このライブラリでは、CREATE、READ、UPDATEおよびDELETE (標準的なCRUD操作)のアクセス・タイプを使用して、情報を管理します。このライブラリ内の項目に関連するこれら4つを除き、その他は暗黙的にもセマンティクスを持たない単なる文字列です。アプリケーションでは、A、BおよびCUSTOMのアクセスを使用できます。