3.2
Mobile Design Components (権限制御)

1. MDC権限制御

MDCモジュールに対する権限制御で用いるロールやUtilityクラスを標準提供しています。

1.1. ロール

テナント新規作成時に AppAdmin MdcUser ロールが作成されます。次の用途を想定しています。

既存のテナントでMDCを利用する場合、初期設定を参考にMDC用のロール、権限などを手動で追加してください。
ロール(ロールコード) 役割

AppAdmin

アプリケーション管理者。
AdminConsoleなどを利用できる管理者(開発者)とは異なり、アプリケーションの設定などを制御できる権限。

MdcUser

アプリケーション利用者。
MDCモジュール(汎用画面やTopViewなど)を利用することができる権限。

ユーザーがそれぞれロールコードと同名のグループに所属することを条件としています。

1.2. 権限設定

ロールの役割に対応するため、以下の権限が予め設定されています。

権限 AppAdmin MdcUser

Entity権限

mtp.auth.*

参照更新可能

参照のみ

mtp.listing.*

参照更新可能

SavedList

ownerかshared=trueの参照可能、ownerかcanOthersEdit=trueの更新可能

SavedListFolder

参照のみ(TopViewで更新系が可能の場合は、特権実行にて実行)

mtp.maintenance.*

権限なし(開発者用)

権限なし

mtp.scheduling.*

参照のみ(機能上更新が必要な場合は、コード上からの特権実行)

権限なし

mtp.workflow.*

参照のみ(機能上更新が必要な場合は、コード上からの特権実行)

権限なし

mtp.Information

参照更新可能

参照のみ

Action権限

mdc/*

org.iplass.mtp.mdc.auth.MdcAuth.isPermitAction(action, parameter) で制御

WebApi権限

mdc/*

org.iplass.mtp.mdc.auth.MdcAuth.isPermitWebApi(webApi, parameter) で制御

Action権限、WebApi権限については、 MdcAuth Utilityクラスを利用して制御しています。

1.3. MdcAuth

MDCに対するAction権限、WebApi権限を制御するためにUtilityクラスを提供しています。

org.iplass.mtp.mdc.auth.MdcAuth

Action権限制御

org.iplass.mtp.mdc.auth.MdcAuth#isPermitAction(String actionName, ActionParameterBinding param)
  • 指定された actionName の先頭が mdc/entityview/ の場合は、EntityViewの権限チェック を行います。

  • 指定された actionName の先頭が mdc/ の場合は、MDCの権限チェック を行います。

  • 指定された actionName が上記以外の場合、 true を返します。

WebApi権限制御

org.iplass.mtp.mdc.auth.MdcAuth#isPermitWebApi(String webApiName, WebApiParameterBinding param)
  • 指定された webApiName の先頭が mdc/entityview/ の場合は、 EntityViewの権限チェック を行います。

  • 指定された webApiName の先頭が mdc/view/initialize/search mdc/view/initialize/detail の場合は、 EntityViewの権限チェック を行います。

  • 指定された webApiName の先頭が mdc/ の場合は、MDCの権限チェック を行います。

  • 指定された webApiName が上記以外の場合、 true を返します。

EntityViewの権限チェック

指定されたパラメータから対象のEntity定義名とView名を取得し、権限をチェックします。

対象のEntity定義に対する EntityView管理設定を取得します。

対象Viewの管理設定がない場合、

  • View名が未指定の場合、 AppAdmin ロールを保持していれば true を、それ以外の場合は false を返します。(自動生成)

  • View名が指定されている場合は、 ApplicationException 例外を throw します。(View指定が不正)

対象Viewの管理設定がある場合、

  • 管理設定に許可ロールが設定されていない場合、 true を返します。(全て許可)

  • 管理設定に許可ロールが設定されている場合、設定されたロールを保持していれば true を、 それ以外の場合は false を返します。

MDCの権限チェック

mdc/ のAction、WebApiの場合は、MdcUser または AppAdmin ロールを保持していれば true を、 それ以外の場合は false を返します。

許可するロールは、 MdcConfigService で設定することが可能です。

独自ロールでの利用

標準設定を利用したMdcAuthでのActionやWebApiの権限制御では、対象のユーザーに対して AppAdminMdcUser ロールを付与する必要があります。 付与するためには、対象のユーザーに対して AppAdminMdcUser グループを設定します。

もし付与することが難しい場合は、 MdcConfigServicepermitRolesToMdc permitRolesToNoView の設定に許可するロールを追加してください。