開発Blog

intra-mart Advent Calendar 2013 第18日:認可関連のタグ3種(imAuthz, imUrlAuthz, imAuthzPolicyEditor)

投稿日:2013-12-18 更新日:

この記事は、intra-mart Advent Calendar 2013 第18日の記事です。

今回は、認可関連のタグ3種(imAuthz, imUrlAuthz, imAuthzPolicyEditor)をご紹介したいと思います。

imAuthz タグ

サンプルコード

imAuthz タグは、指定した認可リソースの権限状態に基づいて、タグに挟まれた範囲の実行を制御します。
アクセスしているユーザが、 指定した 認可リソースの uri と action に対して権限を有しているかどうかで制御を行います。

上記の例は、iAPがデフォルトで用意している認可リソース「service://menu/sitemap」に対しての実行制御を行っていますが、
もちろん、ユーザが新たに作成した認可リソースを用いてアクセス制御を行うことも可能です。

認可設定画面より任意のリソースを追加し、そこで設定した認可リソースのuriを imAuthz タグに指定することで、ユーザ独自の制御を行うことが可能です。

制御を行うための認可リソースは、他のリソースと混同しないように登録することをおすすめします。
例えば、先日ご紹介させていただいた「認可リソースの拡張方法」を応用して、専用のリソースタイプを作成し、そこにimAuthz タグ用のリソースを集約させたり、
以下のように画面・処理の直下に専用のリソースグループを作成し、そこに集約しておくなどを行うと、メンテナンスが楽になると思います。

なお、effect属性の利用は非推奨となっています。
(権限状態は“permit”(許可)であるかどうかで判別すべきであり、effect属性 は、通常 指定する必要が無いためです)
“permit”(許可)ではない状態を判別したい場合は、属性 negative を利用してください。

ちなみに、この機能を利用することで、iWP ver7.2 の <accessCtrl> タグを代替することが可能です。
<accessCtrl>タグよりも更にきめ細かなアクセス制御が可能となっておりますので、ぜひご活用ください。

imUrlAuthz タグ

サンプルコード

このタグも、アクセスしているユーザの権限に応じて、表示領域制御を行う事が可能です。

前述の imAuthzタグ は、 認可リソース を指定してタグに挟まれた範囲内の部分の実行を制御していましたが、こちらの imUrlAuthzタグ は、 画面へアクセスするためのURL を指定して制御を行います。

画面を起点として実行制御を行いたい場合に有用なタグです。
imAuthzタグ、および、imUrlAuthzタグ を 適宜使い分けて、表示領域制御にご活用いただければと思います。

なお、imUrlAuthzタグも effect属性の利用は非推奨となっておりますので、ご留意ください。

imAuthzPolicyEditor タグ

サンプルコード

imAuthzPolicyEditor タグは、認可設定画面をポップアップ画面として呼び出すためのタグです。
テナント管理機能の認可設定画面を特定の領域に絞って表示させることができます。

上記の例は、iAPがデフォルトで用意しているポリシー部分編集設定の part-id を指定していますが、ポリシー部分編集設定ファイル を追加することで、独自の認可設定画面を構成することが可能です。

なお、imAuthzPolicyEditorタグで認可設定画面を部品として利用できるユーザは、デフォルトでは、 認可設定の基本画面を開くことができる権限を持つユーザに限られます 。
(通常認可設定ができないユーザに認可設定画面を利用させないようにするために、認可機構で制限しています)
しかし、認可設定画面を部品として利用する場合に、特定のリソースに対して呼び出し側機能の権限に基づいて設定可否を判断したい場合があります。
例えば、メニュー設定画面を開くことができるユーザが、登録したメニューグループに対して認可権限を設定するケースです。
認可機構側では個々のリソースグループに対して表示可否を判断できないため、このような細かなリソースグループの表示制御を行いたい場合に、各機能に問い合わせを行って表示可否を判断してもらうコールバック機能があります。

詳しくは、 APIリファレンス や「認可 拡張プログラミングガイド」の 認可設定画面部品の使用 や リソース表示可否判断クラスの設定 をご参照ください。

先日ご紹介させていただいた「認可リソースの拡張方法」や「認可サブジェクトの拡張方法」を応用することで、アプリケーション独自の認可設定画面を作成することも可能です。ぜひご活用ください。

-開発Blog

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

Microsoft SqlServer で シーケンステーブルを扱う

intra-mart Accel Platform では、SqlServerを利用する場合、JDBCの接続プロパティに selectMethod=cursor を設定します。この接続プロパティを使用す …

no image

プロダクトを成長させる生成系 AI のユースケースを考えるワークショップ実施レポート

こんにちは、開発本部 チーフテクニカルリードの榎本です。 先日開催しました「intra-mart Live 2023」はご参加頂けましたでしょうか?基調講演では、intra-mart Accel Pl …

no image

ERP連携モジュール(SAP)の実現方法

  ※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。最新のintra-martでは、異なる情報であることがありますので、ご注意ください。   ERP( …

no image

intra-martの WebServer機能について

※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。最新のintra-martでは、異なる情報であることがありますので、ご注意ください。 ベースモジュールver2.X以前では …

no image

IM-共通マスタ CSVスナップショットインポートのパフォーマンス検証

WebPlatform/AppFramework Ver.7.2 パッチ6の要件16570にて、IM-共通マスタからアプリケーション共通マスタへの同期処理のパフォーマンス改善を行い、下記効果を確認しま …