2.5. 役割

ここでは、OpenFlowにおけるロールとは何か、それがOpenRPAや Node-REDのアクセス権限にどのような影響を与えるかを説明します。

2.5.1. 役割とは

OpenFlowのロールは、1人以上のユーザーまたはユーザーグループに割り当てることができる特権と許可の単位または集合体です。これらのロールは、OpenRPA内のプロジェクト/ワークフローへのアクセス権や、Node-RED内の特定のフローへのアクセス権を付与するなど、さまざまな目的に使用できます。

OpenFlowでは、人間のユーザーもロボットもユーザーと呼ばれ、ロールはどちらも同じように機能することを忘れないでください。

2.5.2. RPARole (Pool)

ユーザーのプール、例えば “Buyers “を作成して、多くのユーザー(buyer_John, buyer_Maria, buyer_robot1, …)をこのプールに挿入できるようにしたい場合があります。そうすることで、各ユーザーのロールを手動で調整するのに比べ、権限やアクセスの管理が容易になります。

RPARoleはまた、ワークフローやNode-REDフローが、特定のユーザーではなく「Buyers」Poolにタスクを割り当てることを可能にします。この方法では、ワークフローはプールから任意のユーザーに割り当てることができ、フレームワークは自動的に最初に利用可能なリッスンユーザーにタスクを割り当てます。

したがって、RPARoleは、Roleの編集画面で設定するパラメータで、Roleが代わりにユーザーのPoolになることを可能にするものです。

設定された場合、Roleに追加されたすべてのユーザーは、Role-QueueIDのリッスンを開始します。これで、ユーザーはキューの消費者になります。ユーザはログインすると、自分のUser-QueueIDをネイティブにリスニングします。また、RPARoleパラメータを持つRoleのメンバーであれば、Role-QueueIDを聞くようになります。詳しくはpool(https://cs.stackexchange.com/q/86372)をご覧ください。

2.5.2.1. しかし、消費者とは何でしょうか

コンシューマ」という用語は、文脈によって異なる意味を持ちます。ここでは、コンシューマーとはメッセージを消費するアプリケーション(またはアプリケーション・インスタンス)のことを指します。同じアプリケーションはメッセージを発行することもできるので、同時にパブリッシャーでもあります。この場合、コンシューマーはメッセージ配信のための購読であり、配信が始まる前に登録されなければならず、アプリケーションによってキャンセルすることも可能です。

RabbitMQはメッセージングブローカーです。パブリッシャーからメッセージを受け取り、それをルーティングします。もしルーティングするキューがあれば、それを消費するために保存し、もしあればすぐにコンシューマに配信します。コンシューマはキューからメッセージを消費します。消費するためには、キューが存在しなければなりません。新しい消費者が追加されたとき、キューにすでに準備が整っているメッセージがあると仮定すると、配信は直ちに開始されます。コンシューマ登録時に、対象のキューが空であることも可能です。その場合、新しいメッセージがキューに登録されると、最初の配信が行われます¹。

¹ –コンシューマー(https://www.rabbitmq.com/consumers.html)

2.5.3. 権限の付与(admin、nodered、user)

OpenFlowのパーミッションの変更は、とても簡単です。

ロールを変更するには、ユーザーがAdminであること、すなわちadminsロールに割り当てられていることが必要です。

次に、OpenFlowのWebページ内のAdminドロップダウンをクリックする必要があります。

images/openflow_roles_click_roles_dropdown.png

あとは、OpenFlow のページ内のRolesページに移動して、ユーザーを追加したい Role に対応するPencil/Editアイコンをクリックするだけです。例として、personal nodered usersの Role を変更することにします。

images/openflow_roles_edit_personal_nodered_users_role.png

鉛筆/編集」アイコンをクリックすると、下図のように、ロールの 名前rparoleチェックボックス、追加入力フィールド、およびメンバーリストを含む、ロールページにリダイレクトされます。そのロールに新しいユーザー/ ロールを追加するには、追加入力フィールドにそのユーザー /ロールの名前を入力するだけです。その後、ドロップダウンリストが表示され、ユーザーはそのロールに追加するユーザー/ロールを選択します。

images/openflow_roles_add_user.png

必要な値を選択すると、追加ボタンがクリックできるようになります。クリックすると、最近選択したユーザー/ロールが メンバーリストに追加されます。 変更を保存しないと、変更は反映されませんので、忘れずに保存してください。

images/openflow_roles_click_save_button.png

2.5.3.1. Node-REDのパーミッション

ワークフローインノードに キュー 名を設定し、そのキューが属するフローをNode-RED内にデプロイするたびに、ロールページ内にNode-REDのサブドメインをプレフィックス(デフォルト:「nodered1」)、中間部にキュー名(ノードのプロパティ内で定義)、サフィックスに「users」を持つ新規ロールが作成されます。例:”nodered1google-vision-apiusers”.

備考

Adminユーザーとしてログインした場合、ワークフローページでそのワーク フローにアクセスし、呼び出すには、そのロールにユーザーを追加する必要があり ます。

2.5.3.2. OpenFlow内部の主な役割の一覧

OpenFlowの中の主なロールとその権限について説明します。

  • filestore users– このロールのメンバーは、OpenFlow にアップロードされたすべてのファイルを見ることができます。

  • ファイルストア管理者– このロールのメンバーは、OpenFlowにアップロードされたすべてのファイルに対して完全な制御(削除、更新、…)を行うことができます。

  • robot users– 現在未使用、全てのロボットを表すと思われる。

  • robot admins– 現在未使用。このロールのメンバーは、ロボットに関するすべてのオブジェクトを完全に制御(削除、更新、…)することができます。

  • personal nodered usersOpenFlow がKubernetes 上で動作している場合、この Role のメンバーは新しいNode-REDインスタンスを作成することができます。

  • nodered users– このロールのメンバーは、すべてのNode-REDインスタンスに読み取り専用でアクセスできます。

  • nodered admins– このロールのメンバーは、すべてのNode-REDインスタンスへのフルアクセスが可能です。

  • nodered api usersapi_allow_anonymoustrue に設定されている場合、このロールのメンバーはすべての Node-RED インスタンスから公開される API を呼び出すことができます。

  • users– すべてのユーザーがこの役割のメンバーです。

  • admins– このロールのメンバーは、システム内のすべてにアクセスすることができます。現時点では、adminsは rootユーザができることをすべて行うことができます。