intra-mart Accel Platform 2020 Summer(Zephirine) リリースノート 第2版 2020-08-07

9.3.3. 認可

9.3.3.1. 認可設定画面のポリシー設定は即時反映されます。

  • 認可設定画面でのポリシーの設定(許可・禁止)は、即時反映されます。

9.3.3.2. 対象者条件の追加/更新/削除について注意があります。

  • 対象者条件は各機能で共通化されています。
    対象者条件の追加/更新/削除は各機能に影響する点に注意してください。
    • 各機能が用意しているリソースタイプ、および、リソースグループセットは以下を参照してください。
    更新/削除は、他の機能で使用されていないことを確認してください。特に対象者条件の削除については注意が必要です。
    対象者条件を削除すると、関連してポリシー設定も削除されます。このため対象者条件を削除すると、他の機能で設定していたポリシーも消えます。

9.3.3.3. router のパスに対する認可の整合性チェックは動的なルーティングでは行いません。

  • router は単体試験環境の場合、初期化時パスに対して異なる認可設定がされていないかのチェックを行います。
    このチェックは動的なルーティングに対しては行いません。
    動的なルーティングとは以下のようなルーティングを指します。
    • PathVariablesを使用するルーティング
    • jssp-routing の folder-mapping によるルーティング
    • service-routing の application-mapping によるルーティング

9.3.3.4. 「/home」の認可設定は別々のリソースとして定義されているため、権限変更時に注意が必要です。

  • 現状 /home は特定のアプリケーションを表していません。
    初期設定状態の場合、 /home にアクセスすると、ポータル(/imart/portal/desktop)が表示されます。
    これはルーティングテーブルで両方のパスが同じページを指すことで実現していますが、認可上では別々のリソースとして定義されていますので権限変更時には注意が必要です。
    ポータルのリソース
    画面・処理
    ポータル
    ポータル表示
    ポータル
    /home のリソース
    画面・処理
    テナント
    デフォルトホーム
    上記のデフォルトの状態の例でいえば、ポータルのリソースのみ認可を禁止したとしても
    デフォルトホームの認可を禁止していなければ /home にアクセスすることでポータルを見ることができてしまいます。

9.3.3.5. 最新の認可設定が反映されない可能性があります。

  • 分散環境でクラスタ間のネットワークに障害が発生した場合、
    障害が発生したノードのキャッシュ情報がクリアされずに古い認可設定で intra-mart Accel Platform が動作する可能性があります。
    この事象を回避するには以下の選択があります。
    • 運用フェーズでは認可設定の変更を行わない(=キャッシュクリアが発生しない運用を行う)
    • 障害が発生したノードを特定し、再起動等を行う。
    • 認可設定のキャッシュを行わない
    • 認可設定のキャッシュの生存時間を短くする
    なお、ネットワーク障害等により、あるノードがクラスタから離脱している状態で認可設定変更が実行されると、離脱しているノードのキャッシュはクリアされません。
    また、そのノードが再度クラスタに復帰した場合は、ノードが離脱する前にキャッシュされていた認可設定でアクセス制御が行われます。

9.3.3.6. 認可設定でメニューグループカテゴリの参照・管理権限を付与・剥奪してもメニュー設定画面の表示には影響しません。

  • 認可設定画面を開き、リソースの種類から「メニュー設定」を選択すると、メニューグループカテゴリとメニューグループのリソース一覧が表示されます。
    初期状態では、メニューグループカテゴリ (例:「グローバルナビ (PC用)」) の参照・管理権限ともに何も設定されていない状態です。
    この画面で、メニューグループカテゴリに対して参照・管理権限を設定しても、メニュー設定画面のカテゴリ選択に表示される内容は変化しません (権限設定に関わらず、常に全てのメニューグループカテゴリが表示されます)。

    これは、認可設定画面で表示されるメニューグループカテゴリは、メニューグループをまとめるだけのグループとして登録されており、メニューグループカテゴリ自身を示すものではないからです。
    そのため、メニューグループカテゴリに対して権限を設定しても、配下に登録されているメニューグループに設定が継承されるのみで、メニューグループカテゴリには各権限が設定されません。

9.3.3.7. メニューに登録されているページの認可リソースを削除した場合、画面アクセス時にシステムエラーが発生します

  • メニューを削除せずに、該当メニューの認可リソースを削除した場合、
    グローバルナビ等のメニューを表示する際に、認可リソースが見つからないため以下のエラーが発生します。

    jp.co.intra_mart.foundation.authz.services.ResourceNotFoundException: [E.IWP.AUTHZ.DECISION.10007] リソースグループが登録されていません。 URI = service://test/test
    
    メニューの表示される画面全てでシステムエラーとなるため、ほとんどの画面が表示できなくなります。

    メニューを削除せずに、該当メニューの認可リソースの削除を行わないでください。
    (運用時に利用している認可リソースの削除は行わないでください。)

    もし削除してしまった場合は、以下の手順で認可リソースの再登録を行ってください。
    1. 以下のルーティング設定から該当の画面URLを検索し、削除、または、コメントアウトしてサーバを再起動します。

      %CONTEXT_PATH%/WEB-INF/conf/routing-xxx-config/***.xml
    2. メニュー設定画面で該当のメニューアイテムを削除します。

    3. ルーティング設定を元に戻して、サーバを再起動します。

    4. 認可設定画面で該当の認可リソースを登録します。

    なお intra-mart Accel Platform 2013 Summerより、認可リソース削除時のバックアップ機能が追加されました。
    認可リソースを削除したことで想定外の動作を引き起こしてしまった場合、バックアップされたファイルをジョブネット経由で復元することで、認可リソースを削除前の状態に戻すことができます。
    詳細については、「認可仕様書 」の「 リソース削除時のバックアップ 」章を参照してください。

9.3.3.8. intra-mart Accel Platform で提供している認可リソースは削除しないでください。

  • intra-mart Accel Platform で提供している認可リソースを削除した場合、テナント環境セットアップが正常に動作しない場合があります。
    例えば、プロダクトバージョンが「8.0.0」、または、「8.0.1」で提供されていた認可リソースを削除したとします。
    その状態で、「8.0.2」以降のプロダクトバージョンを選択したWARファイルでデプロイし、テナント環境セットアップを行うと、テナント環境セットアップが失敗します。

9.3.3.9. 認可設定画面でのリソース、および、条件の絞り込みは、ログインユーザのロケールでの表示名で行われます。

  • 認可設定画面の検索機能では、ログインユーザのロケールでの表示名が設定されていないリソース、および、条件は、検索結果に表示されません。

9.3.3.10. IM-Authz(認可)の 対象者条件は、デフォルト組織セットのみを扱います。

  • 具体的には、以下の検索が該当します。
    ・ユーザ検索
    ・会社組織検索
    ・役職検索

9.3.3.11. 認可制御(アクセス権)に利用できるサブジェクトグループ数は1ユーザにつき最大1000件です。

  • 1ユーザに割り当てるサブジェクトグループ数が1000件を超えると権限判断を行う処理でエラーが発生します。サブジェクトグループの割り当ては1ユーザにつき1000件以内となるように設定してください。