開発Blog

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

投稿日:

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

今回は「認可リソースの拡張方法」をご紹介したいと思います。

intra-mart Accel Platform では標準的に以下のようなコンポーネントが認可機構と連携しています。

  • ルータ
  • Webサービス
  • メニュー
  • ポータル
  • IM共通マスタ
  • TableMaintenance
  • IMBox

これらの各コンポーネントでは独自の認可リソースを追加しています。
例えば、メニューでは「メニューグループ」という独自のリソースが定義されており、そのリソースに対して「参照」および「管理」アクションが定義されています。
IM共通マスタでは「会社」という独自のリソースが定義されており、「参照」および「編集」アクションが定義されています。

もちろん、この認可リソースは、開発者が独自に追加可能です!
認可設定画面でいうところの「リソースの種類」が追加可能と考えていただくと、理解していただきやすいかもしれません。

このように、intra-mart Accel Platform では、リソースの階層構造や使用できるアクションを定義することが可能となっておりますので、作成したアプリケーションで扱う データの特性を考慮したアクセス制御 が実現可能となっております。

例えば、アプリケーションが扱うデータ1件ごとに、CRUD(Create, Read, Update, Delete)単位でアクセス制御することが可能です。
(取り扱うデータ量とパフォーマンスの トレードオフは別途調整する必要があります(キャッシュ戦略の検討など))

リソースタイプの拡張を行うには、認可機構にリソースに関連する情報の登録が必要になります。

おおまかな流れは、以下の通りです。

  1. リソースを認可機構でどう表現するかを決める。
  2. リソースタイプを実装する。( 図中 1 )
  3. リソースを認可機構へ登録する。( 図中 2-a、 図中 2-b )
  4. 認可処理をアプリケーションへ組み込む。 ( 図中 3 )
  5. リソースのキャッシュを検討・実装する。 ( 図中 4 )

1. リソースを認可機構でどう表現するかを決める。

アプリケーションのリソースを認可機構でどう表現するかを決めます。
以下のような事を作業を開始する前に決めておくと作業がスムーズに進められます。

  • リソースが使用するアクション
  • リソースのURI書式
  • リソースのグルーピングと階層構造

2. リソースタイプを実装する。

ResourceType クラスを実装します。( 図中 1 )
認可機構へのプラグインとしてリソースタイプクラスを実装します。

リソースタイプは認可対象となる実体の情報から認可機構上のリソースへの関連付けやリソースの持つアクションやURI書式についての責務を持っています。

3. リソースを認可機構へ登録する。

管理者が認可設定ができるように、アプリケーションのリソースを認可機構へ登録します。

認可設定を管理する対象はリソースとして予め認可機構に登録しておかなければなりません。
稼働前に必要になるリソースグループやリソースの情報がある場合はインポートファイルとして用意しておき、セットアップなどで投入しておきます ( 図中 2-a ) 。 
アプリケーション側で認可対象としたいものが増えたり減ったりした場合、それに合わせて認可機構上のリソースも追加削除が必要になります ( 図中 2-b ) 。

4. 認可処理をアプリケーションへ組み込む。

ここまでで認可リソースの準備ができているはずなので、アプリケーションに認可機構と連携する実装を組み込みます ( 図中 3 ) 。

  • 適切なタイミングでリソースに対して認可要求を行う
  • アプリケーションで登録したリソースの認可設定を認可設定画面部品を呼び出して行う

5. リソースのキャッシュを検討・実装する。

必要であれば、リソースのキャッシュを実現する ResourceTypeCacheController クラスを実装します。 ( 図中 4 )

リソースが頻繁に利用される場合は、キャッシュを組み込むことでパフォーマンスを改善できます。
キャッシュを組み込む際には、リソースのキャッシュコントローラクラスを実装します。

キャッシュコントローラは、リソースタイプごとに定義することができます。
キャッシュコントローラを実装しない場合、リソース情報取得のたびにデータベースへのアクセスが発生します。

上記に加えて、認可ポリシーのキャッシュ可否を検討してください。
認可ポリシーのキャッシュを有効にするには、新たに定義したリソースタイプを「認可ポリシーキャッシュ対象設定」に追加します。
詳細は以下をご参照ください。
http://www.intra-mart.jp/download/product/iap/setup/im_configuration_reference/texts/im_tenant/policy-cache-config/index.html


以上を実施すると、独自のリソースを追加することが可能となります。

詳細は「認可 拡張プログラミングガイド」の「 リソース拡張ガイド 」をご参照ください。
このガイドでは、アプリケーションの認可対象をリソースとして追加するために、独自のアクションを定義する方法やリソースの構成の方法、
アプリケーションからの認可要求の仕方などについて説明しています。
アプリケーションの管理機能内で認可設定画面を部分的に呼び出す方法についても解説しています。

また、サンプルとして、新しいリソースタイプを作成し、データに対して「作成」「参照」「更新」「削除」のアクションを定義する例も解説しております。

サンプルをご活用いただき、アプリケーションにマッチしたリソースの拡張をご検討いただければと思います。

 

-開発Blog
-

執筆者:


comment

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

関連記事

no image

IM-Workflowの一覧を業務別に使い分けるには

この記事では、”もっと効率的に” IM-Workflowを利用した業務ができるように、一覧画面に表示するフローや案件を絞り込んで表示するための手順をご紹介します。 「フローグループ」機能を利用し、一覧 …

no image

EWS2017 「業務への適用イメージがすぐに湧く!  魔法の業務ロジック作成ツール『IM-LogicDesigner』実用例 10本勝負!」講演内容のご紹介

この記事では、EWS2017 Technology Track「業務への適用イメージがすぐに湧く!  魔法の業務ロジック作成ツール『IM-LogicDesigner』実用例 10本勝負!」での講演内容 …

no image

intra-mart Advent Calendar 2013 第23日:iWP/iAFでJSP1ファイルだけで、任意の画面を呼び出す方法

この記事は、intra-mart Advent Calendar 2013 第23日の記事です。 Accel Platformの機能紹介を行ってきたintra-mart Advent Calender …

no image

intra-martベースモジュール verr4.X パラメータチューニングガイド

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

no image

intra-martとリッチクライアントツールCurlの連携について

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

まだデータがありません。

RSSRSSRSSRSS