intra-mart Accel Platform 認可仕様書 第12版 2017-08-01

認可設定画面

ここでは認可設定画面の仕様について説明します。

ポリシー編集機能

認可設定画面では

  • リソース、リソースグループの追加・編集・削除
  • サブジェクトグループ(およびサブジェクト)の追加・編集・削除
  • ポリシーの変更

が行えます。

画面の縦軸がリソース、およびリソースグループで、横軸がサブジェクトグループ(画面表示上は条件)になっており、格子状に並んでいるのが各リソース/サブジェクトに対する許可・禁止の設定です。

編集ロック状態

認可設定画面では取り扱う情報の対象が多いため変更は原則として即座にコミットされます。誤操作でポリシーを変更してしまうことを防止するために、画面を表示した時点では変更操作がロックされています。

右上の「権限設定を開始する」ボタンを押下することでロックを解除できます。

権限の設定と表現

ポリシー設定には「許可」「禁止」「未設定」の3つの状態を設定できます。編集ロックを解除した状態でセルをクリックする事で「許可」「禁止」「未設定」を順番に切り替えます。画面のアイコン上は以下のように表現されます。

  • authz_inlineimg_cell_declare_permit 濃い緑のチェックマーク : 明示的に「許可」を設定している状態
  • authz_inlineimg_cell_declare_deny 濃い赤の×マーク : 明示的に「禁止」を設定している状態
  • authz_inlineimg_cell_inherit_permit 薄い緑のチェックマーク(矢印のオーバレイ付き) : 未設定。上位リソースグループの「許可」設定を継承している状態
  • authz_inlineimg_cell_inherit_deny 薄い赤の×マーク(矢印のオーバレイ付き) : 未設定。上位リソースグループの「禁止」設定を継承している状態

薄いアイコンはその箇所が未設定であることを示します。未設定の場合はポリシー解釈器によってどのように判断するかが決定されます。

デフォルトではポリシー解釈器は以下のように判断します。
  • 未設定状態の場合、リソースグループの構造を参照してより上位のリソースグループの設定を参照します。
  • 最上位のリソースグループまで何も設定されていない場合は「禁止」が設定されます。

ポリシー解釈器の詳細は「ポリシー解釈器 」を参照してください。

権限設定が重複する場合の取り扱い

ユーザは複数のサブジェクトグループに当てはまることがあるので、認可設定上単一のリソースに対して判定しようとしても複数の設定が該当する可能性があります。あるロールには許可、ある組織には禁止されているリソースがあり、ユーザがそれら両方に所属しているような場合です。

この場合の振る舞いも権限の継承同様ポリシー解釈器によってどのように判断するかが決定されます。ポリシー解釈器の詳細は「ポリシー解釈器 」を参照してください。

注意

デフォルトの判断ではユーザがマッチするサブジェクトグループのうち一つでも「許可」が設定されていれば「許可」と判断されます。

特定リソースについての権限の保護

認可設定画面を操作するために必要な権限は、設定画面の仕様として保護しています。

具体的には現在ログイン中のユーザのサブジェクトグループについて、認可設定画面用の権限をすべて外したり禁止したりしようとすると、エラーとして操作が中断されます。 保護されるリソースは設定ファイルに記載されています。詳細は「設定ファイルリファレンス」の「認可設定画面」「保護リソース設定」の項を参照してください。

サブジェクトグループの追加・編集・削除

サブジェクトグループ(対象者の条件)を追加・編集・削除できます。

  • サブジェクト(画面上では対象者)を、複数設定できます。
  • 組織や役職の場合「上位」や「下位」といった付加条件を付けることができます。
  • 各サブジェクトに対して「除外」条件を付与できます。
  • 「すべてに一致する」か「いずれかに一致する」かを選択できます。

ただし、以下の制約があります。

  • 左上のセレクトボックスが「すべてに一致する」の場合、全サブジェクトに対して「除外」を設定して条件を作成することはできません。
  • 「いずれかに一致する」の場合、「除外」を使うことはできません。

認可設定画面でサブジェクトグループを選択して「条件の削除」ボタンを押下すると、条件を削除できます。ただし以下の制約に注意する必要があります。

  • 「認証」カテゴリのサブジェクトグループは削除できません。
  • サブジェクトグループはシステム全体で共有されています。サブジェクトグループを削除すると他のリソースの種類(リソースの種類の切り替え 参照)などにも影響を及ぼすため、注意してください。

リソース参照編集機能

リソースやリソースグループの詳細な情報を参照できます。リソース/リソースグループの欄にマウスカーソルをあてると、右側に小さなアイコンが表示されます。子のアイコンをクリックするとリソース/リソースグループの詳細表示画面が表示されます。

編集ロックが解除された状態の場合、この画面にメニューが追加され、リソースやリソースグループの追加・編集・削除ができます。

リソースグループを削除すると、配下のグループやリソースも再帰的に削除して、さらに削除されたグループに紐づくポリシー設定も削除されます。

注意

リソースは原則としてプログラムの必要に応じて追加されるため、削除するとプログラムの想定外の動作を引き起こす可能性があります。
テナント環境セットアップで登録されたり、システムが自動的に追加したリソースは原則削除しないようにしてください。
削除する際は本当に必要のないリソースであることを確認してから実施してください。

リソースを削除した場合は、削除したリソースと関係する認可設定情報のバックアップが自動的に保存されます。
詳細については「リソース削除時のバックアップ 」を参照してください。

編集を補助する機能

リソースの説明

縦軸(リソース、リソースグループ)の一覧の部分にマウスカーソルを当てるとリソースやリソースグループに設定されている説明がポップアップで表示されます。

絞り込み検索

縦軸(リソース、リソースグループ)や横軸(サブジェクトグループ)は名称の部分一致検索で絞り込んで表示できます。画面左上の虫眼鏡アイコンをクリックすると、縦軸、横軸それぞれの検索ボックスが表示されます。キーワードを入力して検索ボタンを押下することで、それぞれの軸が絞り込み表示されます。この条件は検索ボックスを閉じてもクリアされません。絞り込みを解除する場合は検索ボックスにあるクリアボタンを押下してください。

絞り込み検索後の解除

縦軸は絞り込み検索後、いずれかのリソース/リソースグループをダブルクリックするとその位置を中心に絞り込みを解除できます。

アクションの絞り込み

画面に表示しているアクションが複数ある場合、いずれかのアクションのみに表示を絞り込むことができます。画面上側の「アクションの種類」のセレクトボックスから、表示したいアクションを選択すると、縦軸のアクションが選択したもののみに絞られます。

現在の階層表示

縦軸をスクロールしていくとリソースグループ階層のどの位置を見ているかがわかりにくくなるため、現在表示している位置の階層が縦軸の上に表示されます。

リサイズ

リソースやリソースグループの名称が長すぎで表示しきれない場合、枠線をドラッグすることで表示領域を左右に広げることができます。サブジェクトグループの欄についても同様に上下に広げることができます。

サブジェクトグループ・カテゴリの並び替え

サブジェクトグループや、サブジェクトグループのカテゴリを並べ替えることができます。縦に並んでいる順番がソート順です。ドラッグアンドドロップで並び順を変更できます。

赤色のサブジェクトグループ

画面上赤く表示されているサブジェクトグループは、現在操作中のユーザが該当するサブジェクトグループです。

インポート・エクスポート

XML形式

コラム

XML形式のエクスポート機能は、intra-mart Accel Platform 2012 Winter(Bourbon)から提供しています。
認可設定画面では、認可設定の情報を特定の範囲に限って、XML形式でエクスポートできます。
認可設定画面上に表示されている任意のポリシーと、関連するリソースグループ・リソース・サブジェクトグループを同一の「リソースの種類」内で出力できます。
認可設定画面での操作手順に関しては、「テナント管理者操作ガイド - 認可を設定する 」を参照してください。
なお、XML形式のインポートは認可設定画面上から実行することはできません。ジョブスケジューラを利用してください。

コラム

XML形式のインポート・エクスポートは、編集ロック状態でも実行できます。
編集ロックを解除した状態でエクスポート対象を選択しようとすると意図せずポリシーを変更してしまう可能性があるため、編集ロックを行った状態でエクスポートに関する操作を行うことをお勧めします。

Excel(xlsx)形式

コラム

「IM-Authz(認可)Excelインポート・エクスポート」モジュールは、intra-mart Accel Platform 2014 Summer(Honoka)から提供しています。
認可設定画面上で選択可能な「リソースの種類」のうち、すべて、または、現在画面上で選択しているもののいずれかを選択して、Excel(xlsx)形式で対象の認可設定状態を出力できます。
すべての「リソースの種類」を出力する場合、「リソースの種類」ごとにシートが作成されます。
また、認可設定画面では、Excel(xlsx)形式に限ってインポートできます。
認可設定画面、または、ジョブスケジューラによってエクスポートしたExcel(xlsx)形式の編集済みファイルを認可設定画面上からアップロードしてインポートできます。
認可設定画面での操作手順に関しては、「テナント管理者操作ガイド - 認可を設定する 」を参照してください。

注意

  • Excel(xlsx)形式のエクスポートを使用するためには、別途「追加機能」 - 「IM-Authz(認可)Excelインポート・エクスポート」モジュールを導入する必要があります。
  • 認可設定画面を「部品化 」によって開いた場合、認可設定画面上からExcel(xlsx)形式のインポート・エクスポートを実行できません。
  • 認可設定画面上からExcel(xlsx)形式のインポート・エクスポートを実行した場合、処理が終了するまで認可設定の編集ロックを解除することはできません(画面上から権限設定を変更できません)。
  • 認可設定画面上からExcel(xlsx)形式のインポート・エクスポートを実行した場合、処理は非同期で実行されます。
    これは、認可設定のデータ量によってはExcel(xlsx)形式の処理に時間がかかることがあるためです。
    この非同期処理はテナントごとにアプリケーションロックがかかります。そのため、同じテナント内で、認可設定画面から同時に複数のインポート・エクスポート処理を実行することはできません。
    インポート・エクスポートの処理が終わらず、やむを得ず処理を中断させる場合は、以下の順序に従って処理を強制終了させてください。
    1. システム管理者に依頼して、システム管理画面からログインします。
    2. 「システム管理」 - 「非同期 - タスクキュー一覧」をクリックします。
    3. 「並列タスクキュー」に表示されているキューの「詳細」ボタンをクリックします。
    4. 「処理中タスク」の「開始日時」に、インポート・エクスポートの実行を開始した時刻が表示されているタスクの「終了」ボタンをクリックします。
    5. 「キューの先頭に再登録」を「しない」、「キューの状態」を「停止する」を選択して「決定」ボタンをクリックします。

コラム

Excel(xlsx)形式のインポート・エクスポートは、編集ロック状態でも実行できます。
編集ロックを解除した状態でエクスポート対象を選択しようとすると意図せずポリシーを変更してしまう可能性があるため、編集ロックを行った状態でエクスポートに関する操作を行うことをお勧めします。

リソース削除時のバックアップ

コラム

リソースのバックアップ機能は、intra-mart Accel Platform 2013 Summer(Damask)から提供しています。
認可設定画面上でリソースグループ、または、リソースを削除した場合、「認可設定画面の設定 」の設定内容に応じて、削除したリソースグループ、リソースに関係する認可設定情報が自動的にバックアップされます。
リソースを削除したことで想定外の動作を引き起こしてしまった場合、バックアップされたファイルをジョブネット経由で復元することで、リソースを削除前の状態に戻すことができます。
バックアップされたファイルは認可設定画面の設定ファイルに設定された場所に保存されています。ジョブ、または、ジョブネットの実行パラメータに、「file」をキーにして、値にファイルパスを設定してから実行してください。
用意されているジョブとジョブネットの一覧については「認可情報のインポート・エクスポート 」を参照してください。

注意

削除したリソースによっては、ジョブネット管理画面を開くことができなくなる場合があります。
この場合、以下の順序に従って復旧を行ってください。
  1. ジョブネット管理画面を開くことができる権限を持つユーザでログインします。

  2. 以下の URL にアクセスして、グローバルナビを無効にした状態で、ジョブネット管理画面を直接開きます。

    http://<HOST>:<PORT>/<CONTEXT_PATH>/tenant/job_scheduler/jobnet_maintenance?imui-theme-builder-module=headwithcontainer

上記手順でジョブネット管理画面を開くことができない場合は、システム管理画面から認可設定画面とジョブネット管理画面を開くための権限付与を行ってください。
権限付与の方法は、「システム管理者操作ガイド」 - 「テナント管理」を参照してください。
権限付与後、再度上記手順に従って操作しなおしてください。

コラム

認可設定情報をバックアップから復旧する場合は、以下の順序でジョブネットを実行してインポートを行ってください。
  • 「テナントマスタ」-「インポート」-「認可(リソースグループ)インポート」
  • 「テナントマスタ」-「インポート」-「認可(リソース)インポート」
  • 「テナントマスタ」-「インポート」-「認可(サブジェクト、および、グループ)インポート」
  • 「テナントマスタ」-「インポート」-「認可(ポリシー)インポート」 ※
※ 「認可(ポリシー)置換インポート」は使用しないでください。

認可設定画面の設定

認可設定画面でリソースグループ、または、リソース削除時に、自動的に保存するバックアップ処理の変更を行えます。

設定ファイル配置場所
%CONTEXT_PATH%/WEB-INF/conf/authz-editor-config.xml
XMLスキーマファイル
%CONTEXT_PATH%/WEB-INF/schema/authz-editor-config.xsd

以下のサンプルをもとに設定内容について説明します。

<?xml version="1.0" encoding="UTF-8"?>
<authz-editor-config
    xmlns="http://www.intra-mart.jp/authz/authz-editor-config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.intra-mart.jp/authz/authz-editor-config ../schema/authz-editor-config.xsd">

  <resource-group-backup>
    <path>im_authz/backup</path>
    <max-size>30</max-size>
  </resource-group-backup>

</authz-editor-config>
  • resource-group-backup要素 : リソースグループ、または、リソース削除時のバックアップを設定する要素です。
    • path要素 : バックアップを保存するパブリックストレージのパスを設定する要素です。
    • max-size要素 : バックアップの最大保存件数を設定する要素です。

バックアップ先の保存形式

認可設定情報のバックアップは、「認可設定画面の設定」で設定された場所に、バックアップ実行時の現在日時(システムタイムゾーン)と、リソース削除時の実行者ユーザコードが付加されたディレクトリが作成されます。

ディレクトリ名の形式は 《現在日時(yyyyMMdd_HHmmss)》_《ユーザコード》 です。ただし、すでに同じディレクトリが存在する場合は枝番が付けられます。

そのディレクトリ内に以下のファイルが保存されます。

ファイル名 説明
authz-resource-group.xml リソースグループ情報
authz-resource.xml リソース情報
authz-subject-group.xml サブジェクト、サブジェクトグループ情報
authz-policy.xml ポリシー情報

また、バックアップ保存時にディレクトリの数が認可設定画面の設定ファイルで設定された最大保存数を超えた場合、最も古い日時形式の名前で保存されたディレクトリから順次削除されます。

注意

認可設定画面の設定ファイルで設定されたバックアップの保存先には、手動でディレクトリを追加しないでください。
予期せず削除される場合があります。

キャッシュのクリア

認可機構の持つキャッシュをクリアします。

認可機構ではユーザがリソースにアクセスする毎に権限があるかどうかを認可判断機能で判断しなければなりません。毎回ポリシー設定を取得して判断処理を行うとユーザのアクセス頻度などによってパフォーマンスの低下が著しくなります。これを緩和するために認可判断の結果をキャッシュできます。( キャッシュ設定 により変更可能です)

認可設定画面でポリシーを変更した場合は該当部分のキャッシュは同期的にクリアするようになっており、管理者が設定した情報とキャッシュの間でずれが発生することを防止しています。

アプリケーションサーバが分散構成をとっている場合、キャッシュは各アプリケーションサーバ毎に保持しています。この場合でもポリシー変更時には分散構成のすべてのアプリケーションサーバのキャッシュが破棄されます。

このため管理者が認可設定画面からポリシーを変更しても通常キャッシュのクリアを行う必要はありません。

ただしネットワークのエラーなどの原因で、いくつかのアプリケーションサーバがキャッシュのクリアに失敗した場合、それらのアプリケーションサーバでは古い認可設定のキャッシュが残り続けます。このようにキャッシュをクリアできなかった場合、認可設定画面上ではエラーとして通知されます。古い認可設定のキャッシュを削除するためにネットワークの状態を修復した上で、この機能を使用して手動でキャッシュクリアを行ってください。

認可設定画面の設定

認可設定画面でリソースグループ、リソース、および、ポリシー更新時にキャッシュ不整合によるエラーが発生した場合の挙動の変更を行えます。

設定ファイル配置場所
%CONTEXT_PATH%/WEB-INF/conf/authz-editor-config.xml
XMLスキーマファイル
%CONTEXT_PATH%/WEB-INF/schema/authz-editor-config.xsd

以下のサンプルをもとに設定内容について説明します。

<?xml version="1.0" encoding="UTF-8"?>
<authz-editor-config
    xmlns="http://www.intra-mart.jp/authz/authz-editor-config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.intra-mart.jp/authz/authz-editor-config ../schema/authz-editor-config.xsd">

  <policy-update>
    <cache-update-error rollback="true" />
  </policy-update>
  <resource-group-update>
    <cache-update-error rollback="true" />
  </resource-group-update>

</authz-editor-config>
  • policy-editor-config要素 : 設定のルートになる要素です。
  • policy-update要素 : ポリシー更新時の挙動を設定する要素です。
  • cache-update-error要素 : キャッシュ更新に問題が発生した場合の挙動を設する要素です。
  • rollback属性 : キャッシュ更新で問題が発生した場合、ポリシーの更新をロールバックするかどうかを設定します。
  • resource-group-update要素 : リソースグループ、または、リソース更新時の挙動を設定する要素です。
  • cache-update-error要素 : キャッシュ更新に問題が発生した場合の挙動を設する要素です。
  • rollback属性 : キャッシュ更新で問題が発生した場合、リソースグループとリソースの更新をロールバックするかどうかを設定します。

リソースの種類の切り替え

リソースは種類によって設定できるサブジェクトが異なるため、リソースによって切り替えて管理する必要があります。左上の「リソースの種類」のセレクトボックスを選択して表示するリソースの種類を切り替えます。

リソースの種類については後述する 部品化 で定義されたものが一覧で表示されます。

部品化

認可設定画面は設定画面を部分的に切り出して部品化して使用できます。

この機能は、特定のアプリケーション用に準備したリソース群についてのみ権限設定できる認可設定画面を、そのアプリケーションの管理機能の一環として使用するという形を想定しています。

そのために以下が必要です。

  1. 部品化された画面を管理するリソースグループセットの作成

    部品化機能を利用しようとするアプリケーションが、認可設定のために使用するリソース/リソースグループの構造を定義しなければなりません。intra-mart Accel Platform でもメニューやポータルが利用するために特定のリソースグループセットを定義しています。intra-mart Accel Platform で予約しているリソースセットについては 予約されているリソースグループセット一覧 を参照してください。

  2. 部品化された画面についての設定(XMLファイル)の設置

    部品化のためのID、上記で定義したリソースグループセット、使用するサブジェクトタイプについて定義した設定ファイルを記述します。

    設定ファイルの配置場所

    %CONTEXT_PATH%/WEB-INF/conf/authz-partial-policy-edit-config/

    XMLスキーマファイル

    %CONTEXT_PATH%/WEB-INF/schema/authz-partial-policy-edit-config.xsd

    以下サンプルをもとに設定内容について説明します。

    <?xml version="1.0" encoding="UTF-8"?>
    <authz-partial-policy-edit-config
        xmlns="http://www.intra-mart.jp/authz/authz-partial-policy-edit-config"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.intra-mart.jp/authz/authz-partial-policy-edit-config ../../schema/authz-partial-policy-edit-config.xsd">
    
      <part-config>
        <part-id>im_authz_impl_router</part-id>
        <caption-cd>CAP.Z.IWP.ROUTER.AUTHZ.PARTCONFIG.TITLE</caption-cd>
        <resource-groups>
          <resource-group-id>http-services</resource-group-id>
        </resource-groups>
        <subject-types>
          <subject-type-id>im_authz_meta_subject</subject-type-id>
          <subject-type-id>imm_user</subject-type-id>
          <subject-type-id>imm_company_post</subject-type-id>
          <subject-type-id>imm_department</subject-type-id>
          <subject-type-id>imm_public_grp</subject-type-id>
          <subject-type-id>imm_public_grp_role</subject-type-id>
          <subject-type-id>b_m_role</subject-type-id>
        </subject-types>
        <callbacks>
           <resource-group-authorizer>jp.co.intra_mart.system.authz.ResourceGroupAuthorizer</resource-group-authorizer>
        </callbacks>
      </part-config>
    
    </authz-partial-policy-edit-config>
    
    • part-config要素 : 設定のルートになる要素です。
    • part-id要素 : この設定のIDを付与します。他の設定と重複しないよう注意してください。
    • caption-cd要素 : この設定の名称を引くためのメッセージコードを指定します。認可設定画面のリソースの種類の欄に表示されるため、国際化を考慮してメッセージリソースを用意してください。
    • resource-groups要素 : 部品化した認可設定画面の編集対象にするリソースグループのIDを設定します。
    • resource-group-id要素 : 対象にするリソースグループのIDを設定します。resource-groups要素内に複数指定可能できますが、単一のリソースグループセット内である必要があります。
    • subject-types要素 : 部品化した認可設定画面で使用できるサブジェクトタイプIDを設定します。ここに挙げられている以外のサブジェクトタイプは選択できなくなります。
    • subject-type-id要素 : 使用するサブジェクトタイプIDを設定します。subject-types要素内に複数指定できます。
    • callbacks要素 : 認可設定画面を部品として呼び出す場合に認可から呼び出されるリソース群の表示可否判断を行うコールバックを指定できます。任意項目です。
    • resource-group-authorizer要素 : 認可設定画面を部品として呼び出す場合に指定されたリソースグループに対する権限設定可否判断クラスを指定できます。権限設定可否判断クラスとは、 jp.co.intra_mart.foundation.authz.partial.AuthzPartialResourceGroupAuthorizer インタフェースを実装したクラスです。任意項目です。
  3. <imart> タグまたはカスタムタグによる呼び出し

    以下のように指定すると、画面にボタンが表示され、ポップアップ画面として認可設定画面を呼び出せます。

    <imart type="imAuthzPolicyEditor" displayType="button" partId="sample_part_id">ボタンで表示</imart>
    

    partId には 2. で作成した設定ファイルで指定した part-id を指定します。resource-group-authorizer のクラスの詳細については「認可 拡張プログラミングガイド」を参照してください。そのほかのパラメータや、使い方の詳細についてはAPIリストを参照してください。

編集できない領域

認可設定画面では 部品化 で説明した設定を収集し、「リソースの種類」の一覧に表示しています。逆に、 部品化 で説明した設定で指定されている範囲のリソース以外のものは、認可設定画面には表示されません。この領域はユーザからは権限設定できない領域になるため注意してください。

対象者検索の拡張領域

サブジェクトタイプを独自に追加した場合などに認可設定画面でも追加したサブジェクトタイプを対象者として検索できるようにする必要があるため、検索画面を開くためのボタンを追加できます。

コラム

サブジェクトタイプの追加の詳細については 「認可拡張プログラミングガイド」の「サブジェクト拡張ガイド」の章 を参照してください。

ここでは検索画面を開くためのボタンを追加するための仕様について説明します。

追加のボタンはプラグインの機構を使用します。プラグインに関してはAPIリストの PluginManager を参照してください。以下のような設定ファイルを作成します。

配置先
%CONTEXT_PATH%/WEB-INF/plugin/<Plugin ID>/plugin.xml
拡張ポイント
jp.co.intra_mart.authz.subject.search

以下IM共通マスタのユーザの場合をサンプルに設定内容を説明します。

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
  <extension
      point="jp.co.intra_mart.authz.subject.search" >
    <subjectSearchConfig
        name="IM-Master Authz Subject Search Config"
        id="jp.co.intra_mart.im_master.authz.subject.search"
        version="8.0.0"
        rank="10"
        enable="true">

      <!-- サブジェクト共通のヘッダ埋込ページ -->
      <headerPage>im_master_subjecttypes/authz/subject/search</headerPage>

      <buttons>
        <!-- ボタン情報。複数のボタンを記述可能 -->
        <!-- [属性] subjectType サブジェクトタイプ -->
        <!-- [属性] displayName 表示名(多言語化) -->
        <!-- [属性] action ボタン押下時の関数名 function(pluginInfo:この設定情報)。"a.b.c" のようにオブジェクトプロパティの指定が可能。 -->
        <button
            subjectType="imm_department"
            displayName="%button.department"
            action="immSubjectSearch"
            >
          <!-- 付加条件セットからこのサブジェクトで使う設定を選ぶ。 -->
          <!-- [属性] id この検索ボタンで利用する付加条件セットのID -->
          <!-- [属性] value 付加条件セットのうち初期表示する付加条件の種別 -->
          <condition id="im_master.condition" value="eq"/>

          <!-- ボタン表示イメージ置き換え用ページ。 -->
          <!-- これを指定するとボタンではなく指定のjsspをインクルードします -->
          <!-- <viewPage>sample/authz/subject_plugins/sample/view</viewPage> -->

          <!-- オプション key/value で設定。内容は任意です  -->
          <options>
            <target>jp.co.intra_mart.master.search.department</target>
            <callback>immDeptSearchCallback</callback>
          </options>
        </button>
      </buttons>

      <!-- 付加条件セットマスタ -->
      <conditions>
        <!-- 付加条件セット 複数記述可能 -->
        <!-- [属性] id 付加条件セットのID -->
        <condition id="im_master.condition">
          <!-- Comparator 定義。複数記述可能。Selectボックスに表示される。 -->
          <!-- typeが 選択肢のvalue値、displayが表示名 -->
          <!-- [属性] type 付加条件の値 -->
          <!-- [属性] displayName 表示名 -->
          <comparator type="gt" displayName="より大きい" />
          <comparator type="ge" displayName="以上" />
          <comparator type="eq" displayName="等価" />
          <comparator type="le" displayName="以下" />
          <comparator type="lt" displayName="より小さい" />
        </condition>
      </conditions>
    </subjectSearchConfig>
  </extension>
</plugin>

<subjectSearchConfig> 要素までは PluginManager で既定している書式のため、 ここでは <subjectSearchConfig> より下の要素について説明します。

  • headerPage 要素: ヘッダとして読み込むページを指定します。追加したボタンでのイベントハンドラ等を記述する場所です。
  • buttons 要素: 下記のボタン要素のコンテナです。
  • button 要素: 追加するボタンを表す要素です。複数記述可能です。
  • subjectType 属性: このボタンで扱うサブジェクトタイプIDを指定します。
  • displayName 属性: このボタンの表示名を指定します。先頭が%のコードを指定するとメッセージリソースからそのコードに設定された文字列を取得します。
  • action 属性: このボタンをクリックされた場合に実行するイベントハンドラを指定します。このイベントハンドラはheaderPageで指定したページに記述しておきます。
  • condition 要素: 付加条件として使用する条件セットを指定します。下記のconditions要素で指定したものから選択します。
  • id 属性: 下記のconditions要素で設定しているものから使用する条件セットを指定します。
  • value 属性: デフォルト選択値を指定します。
  • viewPage 要素: ボタンの代わりにjsspを読み込んで表示させたい場合、この要素に読み込むjsspのパスを指定します。
  • options 要素: 任意の値を設定できます。タグ名をキー、タグ内のテキストを値としたハッシュ配列がボタンに対して設定されます。
  • conditions 要素: 付加条件として使用する条件セットのマスタ定義です。
  • condition 要素: 付加条件のひとまとまり(条件セット)を表します。
  • id 属性: この条件セットのIDです。
  • comparator 要素: 付加条件の選択肢を表します。
  • type 属性: 選択肢の値です。
  • displayName 属性: 選択肢の表示名を表します。