メッセージ交換システム、メッセージ交換方法およびメッセージ交換プログラム
【課題】認証情報の管理負担およびネットワークの負荷を軽減させる。
【解決手段】送信元の外部システム5から送信先の外部システム5に送信されるメッセージを受信するメッセージ送受信部21と、自交換機10がメッセージの通信経路上の最終交換機であるか否かを判定し、交換機が最終交換機であると判定した場合に、送信先の外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する判定部11と、送信先の外部システム用の認証情報を保有していないと判定された場合に、メッセージの通信経路上に含まれる他の交換機10を有する他のメッセージ交換システム1から、送信先の外部システム用の認証情報を取得する認証情報取得部12と、を備え、上記メッセージ送受信部21は、送信先の外部システム用の認証情報を付加したメッセージを送信先の外部システム5に送信する。
【解決手段】送信元の外部システム5から送信先の外部システム5に送信されるメッセージを受信するメッセージ送受信部21と、自交換機10がメッセージの通信経路上の最終交換機であるか否かを判定し、交換機が最終交換機であると判定した場合に、送信先の外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する判定部11と、送信先の外部システム用の認証情報を保有していないと判定された場合に、メッセージの通信経路上に含まれる他の交換機10を有する他のメッセージ交換システム1から、送信先の外部システム用の認証情報を取得する認証情報取得部12と、を備え、上記メッセージ送受信部21は、送信先の外部システム用の認証情報を付加したメッセージを送信先の外部システム5に送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッセージ交換システム、メッセージ交換方法およびメッセージ交換プログラムに関する。
【背景技術】
【0002】
それぞれ認証が必要な複数のアプリケーションにアクセス可能なネットワークシステムでは、一回の認証で複数のアプリケーションにアクセスできるようにするシングルサインオンを導入することで、アプリケーションごとに要求されるログイン処理の手間を軽減している。下記特許文献1には、シングルサインオンを実現するために、ユーザの認証情報を一元管理するSSO(single sign-on)サーバを備えたネットワークシステムが開示されている。このネットワークシステムでは、複数のSSOサーバを分散して備えることも可能としており、この場合には、ログインしたユーザの認証情報を各SSOサーバ間で転送し合ってログイン済みのユーザの認証情報を共有する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−296277号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、認証が必要なシステム間でメッセージを交換するバス型のメッセージ交換システムでは、複数のメッセージ交換システムを接続し、複数の交換機を経由してメッセージを交換するネットワークを構築することができる。このようなネットワークでシングルサインオンを実現する場合には、一般にネットワーク内の全ての交換機に全システムの認証情報をそれぞれ保有させることとなる。この場合、システム数が増大すると、管理する認証情報が膨大になってしまう。また、システムや交換機が増減した場合には、各交換機の認証情報を同期させて保守する必要がある。
【0005】
これらの問題を解決するために、上記特許文献1と同様に、ログインしたユーザの認証情報を各交換機間で転送し合ってログイン済みのユーザの認証情報を共有することも考えられるが、この場合には、メッセージを送信するごとに、各交換機間で認証情報を転送し合うことになるため、ネットワークの負荷が増大してしまう。
【0006】
本発明は、上述した課題を解決するためになされたものであり、認証情報の管理負担およびネットワークの負荷を軽減させることができるメッセージ交換システム、メッセージ交換方法およびメッセージ交換プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明のメッセージ交換システムは、交換機を有するメッセージ交換システムであって、第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信部と、前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定部と、前記第1判定部によって前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定部と、前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得部と、前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信部と、を備える。
【0008】
本発明のメッセージ交換方法は、交換機を有するメッセージ交換システムを制御するメッセージ交換方法であって、第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信ステップと、前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定ステップと、前記第1判定ステップにおいて前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定ステップと、前記第2判定ステップにおいて前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得ステップと、前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信ステップと、を含む。
【0009】
本発明のメッセージ交換プログラムは、上記メッセージ交換方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【0010】
本発明によれば、認証情報の管理負担およびネットワークの負荷を軽減させることができる。
【図面の簡単な説明】
【0011】
【図1】実施形態におけるメッセージ交換システムを複数接続したネットワークの概要構成を示すブロック図である。
【図2】実施形態におけるメッセージ交換システムの構成を示すブロック図である。
【図3】メッセージ交換システム用認証情報のデータ構成を示す図である。
【図4】外部システム用認証情報のデータ構成を示す図である。
【図5】要求交換機情報のデータ構成を示す図である。
【図6】交換機情報のデータ構成を示す図である。
【図7】エンドポイント情報のデータ構成を示す図である。
【図8】外部システム情報のデータ構成を示す図である。
【図9】メッセージのデータ構造を示す図である。
【図10】メッセージ受信時にメッセージ交換システムで実行される処理の流れを示すフローチャートである。
【図11】問い合わせに応じて他のメッセージ交換システムで実行される処理の流れを示すフローチャートである。
【図12】外部システム“F”から外部システム“K”にメッセージが送信された場合の動作を説明するための模式図である。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して、本発明に係るメッセージ交換システム、メッセージ交換方法およびメッセージ交換プログラムの好適な実施形態について説明する。
【0013】
まず、図1を参照して、実施形態におけるメッセージ交換システムを複数接続したネットワークの概要について説明する。メッセージ交換システム1は、一つまたは複数の外部システム5との間でバス型ネットワークを形成し、それぞれ独立かつ協調して動作する。外部システム5は、ユーザに各種サービスを提供するシステムであり、一つまたは複数のメッセージ交換システム1を介して他の外部システム5との間でメッセージを送受信する。メッセージ交換システム1は、他のメッセージ交換システム1と接続し、他のメッセージ交換システム1との間でメッセージを転送し合う。
【0014】
メッセージ交換システム1は、外部システム5の認証情報を保有し、外部システム5のシングルサインオンを実現する。外部システム5の認証情報は、いずれか一つ以上のメッセージ交換システム1に登録すればよい。メッセージ交換システム1は、全ての外部システム5の認証情報を保有する必要はなく、一部の外部システム5の認証情報を保有していればよい。
【0015】
外部システム5は、他の外部システム5にメッセージを送信する場合に、メッセージを最初に中継するメッセージ交換システム1用の認証情報をメッセージに付加して送信する。外部システム5から送信されたメッセージは、ルーティングされたメッセージの通信経路に従って送信される。メッセージを最後に中継するメッセージ交換システム1が、メッセージの送信先となる外部システム5の認証情報を保有していない場合、そのメッセージ交換システム1は、送信先となる外部システム5の認証情報を保有している他のメッセージ交換システム1から認証情報を取得してメッセージに付加する。一方、メッセージを最後に中継するメッセージ交換システム1が、送信先となる外部システム5の認証情報を保有している場合には、その認証情報をメッセージに付加して送信する。
【0016】
点線9で囲まれたそれぞれの範囲内にあるメッセージ交換システム1と外部システム5との間には、例えばなりすましを防止可能な信頼関係が結ばれている。なお、外部システム5“G”および“H”は、ともにメッセージ交換システム1“B”との間で信頼関係を結んでいるが、外部システム5“G”と外部システム5“H”との間の信頼関係は任意である。図1に示す外部システム5“G”と外部システム5“H”との間には、信頼関係が結ばれていない場合を例示している。
【0017】
ここで、メッセージ交換システム1は、物理的には、例えば、CPU(Central Processing Unit)と、記憶装置と、入出力インターフェースとを含んで構成される。記憶装置には、例えば、CPUで処理されるプログラムやデータを記憶するROM(Read Only Memory)やHDD(Hard Disk Drive)と、主として制御処理のための各種作業領域として使用されるRAM(Random Access Memory)とが含まれる。これらの要素は、互いにバスを介して接続されている。CPUが、ROMに記憶されたプログラムを実行し、入出力インターフェースを介して受信されたメッセージや、RAMに展開されたデータを処理することで、後述するメッセージ交換システムにおける各種の機能を実現することができる。
【0018】
次に、図2を参照して、実施形態におけるメッセージ交換システムの構成について説明する。図2は、実施形態におけるメッセージ交換システムを模式的に示した構成図である。図2に示すように、メッセージ交換システム1は、交換機10と、複数のサブシステム20と、認証情報記憶部30と、経路情報記憶部40と、を有する。メッセージ交換システム1には、外部システム5や、他のメッセージ交換システム1が接続できる。
【0019】
図2に示す認証情報記憶部30は、メッセージ交換システム1や外部システム5の認証情報を、マスタ情報31やキャッシュ情報32として記憶する。認証情報としては、例えば、図3に示すメッセージ交換システム用認証情報や、図4に示す外部システム用認証情報がある。
【0020】
図3に示すメッセージ交換システム用認証情報は、データ項目として、例えば、メッセージ交換システム用ID項目と、パスワード項目と、氏名項目と、電話番号項目と、を有する。メッセージ交換システム用ID項目は、メッセージ交換システム1にログインするためのIDを格納する。メッセージ交換システム用IDとしては、ネットワーク内でメッセージ交換システム1を一意に特定可能な識別コードを用いる。パスワード項目は、メッセージ交換システム1にログインするためのパスワードを格納する。氏名項目は、ユーザの氏名を格納し、電話番号項目は、ユーザの電話番号を格納する。氏名項目や電話番号項目は、ユーザの個人情報の一例である。個人情報は設定しなくてもよいし、氏名項目や電話番号項目以外の個人情報を設定することとしてもよい。
【0021】
図4に示す外部システム用認証情報は、データ項目として、例えば、メッセージ交換システム用ID項目と、エンドポイントID項目と、外部システム用ID項目と、パスワード項目と、氏名項目と、電話番号項目と、を有する。メッセージ交換システム用ID項目、氏名項目および電話番号項目は、上述したメッセージ交換システム用認証情報のメッセージ交換システム用ID項目、氏名項目および電話番号項目とそれぞれ同様である。エンドポイントID項目は、外部システム5のエンドポイントを一意に特定可能な識別子を格納する。外部システム用ID項目は、外部システム5にログインするためのIDを格納する。パスワード項目は、外部システム5にログインするためのパスワードを格納する。
【0022】
マスタ情報31は、予め認証情報記憶部30に設定された認証情報を格納する。キャッシュ情報32は、自システム1や他システム1のマスタ情報31から取得して自システム1で使用した認証情報を格納する。なお、認証情報記憶部30は、マスタ情報31およびキャッシュ情報32の両方を保有することとしてもよいし、いずれか一方を保有することとしてもよい。また、マスタ情報31を、複数のメッセージ交換システム1に分散して保有することとしてもよい。
【0023】
図2に示す経路情報記憶部40は、交換機情報41と外部システム情報42とを有する。交換機情報41は、交換機10に関する情報であり、例えば、図5に示す要求交換機情報や、図6に示す交換機情報がある。
【0024】
図5に示す要求交換機情報は、他の交換機に外部システムの認証情報を要求した場合に記録される情報であり、外部システムのエンドポイントと要求先の交換機との関係を示す情報である。要求交換機情報は、データ項目として、例えば、エンドポイントID項目と要求交換機ID項目とを有する。エンドポイントID項目は、接続先の外部システム5のエンドポイントを一意に特定する識別子を格納する。要求交換機IDは、接続先の外部システム5の認証情報を要求してきた交換機10を一意に特定する識別子を格納する。
【0025】
要求交換機情報は、認証情報を要求してきた交換機10に認証情報を返信する際に、返信先のメッセージ交換システム1までの最適な通信経路を選択する際や、ネットワーク全体を把握するために使用する。また、要求交換機情報は、マスタ情報31が更新された場合に、その更新情報を各メッセージ交換システム1に送信し、各メッセージ交換システム1のキャッシュ情報32を更新させる際にも使用する。
【0026】
図6に示す交換機情報は、ネットワーク内の交換機同士でメッセージ交換をするために必要となる情報である。交換機情報は、データ項目として、例えば、交換機ID項目と、交換機のアドレス項目と、接続用プロトコル項目と、エンドポイントID項目と、を有する。交換機ID項目は、ネットワーク内で交換機を一意に特定する識別子を格納する。
【0027】
図2に示す外部システム情報42は、外部システム5に関する情報であり、例えば、図7に示すエンドポイント情報や、図8に示す外部システム情報がある。
【0028】
図7に示すエンドポイント情報は、データ項目として、例えば、エンドポイントID項目とエンドポイント項目とを有する。エンドポイントID項目は、外部システム5のエンドポイントを一意に特定可能な識別子を格納する。エンドポイント項目は、外部システム5のエンドポイントを格納する。エンドポイントは、例えば、URL(Uniform Resource Locator)で表すことができる。
【0029】
図8に示す外部システム情報は、データ項目として、例えば、外部システムの内部アドレス項目と、外部システムのアドレス項目と、外部システムが接続する交換機のID項目と、認証情報の有無項目と、を有する。認証情報の有無項目は、認証が必要な外部システムであるか否かを示す情報を格納する。外部システム情報は、メッセージをやり取りする外部システム5に応じて設定される。ネットワーク内でメッセージをやり取りする際に経由する各メッセージ交換システム1に予め外部システム情報を設定しておく。
【0030】
図2に示す交換機10は、経路情報記憶部40から、ネットワーク内の交換機10や外部システム5の情報を取得してメッセージの通信経路を決定する。交換機10は、メッセージ受信時にメッセージの認証を行い、認証に成功したメッセージに対してメッセージ交換システム用の認証情報を付与する。交換機10は、判定部11と認証情報取得部12とを有する。
【0031】
判定部11は、受信したメッセージに基づいて、送信先の外部システム5が認証を必要とする外部システム5であるか否かを判定する。判定部11は、送信先の外部システム5が認証を必要とする外部システム5であると判定した場合に、自交換機10がメッセージの通信経路上の最終交換機であるか否かを判定する。
【0032】
判定部11は、自交換機が最終交換機であると判定した場合に、認証情報記憶部30に記憶されている外部システム5の認証情報を参照して、送信先の外部システム5用の認証情報が認証情報記憶部30に存在するか否かを判定する。
【0033】
認証情報取得部12は、判定部11によって送信先の外部システム5用の認証情報が存在しないと判定された場合に、メッセージの通信経路上に含まれる他の交換機10を有する他のメッセージ交換システム1に対して、送信先の外部システム5用の認証情報を保有しているか否かを問い合わせる。認証情報取得部12は、この問い合わせに応じて他のメッセージ交換システム1から返信される送信先の外部システム5用の認証情報を取得する。認証情報取得部12は、取得した認証情報をメッセージに付加する。
【0034】
サブシステム20は、メッセージ送受信部21とプロトコル変換部22とを有する。メッセージ送受信部21は、送信元の外部システム5から送信先の外部システム5に送信されるメッセージを送受信する。メッセージ送受信部21は、認証情報取得部12によってメッセージに認証情報が付加された場合には、そのメッセージを送信先の外部システム5に送信する。
【0035】
プロトコル変換部22は、メッセージ交換システム1と外部システム5や他のメッセージ交換システム1との間のプロトコル変換を実行する。各メッセージ交換システムや外部システムのプロトコルは任意である。プロトコル変換部22を設けることで、メッセージ交換システム1は、複数のプロトコルを使用して複数の外部システム5や他のメッセージ交換システム1と接続することができる。
【0036】
プロトコル変換部22は、メッセージ交換システム1内で取り扱うメッセージのデータ構造を、例えば、図9に示すデータ構造に変換する。図9に示すメッセージは、ヘッダとボディとを有する。ヘッダは、例えば、メッセージの送信先となる外部システム5の宛先情報や、メッセージ交換システム用の認証情報を格納する。外部システム5の宛先情報として、例えばメッセージ交換システム1内で有効な外部システム5への内部アドレスを用いることができる。ボディは、例えば、メッセージの本文や、本文に付随するデータを格納する。本文に付随するデータには、データそのものや、データのストリーム等が含まれる。
【0037】
図2に示す外部システムの構成について説明する。外部システム5は、メッセージ送受信部51と、メッセージ蓄積部52とを有する。
【0038】
メッセージ送受信部51は、他の外部システム5との間でやり取りするメッセージを送受信する。メッセージ送受信部51は、例えばメッセージ蓄積部52にメッセージが格納されると、メッセージ交換システム1を介してメッセージの送信先となる外部システム5にメッセージを送信する。
【0039】
次に、図面を参照してメッセージ交換システム1の動作について説明する。まず、図10を参照して、メッセージを受信した際にメッセージ交換システム1で実行される処理について説明する。
【0040】
最初に、プロトコル変換部22は、メッセージ送受信部21によって受信されたメッセージを、図9に示すデータ構造に変換する(ステップS101)。
【0041】
続いて、判定部11は、上記ステップS101で変換されたメッセージに基づいて、送信先の外部システム5が認証を必要とする外部システム5であるか否かを判定する(ステップS102)。この判定がNOである場合(ステップS102;NO)に、メッセージ送受信部21は、通信経路上の次のノードにメッセージを送信し(ステップS111)、この動作を終了する。
【0042】
一方、上記ステップS102の判定で送信先の外部システム5が認証を必要とする外部システム5であると判定された場合(ステップS102;YES)に、判定部11は、自交換機10がメッセージの通信経路上の最終交換機であるか否かを判定する(ステップS103)。この判定がNOである場合(ステップS103;NO)に、メッセージ送受信部21は、通信経路上の次のノードにメッセージを送信し(ステップS111)、この動作を終了する。
【0043】
一方、上記ステップS103の判定で自交換機10が最終交換機であると判定された場合(ステップS103;YES)に、判定部11は、送信先の外部システム5用の認証情報がマスタ情報31に存在するか否かを判定する(ステップS104)。この判定がYESである場合(ステップS104;YES)に、認証情報取得部12は、送信先の外部システム5用の認証情報をマスタ情報31から取得し(ステップS109)、取得した認証情報をメッセージに付加する(ステップS110)。そして、メッセージ送受信部21は、認証情報が付加されたメッセージを送信先の外部システム5に送信し(ステップS111)、この動作を終了する。
【0044】
一方、上記ステップS104の判定で外部システム5用の認証情報がマスタ情報31に存在しないと判定された場合(ステップS104;NO)に、判定部11は、送信先の外部システム5用の認証情報がキャッシュ情報32に存在するか否かを判定する(ステップS105)。この判定がYESである場合(ステップS105;YES)に、認証情報取得部12は、送信先の外部システム5用の認証情報をキャッシュ情報32から取得し(ステップS109)、取得した認証情報をメッセージに付加する(ステップS110)。そして、メッセージ送受信部21は、認証情報が付加されたメッセージを送信先の外部システム5に送信し(ステップS111)、この動作を終了する。
【0045】
一方、上記ステップS105の判定で外部システム5用の認証情報がキャッシュ情報32に存在しないと判定された場合(ステップS105;NO)に、認証情報取得部12は、メッセージの通信経路上に含まれる直前の交換機10を有する他のメッセージ交換システム1に対して、送信先の外部システム5用の認証情報を保有しているか否かを問い合わせる(ステップS106)。この問い合わせに応じて他のメッセージ交換システム1において行われる処理については、後述する。
【0046】
上記ステップS106の問い合わせの結果、送信先の外部システム5用の認証情報が他のメッセージ交換システム1に保有されていないことが判明した場合(ステップS107;NO)には、メッセージの送信を中止し、認証エラーとする(ステップS108)。そして、この動作を終了する。
【0047】
一方、上記ステップS106の問い合わせの結果、送信先の外部システム5用の認証情報が他のメッセージ交換システム1に保有されていることが判明した場合(ステップS107;YES)に、認証情報取得部12は、送信先の外部システム5用の認証情報を他のメッセージ交換システム1から取得し(ステップS109)、取得した認証情報をメッセージに付加する(ステップS110)。そして、メッセージ送受信部21は、認証情報が付加されたメッセージを送信先の外部システム5に送信し(ステップS111)、この動作を終了する。
【0048】
次に、図11を参照して、上記ステップS106の問い合わせに応じて他のメッセージ交換システム1において実行される処理について説明する。
【0049】
最初に、判定部11は、問い合わせの対象となる外部システム5用の認証情報がマスタ情報31に存在するか否かを判定する(ステップS201)。この判定がYESである場合(ステップS201;YES)に、認証情報取得部12は、問い合わせ対象の外部システム5用の認証情報をマスタ情報31から取得し、メッセージ送受信部21は、取得された認証情報を問い合わせ元のメッセージ交換システム1に返信する(ステップS206)。そして、この動作を終了する。
【0050】
一方、上記ステップS201の判定で外部システム5用の認証情報がマスタ情報31に存在しないと判定された場合(ステップS201;NO)に、判定部11は、問い合わせ対象の外部システム5用の認証情報がキャッシュ情報32に存在するか否かを判定する(ステップS202)。この判定がYESである場合(ステップS202;YES)に、認証情報取得部12は、問い合わせ対象の外部システム5用の認証情報をキャッシュ情報32から取得し、メッセージ送受信部21は、取得された認証情報を問い合わせ元のメッセージ交換システム1に返信する(ステップS206)。そして、この動作を終了する。
【0051】
一方、上記ステップS202の判定で外部システム5用の認証情報がキャッシュ情報32に存在しないと判定された場合(ステップS202;NO)に、認証情報取得部12は、メッセージの通信経路上に含まれる直前の交換機10を有する他のメッセージ交換システム1に対して、問い合わせ対象の外部システム5用の認証情報を保有しているか否かを問い合わせる(ステップS203)。この問い合わせを受けたメッセージ交換システム1は、上記ステップS201以降の処理を実行する。
【0052】
上記ステップS203の問い合わせの結果、問い合わせ対象の外部システム5用の認証情報が他のメッセージ交換システム1に保有されていないことが判明した場合(ステップS204;NO)に、メッセージ送受信部21は、認証情報が存在しない旨の通知を問い合わせ元のメッセージ交換システム1に返信する(ステップS205)。そして、この動作を終了する。
【0053】
一方、上記ステップS203の問い合わせの結果、問い合わせ対象の外部システム5用の認証情報が他のメッセージ交換システム1に保有されていることが判明した場合(ステップS204;YES)に、認証情報取得部12は、問い合わせ対象の外部システム5用の認証情報を他のメッセージ交換システム1から取得し、メッセージ送受信部21は、取得された認証情報を問い合わせ元のメッセージ交換システム1に返信する(ステップS206)。そして、この動作を終了する。
【0054】
図12を参照して、上述した動作(図10および図11参照)を具体的に説明する。例えば、外部システム5“F”から外部システム5“K”にメッセージを送信する場合について説明する。この動作例では、メッセージの通信経路として、メッセージ交換システム1“A”→“C”→“D”が選択され、かつ、外部システム5“K”の認証情報が、メッセージ交換システム1“A”のマスタ情報31にのみ保有されていることを前提として説明する。図12に示す点線矢印はメッセージの流れを示し、実線矢印は認証情報の要求の流れを示す。
【0055】
最初に、メッセージ交換システム1“A”および“C”では、それぞれのシステム1の交換機10が通信経路上の最終交換機ではない(図10ステップS103;NO)ため、外部システム5“F”から送信されたメッセージは、メッセージ交換システム1“D”に送信される。
【0056】
続いて、メッセージ交換システム1“D”には、外部システム5“K”の認証情報が保有されていない(図10ステップS105;NO)ため、メッセージ交換システム1“D”の認証情報取得部12は、メッセージ交換システム1“C”に対して、外部システム5“K”の認証情報を保有しているか否かを問い合わせる(図10ステップS106)。
【0057】
続いて、メッセージ交換システム1“C”には、外部システム5“K”の認証情報が保有されていない(図11ステップS202;NO)ため、メッセージ交換システム1“C”の認証情報取得部12は、メッセージ交換システム1“A”に対して、外部システム5“K”の認証情報を保有しているか否かを問い合わせる(図11ステップS203)。
【0058】
続いて、メッセージ交換システム1“A”には、外部システム5“K”の認証情報が保有されている(図11ステップS201;YES)ため、メッセージ送受信部21は、取得された認証情報をメッセージ交換システム1“C”に返信する(図11ステップS206)。
【0059】
続いて、メッセージ交換システム1“C”のメッセージ送受信部21は、受信した認証情報をメッセージ交換システム1“D”に返信する(図11ステップS206)。
【0060】
続いて、メッセージ交換システム1“D”の認証情報取得部12は、受信した認証情報をメッセージに付加し(図10ステップS110)、メッセージ送受信部21は、認証情報が付加されたメッセージを外部システム5“K”に送信する(図10ステップS111)。
【0061】
なお、この動作例では、外部システム5“F”から外部システム5“K”にメッセージが送信される場合について説明したが、メッセージの送信先や送信方法は任意に設定することができる。例えば、外部システム5“F”から外部システム5“I”にメッセージを一旦送信し、その後、外部システム5“I”から外部システム5“K”にメッセージを送信することとしてもよい。
【0062】
上述したように、実施形態におけるメッセージ交換システム1によれば、自メッセージ交換システム1で保有していない認証情報が必要になった場合には、通信経路上の他メッセージ交換システム1から取得することができる。したがって、外部システム5の認証情報を、いずれか一つのメッセージ交換システム1のマスタ情報に登録すればよいため、認証情報の管理負担を軽減させることができる。
【0063】
また、メッセージの通信経路上の最終交換機までは、送信先の外部システムの認証情報が不要なため、ネットワーク内を流れるメッセージの容量を抑制することでき、ネットワークの負荷を軽減することができる。また、認証情報を取得する際には、認証情報が取得できるまで通信経路上の交換機を一つずつ遡って問い合わせればよいため、認証情報の取得に要する通信量を抑制することができ、ネットワークの負荷を軽減することができる。
【0064】
[変形例]
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【0065】
例えば、上述した実施形態では、メッセージ交換システム1が外部システム5の認証を得るために、送信メッセージに認証情報を付与しているが、外部システム5への認証手続きはこれに限定されない。例えば、送信メッセージとは別に、事前に認証情報を外部システム5に送信することとしてもよい。
【0066】
また、上述した実施形態における外部システムの認証情報に、セッション情報を追加することとしてもよい。これにより、セッション管理が可能となる。具体的には、送信先の外部システム5にメッセージを送信し、認証が完了した段階でセッション情報を保存しておき、次回以降、その外部システム5にアクセスする際にセッション情報の有無を確認し、セッション情報が存在する場合に、認証処理を省略し、保存されているセッション情報を利用してメッセージを送信する。セッション情報が存在しない場合や無効であった場合には、上述した実施形態と同様に、自メッセージ交換システム1の認証情報記憶部30に認証情報が存在するか否かを判定する処理から実行すればよい。
【0067】
また、上述した実施形態における外部システムの認証情報に、ステータス情報を追加することとしてもよい。これにより、ログアウト処理を追加することが可能となる。具体的には、送信先の外部システム5にメッセージを送信し、認証が完了した段階でステータス情報に外部システム5にアクセス中であることを記録しておき、例えば返却するメッセージのヘッダ等にログアウトする旨の情報が付与され、かつ、ステータス情報がアクセス中である場合に、メッセージの返却時に、ログアウト処理を実行する。
【0068】
また、上述した実施形態における外部システムの認証情報に、外部システムへの認証可否情報を追加することとしてもよい。これにより、不正アクセスを防止してセキュリティを向上させることが可能となる。具体的には、外部システム5で認証が行われるたびに、その認証結果を認証可否情報に記録することで、否認の頻度が所定の閾値を超過している場合に、不正アクセスとみなして外部システム5へのアクセスを制限する。否認の頻度を判定するタイミングとしては、例えば、送信先の外部システム5が認証を必要とする外部システムであると判定された後に、行うことができる。
【0069】
最後に、上記実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明を以下に限定するものではない。
【0070】
(付記1) 交換機を有するメッセージ交換システムであって、第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信部と、前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定部と、前記第1判定部によって前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定部と、前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得部と、前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信部と、を備えることを特徴とするメッセージ交換システム。
【0071】
(付記2) 前記認証情報取得部は、前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記第2外部システム用の認証情報を保有しているか否かを、前記他のメッセージ交換システムに問い合わせ、当該問い合わせに応じて返信される前記第2外部システム用の認証情報を前記他のメッセージ交換システムから取得する、ことを特徴とする付記1記載のメッセージ交換システム。
【0072】
(付記3) 外部システムの認証情報を記憶する記憶部を、さらに備え、前記第2判定部は、前記記憶部に記憶されている外部システムの認証情報を参照して、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する、ことを特徴とする付記1または2記載のメッセージ交換システム。
【0073】
(付記4) 交換機を有するメッセージ交換システムを制御するメッセージ交換方法であって、第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信ステップと、前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定ステップと、前記第1判定ステップにおいて前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定ステップと、前記第2判定ステップにおいて前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得ステップと、前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信ステップと、を含むことを特徴とするメッセージ交換方法。
【0074】
(付記5) 付記4に記載の各ステップをコンピュータに実行させるためのメッセージ交換プログラム。
【符号の説明】
【0075】
1…メッセージ交換システム、5…外部システム、10…交換機、11…判定部、12…認証情報取得部、20…サブシステム、21…メッセージ送受信部、22…プロトコル変換部、30…認証情報記憶部、31…マスタ情報、32…キャッシュ情報、40…経路情報記憶部、41…交換機情報、42…外部システム情報、51…メッセージ送受信部、52…メッセージ蓄積部。
【技術分野】
【0001】
本発明は、メッセージ交換システム、メッセージ交換方法およびメッセージ交換プログラムに関する。
【背景技術】
【0002】
それぞれ認証が必要な複数のアプリケーションにアクセス可能なネットワークシステムでは、一回の認証で複数のアプリケーションにアクセスできるようにするシングルサインオンを導入することで、アプリケーションごとに要求されるログイン処理の手間を軽減している。下記特許文献1には、シングルサインオンを実現するために、ユーザの認証情報を一元管理するSSO(single sign-on)サーバを備えたネットワークシステムが開示されている。このネットワークシステムでは、複数のSSOサーバを分散して備えることも可能としており、この場合には、ログインしたユーザの認証情報を各SSOサーバ間で転送し合ってログイン済みのユーザの認証情報を共有する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−296277号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、認証が必要なシステム間でメッセージを交換するバス型のメッセージ交換システムでは、複数のメッセージ交換システムを接続し、複数の交換機を経由してメッセージを交換するネットワークを構築することができる。このようなネットワークでシングルサインオンを実現する場合には、一般にネットワーク内の全ての交換機に全システムの認証情報をそれぞれ保有させることとなる。この場合、システム数が増大すると、管理する認証情報が膨大になってしまう。また、システムや交換機が増減した場合には、各交換機の認証情報を同期させて保守する必要がある。
【0005】
これらの問題を解決するために、上記特許文献1と同様に、ログインしたユーザの認証情報を各交換機間で転送し合ってログイン済みのユーザの認証情報を共有することも考えられるが、この場合には、メッセージを送信するごとに、各交換機間で認証情報を転送し合うことになるため、ネットワークの負荷が増大してしまう。
【0006】
本発明は、上述した課題を解決するためになされたものであり、認証情報の管理負担およびネットワークの負荷を軽減させることができるメッセージ交換システム、メッセージ交換方法およびメッセージ交換プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明のメッセージ交換システムは、交換機を有するメッセージ交換システムであって、第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信部と、前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定部と、前記第1判定部によって前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定部と、前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得部と、前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信部と、を備える。
【0008】
本発明のメッセージ交換方法は、交換機を有するメッセージ交換システムを制御するメッセージ交換方法であって、第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信ステップと、前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定ステップと、前記第1判定ステップにおいて前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定ステップと、前記第2判定ステップにおいて前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得ステップと、前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信ステップと、を含む。
【0009】
本発明のメッセージ交換プログラムは、上記メッセージ交換方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【0010】
本発明によれば、認証情報の管理負担およびネットワークの負荷を軽減させることができる。
【図面の簡単な説明】
【0011】
【図1】実施形態におけるメッセージ交換システムを複数接続したネットワークの概要構成を示すブロック図である。
【図2】実施形態におけるメッセージ交換システムの構成を示すブロック図である。
【図3】メッセージ交換システム用認証情報のデータ構成を示す図である。
【図4】外部システム用認証情報のデータ構成を示す図である。
【図5】要求交換機情報のデータ構成を示す図である。
【図6】交換機情報のデータ構成を示す図である。
【図7】エンドポイント情報のデータ構成を示す図である。
【図8】外部システム情報のデータ構成を示す図である。
【図9】メッセージのデータ構造を示す図である。
【図10】メッセージ受信時にメッセージ交換システムで実行される処理の流れを示すフローチャートである。
【図11】問い合わせに応じて他のメッセージ交換システムで実行される処理の流れを示すフローチャートである。
【図12】外部システム“F”から外部システム“K”にメッセージが送信された場合の動作を説明するための模式図である。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して、本発明に係るメッセージ交換システム、メッセージ交換方法およびメッセージ交換プログラムの好適な実施形態について説明する。
【0013】
まず、図1を参照して、実施形態におけるメッセージ交換システムを複数接続したネットワークの概要について説明する。メッセージ交換システム1は、一つまたは複数の外部システム5との間でバス型ネットワークを形成し、それぞれ独立かつ協調して動作する。外部システム5は、ユーザに各種サービスを提供するシステムであり、一つまたは複数のメッセージ交換システム1を介して他の外部システム5との間でメッセージを送受信する。メッセージ交換システム1は、他のメッセージ交換システム1と接続し、他のメッセージ交換システム1との間でメッセージを転送し合う。
【0014】
メッセージ交換システム1は、外部システム5の認証情報を保有し、外部システム5のシングルサインオンを実現する。外部システム5の認証情報は、いずれか一つ以上のメッセージ交換システム1に登録すればよい。メッセージ交換システム1は、全ての外部システム5の認証情報を保有する必要はなく、一部の外部システム5の認証情報を保有していればよい。
【0015】
外部システム5は、他の外部システム5にメッセージを送信する場合に、メッセージを最初に中継するメッセージ交換システム1用の認証情報をメッセージに付加して送信する。外部システム5から送信されたメッセージは、ルーティングされたメッセージの通信経路に従って送信される。メッセージを最後に中継するメッセージ交換システム1が、メッセージの送信先となる外部システム5の認証情報を保有していない場合、そのメッセージ交換システム1は、送信先となる外部システム5の認証情報を保有している他のメッセージ交換システム1から認証情報を取得してメッセージに付加する。一方、メッセージを最後に中継するメッセージ交換システム1が、送信先となる外部システム5の認証情報を保有している場合には、その認証情報をメッセージに付加して送信する。
【0016】
点線9で囲まれたそれぞれの範囲内にあるメッセージ交換システム1と外部システム5との間には、例えばなりすましを防止可能な信頼関係が結ばれている。なお、外部システム5“G”および“H”は、ともにメッセージ交換システム1“B”との間で信頼関係を結んでいるが、外部システム5“G”と外部システム5“H”との間の信頼関係は任意である。図1に示す外部システム5“G”と外部システム5“H”との間には、信頼関係が結ばれていない場合を例示している。
【0017】
ここで、メッセージ交換システム1は、物理的には、例えば、CPU(Central Processing Unit)と、記憶装置と、入出力インターフェースとを含んで構成される。記憶装置には、例えば、CPUで処理されるプログラムやデータを記憶するROM(Read Only Memory)やHDD(Hard Disk Drive)と、主として制御処理のための各種作業領域として使用されるRAM(Random Access Memory)とが含まれる。これらの要素は、互いにバスを介して接続されている。CPUが、ROMに記憶されたプログラムを実行し、入出力インターフェースを介して受信されたメッセージや、RAMに展開されたデータを処理することで、後述するメッセージ交換システムにおける各種の機能を実現することができる。
【0018】
次に、図2を参照して、実施形態におけるメッセージ交換システムの構成について説明する。図2は、実施形態におけるメッセージ交換システムを模式的に示した構成図である。図2に示すように、メッセージ交換システム1は、交換機10と、複数のサブシステム20と、認証情報記憶部30と、経路情報記憶部40と、を有する。メッセージ交換システム1には、外部システム5や、他のメッセージ交換システム1が接続できる。
【0019】
図2に示す認証情報記憶部30は、メッセージ交換システム1や外部システム5の認証情報を、マスタ情報31やキャッシュ情報32として記憶する。認証情報としては、例えば、図3に示すメッセージ交換システム用認証情報や、図4に示す外部システム用認証情報がある。
【0020】
図3に示すメッセージ交換システム用認証情報は、データ項目として、例えば、メッセージ交換システム用ID項目と、パスワード項目と、氏名項目と、電話番号項目と、を有する。メッセージ交換システム用ID項目は、メッセージ交換システム1にログインするためのIDを格納する。メッセージ交換システム用IDとしては、ネットワーク内でメッセージ交換システム1を一意に特定可能な識別コードを用いる。パスワード項目は、メッセージ交換システム1にログインするためのパスワードを格納する。氏名項目は、ユーザの氏名を格納し、電話番号項目は、ユーザの電話番号を格納する。氏名項目や電話番号項目は、ユーザの個人情報の一例である。個人情報は設定しなくてもよいし、氏名項目や電話番号項目以外の個人情報を設定することとしてもよい。
【0021】
図4に示す外部システム用認証情報は、データ項目として、例えば、メッセージ交換システム用ID項目と、エンドポイントID項目と、外部システム用ID項目と、パスワード項目と、氏名項目と、電話番号項目と、を有する。メッセージ交換システム用ID項目、氏名項目および電話番号項目は、上述したメッセージ交換システム用認証情報のメッセージ交換システム用ID項目、氏名項目および電話番号項目とそれぞれ同様である。エンドポイントID項目は、外部システム5のエンドポイントを一意に特定可能な識別子を格納する。外部システム用ID項目は、外部システム5にログインするためのIDを格納する。パスワード項目は、外部システム5にログインするためのパスワードを格納する。
【0022】
マスタ情報31は、予め認証情報記憶部30に設定された認証情報を格納する。キャッシュ情報32は、自システム1や他システム1のマスタ情報31から取得して自システム1で使用した認証情報を格納する。なお、認証情報記憶部30は、マスタ情報31およびキャッシュ情報32の両方を保有することとしてもよいし、いずれか一方を保有することとしてもよい。また、マスタ情報31を、複数のメッセージ交換システム1に分散して保有することとしてもよい。
【0023】
図2に示す経路情報記憶部40は、交換機情報41と外部システム情報42とを有する。交換機情報41は、交換機10に関する情報であり、例えば、図5に示す要求交換機情報や、図6に示す交換機情報がある。
【0024】
図5に示す要求交換機情報は、他の交換機に外部システムの認証情報を要求した場合に記録される情報であり、外部システムのエンドポイントと要求先の交換機との関係を示す情報である。要求交換機情報は、データ項目として、例えば、エンドポイントID項目と要求交換機ID項目とを有する。エンドポイントID項目は、接続先の外部システム5のエンドポイントを一意に特定する識別子を格納する。要求交換機IDは、接続先の外部システム5の認証情報を要求してきた交換機10を一意に特定する識別子を格納する。
【0025】
要求交換機情報は、認証情報を要求してきた交換機10に認証情報を返信する際に、返信先のメッセージ交換システム1までの最適な通信経路を選択する際や、ネットワーク全体を把握するために使用する。また、要求交換機情報は、マスタ情報31が更新された場合に、その更新情報を各メッセージ交換システム1に送信し、各メッセージ交換システム1のキャッシュ情報32を更新させる際にも使用する。
【0026】
図6に示す交換機情報は、ネットワーク内の交換機同士でメッセージ交換をするために必要となる情報である。交換機情報は、データ項目として、例えば、交換機ID項目と、交換機のアドレス項目と、接続用プロトコル項目と、エンドポイントID項目と、を有する。交換機ID項目は、ネットワーク内で交換機を一意に特定する識別子を格納する。
【0027】
図2に示す外部システム情報42は、外部システム5に関する情報であり、例えば、図7に示すエンドポイント情報や、図8に示す外部システム情報がある。
【0028】
図7に示すエンドポイント情報は、データ項目として、例えば、エンドポイントID項目とエンドポイント項目とを有する。エンドポイントID項目は、外部システム5のエンドポイントを一意に特定可能な識別子を格納する。エンドポイント項目は、外部システム5のエンドポイントを格納する。エンドポイントは、例えば、URL(Uniform Resource Locator)で表すことができる。
【0029】
図8に示す外部システム情報は、データ項目として、例えば、外部システムの内部アドレス項目と、外部システムのアドレス項目と、外部システムが接続する交換機のID項目と、認証情報の有無項目と、を有する。認証情報の有無項目は、認証が必要な外部システムであるか否かを示す情報を格納する。外部システム情報は、メッセージをやり取りする外部システム5に応じて設定される。ネットワーク内でメッセージをやり取りする際に経由する各メッセージ交換システム1に予め外部システム情報を設定しておく。
【0030】
図2に示す交換機10は、経路情報記憶部40から、ネットワーク内の交換機10や外部システム5の情報を取得してメッセージの通信経路を決定する。交換機10は、メッセージ受信時にメッセージの認証を行い、認証に成功したメッセージに対してメッセージ交換システム用の認証情報を付与する。交換機10は、判定部11と認証情報取得部12とを有する。
【0031】
判定部11は、受信したメッセージに基づいて、送信先の外部システム5が認証を必要とする外部システム5であるか否かを判定する。判定部11は、送信先の外部システム5が認証を必要とする外部システム5であると判定した場合に、自交換機10がメッセージの通信経路上の最終交換機であるか否かを判定する。
【0032】
判定部11は、自交換機が最終交換機であると判定した場合に、認証情報記憶部30に記憶されている外部システム5の認証情報を参照して、送信先の外部システム5用の認証情報が認証情報記憶部30に存在するか否かを判定する。
【0033】
認証情報取得部12は、判定部11によって送信先の外部システム5用の認証情報が存在しないと判定された場合に、メッセージの通信経路上に含まれる他の交換機10を有する他のメッセージ交換システム1に対して、送信先の外部システム5用の認証情報を保有しているか否かを問い合わせる。認証情報取得部12は、この問い合わせに応じて他のメッセージ交換システム1から返信される送信先の外部システム5用の認証情報を取得する。認証情報取得部12は、取得した認証情報をメッセージに付加する。
【0034】
サブシステム20は、メッセージ送受信部21とプロトコル変換部22とを有する。メッセージ送受信部21は、送信元の外部システム5から送信先の外部システム5に送信されるメッセージを送受信する。メッセージ送受信部21は、認証情報取得部12によってメッセージに認証情報が付加された場合には、そのメッセージを送信先の外部システム5に送信する。
【0035】
プロトコル変換部22は、メッセージ交換システム1と外部システム5や他のメッセージ交換システム1との間のプロトコル変換を実行する。各メッセージ交換システムや外部システムのプロトコルは任意である。プロトコル変換部22を設けることで、メッセージ交換システム1は、複数のプロトコルを使用して複数の外部システム5や他のメッセージ交換システム1と接続することができる。
【0036】
プロトコル変換部22は、メッセージ交換システム1内で取り扱うメッセージのデータ構造を、例えば、図9に示すデータ構造に変換する。図9に示すメッセージは、ヘッダとボディとを有する。ヘッダは、例えば、メッセージの送信先となる外部システム5の宛先情報や、メッセージ交換システム用の認証情報を格納する。外部システム5の宛先情報として、例えばメッセージ交換システム1内で有効な外部システム5への内部アドレスを用いることができる。ボディは、例えば、メッセージの本文や、本文に付随するデータを格納する。本文に付随するデータには、データそのものや、データのストリーム等が含まれる。
【0037】
図2に示す外部システムの構成について説明する。外部システム5は、メッセージ送受信部51と、メッセージ蓄積部52とを有する。
【0038】
メッセージ送受信部51は、他の外部システム5との間でやり取りするメッセージを送受信する。メッセージ送受信部51は、例えばメッセージ蓄積部52にメッセージが格納されると、メッセージ交換システム1を介してメッセージの送信先となる外部システム5にメッセージを送信する。
【0039】
次に、図面を参照してメッセージ交換システム1の動作について説明する。まず、図10を参照して、メッセージを受信した際にメッセージ交換システム1で実行される処理について説明する。
【0040】
最初に、プロトコル変換部22は、メッセージ送受信部21によって受信されたメッセージを、図9に示すデータ構造に変換する(ステップS101)。
【0041】
続いて、判定部11は、上記ステップS101で変換されたメッセージに基づいて、送信先の外部システム5が認証を必要とする外部システム5であるか否かを判定する(ステップS102)。この判定がNOである場合(ステップS102;NO)に、メッセージ送受信部21は、通信経路上の次のノードにメッセージを送信し(ステップS111)、この動作を終了する。
【0042】
一方、上記ステップS102の判定で送信先の外部システム5が認証を必要とする外部システム5であると判定された場合(ステップS102;YES)に、判定部11は、自交換機10がメッセージの通信経路上の最終交換機であるか否かを判定する(ステップS103)。この判定がNOである場合(ステップS103;NO)に、メッセージ送受信部21は、通信経路上の次のノードにメッセージを送信し(ステップS111)、この動作を終了する。
【0043】
一方、上記ステップS103の判定で自交換機10が最終交換機であると判定された場合(ステップS103;YES)に、判定部11は、送信先の外部システム5用の認証情報がマスタ情報31に存在するか否かを判定する(ステップS104)。この判定がYESである場合(ステップS104;YES)に、認証情報取得部12は、送信先の外部システム5用の認証情報をマスタ情報31から取得し(ステップS109)、取得した認証情報をメッセージに付加する(ステップS110)。そして、メッセージ送受信部21は、認証情報が付加されたメッセージを送信先の外部システム5に送信し(ステップS111)、この動作を終了する。
【0044】
一方、上記ステップS104の判定で外部システム5用の認証情報がマスタ情報31に存在しないと判定された場合(ステップS104;NO)に、判定部11は、送信先の外部システム5用の認証情報がキャッシュ情報32に存在するか否かを判定する(ステップS105)。この判定がYESである場合(ステップS105;YES)に、認証情報取得部12は、送信先の外部システム5用の認証情報をキャッシュ情報32から取得し(ステップS109)、取得した認証情報をメッセージに付加する(ステップS110)。そして、メッセージ送受信部21は、認証情報が付加されたメッセージを送信先の外部システム5に送信し(ステップS111)、この動作を終了する。
【0045】
一方、上記ステップS105の判定で外部システム5用の認証情報がキャッシュ情報32に存在しないと判定された場合(ステップS105;NO)に、認証情報取得部12は、メッセージの通信経路上に含まれる直前の交換機10を有する他のメッセージ交換システム1に対して、送信先の外部システム5用の認証情報を保有しているか否かを問い合わせる(ステップS106)。この問い合わせに応じて他のメッセージ交換システム1において行われる処理については、後述する。
【0046】
上記ステップS106の問い合わせの結果、送信先の外部システム5用の認証情報が他のメッセージ交換システム1に保有されていないことが判明した場合(ステップS107;NO)には、メッセージの送信を中止し、認証エラーとする(ステップS108)。そして、この動作を終了する。
【0047】
一方、上記ステップS106の問い合わせの結果、送信先の外部システム5用の認証情報が他のメッセージ交換システム1に保有されていることが判明した場合(ステップS107;YES)に、認証情報取得部12は、送信先の外部システム5用の認証情報を他のメッセージ交換システム1から取得し(ステップS109)、取得した認証情報をメッセージに付加する(ステップS110)。そして、メッセージ送受信部21は、認証情報が付加されたメッセージを送信先の外部システム5に送信し(ステップS111)、この動作を終了する。
【0048】
次に、図11を参照して、上記ステップS106の問い合わせに応じて他のメッセージ交換システム1において実行される処理について説明する。
【0049】
最初に、判定部11は、問い合わせの対象となる外部システム5用の認証情報がマスタ情報31に存在するか否かを判定する(ステップS201)。この判定がYESである場合(ステップS201;YES)に、認証情報取得部12は、問い合わせ対象の外部システム5用の認証情報をマスタ情報31から取得し、メッセージ送受信部21は、取得された認証情報を問い合わせ元のメッセージ交換システム1に返信する(ステップS206)。そして、この動作を終了する。
【0050】
一方、上記ステップS201の判定で外部システム5用の認証情報がマスタ情報31に存在しないと判定された場合(ステップS201;NO)に、判定部11は、問い合わせ対象の外部システム5用の認証情報がキャッシュ情報32に存在するか否かを判定する(ステップS202)。この判定がYESである場合(ステップS202;YES)に、認証情報取得部12は、問い合わせ対象の外部システム5用の認証情報をキャッシュ情報32から取得し、メッセージ送受信部21は、取得された認証情報を問い合わせ元のメッセージ交換システム1に返信する(ステップS206)。そして、この動作を終了する。
【0051】
一方、上記ステップS202の判定で外部システム5用の認証情報がキャッシュ情報32に存在しないと判定された場合(ステップS202;NO)に、認証情報取得部12は、メッセージの通信経路上に含まれる直前の交換機10を有する他のメッセージ交換システム1に対して、問い合わせ対象の外部システム5用の認証情報を保有しているか否かを問い合わせる(ステップS203)。この問い合わせを受けたメッセージ交換システム1は、上記ステップS201以降の処理を実行する。
【0052】
上記ステップS203の問い合わせの結果、問い合わせ対象の外部システム5用の認証情報が他のメッセージ交換システム1に保有されていないことが判明した場合(ステップS204;NO)に、メッセージ送受信部21は、認証情報が存在しない旨の通知を問い合わせ元のメッセージ交換システム1に返信する(ステップS205)。そして、この動作を終了する。
【0053】
一方、上記ステップS203の問い合わせの結果、問い合わせ対象の外部システム5用の認証情報が他のメッセージ交換システム1に保有されていることが判明した場合(ステップS204;YES)に、認証情報取得部12は、問い合わせ対象の外部システム5用の認証情報を他のメッセージ交換システム1から取得し、メッセージ送受信部21は、取得された認証情報を問い合わせ元のメッセージ交換システム1に返信する(ステップS206)。そして、この動作を終了する。
【0054】
図12を参照して、上述した動作(図10および図11参照)を具体的に説明する。例えば、外部システム5“F”から外部システム5“K”にメッセージを送信する場合について説明する。この動作例では、メッセージの通信経路として、メッセージ交換システム1“A”→“C”→“D”が選択され、かつ、外部システム5“K”の認証情報が、メッセージ交換システム1“A”のマスタ情報31にのみ保有されていることを前提として説明する。図12に示す点線矢印はメッセージの流れを示し、実線矢印は認証情報の要求の流れを示す。
【0055】
最初に、メッセージ交換システム1“A”および“C”では、それぞれのシステム1の交換機10が通信経路上の最終交換機ではない(図10ステップS103;NO)ため、外部システム5“F”から送信されたメッセージは、メッセージ交換システム1“D”に送信される。
【0056】
続いて、メッセージ交換システム1“D”には、外部システム5“K”の認証情報が保有されていない(図10ステップS105;NO)ため、メッセージ交換システム1“D”の認証情報取得部12は、メッセージ交換システム1“C”に対して、外部システム5“K”の認証情報を保有しているか否かを問い合わせる(図10ステップS106)。
【0057】
続いて、メッセージ交換システム1“C”には、外部システム5“K”の認証情報が保有されていない(図11ステップS202;NO)ため、メッセージ交換システム1“C”の認証情報取得部12は、メッセージ交換システム1“A”に対して、外部システム5“K”の認証情報を保有しているか否かを問い合わせる(図11ステップS203)。
【0058】
続いて、メッセージ交換システム1“A”には、外部システム5“K”の認証情報が保有されている(図11ステップS201;YES)ため、メッセージ送受信部21は、取得された認証情報をメッセージ交換システム1“C”に返信する(図11ステップS206)。
【0059】
続いて、メッセージ交換システム1“C”のメッセージ送受信部21は、受信した認証情報をメッセージ交換システム1“D”に返信する(図11ステップS206)。
【0060】
続いて、メッセージ交換システム1“D”の認証情報取得部12は、受信した認証情報をメッセージに付加し(図10ステップS110)、メッセージ送受信部21は、認証情報が付加されたメッセージを外部システム5“K”に送信する(図10ステップS111)。
【0061】
なお、この動作例では、外部システム5“F”から外部システム5“K”にメッセージが送信される場合について説明したが、メッセージの送信先や送信方法は任意に設定することができる。例えば、外部システム5“F”から外部システム5“I”にメッセージを一旦送信し、その後、外部システム5“I”から外部システム5“K”にメッセージを送信することとしてもよい。
【0062】
上述したように、実施形態におけるメッセージ交換システム1によれば、自メッセージ交換システム1で保有していない認証情報が必要になった場合には、通信経路上の他メッセージ交換システム1から取得することができる。したがって、外部システム5の認証情報を、いずれか一つのメッセージ交換システム1のマスタ情報に登録すればよいため、認証情報の管理負担を軽減させることができる。
【0063】
また、メッセージの通信経路上の最終交換機までは、送信先の外部システムの認証情報が不要なため、ネットワーク内を流れるメッセージの容量を抑制することでき、ネットワークの負荷を軽減することができる。また、認証情報を取得する際には、認証情報が取得できるまで通信経路上の交換機を一つずつ遡って問い合わせればよいため、認証情報の取得に要する通信量を抑制することができ、ネットワークの負荷を軽減することができる。
【0064】
[変形例]
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【0065】
例えば、上述した実施形態では、メッセージ交換システム1が外部システム5の認証を得るために、送信メッセージに認証情報を付与しているが、外部システム5への認証手続きはこれに限定されない。例えば、送信メッセージとは別に、事前に認証情報を外部システム5に送信することとしてもよい。
【0066】
また、上述した実施形態における外部システムの認証情報に、セッション情報を追加することとしてもよい。これにより、セッション管理が可能となる。具体的には、送信先の外部システム5にメッセージを送信し、認証が完了した段階でセッション情報を保存しておき、次回以降、その外部システム5にアクセスする際にセッション情報の有無を確認し、セッション情報が存在する場合に、認証処理を省略し、保存されているセッション情報を利用してメッセージを送信する。セッション情報が存在しない場合や無効であった場合には、上述した実施形態と同様に、自メッセージ交換システム1の認証情報記憶部30に認証情報が存在するか否かを判定する処理から実行すればよい。
【0067】
また、上述した実施形態における外部システムの認証情報に、ステータス情報を追加することとしてもよい。これにより、ログアウト処理を追加することが可能となる。具体的には、送信先の外部システム5にメッセージを送信し、認証が完了した段階でステータス情報に外部システム5にアクセス中であることを記録しておき、例えば返却するメッセージのヘッダ等にログアウトする旨の情報が付与され、かつ、ステータス情報がアクセス中である場合に、メッセージの返却時に、ログアウト処理を実行する。
【0068】
また、上述した実施形態における外部システムの認証情報に、外部システムへの認証可否情報を追加することとしてもよい。これにより、不正アクセスを防止してセキュリティを向上させることが可能となる。具体的には、外部システム5で認証が行われるたびに、その認証結果を認証可否情報に記録することで、否認の頻度が所定の閾値を超過している場合に、不正アクセスとみなして外部システム5へのアクセスを制限する。否認の頻度を判定するタイミングとしては、例えば、送信先の外部システム5が認証を必要とする外部システムであると判定された後に、行うことができる。
【0069】
最後に、上記実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明を以下に限定するものではない。
【0070】
(付記1) 交換機を有するメッセージ交換システムであって、第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信部と、前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定部と、前記第1判定部によって前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定部と、前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得部と、前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信部と、を備えることを特徴とするメッセージ交換システム。
【0071】
(付記2) 前記認証情報取得部は、前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記第2外部システム用の認証情報を保有しているか否かを、前記他のメッセージ交換システムに問い合わせ、当該問い合わせに応じて返信される前記第2外部システム用の認証情報を前記他のメッセージ交換システムから取得する、ことを特徴とする付記1記載のメッセージ交換システム。
【0072】
(付記3) 外部システムの認証情報を記憶する記憶部を、さらに備え、前記第2判定部は、前記記憶部に記憶されている外部システムの認証情報を参照して、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する、ことを特徴とする付記1または2記載のメッセージ交換システム。
【0073】
(付記4) 交換機を有するメッセージ交換システムを制御するメッセージ交換方法であって、第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信ステップと、前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定ステップと、前記第1判定ステップにおいて前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定ステップと、前記第2判定ステップにおいて前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得ステップと、前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信ステップと、を含むことを特徴とするメッセージ交換方法。
【0074】
(付記5) 付記4に記載の各ステップをコンピュータに実行させるためのメッセージ交換プログラム。
【符号の説明】
【0075】
1…メッセージ交換システム、5…外部システム、10…交換機、11…判定部、12…認証情報取得部、20…サブシステム、21…メッセージ送受信部、22…プロトコル変換部、30…認証情報記憶部、31…マスタ情報、32…キャッシュ情報、40…経路情報記憶部、41…交換機情報、42…外部システム情報、51…メッセージ送受信部、52…メッセージ蓄積部。
【特許請求の範囲】
【請求項1】
交換機を有するメッセージ交換システムであって、
第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信部と、
前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定部と、
前記第1判定部によって前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定部と、
前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得部と、
前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信部と、
を備えることを特徴とするメッセージ交換システム。
【請求項2】
前記認証情報取得部は、前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記第2外部システム用の認証情報を保有しているか否かを、前記他のメッセージ交換システムに問い合わせ、当該問い合わせに応じて返信される前記第2外部システム用の認証情報を前記他のメッセージ交換システムから取得する、ことを特徴とする請求項1記載のメッセージ交換システム。
【請求項3】
外部システムの認証情報を記憶する記憶部を、さらに備え、
前記第2判定部は、前記記憶部に記憶されている外部システムの認証情報を参照して、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する、
ことを特徴とする請求項1または2記載のメッセージ交換システム。
【請求項4】
交換機を有するメッセージ交換システムを制御するメッセージ交換方法であって、
第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信ステップと、
前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定ステップと、
前記第1判定ステップにおいて前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定ステップと、
前記第2判定ステップにおいて前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得ステップと、
前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信ステップと、
を含むことを特徴とするメッセージ交換方法。
【請求項5】
請求項4に記載の各ステップをコンピュータに実行させるためのメッセージ交換プログラム。
【請求項1】
交換機を有するメッセージ交換システムであって、
第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信部と、
前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定部と、
前記第1判定部によって前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定部と、
前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得部と、
前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信部と、
を備えることを特徴とするメッセージ交換システム。
【請求項2】
前記認証情報取得部は、前記第2判定部によって前記第2外部システム用の認証情報を保有していないと判定された場合に、前記第2外部システム用の認証情報を保有しているか否かを、前記他のメッセージ交換システムに問い合わせ、当該問い合わせに応じて返信される前記第2外部システム用の認証情報を前記他のメッセージ交換システムから取得する、ことを特徴とする請求項1記載のメッセージ交換システム。
【請求項3】
外部システムの認証情報を記憶する記憶部を、さらに備え、
前記第2判定部は、前記記憶部に記憶されている外部システムの認証情報を参照して、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する、
ことを特徴とする請求項1または2記載のメッセージ交換システム。
【請求項4】
交換機を有するメッセージ交換システムを制御するメッセージ交換方法であって、
第1外部システムから一または複数の前記メッセージ交換システムを経由して第2外部システムに送信されるメッセージを受信する受信ステップと、
前記交換機が前記メッセージの通信経路上の最終交換機であるか否かを判定する第1判定ステップと、
前記第1判定ステップにおいて前記交換機が前記最終交換機であると判定された場合に、前記第2外部システム用の認証情報を自メッセージ交換システムで保有しているか否かを判定する第2判定ステップと、
前記第2判定ステップにおいて前記第2外部システム用の認証情報を保有していないと判定された場合に、前記メッセージの通信経路上に含まれる他の交換機を有する他のメッセージ交換システムから、前記第2外部システム用の認証情報を取得する認証情報取得ステップと、
前記取得した前記第2外部システム用の認証情報を付加した前記メッセージを前記第2外部システムに送信する送信ステップと、
を含むことを特徴とするメッセージ交換方法。
【請求項5】
請求項4に記載の各ステップをコンピュータに実行させるためのメッセージ交換プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−48284(P2012−48284A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−186988(P2010−186988)
【出願日】平成22年8月24日(2010.8.24)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願日】平成22年8月24日(2010.8.24)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
[ Back to top ]