開発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

トラブル時の現状把握に必要な情報

※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。 最新のintra-martでは、異なる情報であることがありますので、ご注意ください。 大規模システムが増加するに従い、弊 …

no image

intra-mart Advent Calendar 2013 第12日:認可リソースの拡張方法

この記事は、intra-mart Advent Calendar 2013 第12日の記事です。 今回は「認可リソースの拡張方法」をご紹介したいと思います。 intra-mart Accel Plat …

no image

IM-Workflow

こんにちは。ご無沙汰してすみません。 4月末に、IM-Workflowをリリースさせて頂きましたが、プレゼン用の資料の公開が遅れていて申し訳ありません。以下のサイトからご覧いただけるようにいたしました …

no image

スタートパックVer7.1でのタイムゾーン対応について

明日、リリース予定のイントラネット・スタートパック Ver7.1での一番の機能追加内容である、 「タイムゾーン対応」について、以下のスライドでまとめましたので、公開いたします。 ISP710 タイムゾ …

no image

最近のトラブル事例から - Oracle11でDATE型が正しく表示できない –

毎年、4月になると、年度末で開発を終えたシステムが運用を開始して、さまざまなお問い合わせがくる季節で、今年も、例年と同じく、さまざまなご相談を弊社サポートサイトを中心に対応させていただきました。そこで …