Corda RPCユーザーにflowの実行権限を付与する

はじめに

本稿について

この記事はCordaの実行ユーザー(以下RPCユーザー)に対して、flowの実行権限を付与する方法について解説します。英語のドキュメントはこちらからご覧ください。

 

Node設定

RPCユーザーに関する設定は、node.conf上の「users」ブロックにて設定します。設定内容は以下のとおり

  • user: ユーザー名
  • password: パスワード
  • permissions: 許可する操作をリスト形式にて設定

つまりpermissionsのリストに許可するflowを列挙します。

すべての操作を許可する場合

全てのflowおよび操作を許可する場合は、permissionsに「ALL」と定義します。これによりあらゆる操作を許可します。

mceclip1.png

一部のflowのみを許可する場合

permissionsの要素として「StartFlow. + 実行権限を与えたいflowのパッケージ名」を設定します。
この時Corda標準のコマンドも任意に選択できますが、flowを実行したい場合は「InvokeRpc.registeredFlows」を併せて設定します。

mceclip0.png

再起動して、user1としてログインして期待通りの実行権限になっているか確認してみます。
「flow list」を実行した時は、すべてのflowが表示されあたかもすべてのflowに許可がされているようにも見えます。

blobid0.png

許可されていない「IOUTransferFlow」を実行してみると、ユーザーに実行権限がない旨が表示されます。

mceclip0.png

「IOUIssueFlow」を実行すると、正しく実行できます。

mceclip2.png

参考:一部のflowのみを許可する場合(間違った例)

実行権限を与えたいflow「だけ」を設定してしまうと、flow実行時にエラーになります。
これはflowをトリガーする「registeredFlows」に実行権限がないためです。

mceclip3.png

blobid0.png

 

おわりに

flowに対する実行権限を制御することでよりセキュアなシステムを構築できます。
是非ご活用ください。

 

Created by: Kazuto Tateyama

Last edited by: Kazuto Tateyama

Updated: 2022/04/13

 

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています