1. GEM権限制御
GEM機能に対する権限制御のため、ロールやUtilityクラスを標準機能として提供しています。
1.1. ロール
テナント作成時に AppAdmin
GemUser
ロールが作成されます。次の用途を想定しています。
ロール(ロールコード) | 役割 |
---|---|
AppAdmin |
アプリケーション管理者。 |
GemUser |
アプリケーション利用者。 |
ユーザーがそれぞれロールコードと同名のグループに所属することを条件としています。
1.2. 権限設定
ロールの役割に対応するため、以下の権限が予め設定されています。
権限 | AppAdmin | GemUser | |
---|---|---|---|
Entity権限 |
mtp.auth.* |
参照更新可能 |
参照のみ |
mtp.listing.* |
参照更新可能 |
|
|
mtp.maintenance.* |
権限なし(開発者用) |
権限なし |
|
mtp.scheduling.* |
参照のみ(機能上更新が必要な場合は、コード上からの特権実行) |
権限なし |
|
mtp.workflow.* |
参照のみ(機能上更新が必要な場合は、コード上からの特権実行) |
権限なし |
|
mtp.Information |
参照更新可能 |
参照のみ |
|
Action権限 |
gem/* |
|
|
WebApi権限 |
gem/* |
|
Action権限、WebApi権限については、 GemAuth
Utilityクラスを利用して制御しています。
1.3. GemAuth
GEMに対するAction権限、WebApi権限を制御するためにUtilityクラスを提供しています。
org.iplass.gem.auth.GemAuth
Action権限制御
org.iplass.gem.auth.GemAuth#isPermitAction(String actionName, ActionParameterBinding param)
-
指定された
actionName
の先頭がgem/generic/
の場合は、EntityViewの権限チェック を行います。 -
指定された
actionName
の先頭がgem/
の場合は、Gemの権限チェック を行います。 -
指定された
actionName
が上記以外の場合、true
を返します。
WebApi権限制御
org.iplass.gem.auth.GemAuth#isPermitWebApi(String webApiName, WebApiParameterBinding param)
-
指定された
webApiName
の先頭がgem/generic/
の場合は、EntityViewの権限チェック を行います。 -
指定された
webApiName
の先頭がgem/
の場合は、Gemの権限チェック を行います。 -
指定された
webApiName
が上記以外の場合、true
を返します。
EntityViewの権限チェック
指定されたパラメータから対象のEntity定義名とView名を取得し、権限をチェックします。
対象のEnity定義に対する EntityView管理設定を取得します。
EntityView定義がない場合(defaultも含め1つもない)、
-
AppAdmin
ロールを保持していればtrue
を、それ以外の場合はfalse
を返します。(自動生成)
対象Viewの管理設定がある場合、
-
管理設定に許可ロールが設定されていない場合、
true
を返します。(全て許可) -
管理設定に許可ロールが設定されている場合、設定されたロールを保持していれば
true
を、 それ以外の場合はfalse
を返します。
対象Viewの管理設定がない場合、
-
対象ViewのSearchLayout定義がある場合、
true
を返します。(許可ロールが未指定と同等) -
対象ViewのSearchLayout定義がないが、対象Viewがdefalutの場合、
AppAdmin
ロールを保持していればtrue
を、 それ以外の場合はfalse
を返します。(自動生成) -
対象ViewのSearchLayout定義がないが、対象Viewがdefalut以外の場合、 ApplicationException を返します。(View指定が不正)
対象Viewのレイアウトが定義されているかの判定は、SearchLayoutの存在でチェックします。 Viewが自動生成される場合の許可ロールは、 GemConfigService で設定することが可能です。 |
GEMの権限チェック
gem/
のAction、WebApiの場合は、GemUser
または AppAdmin
ロールを保持していれば true
を、
それ以外の場合は false
を返します。
許可するロールは、 GemConfigService で設定することが可能です。 |
独自ロールでの利用
標準設定を利用したGemAuthでのActionやWebApiの権限制御では、対象のユーザーに対して AppAdmin
や GemUser
ロールを付与する必要があります。
付与するためには、対象のユーザーに対して AppAdmin
や GemUser
グループを設定します。
もし付与することが難しい場合は、 GemConfigService の permitRolesToGem
permitRolesToNoView
の設定に許可するロールを追加してください。