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

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

バックグラウンド

このアクセス制御ライブラリのサンプルは、次のものを提供することです:

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

サンプルのダウンロード

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

    詳細なアクセス制御ライブラリ。これには、Goの関数が含まれており、チェーンコード開発者はこれを使用して、チェーンコード関数に対するアクセス制御リストを作成できます。

  • fgACL_MarbleSampleCC.zip:

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

  • fgACL-NodeJSCode.zip:

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

用語と頭字語

用語 説明
アイデンティティ コール元の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 アクセス制御リスト: 名前付きのエンティティで、これにはアイデンティティ・パターンのリスト、アクセス・タイプ(READ、CREATE、INVOKE、FORWARDなど)のリスト、チェーンコードで使用するものが含まれます。このライブラリでは、情報を管理するために、CREATE、READ、UPDATEおよびDELETE (標準的なCRUD操作)のアクセス・タイプが使用されます。このライブラリ内の項目に関連するこれら4つを除き、これらは暗黙的にもセマンティクスを持たない単なる文字列です。アプリケーションでは、A、BおよびCUSTOMのアクセスを使用できます。