ここでは、OpenFlowにおけるロールとは何か、それがOpenRPAや Node-REDのアクセス権限にどのような影響を与えるかを説明します。
OpenIAPカテゴリー: 2.5. Roles
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
ドロップダウンをクリックする必要があります。
あとは、OpenFlow のページ内のRolesページに移動して、ユーザーを追加したい Role に対応するPencil/Edit
アイコンをクリックするだけです。例として、personal nodered users
の Role を変更することにします。
鉛筆/編集
」アイコンをクリックすると、下図のように、ロールの 名前
、rparole
チェックボックス、追加
入力フィールド、およびメンバー
リストを含む、ロールページにリダイレクトされます。そのロールに新しいユーザー
/
ロールを
追加するには、追加
入力フィールドにそのユーザー
/ロールの
名前を入力するだけです。その後、ドロップダウンリストが表示され、ユーザーはそのロールに追加するユーザー/
ロールを
選択します。
必要な値を選択すると、追加ボタンがクリックできるようになります。クリックすると、最近選択したユーザー/ロールが
メンバー
リストに追加されます。 変更を保存しないと、変更は反映されませんので、忘れずに保存してください。
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 users–OpenFlow がKubernetes 上で動作している場合、この Role のメンバーは新しいNode-REDインスタンスを作成することができます。
-
nodered users– このロールのメンバーは、すべてのNode-REDインスタンスに読み取り専用でアクセスできます。
-
nodered admins– このロールのメンバーは、すべてのNode-REDインスタンスへのフルアクセスが可能です。
-
nodered api users–
api_allow_anonymous
がtrue
に設定されている場合、このロールのメンバーはすべての Node-RED インスタンスから公開される API を呼び出すことができます。 -
users– すべてのユーザーがこの役割のメンバーです。
-
admins– このロールのメンバーは、システム内のすべてにアクセスすることができます。現時点では、
adminsは
root
ユーザができることをすべて行うことができます。