権限管理の概要最終更新日: 2021年3月1日
R8 | R9

ロール

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

Wagbyはロールベースの権限管理機能を提供します。

図1 ロールを用いない場合
図2 ロールを用いる場合(Wagby)

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

権限の基本単位を「パーミッション」と呼びます。
たとえば「顧客モデルの表示パーミッション」や「社員モデルの更新パーミッション」などがあります。

各画面には「自分を処理するためには、このモデルについてのXXX権限が必要である」というチェック機能が備わっています。 「XXX」の部分はそれぞれ、「登録」「更新」「削除」「表示」「検索」といった基本的な権限が入ります。

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

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

ワンポイント

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

標準のパーミッション

開発者がモデルを定義したとき、モデルごとに次のパーミッションが自動的に付与されます。標準では、これらすべてのパーミッションを有効とした「一般ユーザ」というプリンシパルもあわせて用意されます。

パーミッション 説明 メニューとの関係 内部の表記
閲覧 詳細表示画面へのアクセスを制御します。 なし。詳細表示画面のメニューは用意されません。 select
検索 検索・一覧表示ならびにサブウィンドウ検索のアクセスを制御します。 別途 "メニュー" パーミッションで設定します。(後述) showlist
更新 更新画面へのアクセスを制御します。 なし。更新画面のメニューは用意されません。 update
登録 登録画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、登録画面のメニューは用意されません。 insert
削除 削除機能へのアクセスを制御します。 なし。削除機能のメニューは用意されません。 delete
ダウンロード CSV・Excelダウンロード画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、ダウンロード画面のメニューは用意されません。 download
アップロード CSV・Excelアップロード更新画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、アップロード更新画面のメニューは用意されません。 upload
メニュー 検索・一覧表示画面のメニューへの表示を制御します。 あり。このパーミッションをもたないアカウントは、検索・一覧表示画面のメニューは用意されません。 menu
一覧更新 一覧更新画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、一覧更新画面のメニューは用意されません。 uploadupdate
帳票出力 帳票出力画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、帳票出力画面のメニューは用意されません。 reportlist

標準のプリンシパル

環境タブ内の「権限」でプリンシパルを管理しています。標準で次のプリンシパルを用意しています。

一般ユーザ

閲覧・検索・更新・登録・削除・ダウンロード・アップロード・メニュー・一覧更新・帳票出力という標準パーミッションを含んでいます。通常、ログオンアカウント(juser)には「一般ユーザ」プリンシパルを与えます。これによってすべてのモデルへの操作が可能になります。

アカウントごと、かつ、モデルごとに利用制限をかけたい場合は、一般ユーザプリンシパルを与えずに別途用意した(制限付きの)プリンシパルを与えるとよいでしょう。この方法は次ページ以降で説明します。

それ以外の特別なプリンシパル

「一般ユーザ」はシステムの利用のために用意されたものです。
それ以外に、システム管理のためのプリンシパルが用意されています。
各プリンシパルの説明は下表の通りです。

カテゴリ 種類 内容
アカウント 一般ユーザ (説明済みのため割愛します。)
システム管理者 すべての権限をもちます。標準で用意されているアカウント "admin" に割り当てられています。
グループ管理者 各グループには、グループ内のデータに対して特別な権限を持つ「グループ管理者」を用意することができます。
グループ管理者(代理登録不可) グループ管理者の権限でデータを操作できます。代理登録を行うことはできません。
ユーザ管理 ユーザアカウント(juser)の管理を行います。
グループ管理 グループ(jgroup)の管理を行います。
アカウント閲覧者 自分以外のアカウント情報を閲覧することができます。グループ権限設定での代理登録機能。ワークフローの代理承認。
接続解除 ログオン済みの利用者を強制的に解除することだけが行える権限です。
マスタ更新者 選択肢モデルの操作を行う権限です。
お知らせ管理者 「お知らせ」の登録、更新操作を行うことができます。
休日設定更新者 システムが管理する「休日」を追加することができます。
共通処理 共通処理 プレファレンス(配色や、各パーツの表示制御)を指定することができます。
パスワード変更 パスワードの変更を行うことができます。
共通検索設定管理 検索設定を共通に管理できる権限です。
プリファレンス共通設定管理 検索設定を共通に管理できる権限です。
テンプレート メールテンプレート管理者 メールテンプレートの登録、更新操作を行うことができます。
帳票定義管理者 帳票テンプレートの登録、更新操作を行うことができます。
ジョブ ジョブ管理者 Wagbyが提供する「ジョブマスタ」の登録、更新操作を行うことができます。
ジョブスケジュール管理者 Wagbyが提供する「ジョブ」の実行ルールを定義できます。指定した時間にジョブが起動します。
バッチジョブ管理 Spring Batch を用いたバッチ処理で、各バッチジョブの状態を操作するための権限です。初期設定では、更新機能を無効としているため、本権限を設定しても利用できません。(バッチジョブは原則として閲覧のみが許可されるようになっています。)
バッチジョブ閲覧 Spring Batch を用いたバッチ処理で、各バッチジョブの状態(インスタンス、実行結果、ステップ)を閲覧できます。
ジョブ専用アカウント ジョブを実行することができる特別な権限です。このプリンシパルはジョブ実行専用のため、これを有効にすると、ログオン画面からのログオンが行えなくなります。
ワークフロー フロー状態閲覧 承認すべきワークフローを確認できます。申請したワークフローの状態を確認できます。
ワークフロー管理者 フローパターン。フロー参加者設定。ワークフロー設定。
ワークフロー代理者設定 ワークフローの代理承認で用います。
システム システムログ閲覧 システムログ閲覧機能を利用できます。
統計情報閲覧 統計情報機能を利用できます。
システム情報閲覧 このアプリケーションについての詳細情報を閲覧できます。
インポートエクスポート インポート・エクスポート機能を利用できます。
メンテナンスモード切替 メンテナンスモード切り替え機能を利用できます。

これらはDesignerの「環境 > 権限 > プリンシパル」で確認できます。

図4 定義されているプリンシパル一覧

カテゴリ

すべてのプリンシパルは、次に示すいずれかのカテゴリに属します。開発者は自身でカテゴリを追加することもできます。

IDカテゴリ名
1アカウント
2共通処理
3テンプレート
4ジョブ
5ワークフロー
6システム
7アプリケーション

開発者が新規に作成するプリンシパルのカテゴリは、標準では "アプリケーション" を指定するとよいでしょう。プリンシパルが増えた場合は新しいカテゴリを作成し、カテゴリごとに管理することで見通しをよくすることができます。

IDが1から6が割り当てられている標準プリンシパルのカテゴリは変更しないようにしてください。

ログオンアカウントにプリンシパルを割り当てる

Wagbyのログオンアカウントは juser モデルとして定義されています。 ログオンアカウントの設定時に、どのプリンシパルを割り当てるかを指定することができます。

通常は次のプリンシパルを付与するとよいでしょう。

  • アカウント > 一般ユーザ (モデルの操作のため)
  • 共通処理 > 共通処理 (プリファレンス変更のため)
  • 共通処理 > パスワード変更
図5 ログオンアカウント登録画面におけるプリンシパル設定欄(1)
図6 ログオンアカウント登録画面におけるプリンシパル設定欄(2)
図7 ログオンアカウント登録画面におけるプリンシパル設定欄(3)
図8 ログオンアカウント登録画面におけるプリンシパル設定欄(4)
図9 ログオンアカウント登録画面におけるプリンシパル設定欄(5)
図10 ログオンアカウント登録画面におけるプリンシパル設定欄(6)

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

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

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

この詳細は、次ページ以降で説明します。

権限管理の対象範囲

機能

権限設定は「画面」「帳票」「CSV・Excelダウンロード/アップロード更新」に適用されます。

アカウント

一般利用者が対象範囲となります。システム管理者 (admin) は、すべての権限が有効になります。

重要

権限管理の動作テストでは、システム管理者を用いないようにしてください。

システム管理者の扱い

「システム管理者」プリンシパルは、次のように動作します。

1. これは、あるユーザーが表示できる画面をシステム管理者が表示できないという動作は許可しない、ことを意味します。一方で、システム管理者を含む、どのようなプリンシパルも与えられていない権限定義は可能です。この場合は誰も操作できない機能、となります。

技術情報

インポートエクスポート画面で、システムモデルに「プリンシパル」は表示されません。これは特別なモデルで、アカウント(juser)のインポートエクスポートにあわせて処理されます。

この内部の動作の仕組みをはじめとする、プリンシパルモデルの詳細はこちらをお読みください。