サポート > Wagby定義ファイル > 14 権限管理 > 権限管理の概要

Wagbyの権限管理では「パーミッション」と「プリンシパル」という概念が用意されています。権限に関する制約事項についても説明します。

ロールベース権限管理

ロールベース権限管理では「利用者」と「データ」を直接、結びつけません。その間に「権限」という概念を導入します。


図1 非ロールベースの権限管理

図2 ロールベースの権限管理

パーミッションとプリンシパル

Wagbyでは、基本的な権限のことを「パーミッション」と呼びます。たとえば「顧客モデルの表示パーミッション」や「社員モデルの更新パーミッション」などがあります。各画面はすべて、「自分を処理するためには、このモデルについてのXXX権限が必要である」というチェック機能が備わっています。「XXX」の部分はそれぞれ、「登録」「更新」「削除」「表示」「検索」といった基本的な権限が入ります。

複数のパーミッションをグループ化して扱う概念のことを「プリンシパル」と呼びます。たとえば、「登録」「更新」パーミッションをグループ化して「更新系プリンシパル」を用意することもできます。Wagbyの標準は「複数パーミッション = 1プリンシパル」となっています。


図3 パーミッションとプリンシパルの関係

Webアプリケーションの管理者は、利用者(アカウント)に対して「プリンシパル」を割り当てることができます。 この操作は運用中に行えるため、ある利用者に対して一時的に操作権限を付与したり、削除したりといった柔軟な対応を実現できます。

モデル項目単位で権限を設定する

さらにWagbyでは、画面単位だけではなく、モデル項目単位に「パーミッション」を設定することができます。これにより、次のような複雑な設定も行うことができます。

項目を隠す
「営業日報」モデルに「上司のコメント」項目を用意した。この項目は管理者が閲覧・更新することができるが、営業スタッフはこの項目は見えない。すなわち、この項目が存在することさえも知らない。
項目を読み込み専用にする
「販売」モデルに「注文数量」項目を用意した。この項目は、「注文数量更新権限」をもっている利用者は閲覧・更新することができるが、同権限をもっていない場合、閲覧はできるが更新を行うことができない。

制約

Wagby における権限設定の制約は次のとおりです。

  • プリンシパルはモデル毎に最大 30 個まで用意できます。(一般ユーザ、管理者、などの区分)
  • パーミッションは閲覧や更新といった基本的な設定が標準で提供されています。それ以外の任意のパーミッションを合わせて 50 個まで指定できます。
  • データ権限管理の設定を行ったモデルを外部キーやストアモデル参照の機能を使って参照させないようにしてください。 現在の Wagby は、これらのモデル参照機能はデータ権限管理に対応していません。例えば、参照先のモデルに登録権限を設定していても、参照元モデルの詳細画面で、参照先モデルの新規登録ボタンが表示されることはありません。