外部メニュー連携¶
外部メニュー連携とは¶
SingleSignOn(SSO) を利用してシステムを構築している場合に、複数のメニュープロバイダのメニュー情報を intra-mart Accel Platform 上で1つのメニューとして表示し、利用することを可能とするための機能です。取得したメニュー情報は、テーマのグローバルナビ、ツリーメニューおよびサイトマップに表示されます。intra-mart Accel Platform のログインユーザのユーザコードと、メニュープロバイダのユーザコードは一致している必要があります。
メニュープロバイダとは¶
メニュー情報を取得するための接続先の Webアプリケーションを、メニュープロバイダと呼びます。外部メニュー連携機能では、メニュープロバイダから SOAP Webサービスを利用してメニュー情報を取得します。メニュープロバイダには、あらかじめ Webサービスのモジュールをインストールする必要があります。Webサービスモジュールに関しては、「Webサービスモジュール」 を参照してください。
メニュークライアントとは¶
メニュープロバイダからメニュー情報を取得し、1つのメニュー情報に統合して表示する側の Webアプリケーションを、メニュークライアントと呼びます。ユーザは、メニュークライアントとして稼働する intra-mart Accel Platform にアクセスすることで、複数の Webアプリケーションのサービスを意識することなく利用することが可能となります。![]()
図 外部メニュー連携
注意
外部メニュー連携機能を利用する場合は、連携する各アプリケーションサーバで、SSO による認証を行うことを推奨します。SSOを利用せずに、外部メニュー連携機能を利用した場合、以下の様な制限事項が発生します。
メニュープロバイダから取得したメニューにアクセスしても、自動ログインされません。該当のページに権限設定がある場合、エラーページが表示されます。エラーページからログイン画面へ遷移してログインすることも可能ですが、ブラウザの設定や環境によっては正常にログインできない場合があります。また、メニュープロバイダが intra-mart Accel Platform の場合、グローバルナビを表示しない制御を行なっていますが、ログインしていない状態でアクセスした場合は制御が行われず、メニュークライアントのグローバルナビとメニュープロバイダのグローバルナビが2重に表示されます。 メニュークライアントとメニュープロバイダに別々にログインすることになるため、同じユーザであることが保証されません。外部メニュー連携で取得するメニュー情報は、メニュークライアントにログインしているユーザにひもづく情報です。メニュープロバイダに別のユーザでログインしていても画面上では判断できないため、誤ったオペレーションを行う可能性があります。 メニュークライアントからログアウトしても、メニュープロバイダ側は自動ログアウトされません。メニュープロバイダに直接アクセスすることで、ログイン状態のままアクセスが可能です。
メニュークライアント環境構築手順¶
外部メニュー連携モジュールの選択¶
im-Juggling で、「追加機能」-「外部メニュー連携」モジュールを選択します。
メニュープロバイダの設定¶
「設定ファイル」タブから、「外部メニュー連携」-「外部メニュー連携接続先設定」を出力します。「外部メニュー連携接続先設定(menu-provider-config.xml)」に、以下のようにメニュープロバイダの設定を記述します。<?xml version="1.0" encoding="UTF-8"?> ... <menu-provider id="sample"> <end-point> http://<HOST>:<PORT>/<CONTEXT_PATH>/services/MenuService </end-point> <login-group> <接続先のログイングループID> </login-group> <user> <接続先ユーザのユーザコード> </user> <password> <接続先ユーザパスワード> </password> </menu-provider> ...
メニュープロバイダ情報について¶
設定する情報はあらかじめメニュープロバイダのシステム管理者から提供されている必要があります。以下の情報をメニュープロバイダのシステム管理者に問い合わせてください。
接続先エンドポイント メニュープロバイダの接続先URLです。以下のフォーマットとなります。http://<HOST>:<PORT>/<CONTEXT_PATH>/services/MenuService接続先ログイングループID メニュープロバイダが intra-mart WebPlatform の場合のログイングループIDです。メニュープロバイダが intra-mart Accel Platform の場合は不要です。接続先ユーザコード Webサービスの権限を付与された Webサービス接続用ユーザのユーザコードです。接続先ユーザパスワード Webサービスの権限を付与された Webサービス接続用ユーザのパスワードです。
メニュープロバイダの設定順序について¶
メニュープロバイダは複数設定することが可能です。標準では、グローバルナビ、ツリーメニューおよびサイトマップには、設定された順に取得したメニュー情報が表示されます。グローバルナビの場合は、「editable」オプションを設定することで、以下の様な動作となります。
- メニュー設定画面で表示対象を選択し、任意の位置に表示するように設定可能です。
- メニュー設定画面で選択しなかったメニュー情報は表示されません。
コラム
設定ファイルの詳細な設定内容については「設定ファイルリファレンス」の 「外部メニュー連携接続先設定」 の項を参照してください。
コラム
メニュー設定画面での表示順序の設定については「テナント管理者操作ガイド」の 「外部サイトのメニューリンクを登録する」 の項を参照してください。
メニュープロバイダから取得できる情報¶
メニュープロバイダからは、以下の情報が取得できます。
一般ユーザが、メニューを表示する場合のメニュー情報¶
一般ユーザが、グローバルナビやサイトマップにメニューを表示する場合に取得できるメニュー情報です。メニュープロバイダからは、メニュークライアントにログインしているユーザが表示権限を持っているメニュー情報を取得します。intra-mart Accel Platform のログインユーザのユーザコードと、メニュープロバイダのユーザコードは一致している必要があります。取得できる主なメニュー情報は、以下の情報です。
- メニューの構成
- メニューの表示名
- メニュー情報の URL
「メニューの構成」は、メニュープロバイダで設定されているメニューのフォルダとアイテムの表示順、階層の情報です。「メニューの表示名」は、メニュープロバイダのユーザロケールの表示名になります。メニュープロバイダとメニュークライアントのユーザロケールが一致しない場合、表示名のロケールは統一されません。「メニュー情報の URL」は、メニュープロバイダにアクセスする場合の絶対 URL となります。メニュープロバイダが、プロキシサーバ等を利用してアクセスする必要がある場合は、メニュープロバイダ側で適切なベースURLを設定する必要があります。次項「Webサービスモジュール」で提供される、各 WebサービスモジュールごとのベースURLの設定方法を確認し、設定を行ってください。
メニュー管理者が、メニューを設定する場合のメニュー情報¶
メニュー管理者が、メニュー設定画面で表示対象と表示先を設定する場合に、設定元として取得できるメニュー情報です。メニュープロバイダからは、メニュークライアントのメニュー設定画面を操作しているユーザが、管理権限を持っているメニュー情報を取得します。intra-mart Accel Platform のログインユーザのユーザコードと、メニュープロバイダのユーザコードは一致している必要があります。取得できる主なメニュー情報は、以下の情報です。
- メニューの構成
- メニューの表示名
- メニュー情報の ID
「メニューの構成」は、メニュープロバイダで設定されているメニューのフォルダとアイテムの表示順、階層の情報です。「メニューの表示名」は、メニュープロバイダのユーザロケールの表示名になります。ここで取得した表示名は、メニュー設定画面でのみ利用されます。グローバルナビなどに表示する場合は、「一般ユーザが、メニューを表示する場合のメニュー情報」で取得した表示名が利用されます。「メニュー情報の ID」は、グローバルナビなどに表示する場合の対象のメニュー ID となります。メニュー設定画面で表示先を設定した場合、「プロバイダの ID」と「メニュー情報の ID」が保存されます。注意
外部メニュー連携サービス for intra-mart WebPlatform v7.2 で提供されるモジュールでは、一般ユーザは管理権限を持たないため、常に全てのメニュー情報を取得します。
Webサービスモジュール¶
イントラマートより提供される Webサービスは、以下のモジュールです。
- 外部メニュー連携サービス for intra-mart Accel Platform
- 外部メニュー連携サービス for intra-mart WebPlatform v7.2
外部メニュー連携サービス for intra-mart Accel Platform¶
外部メニュー連携サービス for intra-mart Accel Platform は、オプションモジュールです。im-Juggling で、「追加機能」-「Webサービス向け機能」-「外部メニュー連携 Webサービス」モジュールを選択して War を作成します。プロキシサーバ等を利用している場合、メニュー情報生成のため、ベースURLの設定が必要です。ベースURL設定は intra-mart Accel Platform 共通の設定を利用しています。 「ベースURL」の章を参照してください。Webサービスモジュールを有効にするためには、認可の設定を行う必要があります。Webサービス接続用のユーザを新規に作成し、認可設定により以下のリソースに実行許可を与えてください。 (既存のユーザに権限を与えることも可能です。)以下の2つのリソースに同じ権限を設定してください。
リソースの種類 : Webサービス
リソースグループ/リソース名 :
- 外部メニュー連携/外部メニュー情報取得
- 外部メニュー連携/外部メニュー情報取得(管理)
メニュークライアントのシステム管理者に以下の情報を提供します。
Webサービス接続用エンドポイント 以下のフォーマットとなります。http://<HOST>:<PORT>/<CONTEXT_PATH>/services/MenuServiceWebサービス接続用ユーザコード 権限を与えられたユーザのユーザコードです。 Webサービス接続用ユーザパスワード 権限を与えられたユーザのパスワードです。
外部メニュー連携サービス for intra-mart WebPlatform v7.2¶
外部メニュー連携サービス for WebPlatform v7.2 は、patch6 以降で提供されます。また、メニュークライアントで外部メニューの表示順序を設定するための機能は、patch7 以降で提供されます。プロキシサーバ等を利用している場合、メニュー情報生成のため、ベースURLの設定が必要です。このモジュールでは、以下の設定を利用しています。設定がない場合は、追加するようにしてください。
設定ファイル : %ServerManager のインストールパス% /conf/parameter.xml
設定内容 :
<param> <param-name>im.web_server.url</param-name> <param-value>http://<アクセス可能なホスト名>:<PORT></param-value> </param>Webサービスモジュールを有効にするためには、ログイングループ管理者により、Webサービスアクセス設定を行う必要があります。Webサービス接続用のロールとそのロールを付与したユーザを新規に作成し、Webサービスアクセス設定により以下のWebサービスに実行許可を与えてください。 (既存のユーザに権限を与えることも可能です。)以下の2つのオペレーションに同じ権限を設定してください。
Webサービス名 : MenuService
オペレーション名 :
- getAvailableMenuTree
- getManagedMenuTree (patch7 以降で提供されます。)
メニュークライアントのシステム管理者に以下の情報を提供します。
Webサービス接続用エンドポイント 以下のフォーマットとなります。http://<HOST>:<PORT>/<CONTEXT_PATH>/services/MenuServiceWebサービス接続先ログイングループID メニュー情報を取得するログイングループのIDです。 Webサービス接続用ユーザコード 権限を与えられたユーザのユーザコードです。 Webサービス接続用ユーザパスワード 権限を与えられたユーザのパスワードです。 注意
intra-mart WebPlatform v7.2.6 では、外部メニューの表示順序を設定することができません。intra-mart WebPlatform v7.2.6 を利用する場合は、メニュークライアントの設定ファイルに「editable」オプションを設定しないようにしてください。また、以下のコラムの個別パッチを適用することで、外部メニューの表示順序を設定する機能を利用することが可能となります。その場合は、メニュークライアントの設定ファイルに「editable」オプションが設定可能です。コラム
intra-mart WebPlatform v7.2.6 で外部メニューの表示順序を設定可能とするための個別パッチモジュールは、以下の URL からダウンロード可能です。該当のファイルを解凍し、展開された readme.txt を参照してインストールおよび設定を行ってください。