1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

IQ Bot:RBAC設定をしてみよう!(経理部の帳票は経理部、人事部の帳票は人事部しか見られないようにする)

Posted at

「IQ Botを使うにあたって、経理部の帳票は経理部、人事部の帳票は人事部でしか見られないようにしたいです。それってサーバー分けなきゃだめですか?」という質問をよくもらいます。

結論からいうと、「サーバー分けなくてもOK」です。

この記事では、サーバーを分けずにアクセス権限を切り分ける、RBAC設定のやりかたを説明します。

#そもそも、RBACって?

Role   : 役割に
Base   : 基づいて
Access  : アクセスを
Control  : 制御する

という意味です!

#具体例で見てみよう 

今回は、以下のような4人のユーザーにそれぞれアクセス権限を振り分けることを考えてみます。

名前 所属 役割
鈴木 経理部 経理部のRPA推進担当。
経理部用のBotの開発や、経理部で使っている帳票(例:決算資料など)のIQ Botの設定を行う。
田中 経理部 経理部の事務担当。
誤りを検知した帳票の検証を行う。
佐藤 人事部 人事部のRPA推進担当。
人事部用のBotの開発や、人事部で使っている帳票(例:年末調整の申請書類等)のIQ Botの設定を行う。
山田 人事部 人事部の事務担当。
誤りを検知した帳票の検証を行う。

#4人に割り当てるロール

上記の例では、4人のメンバーにそれぞれ以下のロールを割り当てます。
(ロールはいずれもカスタムロールで、作り方は後で詳述します)

名前 所属・担当 付与するロール
鈴木 経理部開発担当 iq_keiri_admin
iq_keiri_val
田中 経理部事務担当 iq_keiri_val
佐藤 人事部開発担当 iq_jinji_admin
iq_jinji_val
山田 人事部事務担当 iq_jinji_val

これによって、以下の制御を実現できます。

  • 経理部開発担当の鈴木さんは、自分が作ったインスタンスだけを参照・開発できる

  • 経理部事務担当の田中さんは、鈴木さんが作ったインスタンスだけを参照して事務作業ができる

  • 人事部開発担当の佐藤さんは、自分が作ったインスタンスだけを参照・開発できる

  • 人事部事務担当の山田さんは、佐藤さんが作ったインスタンスだけを参照して事務作業ができる

上記はわかりやすくするために、「自分が作ったインスタンスを~」とか「鈴木さんが~」などと書いていますが、実際には「鈴木さんと同じ役割を持った人」など役割ベースのアクセス制御になっています。

また、田中さんや山田さんがする「事務作業」というのは、IQ Botの利用フローにおける⑥の「検証」の作業のイメージです。
(IQ Botが読み取った結果を確認したり、訂正したりする作業)

##役割べースのアクセス制御をもっとわかりやすくするために

上記の説明で分かった人は、この項目は飛ばして大丈夫です。
頭に「?」が浮かんだ人のために、もうちょっと詳しく解説。

上記の4人の表では、同じ役割の人がそれぞれ1人ずつしかいないですが、例えば以下のような状況を考えてみましょう。

  • 経理部は帳票の種類がたくさんあるので、開発者がもう一人必要になった! → 開発者に小林さんを任命した!
  • 人事部は運用局面で帳票の検証をたくさんするので、事務担当がもう一人必要になった! → 事務担当に高橋さんを任命した!

この場合は、計6人の役割は以下のようになります。

名前 所属・担当 付与するロール
鈴木 経理部開発担当 iq_keiri_admin
iq_keiri_val
小林 経理部開発担当 iq_keiri_admin
iq_keiri_val
田中 経理部事務担当 iq_keiri_val
佐藤 人事部開発担当 iq_jinji_admin
iq_jinji_val
山田 人事部事務担当 iq_jinji_val
高橋 人事部事務担当 iq_jinji_val

経理部開発担当の鈴木さんと小林さんは役割が同じです。

なので、鈴木さんは自分が開発したインスタンスも、小林さんが開発したインスタンスも、同じように参照できて開発できます。
小林さんも、自分が開発したインスタンスも、鈴木さんが開発したインスタンスも、同じように参照できて開発できます。

田中さんは、鈴木さん・小林さんが開発したインスタンスを参照して事務作業ができます。

一方、人事部には開発者が一人しかいないので、人事部の帳票を開発できるのは佐藤さんだけです。

ですが、山田さんと高橋さんはどちらも、佐藤さんが作ったインスタンスを参照して事務作業ができます。

#RBACの設定方法

それでは、RBACの設定方法を順を追って見ていきましょう。

##1:経理部開発担当のロールを作る

###1) Control Roomの「設定」→「ロール」タブから「新しいロールを作成」をクリックします。

06_CreateRoleAgain.jpg

###2) ロール名をつけ、必要な役割をチェックしていきます。
ロールの名前は任意ですが、日本語は使えません。 (作成はできてしまうが、付与した後でログインエラーになる)
ここでは「iq_keiri_admin」としておきます。
01_iq_keiri.JPG

###3) 役割のチェックではここに注意!!
役割は必要に応じてチェックしていけばよいのですが、「IQ Bot」配下の「すべてのラーニングインスタンスを表示」にだけはチェックを入れないようにします。
03_チェックを外す.jpg

###4) 役割のチェックが終わったら、画面右上の「ロールを作成」をクリックします。
04_createRole.jpg

###5) 経理部の開発者用のロールができました!
05_RoleCreated.jpg

##2:経理部事務担当のロールを作る

###1) ふたたび「新しいロールを作成」をクリックします。
06_CreateRoleAgain.jpg

###2) ロール名をつけます。
ここでは「iq_keiri_val」という名前にします。
07_iq_keiri_val.JPG

###3) 役割をチェックします。
こちらは開発をしないロールなので、「IQ Bot」配下の**「同一ロールからラーニングインスタンスを表示」および「検証ツールを起動」だけ**にチェックをします。
08_keirival_role.jpg

###4) 完了後、画面右上の「ロールを作成」をクリックします

##3:人事部の開発者および事務担当のロールを作る

上記と同じ要領で、人事部の開発者および事務担当のロールも作ります。

上記の流れで、ロール名につけたkeiriをjinjiに変えて同じことをするイメージです。

最終的に、このような4つのロールができていればOKです。
09_4Roles.jpg

##3:鈴木さんに経理部開発者の役割を割り当てる

###1) ユーザー作成画面の起動

Control Roomの「設定」→「ユーザー」タブから「新しいユーザーを作成」をクリックします。

###2) 必要情報を入力し、ロールを割り当てます。

ユーザー名、パスワード、メールアドレスなどの必要情報を入力します。
「ロールの選択」欄では、iq_keiri_admin(経理部の開発者用のロール)とiq_keiri_val(経理部の事務担当者用のロール)のふたつだけをアサインします1
AAE_Basicなどの既存ロールを選択してはいけません2
10_suzuki_keiriAdmin.jpg

###3) ロール選択完了

このようになっていればOKです。
(カスタムで作成した2つのロールだけが選択され、AAE_Basicなどの余計なロールが選択されていない)
11_suzuki.jpg

###4) デバイスライセンスの割り当て

鈴木さんは開発担当者なので、BotCreatorのライセンスを割り当てます。
12_suzuki_device.JPG

###5) ユーザー作成

以上の設定を実施後、画面右上にある「ユーザーを作成」ボタンをクリックします。
13_createUser.jpg

##4:田中さんに経理部事務担当の役割を割り当てる

上記の要領で、田中さんにも役割を割り当てていきます。

###1) ロールの割り当て

田中さんは事務担当なので、iq_keiri_val(経理部の事務担当者用のロール)だけを選択します。
14_tanakaRole.jpg

###2) デバイスライセンスの割り当て

田中さんは事務担当で開発をしないので、デバイスライセンスは「なし」のままでOKです。
15_tanakaDevice.JPG

この状態で画面右上の「ユーザーを作成」ボタンをクリックします。

→ これで鈴木さんと田中さんのユーザーができました。
→ 鈴木さんはクライアントにログインできますが(Bot Creatorの権限を持っているから)、田中さんはクライアントにログインできません(Bot Creatorの権限を持っていないから)。

<参考:田中さんでクライアントにログインしようとするとこうなる>
13_田中はくらいあんとにログインできない.JPG

##5:人事部の佐藤さん・山田さんにも役割を割り当てる

上記と同様の要領で、人事部の佐藤さん・山田さんにも役割を割り当てていきます。

佐藤さんは開発者なのでiq_jinji_admin(人事部の開発者用のロール)とiq_jinji_val(人事部の事務担当者用のロール)を選択して、デバイスライセンスではBot Creatorを割り当てます。
16_sato.jpg

山田さんは事務担当なのでiq_jinji_val(人事部の事務担当者用のロール)だけを選択して、デバイスライセンスは「なし」とします。
17_sato.jpg

##6:ユーザー作成完了

すべてのユーザーを作成し終えると、このようになります。
18_alluserCreated.jpg

#RBACを設定した状態でIQ Botのインスタンスを作ってみると……

##1:開発者の場合

以下は、佐藤さん(人事部の開発担当)が人事部用のインスタンスを作ったところです。
20_佐藤が人事の帳票を作ったところ.JPG

この状態で、鈴木さん(経理部の開発担当)がIQ Botを開いても、インスタンスは何も表示されません。
(人事部のインスタンスは、鈴木さんからは参照できないため)
21_鈴木が開いても帳票は参照できない.jpg

鈴木さんは鈴木さんで、経理部用の帳票を作り……
22_鈴木が経理部用の帳票を作った!.jpg

さらにクライアントにログインします。
23_x_鈴木でクライアントにログイン.jpg

IQ Botコマンドを起動すると、鈴木さんが参照権限を持っている経理部のインスタンスだけが一覧に表示されます。
23_鈴木のクライアント‗経理部用の帳票しか表示されない.jpg

今度は佐藤さんがクライアントにログインすると……
24_佐藤でクライアントにログイン.jpg

佐藤さんには、佐藤さんが参照権限を持っている人事部のインスタンスだけが表示されます。
25_佐藤には人事部の帳票しか参照できない.jpg

##2:事務担当者の場合

上記のTaskBotを使ってそれぞれ帳票を処理し、検証に回ったところを見てみましょう。

まず、経理部の田中さんが検証画面を起動すると、検証者用の画面に経理部用のインスタンスだけが表示されています。
26_経理部田中の検証画面.jpg

田中さんは、上記の矢印で示されたアイコンから検証画面を起動し、帳票の読み取り結果を確認・修正していきます。
27_田中@検証中.jpg

次に人事部の山田さんが検証画面を起動すると、検証者用の画面に人事部用のインスタンスだけが表示されています。
28_山田で入る.jpg

山田さんは、上記の矢印で示されたアイコンから検証画面を起動し、帳票の読み取り結果を確認・修正していきます。
29_山田@検証中.jpg

#まとめ

IQ BotのRBAC設定のやりかたは以上です。

具体例を交えながら説明したので少し長くなりましたが、ポイントは以下です。

  • ロールの選択のところで「すべてのラーニングインスタンスを表示」のチェックを外し、「同一ロールからラーニングインスタンスを表示」をチェックしたロールを必要な部門の数&役割の数だけ作ること
  • 開発者と事務担当で役割を切り分ける場合は、開発者のユーザーには事務担当者用のロールも付与しておくこと

適切に役割を設定して、組織のポリシーに即した参照権限の切り分けをしていきましょう!

  1. このとき、開発者用のロールだけを選択して事務担当者用のロールを選択しないと、開発者が作成したインスタンスを事務担当者が参照できなくなってしまいます。

  2. AAE_Basicなどの既存ロールを選択してしまうと、AAE_Basic権限を持っている人同士がお互いのインスタンスを参照できるようになってしまうためです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?