intra-mart Accel Platform 2024 Spring(Iris) リリースノート 初版 2024-04-01

9.3.2. IM-HybridSSO ・外部メニュー連携

9.3.2.1. 外部メニュー連携機能を利用するためには、シングルサインオン認証を行うことを推奨します。

  • 外部メニュー連携機能を利用して、メニューから認証が必要な外部サイトにアクセスするためには、あらかじめログインしている必要があります。
    各サイトの認証を管理するためには、別途 シングルサインオン製品を導入して、シングルサインオン認証を行う必要があります。
    なお、 intra-mart Accel Platform と iWP / iAF v7.2 の間で
    シングルサインオン連携するための機能( IM-HybridSSO )が、 2014 Summer(Honoka) から利用可能になりました。
    詳しくは、「 intra-mart Accel Platform セットアップガイド 」-「 iAP-iWP間SSO連携(IM-HybridSSO) 」を参照してください。
    シングルサインオン認証を行っていない場合、以下のような制限事項が発生します。
    • メニュープロバイダから取得したメニューにアクセスしても、自動ログインされません。

      • 該当のページに権限設定がある場合、エラーページが表示されます。
        エラーページからログイン画面へ遷移してログインすることも可能ですが、ブラウザの設定や環境によっては正常にログインできない場合があります。
      • また、メニュープロバイダが intra-mart Accel Platform の場合、
        メニュープロバイダ側の「ログイン」画面が表示された段階でメニュークライアント側のグローバルナビが表示されなくなります。
    • メニュークライアントとメニュープロバイダに別々にログインすることになるため、同じユーザであることが保証されません。

      • 外部メニュー連携で取得するメニュー情報は、メニュークライアントにログインしているユーザにひもづく情報です。
      • メニュープロバイダに別のユーザでログインしていても画面上では判断できないため、誤ったオペレーションを行う可能性があります。
    • メニュークライアントからログアウトしても、メニュープロバイダ側は自動ログアウトされません。

      • メニュープロバイダに直接アクセスすることで、ログイン状態のままアクセスが可能です。
    外部メニュー連携に関しての詳細は、「 intra-mart Accel Platform セットアップガイド 」-「 外部メニュー連携 」を参照してください。

9.3.2.2. 外部メニュー連携で取得する対象のユーザコードは、外部メニュー連携の取得元のユーザコードと同じである必要があります。

  • 外部メニュー連携機能では、取得元にログインしているユーザのユーザコードを利用して、取得先のメニュー情報を取得してます。
    そのため、取得元と取得先でユーザコードが一致している必要があります。

9.3.2.3. 外部メニュー連携機能に関して、最新のメニューが表示されない場合があります。

  • 外部メニュー連携機能に関して、最新のメニューが表示されない場合があります。

    1. 運用中に連携先サーバのメニューを編集した場合、最新のメニューが表示されません。
    2. メニュー情報取得時にネットワークエラーなどで一時的に連携先サーバにアクセスできなかった場合、外部メニュー情報は取得されずにメニューが表示されます。
    • 連携先サーバにアクセス可能となった場合でもメニュー情報の再取得は行われません。
    一部のメニューは表示を高速化するため情報をキャッシュしています。
    そのため、上記 1, 2 の事象が発生し、あるユーザでは外部メニュー情報が表示され、別のユーザでは表示されないという状況が発生します。

    メニュー情報をキャッシュしている箇所は、ユーザが利用しているテーマに毎に異なります。

    1. 「intra-mart Accel Platform 標準テーマ」、および、「intra-mart Accel Platform Slim Dropdown テーマ」の場合

    メニュー情報をアプリケーションサーバ上でキャッシュしています。
    メニュー設定画面の「キャッシュクリア」からメニューのキャッシュクリアを実行してください。
    メニュー設定画面については 「テナント管理者操作ガイド」 の「メニューを設定する」の項目を参照してください。

    2. 「intra-mart Accel Platform Slim Side Menu テーマ」の場合

    メニュー情報をブラウザのセッションストレージでキャッシュしています。
    最新のメニュー情報を取得するタイミングは以下の通りです。
    • ユーザがブラウザのセッションストレージを破棄する
    • メニュー情報を取得してから10分以上経過している状態で画面遷移を行う
    • ユーザが一度ログアウトして再ログインを行う( 2020 Summer(Zephirine) 以降 )
    • ユーザが所属組織の切り替えを行う( 2023 Spring(Gerbera) 以降 )

    3. 「iWP/iAF Version5 互換テーマ」、および、「iWP/iAF Version6 互換テーマ」の場合

    メニュー情報をHTTPセッション上でキャッシュしています。
    ユーザが再ログインを行うことで、メニュー情報の再取得を行います。

    なお、メニュークリック時の遷移先画面に対する実行権限が無い場合、表示されているメニューをクリックしても403エラーでアクセスすることはできないため、セキュリティ上で問題となることはありません。

9.3.2.4. 自動ログイン機能は、iAP-iWP間SSO連携モジュール( IM-HybridSSO )のログアウト連携に対応していません。

  • 自動ログイン機能は、iAP-iWP間SSO連携モジュール( IM-HybridSSO )のログアウト連携に対応していません。

    IM-HybridSSO のログアウト連携機能は、ログイン画面表示時に行われます。
    そのため、ログイン画面を経由せずに認証を行う自動ログイン機能は、 IM-HybridSSO の ログアウト連携に対応していません。
    自動ログイン機能に関しての詳細は、「 intra-mart Accel Platform セットアップガイド 」-「 自動ログイン機能を利用する場合 」を参照してください。

9.3.2.5. Webサーバやロードバランサを利用している場合、リクエストURLのコンテキストパスと iWP / iAF のコンテキストパスが同じとなるように設定する必要があります。

  • Webサーバやロードバランサを利用している場合、リクエストURLのコンテキストパスと iWP / iAF のコンテキストパスが同じとなるように設定する必要があります。

    外部メニュー連携で作成するメニュー情報のURLは、以下の2つの情報を元にして生成します。
    ・iWP / iAF の parameter.xml の「im.web_server.url」で指定されたURL
    ・iWP / iAF の コンテキストパス
    そのため、Webサーバやロードバランサによってコンテキストパス部分を書き換えている場合、外部メニューから正しくアクセスできません。

    例えば、Apache モジュール「mod_proxy」を利用していて、かつ、iWP / iAF のコンテキストパスが「/imart」の場合、以下の様にローカルの仮想パスの名前を「/imart」と設定する必要があります。
    ProxyPass /imart http://backend.example.com/imart
    

9.3.2.6. IM-HybridSSO 接続中に、iWP / iAF のパスワードの変更を行うとSSO接続が解除されます。

  • IM-HybridSSO 接続情報には、iWP / iAF 上のユーザのパスワード元にした不可逆情報が含まれるため、 intra-mart Accel Platform にログインしてから、iWP / iAF の画面へ最初にアクセスするまでに、ログインユーザの iWP / iAF でのパスワードが変更された場合、 IM-HybridSSO 接続情報不正のため、SSO接続できなくなります。

9.3.2.7. 複数のSSO認証プロバイダが、同一のSSOサービスプロバイダと連携する構成には対応していません。

  • 複数のSSO認証プロバイダ( intra-mart Accel Platform )から、同一のSSOサービスプロバイダ( iWP / iAF )にアクセスするような設定を行った場合、 iWP / iAF のセッション情報が上書きされる場合があるため、正常な動作を保証できません。

9.3.2.8. 外部メニュー連携機能利用時に、セッションフェールオーバーが発生した場合にアクセスできなくなることがあります。

  • 「リクエスト情報が不正なため、指定のページは表示できません。」
    これは、外部メニュー連携機能でメニュー情報に署名を付加して、署名チェックを行っているためです。
    署名情報は、それぞれのサーバごとに保持しています。
    エラーとなった場合、外部メニュー以外のページにアクセスして、メニュー情報を最新化してください。

9.3.2.9. SSO認証プロバイダが、同一の iWP / iAF 内の複数ログイングループとSSO連携する構成には対応していません。

  • SSO認証プロバイダ( intra-mart Accel Platform 内の1テナント)から、同一の iWP / iAF 内の複数ログイングループとSSO連携するような設定を行った場合、それぞれのログイングループのメニューにアクセスすることで、 iWP / iAF のセッション情報が上書きされる場合があるため、正常な動作を保証できません。

9.3.2.10. IM-HybridSSO を構成するサーバは、全て同一のドメイン上に構築する必要があります。

  • そのため、 intra-mart Accel Platform および iWP / iAF は、ブラウザが Cookie を読み書きできるように、同じホスト上の別のコンテキストパスとして構築するか、または、サブドメインで区別されるようなホスト上に構築してください。
    例) サブドメインで区別されるようなホストの場合
    ・ドメイン: intra-mart.jp
    ・SSO認証プロバイダ: iap.intra-mart.jp
    ・SSOサービスプロバイダ1: iwp1.intra-mart.jp
    ・SSOサービスプロバイダ2: iwp2.intra-mart.jp

9.3.2.11. iWP / iAF を「SSO認証プロバイダ」として利用したり、 intra-mart Accel Platform を「SSOサービスプロバイダ」として利用することはできません。

  • IM-HybridSSO は、以下の様な構成には対応していません。
    ・ iWP / iAF にログインして、他のSSOサービスプロバイダとSSO連携を行う。
    ( iWP / iAF を「SSO認証プロバイダ」として利用する)
    ・ intra-mart Accel Platform 同士で SSO連携を行う。
    ( intra-mart Accel Platform を「SSOサービスプロバイダ」として利用する)

9.3.2.12. IM-HybridSSO は、intra-mart Accel Platform と iWP / iAF で簡易的な シングルサインオンを実現するための機能です。

  • 認証するIDの統合管理や、iWP / iAF 以外のSSOサービスプロバイダを利用する必要がある場合は、必要な機能に対応したシングルサインオン製品を利用してください。

9.3.2.13. iAP-iWP間SSO連携モジュール( IM-HybridSSO )をインストールした環境では、ログアウト後の遷移先画面を変更することはできません。

  • intra-mart Accel Platform では、ログアウト時にリクエストパラメータ「im_url」を指定することで、ログアウト後の遷移先画面を変更することが可能ですが、iAP-iWP間SSO連携モジュール( IM-HybridSSO )をインストールした環境では、この機能を利用することはできません。
    ログアウト時に遷移先URLを指定しても、ログイン画面に遷移します。
    リクエストパラメータ「im_url」に関しては、以下を参照してください。
    リクエストパラメータ名に関する詳細は、「 設定ファイルリファレンス 」-「 リクエストパラメータ設定 」を参照してください。

9.3.2.14. 外部メニュー連携機能に関して、連携先のサーバ上でデフォルトカレント組織ではアクセスできないメニューの場合、メニューは表示されるが、アクセスすると403エラーが発生します。

  • 連携先となる intra-mart Accel Platfrom 上において、デフォルトカレント組織ではアクセスできない設定が行われているURLをメニューに登録していた場合、
    連携元のグローバルナビやサイトマップには該当メニューが外部メニューとして表示されますが、実際にアクセスすると 403 エラーが発生しアクセスできません。
    この事象は、連携先となる intra-mart Accel Platfrom の認可判断処理が、デフォルトカレント組織にのみ対応しているために発生します。
    今後、連携先の intra-mart Accel Platfrom 上で、カレント組織を変更する機能を提供する予定です。

9.3.2.15. 外部メニュー連携はメニュープロバイダのパスワード保存方式が「ハッシュ化」の場合には動作しません。

  • 外部メニュー連携では、WSSE認証を用いたWebサービスを利用して他環境からメニュー情報を取得します。
    WSSE認証ではWebサービスのリクエストを受け付けた際に、Webサービス・クライアントで生成した認証用文字列とサーバで生成した認証用文字列を比較して認証判断を行います。
    パスワード保存方式が「ハッシュ化」の場合、認証用文字列生成時に必要な平文パスワードを取得できないため認証に必ず失敗します。

9.3.2.16. intra-mart WebPlatform / intra-mart AppFramework にログインしていた場合、 intra-mart Accel Platform からSSOによるログインを行うと、SSOを行ったユーザに切り替わります。

  • 例えば、 intra-mart Accel Platform と intra-mart WebPlatform / intra-mart AppFramework を IM-HybridSSO で連携していたとします。

    1. intra-mart WebPlatform / intra-mart AppFramework に ユーザA でアクセス。(このブラウザのタブをαとします)
    2. ブラウザで別のタブを開き intra-mart Accel Platform に ユーザB でログイン。(このブラウザのタブをβとします)
    3. タブβにて、外部メニューへアクセスします。(ここで intra-mart WebPlatform / intra-mart AppFramework へのログイン処理が実行され、ユーザB としてアクセスされます。)

    このような動作により、以降のタブαでの操作は、最初にログインした ユーザA ではなく、後でSSO経由でログインした ユーザB としてアクセスされるので注意してください。

    intra-mart WebPlatform / intra-mart AppFramework はフレームによる画面構成となっているため、ヘッダフレームのログインユーザ名は前のユーザのままとなり、別のユーザでアクセスしていることに気づかない可能性があります。

    また、 intra-mart Accel Platform からSSOによるログインを行う前に開いていた画面で操作を続けた場合、セッションが作成されなおしているため、エラーが発生する場合があります。