システム、認証情報管理方法、およびプログラム
【課題】代理認証処理の効率化を図る。
【解決手段】代理サーバ1は、サービス識別子を指定したサービス要求に応じ、サービス識別子に対応する少なくとも2つの処理システム識別子を第1の記憶部1aから読み出し、読み出した少なくとも2つの処理システム識別子を含む取得要求を管理サーバ2に送信する。管理サーバ2は、受信した取得要求に含まれる少なくとも2つの処理システム識別子それぞれに対応する認証情報を第2の記憶部2aから取得して代理サーバ1に送信する。代理サーバ1は、受信した認証情報を含む、処理システムごとのユーザ認証の要求を、少なくとも2つの処理システム3,4それぞれに送信する。
【解決手段】代理サーバ1は、サービス識別子を指定したサービス要求に応じ、サービス識別子に対応する少なくとも2つの処理システム識別子を第1の記憶部1aから読み出し、読み出した少なくとも2つの処理システム識別子を含む取得要求を管理サーバ2に送信する。管理サーバ2は、受信した取得要求に含まれる少なくとも2つの処理システム識別子それぞれに対応する認証情報を第2の記憶部2aから取得して代理サーバ1に送信する。代理サーバ1は、受信した認証情報を含む、処理システムごとのユーザ認証の要求を、少なくとも2つの処理システム3,4それぞれに送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、代理認証に用いる認証情報を管理するシステム、認証情報管理方法、およびプログラムに関する。
【背景技術】
【0002】
アプリケーションプログラムを実行することによってサービスを提供するアプリケーションサーバ(以下、APサーバと呼ぶ)にユーザがアクセスするとき、ユーザの代わりに認証要求を行う代理認証の仕組みがある。代理認証を行う装置では、例えばユーザIDとパスワードとの組(認証情報)によるユーザの事前認証を行う。そして、正しく認証したユーザに対して、予め登録された認証情報を用いて、ユーザが使用するAPサーバのユーザ認証を受ける。これにより、複数のAPサーバごとの認証情報の入力の手間を省くことができる。また企業などの組織であれば、APサーバを利用するための認証情報をシステムの管理者が管理し、管理者が代理認証の設定を行うことで、個々のユーザがAPサーバごとの認証情報を管理せずにすむ。
【0003】
このような代理認証機能には、例えば端末装置上に代理認証機能を配備した形態(端末代理認証)がある。企業などの組織で端末代理認証を導入した場合、システムの管理者が、APサーバのサービスの利用を許すユーザの端末装置に、認証情報を配布することとなる。ただし端末代理認証では、認証情報の登録・削除・変更のたびに全端末装置への認証情報配布が行われる。そのため、ユーザ数が多くなると、管理者の認証情報配布の負担が過大となる。また、端末装置内のブラウザなどに認証情報を記憶させると、スパイウェア、ウィルスなどにより認証情報が漏洩する危険もある。
【0004】
そこで端末装置とは別のサーバで認証情報を一元管理して、代理認証を行うことが考えられている。例えばSSO(シングルサインオン)サーバで代理認証を行う技術がある。またプロキシサーバで代理認証を行う技術もある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−003119号公報
【特許文献2】特開2005−011098号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、従来は、代理認証を行う場合の処理の効率化が十分ではなかった。そのため、代理認証処理を利用するユーザ数が多くなった場合に、代理認証を行う装置の処理負荷が過大になってしまうという問題があった。
【0007】
1つの側面では、本発明は、代理認証処理の効率化を図ることができるシステム、認証情報管理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムにおけるユーザ認証用の認証情報を管理する管理サーバとを備えるシステムが提供される。代理サーバは、サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部と、サービス識別子を指定したサービス要求に応じ、該サービス識別子に対応する少なくとも2つの処理システム識別子を第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を管理サーバに送信する手段と、を備える。管理サーバは、処理システムを特定する処理システム識別子と、該処理システムにおけるユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部と、取得要求を代理サーバから受信する手段と、受信した取得要求に含まれる少なくとも2つの処理システム識別子それぞれに対応する認証情報を第2の記憶部から取得して代理サーバに送信する手段と、を備える。代理サーバは、さらに、少なくとも2つの処理システム識別子それぞれに対応する認証情報を管理サーバから受信する手段と、受信した認証情報を含む、処理システムごとのユーザ認証の要求を、少なくとも2つの処理システムそれぞれに送信する手段と、を備える。
【発明の効果】
【0009】
代理認証の処理効率が向上する。
【図面の簡単な説明】
【0010】
【図1】第1の実施の形態に係るシステムの機能構成例を示す図である。
【図2】第2の実施の形態に係るシステムの処理手順の一例を示すシーケンス図である。
【図3】第1の実施の形態による代理認証の一例を示す図である。
【図4】第2の実施の形態のシステム構成例を示す図である。
【図5】アクセス権の委譲により実行可能となるサービスの一例を示す図である。
【図6】本実施の形態に用いるGWのハードウェアの一構成例を示す図である。
【図7】各装置の処理機能の一例を示すブロック図である。
【図8】クラウド対応テーブルのデータ構造の一例を示す図である。
【図9】認証情報テーブルのデータ構造の一例を示す図である。
【図10】連携サービステーブルのデータ構造の一例を示す図である。
【図11】認証情報管理テーブルのデータ構造の一例を示す図である。
【図12】登録されている連携サービスの提供処理の一例の前半を示すシーケンス図である。
【図13】登録されている連携サービスの提供処理の一例の後半を示すシーケンス図である。
【図14】連携サービスの代理認証の一例を示す図である。
【図15】未登録の連携サービスの提供処理の一例を示すシーケンス図である。
【図16】連携サービステーブルへのエントリ登録例を示す図である。
【図17】未認可のリクエストトークンを含むHTTP応答メッセージの一例を示す図である。
【図18】アクセス許可を示すリクエストトークンを含むHTTP応答メッセージの例を示す図である。
【図19】メッセージ受信時のGWの処理の一例を示すフローチャートである。
【図20】サービス要求対応処理の手順の一例を示すフローチャートである。
【図21】認証要求リダイレクト処理の手順の一例を示すフローチャートである。
【図22】認証情報応答処理の手順の一例を示すフローチャートである。
【図23】連携サービス登録処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、代理認証を行う代理サーバと認証情報を管理する管理サーバとを別個に設け、それらの装置間での通信頻度を低く抑えることで、処理効率の向上を図ったものである。ここで、管理サーバは、例えば認証局(IDP:Identity Provider)の認証情報を管理するリポジトリサーバである。
【0012】
代理サーバと管理サーバとを別個の装置にすれば、代理サーバにおいて、認証情報の管理に要する処理を行わずにすみ、代理サーバの負荷が軽減される。その結果、代理認証処理の効率化が図られる。また、認証情報を管理サーバで集中管理できるため、端末代理認証に比べ、認証情報の変更処理に係る管理者の作業負荷が軽減できる。さらにアプリケーションサーバへの接続のための認証情報が管理サーバ内にあるため、認証情報が漏洩する可能性を軽減できる。
【0013】
ただし、代理サーバと管理サーバとを別個の装置にすると、ユーザからのサービス要求に基づいて、APサーバから認証情報の入力が求められるごとに、代理サーバから管理サーバへ、認証情報の問い合わせを行うこととなる。そのため、ユーザ数が膨大になると代理サーバと管理サーバとの間で認証情報の問い合わせと、問い合わせに対する応答との通信が頻繁に発生し、処理効率が悪化してしまう。そこで、第1の実施の形態では、代理サーバと管理サーバとの間の通信頻度を少なく抑えることで、処理効率を改善する。
【0014】
例えば代理認証が行われる場面の1つとして、複数のAPサーバの連係した処理で実現されるサービスの提供を受ける際に、複数のAPサーバそれぞれから認証情報の入力が求められるような場合がある。このような場合、ユーザが使用する端末装置から出された1つのサービス要求に応じて、複数のアプリケーションサーバへの代理認証が行われる。そこで、第1の実施の形態では、複数のアプリケーションサーバへの代理認証を伴う処理のサービス要求を、代理認証を行う代理サーバが受信した場合、代理サーバは、代理認証に使用する複数の認証情報を、一括で管理サーバから取得する。これにより、代理サーバと管理サーバとの間の通信頻度を低減することが可能となる。
【0015】
図1は、第1の実施の形態に係るシステムの機能構成例を示す図である。代理サーバ1は、サービスを連携して処理する2つの処理システム3,4へのユーザ認証手続きを代理する。管理サーバ2は、2つの処理システム3,4におけるユーザ認証用の認証情報を管理する。なお処理システム3,4それぞれは、例えば1以上のサーバを有するコンピュータシステムである。処理システム3,4には、例えばサービス要求に応じて処理を実行する機能と、ユーザ認証の要求に応じてユーザ認証を行う機能とが含まれる。なお、処理を実行する機能とユーザ認証を行う機能とは、それぞれ別のサーバに実装してもよく、1つのサーバに実装してもよい。
【0016】
代理サーバ1は、第1の記憶部1a、送信手段1b、受信手段1c、および送信手段1dを有する。
第1の記憶部1aは、サービスを特定するサービス識別子と、そのサービスを連携して処理する2つの処理システム3,4それぞれを特定する処理システム識別子との対応関係を記憶する。
【0017】
送信手段1bは、サービス識別子を指定したサービス要求に応じ、該サービス識別子に対応する2つの処理システム識別子を第1の記憶部から読み出す。そして送信手段1bは、読み出した2つの処理システム識別子を含む取得要求を管理サーバ2に送信する。サービス要求は、例えば端末装置5から入力される。
【0018】
受信手段1cは、2つの処理システム識別子それぞれに対応する認証情報を管理サーバ2から受信する。
送信手段1dは、受信した認証情報を含む、処理システムごとのユーザ認証の要求を、2つの処理システム3,4それぞれに送信する。
【0019】
管理サーバ2は、第2の記憶部2a、受信手段2b、および送信手段2cを備える。
第2の記憶部2aは、処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する。
【0020】
受信手段2bは、取得要求を代理サーバ1から受信する。
送信手段2cは、受信した取得要求に含まれる2つの処理システム識別子それぞれに対応する認証情報を第2の記憶部2aから取得して、代理サーバ1に送信する。
【0021】
なお、代理サーバ1の送信手段1b、受信手段1c、および送信手段1dは、代理サーバ1が有するCPU(Central Processing Unit)により実現することができる。また、代理サーバ1が有する第1の記憶部1aは、代理サーバ1が有するRAM(Random Access Memory)やハードディスクドライブ(HDD:Hard Disk Drive)などにより実現することができる。管理サーバ2の受信手段2bと送信手段2cとは、管理サーバ2が有するCPUにより実現することができる。また、管理サーバ2が有する第2の記憶部2aは、管理サーバ2が有するRAMやHDDなどにより実現することができる。
【0022】
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
次に、図1に示したシステムにおける処理手順を説明する。
【0023】
図2は、第2の実施の形態に係るシステムの処理手順の一例を示すシーケンス図である。以下、図2に示す処理をステップ番号に沿って説明する。
[ステップS1]端末装置5は、サービス要求を送信する。例えば端末装置5は、ユーザからの入力に応じてサービス要求を送信する。サービス要求には、サービスを特定するサービス識別子が含まれる。
【0024】
[ステップS2]代理サーバ1の送信手段1bは、端末装置5が送信したサービス要求を受信する。
[ステップS3]代理サーバ1の送信手段1bは、サービス要求で指定されたサービス識別子に対応する2つの処理システム識別子を、第1の記憶部1aから読み出す。
【0025】
[ステップS4]代理サーバ1の送信手段1bは、管理サーバ2へ取得要求を送信する。取得要求には、第1の記憶部1aから読み出した2つの処理システム識別子が含まれる。
【0026】
[ステップS5]管理サーバ2の受信手段2bは、代理サーバ1から送信された取得要求を受信する。受信手段2bは、受信した取得要求を、送信手段2cに渡す。
[ステップS6]管理サーバ2の送信手段2cは、受信した取得要求に含まれる2つの処理システム識別子それぞれに対応する認証情報を第2の記憶部2aから取得する。
【0027】
[ステップS7]管理サーバ2の送信手段2cは、取得した認証情報を代理サーバ1に送信する。
[ステップS8]代理サーバ1の受信手段1cは、管理サーバ2から送信された、2つの処理システム識別子それぞれに対応する認証情報を受信する。
【0028】
[ステップS9]代理サーバ1の送信手段1dは、受信した認証情報を含む、処理システム3,4ごとのユーザ認証の要求を、2つの処理システム3,4それぞれに送信する。
[ステップS10]処理システム3は、ユーザ認証の要求に応じて、そのユーザ認証の要求に含まれる認証情報によりユーザ認証を行う。
【0029】
[ステップS11]処理システム4は、ユーザ認証の要求に応じて、そのユーザ認証の要求に含まれる認証情報によりユーザ認証を行う。
図3は、第1の実施の形態による代理認証の一例を示す図である。図3の例では、端末装置5から、ユーザID「00930428」とサービス識別子「http://Ap1.c.com」とを含むサービス要求6が送信されている。サービス識別子は、例えばいずれかの処理システム内のアプリケーションサーバのURL(Uniform Resource Locator)である。
【0030】
サービス要求6を受信した代理サーバ1では、サービス要求6に示されるサービス識別子に対応する処理システム識別子が、第1の記憶部1aから抽出される。図3の例では、「https://IDP1.com」と「https://IDP2.com」との2つの処理システム識別子が抽出される。例えば、各処理システム3,4内のユーザ認証処理を行うサーバのURLが、処理システム3,4の処理システム識別子として使用されている。
【0031】
そして代理サーバ1から管理サーバ2へ、取得要求7が送信される。処理要求7には、サービス要求6に示されたユーザID「00930428」と、第1の記憶部1aから抽出した2つの処理システム識別子「https://IDP1.com」、「https://IDP2.com」が含まれている。
【0032】
取得要求7は管理サーバ2で受信される。管理サーバ2では、第2の記憶部2aから、取得要求7に示されるユーザIDと処理システム識別子それぞれとの組に対応する認証情報8が取得される。図3の例では、ユーザID「00930428」と処理システム識別子「https://IDP1.com」との組に対応する認証情報「x_ID/x_PW」とユーザID「00930428」が取得される。また処理システム識別子「https://IDP2.com」との組に対応する認証情報「y_ID/y_PW」も取得される。管理サーバ2で取得された認証情報8は、代理サーバ1に送信される。
【0033】
認証情報8は、代理サーバ1で取得される。そして代理サーバ1は、取得した認証情報8それぞれを含むユーザ認証要求9,10を、処理システム3,4に送信する。例えば処理システム識別子「https://IDP1.com」に対応する認証情報「x_ID/x_PW」を含むユーザ認証要求9が、処理システム識別子「https://IDP1.com」で示されるURLを宛先として送信される。また処理システム識別子「https://IDP2.com」に対応する認証情報「y_ID/y_PW」を含むユーザ認証要求10が、処理システム識別子「https://IDP2.com」で示されるURLを宛先として送信される。
【0034】
これにより、連携したサービスを行う2つの処理システム3,4のそれぞれに認証情報が送られ、各処理システム3,4でユーザ認証が行われる。このとき、代理サーバ1は、管理サーバ2への1回の取得要求により、2つの認証情報を取得している。従って、例えば処理システム3,4それぞれから認証要求が出されるごとに、個別に管理サーバ2から認証情報を取得する場合に比べ、代理サーバ1と管理サーバ2との間の通信頻度を抑止することができる。その結果、代理認証の処理効率が向上する。
【0035】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ゲートウェイ装置(GW)で代理認証を行うシステムの例である。
【0036】
図4は、第2の実施の形態のシステム構成例を示す図である。図4の例では、名称が「F社」であるネットワーク事業者Fが、GW100を用いて、ネットワーク21に接続された端末装置31〜34を使用するユーザの代理認証を行う。端末装置31〜34には、プリンタ、移動体端末装置、およびタブレット端末装置が含まれる。
【0037】
端末装置31〜34は、例えば企業などの組織に属するユーザが使用する。組織単位でサービス事業者X,Yとのサービス提供契約を締結することで、その組織に属するユーザが、サービス事業者X,Yのシステムで適用されているサービスを利用可能となる。以下、サービス事業者X,Yとの間でサービス提供契約を締結している組織を、テナントと呼ぶ。図4の例では、端末装置31,32は、テナントIDが「Te-A」のテナントAに属するユーザが使用する。端末装置33,34は、テナントIDが「Te-B」のテナントBに属するユーザが使用する。
【0038】
ネットワーク事業者F内では、GW100がネットワーク21とネットワーク22との間に設けられている。2つのネットワーク21,22は、例えばVPN(Virtual Private Network)を用いることができる。
【0039】
GW100には、ネットワーク事業者Fの内部のネットワーク41を介して認証局42と管理サーバ200とが接続されている。IDP42は、端末装置31〜34を使用するユーザの認証を行う。管理サーバ200は、ネットワーク22を介して接続されたサービス事業者からサービスの提供を受ける際の代理認証に用いられる認証情報を管理する。認証情報は、例えばユーザIDとパスワードとの組である。
【0040】
図4の例では、ネットワーク22に複数のサービス事業者X,Yのシステムが接続されている。例えば名称が「X社」のサービス事業者Xのシステムと、名称が「Y社」のサービス事業者Yのシステムとが、ネットワーク22を介してGW100に接続されている。
【0041】
ネットワーク事業者X内では、ルータ51を介して、内部のネットワーク52とネットワーク22とが接続されている。内部のネットワーク52には、IDP53とAPサーバ54とが接続されている。IDP53は、APサーバ54で提供するサービスを利用するユーザの認証を行う。APサーバ54は、IDP53で認証を受けたユーザに対してサービスを提供する。例えばAPサーバ54は、IDP53で認証を受けたユーザが使用する端末装置からの要求に応じて、要求された処理を実行する。
【0042】
ネットワーク事業者Y内では、ルータ61を介して、内部のネットワーク62とネットワーク22とが接続されている。内部のネットワーク62には、IDP63とAPサーバ64とが接続されている。IDP63は、APサーバ64で提供するサービスを利用するユーザの認証を行う。APサーバ64は、IDP63で認証を受けたユーザに対してサービスを提供する。例えばAPサーバ64は、IDP63で認証を受けたユーザが使用する端末装置からの要求に応じて、要求された処理を実行する。
【0043】
なお図4に示すGW100は、図1に示す第1の実施の形態の代理サーバ1の一例である。図4に示す管理サーバ200は、図1に示す第1の実施の形態の管理サーバ2の一例である。図4に示す各サービス事業者X,Yの内部のシステムは、図1に示す処理システム3,4の一例である。図4に示す端末装置31〜34は、図1に示す第1の実施の形態の端末装置5の一例である。
【0044】
ここで、ネットワーク事業者XのIDP53と、ネットワーク事業者YのIDP63とは、アクセス権の委譲処理を行うことができる。例えばIDP63は、端末装置31〜34を使用するユーザのAPサーバ64へのアクセス権を、APサーバ54に委譲することができる。これによりAPサーバ54が、APサーバ64にアクセスし、APサーバ64によって提供されるサービスをAPサーバ54が利用することができる。このようなアクセス権の委譲を行うことができるプロトコルとしては、例えばOAuthがある。
【0045】
図5は、アクセス権の委譲により実行可能となるサービスの一例を示す図である。例えばユーザ71は、APサーバ64に自己の書類(ドキュメント)を保管しているものとする。またAPサーバ54では、ユーザ71のドキュメントデータ72を印刷データ73に変換するサービスを行っているものとする。
【0046】
ユーザ71は、APサーバ64に保管しておいた自己のドキュメントデータ72の内容を印刷する場合、例えばプリンタ機能を有する端末装置31の操作パネルを用いて、ドキュメントデータ72の印刷を指示する入力を行う。端末装置31は、入力に応じて、APサーバ54に対してドキュメントデータ72のネットプリント要求を送信する(ステップS16)。ネットプリント要求は、GW100を介してAPサーバ54に送られる。APサーバ54は、ユーザ71に与えられたアクセス権を用いてAPサーバ64にアクセスし、ドキュメントデータ72を取得する(ステップS17)。そしてAPサーバ54は、ドキュメントデータ72を印刷データ73に変換し、端末装置31に送信する(ステップS18)。端末装置31は、受信した印刷データ73に基づいて印刷を行い、ドキュメントデータ72の内容が印刷された紙書類74を排出する(ステップS19)。
【0047】
このようなサービスを利用するには、APサーバ54に対して、APサーバ64へのアクセス権の委譲が行われる。その場合、ユーザ71の代理認証を行うGW100は、APサーバ54のサービスを利用するための代理認証を受けると共に、APサーバ64のサービスを利用するための代理認証を受けることとなる。そのために、GW100は、管理サーバ200から、APサーバ54とAPサーバ64とのそれぞれのサービスを利用するための複数の認証情報を取得する。
【0048】
第2の実施の形態では、個別に認証を受けて使用可能となるる複数のサーバが連携して実行するサービスを利用する場合には、GW100が、代理認証に利用する複数の認証情報を、まとめて管理サーバ200から取得する。これにより、GW100と管理サーバ200との間の通信頻度が低減させることができ、処理の効率化が図れる。
【0049】
図6は、本実施の形態に用いるGWのハードウェアの一構成例を示す図である。GW100は、CPU101によって装置全体が制御されている。CPU101には、バス100aを介してRAM102と複数の周辺機器が接続されている。
【0050】
RAM102は、GW100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
【0051】
バス100aに接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および複数の通信インタフェース107〜109がある。
【0052】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、GW100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0053】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0054】
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0055】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0056】
通信インタフェース107は、ネットワーク事業者Fの内部のネットワーク41に接続されている。通信インタフェース107は、ネットワーク41を介して、IDP42や管理サーバ200との間でデータの送受信を行う。
【0057】
通信インタフェース108は、ネットワーク21に接続されている。通信インタフェース108は、ネットワーク21を介して、端末装置31〜34との間でデータの送受信を行う。
【0058】
通信インタフェース109は、ネットワーク22に接続されている。通信インタフェース109は、ネットワーク22を介して、サービス事業者XのIDP53とAPサーバ54、およびサービス事業者YのIDP63とAPサーバ64を含む各種装置とデータの送受信を行う。
【0059】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお図6にはGW100のハードウェア構成を示したが、ネットワーク事業者F内のIDP42、管理サーバ200も同様のハードウェアで実現できる。またサービス事業者XのIDP53とAPサーバ54も、GW100と同様のハードウェアで実現できる。またサービス事業者YのIDP63とAPサーバ64も、GW100と同様のハードウェアで実現できる。さらに端末装置31〜34も、GW100と同様のハードウェアで実現できる。ただし端末装置31〜34は、その用途に応じて、GW100と同様のハードウェアに加え、プリンタ機能、電話機能、タッチセンサなどを有している。
【0060】
なお、第1の実施の形態に示した代理サーバ1、および管理サーバ2も、図6に示したGW100と同様のハードウェアにより実現することができる。
次に各装置の処理機能について説明する。
【0061】
図7は、各装置の処理機能の一例を示すブロック図である。図7の例では、端末装置32のユーザが、端末装置32のブラウザ32aを用いて、APサーバ54に実装されたアプリケーション54aによるサービスの提供を受ける場合が想定されている。また端末装置32のユーザは、APサーバ64に自己のドキュメントデータを保存しており、そのドキュメントデータは、APサーバ64に実装されたアプリケーション64aによって抽出される。そして、アプリケーション54aが実行する処理には、APサーバ64が保持するドキュメントデータを利用した処理が含まれる。
【0062】
管理サーバ200は、記憶部210と認証情報提供部220とを有している。記憶部210は、例えば管理サーバ200内のRAMまたはHDDによって実現される。記憶部210には、クラウド対応テーブル211と認証情報テーブル群212とが格納されている。クラウド対応テーブル211は、サービス事業者のIDP53,63のURLが登録されたデータテーブルである。認証情報テーブル群212は、サービスの提供を受ける組織(テナント)内のユーザそれぞれの認証情報それぞれの認証情報が登録された、サービス事業者ごとの認証情報テーブルの集合である。
【0063】
認証情報提供部220は、GW100からの認証情報の問い合わせに応じて、記憶部210から認証情報を取得し、GW100に応答する。例えば認証情報提供部220は、テナント名、ユーザID、および少なくとも1つのIDPのURLの組を含む問い合わせを受け取り、その問い合わせに示される情報に対応する認証情報を記憶部210から取得する。そして認証情報提供部220は、取得した認証情報を、GW100に送信する。
【0064】
GW100は、記憶部110、メッセージ送受信部120、メッセージ送受信部130、受付部140、事前認証部150、問い合わせ部160、代理認証部170、および連携テーブル作成部180を有する。
【0065】
記憶部110は、連携サービステーブル111と認証情報管理テーブル112とを記憶する。例えばRAM102またはHDD103の記憶領域の一部が、記憶部110として使用される。連携サービステーブル111は、サービスごとに、認証を受けるべきIDPのURLが登録されたデータテーブルである。認証情報管理テーブル112は、ユーザごとに、各サービスのIDPで認証を受けるための認証情報が登録されたデータテーブルである。
【0066】
メッセージ送受信部120は、端末装置31〜34から送られるメッセージを受信する。メッセージ送受信部120は、受信したメッセージを受付部140に渡す。またメッセージ送受信部120は、受付部140から端末装置31〜34宛のメッセージを受け取ると、宛先の端末装置へメッセージを送信する。
【0067】
メッセージ送受信部130は、IDP53,63やAPサーバ54,64から送られるメッセージを受信する。メッセージ送受信部130は、受信したメッセージを受付部140に渡す。またメッセージ送受信部130は、受付部140からIDP53,63やAPサーバ54,64宛のメッセージを受け取ると、宛先の装置へメッセージを送信する。
【0068】
受付部140は、端末装置31〜34、IDP53,63、APサーバ54,64などから出力されたメッセージを受け付け、メッセージの種別を解析する。そして受付部140は、各メッセージの種別に応じて他の要素に処理を依頼する。また受付部140は、他の要素から、メッセージに応じた処理結果を受け取ると、その処理結果のメッセージをメッセージ送受信部120,130のいずれかに送信する。
【0069】
事前認証部150は、端末装置31〜34の事前認証処理を制御する。例えば、事前認証部150は、受付部140から、事前認証が未認証の端末装置31〜34が出力した処理の要求を示すサービス要求メッセージを受け取ると、IDP42によるユーザ認証処理に移行させるメッセージを端末装置に応答する。なお、事前認証部150は、ユーザがIDP42において正しく認証された場合、そのユーザが認証されたことを示す情報をIDP42から取得する。なおユーザが認証されたことを示す情報は、例えばサービスを要求する端末装置からの再度のサービス要求メッセージに含められる。このとき、ユーザが認証されたことを示す情報は、例えば暗号化してサービス要求メッセージに含められる。その場合、事前認証部150は、例えばIDP42から予め取得しておいた鍵を用いてユーザが認証されたことを示す情報を複合することで、ユーザが正しく認証されたことを認識する。なおIDP42によるユーザ認証は、例えばOpenIDの認証システムを利用することができる。
【0070】
問い合わせ部160は、未認証のサービスに対するサービス要求メッセージを取得すると、管理サーバ200に認証情報を問い合わせる。そして問い合わせ部160は、管理サーバ200から取得した認証情報を受付部140に渡す。この認証情報は、受付部140を介して代理認証部170に渡される。
【0071】
代理認証部170は、サービス要求メッセージの宛先であるAPサーバの認証を行うIDPにアクセスし、受付部140介して受け取った認証情報を用いてユーザの認証を受ける。
【0072】
連携テーブル作成部180は、連携サービステーブル111を作成する。例えば連携テーブル作成部180は、連携サービステーブル111に登録されていないサーバ間の連携関係を検出すると、その連携関係を示すエントリを連携サービステーブル111に追加登録する。
【0073】
なお、図7に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
また、図1に示した実施の形態の第1の記憶部1aは、第2の実施の形態の記憶部110によって実現される。図1に示した実施の形態の送信手段1bおよび受信手段1cは、第2の実施の形態の問い合わせ部160によって実現される。図1に示した実施の形態の送信手段1dは、第2の実施の形態の代理認証部170によって実現される。図1に示した実施の形態の第2の記憶部2aは、第2の実施の形態の記憶部210によって実現される。図1に示した実施の形態の受信手段2bと送信手段2cとは、第2の実施の形態の認証情報提供部220によって実現される。
【0074】
次に、各装置に格納されているデータテーブルの内容について詳細に説明する。まず、管理サーバ200の記憶部210に格納されているクラウド対応テーブル211と認証情報テーブル群212内の認証情報テーブルとについて説明する。
【0075】
図8は、クラウド対応テーブルのデータ構造の一例を示す図である。クラウド対応テーブル211には、IDP_URLとサービス事業者との欄が設けられている。
IDP_URLの欄には、サービス事業者が有するIDPのURLが設定される。サービス事業者の欄には、サービス事業者の名称が設定される。図8の例では、ネットワーク事業社Fが有するIDP42のURLは「http://IDP0.com」である。サービス事業者Xが有するIDP53のURLは「https://IDP1.com」である。サービス事業者Yが有するIDP63のURLは「https://IDP2.com」である。
【0076】
図9は、認証情報テーブルのデータ構造の一例を示す図である。認証情報テーブル群212には、サービス事業者ごとの認証情報テーブル212a,212b,・・・が格納されている。例えば認証情報テーブル212aは、名称「X社」のサービス事業者Xに対応しており、認証情報テーブル212bは、名称「Y社」のサービス事業者Yに対応している。
【0077】
認証情報テーブル212aには、テナントID、ユーザID、X社ID、およびX社パスワードの欄が設けられている。テナントIDの欄には、サービス事業者Xのサービス提供を受ける組織(テナント)の識別情報(テナントID)が設定される。ユーザIDの欄には、テナントIDで示される組織に属するユーザの識別情報(ユーザID)が設定される。X社IDの欄には、サービス事業者XのIDP53に登録された、テナントのユーザIDが設定される。X社パスワードの欄には、サービス事業者XのIDP53のおけるテナントの認証用のパスワードが設定される。
【0078】
認証情報テーブル212bには、テナントID、ユーザID、Y社ID、およびY社パスワードの欄が設けられている。テナントIDの欄には、サービス事業者Yのサービス提供を受ける組織(テナント)の識別情報(テナントID)が設定される。ユーザIDの欄には、テナントIDで示される組織に属するユーザの識別情報(ユーザID)が設定される。Y社IDの欄には、サービス事業者YのIDP63に登録された、テナントのユーザIDが設定される。Y社パスワードの欄には、サービス事業者YのIDP63のおけるテナントの認証用のパスワードが設定される。
【0079】
次に、GW100の記憶部110に格納されている連携サービステーブル111と認証情報管理テーブル112とについて説明する。
図10は、連携サービステーブルのデータ構造の一例を示す図である。連携サービステーブル111には、テナントID、サービスURL、IDP_URL、および連携先IDP_URLの欄が設けられている。
【0080】
テナントIDの欄には、サービス要求メッセージを送信した端末装置を使用しているユーザが属する組織のテナントIDが設定される。サービスURLの欄には、サービス要求メッセージを宛先であるAPサーバのURLが設定される。IDP_URLの欄には、サービス要求メッセージを宛先であるAPサーバからサービスの提供を受けるユーザに関して、ユーザ認証を行うIDPのURLが設定される。連携先IDP_URLの欄には、サービス要求メッセージを宛先であるAPサーバと連携した処理を行う他のAPサーバのURLが設定される。
【0081】
図11は、認証情報管理テーブルのデータ構造の一例を示す図である。認証情報管理テーブル112には、テナントID、ユーザID、IDP_URL、ID、およびパスワード(PW)の欄が設けられている。
【0082】
テナントIDの欄には、サービス要求メッセージを送信した端末装置を使用しているユーザが属する組織のテナントIDが設定される。ユーザIDの欄には、サービス要求メッセージを送信した端末装置を使用しているユーザのユーザIDが設定される。IDP_URLの欄には、認証を行ったIDPのURLが設定される。IDの欄には、認証に使用されたユーザIDが設定される。パスワード(PW)の欄には、認証に使用されたパスワードが設定される。
【0083】
このような情報を用いて、代理認証を伴う連携したサービスの提供が行われる。以下、代理認証を伴う連携サービスの提供処理について詳細に説明する。なお以下の例では、OAuthを利用して、ユーザが自分のデータのあるAPサーバへのアクセス権を、他のAPサーバに付与するものとする。
【0084】
<運用フェーズ>
まず、APサーバ54を連携元、APサーバ64を連携先とする情報が連携サービステーブル111に既に登録されている場合の、X社のAPサーバ54とY社のAPサーバ64との連携サービスの提供処理(運用フェーズ)について説明する。この場合、Y社のIDP63は、OAuthにおけるトークンサーバとして機能する。
【0085】
図12は、登録されている連携サービスの提供処理の一例の前半を示すシーケンス図である。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS21]端末装置32は、事前認証が未承認の状態で、APサーバ54宛のサービス要求メッセージを送信する。例えば端末装置32のユーザによるブラウザ32aに対する入力に基づいて、サービス要求メッセージが送信される。送信されたサービス要求メッセージは、GW100で受信される。
【0086】
[ステップS22]GW100では、端末装置32に対して認証要求を応答する。例えばGW100では、メッセージ送受信部120がサービス要求メッセージを受信し、そのサービス要求メッセージが受付部140に転送される。受付部140は、メッセージの解析によりサービス要求メッセージであることを認識し、そのサービス要求メッセージを事前認証部150に渡す。事前認証部150は、端末装置32を使用しているユーザの事前認証が未承認であることを認識し、認証要求メッセージを生成する。この認証要求メッセージには、IDP42へのリダイレクトの指示が含まれる。そして事前認証部150は、端末装置32宛の認証要求メッセージを受付部140に渡す。受付部140は、メッセージ送受信部120を介して、認証要求メッセージを端末装置32に送信する。
【0087】
[ステップS23]端末装置32は、認証要求メッセージを受信すると、リダイレクトにより、IDP42へ認証要求メッセージを送信する。
[ステップS24]IDP42は、認証画面を端末装置32に応答する。
【0088】
[ステップS25]端末装置32は、認証画面を表示し、認証画面に対するユーザからの認証情報の入力を受け付ける。認証情報は、例えばユーザID(u_ID)とパスワードu_PW)との組である。そして端末装置32は、認証情報を含むユーザ認証メッセージをIDP42に送信する。
【0089】
[ステップS26]IDP42は、端末装置32から受け取ったユーザ認証メッセージに含まれる認証情報に基づいて、ユーザ認証を行う。例えばIDP42には、GW100による代理認証機能を利用可能なユーザの認証情報(ユーザIDとパスワードとの組)が予め登録されている。そして、IDP42は、ユーザ認証メッセージに含まれる認証情報が、予め登録されている認証情報のいずれかと合致すれば、端末装置32を使用しているユーザを正当なユーザであると認証する。IDP42は、認証結果を端末装置32に送信する。認証結果には、認証が成功したこと(OK)、または失敗したこと(NG)のいずれかを示す情報が含まれる。認証が成功した場合、認証結果には、例えば、認証成功を示す情報と共に、テナントIDとユーザIDとが暗号化して含まれる。
【0090】
[ステップS27]端末装置32は、認証成功を示す認証結果を受け取った場合、APサーバ54宛の認証済のサービス要求メッセージを送信する。このサービス要求メッセージには、例えば認証成功を示す情報が含まれる。送信されたサービス要求メッセージは、GW100で受信される。
【0091】
[ステップS28]GW100は、サービス要求メッセージを受信すると、管理サーバ200から認証情報を取得する。例えばGW100では、メッセージ送受信部130が認証画面データを受信し、受付部140に転送する。受付部140は、認証画面データを代理認証部170に渡す。代理認証部170は、連携サービステーブル111から、端末装置32からのサービス要求メッセージに対応するテナントIDとAPサーバ54のURLとの組に対応するエントリを検索する。そして代理認証部170は、該当するエントリに含まれるIDP53のURLと連携先のIDP63のURLとを取得する。
【0092】
さらに代理認証部170は、端末装置32からのメッセージに対応するテナントIDおよびユーザIDであり、IDP53とIDP63とのそれぞれをサービス事業者IDPとするエントリを認証情報管理テーブル112から検索する。代理認証部170は、該当する認証情報が認証情報管理テーブル112に登録されていなければ、認証情報の取得要求を受付部140経由で問い合わせ部160に送信する。すると問い合わせ部160が、管理サーバ200に対して、認証情報が格納されていないIDPに対応する認証情報を問い合わせる。問い合わせには、例えばテナントID、ユーザID、および各IDPのURLが含められる。
【0093】
管理サーバ200では、認証情報提供部220が認証情報問い合わせを受信し、問い合わせに応じた認証情報を記憶部210から取得する。例えば管理サーバ200では認証情報提供部220が、クラウド対応テーブル211を参照し、問い合わせで示されるIDPのURLに対応するサービス事業者を特定する。次に認証情報提供部220は、特定されたサービス事業者それぞれの認証情報テーブルから、問い合わせで示されるテナントIDとユーザIDとの組に対応するユーザIDとパスワードとの組を取得する。そして認証情報提供部220は、例えばサービス事業者のIDPのURLに対応付けて、そのサービス事業者の認証情報テーブルから取得した認証情報を、GW100に送信する。
【0094】
GW100では、問い合わせ部160が、認証情報提供部220から送信された認証情報を取得する。問い合わせ部160は、取得したIDPのURLごとの認証情報を、受付部140経由で代理認証部170に送信する。
【0095】
[ステップS29]GW100は、認証済みのサービス要求メッセージを宛先であるAPサーバ54に転送する。例えばGW100のメッセージ送受信部120がサービス要求メッセージを受信し、受付部140に転送する。受付部140は、サービス要求メッセージを事前認証部150に渡す。すると事前認証部150は、事前認証が認証済みであることを確認し、サービス要求メッセージを受付部140に返す。すると受付部140は、サービス要求メッセージを、メッセージ送受信部130を介してAPサーバ54に送信する。
【0096】
なお受付部140は、端末装置32から認証済みのサービス要求メッセージを受信すると、以後、端末装置32からのメッセージに応じた通信処理は、サービス要求メッセージに示されたテナントIDとユーザIDとの組に対応付けて管理する。サービス要求メッセージと、そのサービス要求メッセージに応じた通信との対応関係は、例えば通信に用いるセッション間の関連づけを保持することで管理できる。
【0097】
[ステップS30]APサーバ54は、サービス要求メッセージを受信すると、端末装置32宛に認証要求メッセージを応答する。この認証要求メッセージには、IDP53へのリダイレクトの指示が含まれる。送信された認証要求メッセージは、GW100で受信される。
【0098】
[ステップS31]GW100は、認証要求メッセージを受信すると、リダイレクトにより、IDP53へ認証要求メッセージを送信する。例えばGW100では、APサーバ54から送信された認証要求メッセージをメッセージ送受信部130が受信し、受付部140に転送する。受付部140は、認証要求メッセージのリダイレクトの指示に基づいて、メッセージ送受信部130を介して、認証要求メッセージをIDP53に送信する。
【0099】
[ステップS32]IDP53は、認証画面データをGW100に応答する。
[ステップS33]GW100は、ユーザ認証メッセージをIDP53に送信する。例えばGW100の代理認証部170が、IDP53のURLに対応する認証情報(x_ID/x_PW)を含む、IDP53宛のユーザ認証メッセージを生成する。そして代理認証部170は、生成したユーザ認証メッセージを受付部140に渡す。受付部140は、メッセージ送受信部130を介して、取得したユーザ認証メッセージをIDP53に送信する。
【0100】
[ステップS34]IDP53は、受信したユーザ認証メッセージに含まれる認証情報に基づいて、ユーザ認証を行う。例えばIDP53には、APサーバ54のサービスを利用可能なテナントの認証情報(ユーザIDとパスワードとの組)が予め登録されている。そして、IDP53は、ユーザ認証メッセージに含まれる認証情報が、予め登録されている認証情報のいずれかと合致すれば、認証成功と判定する。そしてIDP53は、認証結果をGW100に送信する。認証結果には、認証が成功したこと(OK)、または失敗したこと(NG)のいずれかを示す情報が含まれる。また認証結果を送信する認証結果メッセージには、例えばAPサーバ54へのリダイレクト指示が含まれている。
【0101】
[ステップS35]GW100は、認証成功を示す認証結果を受け取った場合、APサーバ54宛の認証済のサービス要求メッセージを送信する。このサービス要求メッセージには、例えば認証成功を示す情報が含まれる。例えばGW100のメッセージ送受信部130は、IDP53から送られた認証結果メッセージを受信し、受付部140に渡す。受付部140は、受信した認証結果メッセージのリダイレクト指示に従って、認証結果を、認証済みのサービス要求メッセージとして、メッセージ送受信部130を介してAPサーバ54に送信する。
【0102】
[ステップS36]APサーバ54は、サービス要求メッセージの内容を解析し、APサーバ64との連携処理であることを認識する。APサーバ54は、このようなサービス要求メッセージの内容に基づき、APサーバ64との連携処理を行うと判断する。この場合、APサーバ54は、Y社のIDP63に対してリクエストトークン要求を送信する。
【0103】
[ステップS37]IDP63は、リクエストトークン要求に応じて、ユーザのデータを渡してよいか否かの判断のために、APサーバ54に対して未認可のリクエストトークンを応答する。ここでリクエストトークンが未認可であるとは、リクエストトークンにアクセス許可の情報が含まれていないことを示す。
【0104】
[ステップS38]APサーバ54は、未認可のリクエストトークンを受け取ると、そのリクエストトークンを含む許可要求メッセージをGW100に送信する。この際、許可要求メッセージには、IDP63へのリダイレクトの指示が含まれる。この際、未認可のリクエストトークンは、例えばHTTP形式の応答メッセージに含めることができる(図17参照)。なお許可要求メッセージに応じてGW100においてIDP63への代理認証が行われるため、この許可要求メッセージは、認証要求メッセージの一種である。
【0105】
[ステップS39]GW100は、許可要求メッセージを取得すると、リダイレクトにより、許可要求メッセージをIDP63に送信する。この際、GW100の代理認証部170では、取得した許可要求メッセージに含まれる未認可のリクエストトークンを保持しておく。
【0106】
[ステップS40]IDP63は、ユーザ認証画面データをGW100に応答する。その後、処理がステップS51に進められる(図13参照)。
図13は、登録されている連携サービスの提供処理の一例の後半を示すシーケンス図である。以下、図13に示す処理をステップ番号に沿って説明する。
【0107】
[ステップS51]GW100は、ユーザ認証メッセージをIDP63に送信する。例えばGW100の代理認証部170が、IDP63のURLに対応する認証情報(y_ID/y_PW)を含む、IDP63宛のユーザ認証メッセージを生成する。そして代理認証部170は、生成したユーザ認証メッセージを受付部140に渡す。受付部140は、メッセージ送受信部130を介して、取得したユーザ認証メッセージをIDP63に送信する
なお、このときユーザ認証メッセージに含められる認証情報は、ステップS28(図12参照)において取得されている。
【0108】
[ステップS52]IDP63は、アクセス許可画面データをGW100に応答する。アクセス許可画面データは、例えばAPサーバ54がアクセスするドキュメントデータの内容と条件を表示し、アクセス許可をしてよいか否かの判断を促す画面のデータ(アクセス許可判断要求)である。
【0109】
[ステップS53]GW100は、未認可のリクエストトークンを含むアクセス許可要求メッセージをIDP63に送信する。なおアクセス許可要求メッセージは、アクセス許可画面データに示される内容(ドキュメントデータのAPサーバ54への提供)を許可してよいかどうかを問い合わせるメッセージである。例えばGW100の代理認証部170は、ステップS39で保持しておいた未認可のリクエストトークンを含む、IDP63宛のアクセス許可要求メッセージを生成する。そして代理認証部170は、生成したアクセス許可要求メッセージを受付部140に渡す。受付部140は、許可要求メッセージを、メッセージ送受信部130を介してIDP63に送信する。
【0110】
[ステップS54]IDP63は、認証結果をGW100に応答する。認証結果には、認証が成功したか(OK)、失敗したか(NG)の情報が含まれる。認証に成功の場合、認証結果には、アクセス許可を示すリクエストトークンが含められる。なお、アクセス許可を示すリクエストトークンは、例えばHTTP応答メッセージに含められる(図18参照)。また認証結果を示す認証結果メッセージには、例えばAPサーバ54へのリダイレクト指示が含まれている。
【0111】
[ステップS55]GW100は、認証成功の認証結果メッセージを受け取ると、アクセス許可を示すリクエストトークンを含む許可完了通知をAPサーバ54に送信する。例えばGW100のメッセージ送受信部130が認証結果を受信し、受付部140に転送する。受付部140は、認証結果メッセージに示されるリダイレクト指示に従い、受信した認証結果メッセージを、APサーバ54宛の許可完了通知メッセージとして、メッセージ送受信部130を介してAPサーバ54に送信する。
【0112】
[ステップS56]APサーバ54は、許可完了通知メッセージを受信すると、IDP63に対してアクセストークン要求を送信する。アクセストークン要求には、アクセス許可を示すリクエストトークンが含まれる。
【0113】
[ステップS57]IDP63は、アクセストークン要求を受け取ると、アクセス許可を示すリクエストトークンが含まれていることを確認後、アクセストークン応答をAPサーバ54に送信する。アクセストークン応答には、データ取得のAPI(Application Program Interface)を示すアクセストークンが含まれる。
【0114】
[ステップS58]APサーバ54は、アクセストークン応答を受信すると、アクセストークン応答に含まれるデータ取得のAPIを用いたデータ要求を、APサーバ64に送信する。
【0115】
[ステップS59]APサーバ64は、データ要求に応じてデータを応答する。
[ステップS60]APサーバ54は、APサーバ64から応答されたデータを用いて、所定の処理を実行する。例えばAPサーバ54は、APサーバ64から取得したドキュメントデータを、印刷データに変換する。そしてAPサーバ54は、処理結果を示すサービス応答を、GW100に送信する。
【0116】
[ステップS61]GW100は、受信したサービス応答を端末装置32に転送する。
このようにして、連携サービスを行う複数のAPサーバ54,64の機能を使用するための代理認証の手続きを、GW100が行うことができる。しかも、GW100は、代理認証に用いられる複数の認証情報を、一括で管理サーバ200から取得することができる。
【0117】
図14は、連携サービスの代理認証の一例を示す図である。例えば端末装置32から、認証済みのサービス要求メッセージ81がGW100に入力される。サービス要求メッセージ81には、例えばテナントID「Te-A」、ユーザID「00930428」、およびAPサーバ54のURL「http://Ap1.c.com」が含まれる。GW100では、連携サービステーブル111から、テナントID「Te-A」とAPサーバ54のURL「http://Ap1.c.com」との組に対応する、連携元のIDP53のURL「https://IDP1.com」と連携先のIDP63のURL「https://IDP2.com」とが取得される。
【0118】
そしてGW100から管理サーバ200に、問い合わせメッセージ82が送信される。問い合わせメッセージ82には、例えば、テナントID「Te-A」、ユーザID「00930428」、連携元のIDP53のURL「https://IDP1.com」、および連携先のIDP63のURL「https://IDP2. com」が含まれる。
【0119】
管理サーバ200は、クラウド対応テーブル211に基づいて、問い合わせメッセージ82の連携元のIDP53のURL「https://IDP1.com」に対応するサービス事業者が「X社」であることを判断する。そこで管理サーバ200は、X社に対応して設けられた認証情報テーブル212aから、テナントID「Te-A」とユーザID「00930428」との組に対応する認証情報を取得する。認証情報は、ユーザID「x_ID」とパスワード「x_PW」との組である。
【0120】
同様に、管理サーバ200は、クラウド対応テーブル211に基づいて、問い合わせメッセージ82の連携先のIDP63のURL「https://IDP2.com」に対応するサービス事業者が「Y社」であることを判断する。そこで管理サーバ200は、Y社に対応して設けられた認証情報テーブル212bから、テナントID「Te-A」とユーザID「00930428」との組に対応する認証情報を取得する。認証情報は、ユーザID「y_ID」とパスワード「y_PW」との組である。
【0121】
そして管理サーバ200は、例えば連携元のIDP53のURLと認証情報との組、および連携先のIDP63のURLと認証情報との組を、まとめて1つの応答メッセージ83として、GW100に送信する。
【0122】
GW100は、管理サーバ200から応答された複数の認証情報83を、テナントID「Te-A」、ユーザID「00930428」、および連携元のIDP53のURL「https://IDP1.com」に対応付けて、認証情報管理テーブル112に登録する。そして、GW100は、連携元のIDP53に対して、連携元のIDP53のURL「https://IDP1.com」に対応する認証情報(x_ID/x_PW)を含むユーザ認証メッセージ84を送信して、IDP53による認証を受ける。またGW100は、連携先のIDP63に対して、連携先のIDP63のURL「https://IDP2.com」に対応する認証情報(y_ID/y_PW)を含むユーザ認証メッセージ85を送信して、IDP63による認証を受ける。
【0123】
このようにして、連携サービスを実行する複数のサーバそれぞれの認証情報を、管理サーバ200から一括で取得することができる。その結果、GW100と管理サーバ200との間の通信回数を削減することができ、処理の効率化を図ることができる。
【0124】
<学習フェーズ>
次に、APサーバ54を連携元、APサーバ64を連携先とする情報が連携サービステーブル111に登録されてない場合(学習フェーズ)について説明する。このような場合、X社のAPサーバ54とY社のAPサーバ64との連携サービスのサービス要求メッセージがGW100に最初に入力されると、GW100は、複数のAPサーバ54,64それぞれの認証情報を個別に管理サーバ200から取得する。その際、GW100は、連携サービスの関係を学習し、連携サービステーブル111に情報を登録することができる。
【0125】
図15は、未登録の連携サービスの提供処理の一例を示すシーケンス図である。なお、図15には、図12および図13に示したシーケンス図と異なる処理についてのみ示している。未登録の連携サービスを提供する場合、ステップS32−1、ステップS41、およびステップS60−1の処理が、図12、図13の処理に示した処理と異なる。なお未登録の連携サービスを提供する場合、図12のステップS28の処理は実行されない。そこで図12、図13と異なる処理の内容について、以下に説明する。
【0126】
[ステップS32−1]この処理は、図12のステップS32の後、テップS33の前に実行される。
ステップS32−1では、GW100は、認証画面データを受信すると、管理サーバ200から認証情報を取得する。この際、GW100は、IDP53のURLのみを指定した問い合わせを管理サーバ200に対して行う点が、ステップS32の処理と異なる。
【0127】
例えば、GW100では、メッセージ送受信部130が認証画面データを受信し、受付部140に転送する。受付部140は、認証画面データを代理認証部170に渡す。代理認証部170は、連携サービステーブル111から、端末装置32からのメッセージに対応するテナントIDおよびAPサーバ54のURLの組に対応するエントリを検索する。このとき、該当するエントリは検出できない。そこで代理認証部170は、認証画面データを送信したIDP53のURLを、問い合わせ対象のURLとする。
【0128】
さらに代理認証部170は、端末装置32からのサービス要求メッセージに示されたテナントIDおよびユーザIDであり、IDP53をサービス事業者IDPとするエントリを認証情報管理テーブル112から検索する。代理認証部170は、該当する認証情報が認証情報管理テーブル112に登録されていなければ、認証情報の取得要求を受付部140経由で問い合わせ部160に送信する。すると問い合わせ部160が、管理サーバ200に対して、認証情報が格納されていないIDPに対応する認証情報を問い合わせる。管理サーバ200では、認証情報提供部220が認証情報問い合わせに応じて、認証情報をGW100に送信する。GW100では、問い合わせ部160が、認証情報提供部220から送信された認証情報を取得する。問い合わせ部160は、取得した認証情報を、受付部140経由で代理認証部170に送信する。
【0129】
[ステップS41]この処理は、図12のステップS40の後、図13のステップS51の前に実行される。
ステップS41では、GW100は、ユーザ認証画面データを受信すると、管理サーバ200から認証情報を取得する。例えば、GW100では、メッセージ送受信部130がユーザ認証画面データを受信し、受付部140に転送する。受付部140は、ユーザ認証画面データを代理認証部170に渡す。代理認証部170は、認証画面データを送信したIDP63のURLを、問い合わせ対象のURLとする。
【0130】
さらに代理認証部170は、端末装置32からのサービス要求メッセージに示されたテナントIDおよびユーザIDであり、IDP63をサービス事業者IDPとするエントリを認証情報管理テーブル112から検索する。代理認証部170は、該当する認証情報が認証情報管理テーブル112に登録されていなければ、認証情報の取得要求を受付部140経由で問い合わせ部160に送信する。すると問い合わせ部160が、管理サーバ200に対して、認証情報が格納されていないIDPに対応する認証情報を問い合わせる。管理サーバ200では、認証情報提供部220が認証情報問い合わせに応じて、認証情報をGW100に送信する。GW100では、問い合わせ部160が、認証情報提供部220から送信された認証情報を取得する。問い合わせ部160は、取得した認証情報を、受付部140経由で代理認証部170に送信する。
【0131】
[ステップS60−1]この処理は、図13のステップS60の後、ステップS61の前に実行される。
ステップS60−1では、連携サービステーブル111に、新たに認識した連携サービスの連携元と連携先とのIDPのURLを登録する。例えば連携テーブル作成部180は、ステップS27(図12参照)以後の代理認証部170の処理により、代理認証部170が保持している情報(キャッシュデータ)を取得する。キャッシュデータには、テナントID、ユーザID、サービスURL、IDP53のURL、およびIDP63のURLが含まれる。連携テーブル作成部180は、取得したテナントID、ユーザID、サービスURL、IDP53のURL、およびIDP63のURLに対応するエントリが、連携サービステーブル111に登録されているか否かを判断する。そして、連携テーブル作成部180は、該当するエントリが登録されていなければ、取得したテナントID、ユーザID、サービスURL、IDP53のURL、およびIDP63のURLを含むエントリを、連携サービステーブル111に登録する。
【0132】
このようにして、未登録の連携サービスの提供処理を実行した際には、連携するサービスの関係をGW100において学習し、連携サービステーブル111を更新することができる。
【0133】
図16は、連携サービステーブルへのエントリ登録例を示す図である。例えば代理認証部170は、ステップS27(図15参照)において端末装置32から認証済みのサービス要求メッセージ81を受信すると、サービス要求メッセージ81内の情報にインデックスを付与し、キャッシュデータとして保持する。キャッシュデータは、例えばRAM102内に格納される。図16の例では、インデックス「00100234」に対応付けて、テナントID「Te-A」、ユーザID「00930428」、サービスURL「http://Ap1.c.com」のがキャッシュに格納されている。
【0134】
その後、代理認証部170は、ステップS30(図15参照)においてAPサーバ54から認証要求メッセージ86を取得する。このとき代理認証部170は、認証要求メッセージ86からIDP53のURL「https://IDP1.com」を抽出する。そして代理認証部170は、抽出したURL「https://IDP1.com」を、連携元のIDPのURLとしてインデックス「00100234」に対応付けて保持する。
【0135】
さらに代理認証部170は、ステップS38(図15参照)においてAPサーバ54から許可要求メッセージ87を取得する。このとき代理認証部170は、許可要求メッセージ87から、未認可のリクエストトークン「OAuth_token1」とIDP63のURL「https://IDP2.com」を抽出する。そして代理認証部170は、抽出したリクエストトークン「OAuth_token1」をインデックス「00100234」に対応付けてキャッシュデデータに保存する。また代理認証部170は、抽出したIDP63のURL「https://IDP2.com」を、連携先のIDPのURLとしてインデックス「00100234」に対応付けて保持する。
【0136】
その後、連携テーブル作成部180は、ステップS60(図15参照)でサービス応答を受信したときに、代理認証部170がキャッシュとして保持しているデータを取得する。そして連携テーブル作成部180は、取得したデータから、テナントID、サービスURL、連携元IDPのURL、および連携先のIDPのURLを含むエントリを作成し、連携サービステーブル111に格納する。
【0137】
このようにして、互いに連携する複数のサービスを、GW100に学習させることができる。その結果、GW100の管理者が、連携サービスの登録作業を行わずにすみ、管理負担が軽減される。
【0138】
ところで、GW100では、IDPからの応答メッセージにリクエストトークンが含まれていることを検出し、連携するサービスがあることを認識できる。リクエストトークンを含む応答メッセージは、例えばHTTP形式の文書である。この場合、HTTPヘッダ部にリクエストトークンを含められる。
【0139】
図17は、未認可のリクエストトークンを含むHTTP応答メッセージの一例を示す図である。HTTP応答メッセージ91には、HTTPヘッダ91aと本文91bとが含まれる。HTTPヘッダ91aと本文91bとの間には、1行の空き行が設けられている。
【0140】
HTTPヘッダ91aには、トークン91cが含まれている。トークン91cには、連携先のIDPのURLやトークン91cの識別情報などが含まれている。GW100は、図15に示すステップS38において、APサーバ54から許可要求として送られたHTTP応答メッセージ91内にトークン91cが含まれていることにより、連携したサービスが実行されることを認識する。
【0141】
なお、連携先のIDPによるユーザ認証とアクセス許可(認可)が完了した場合、例えばアクセス許可を示すリクエストトークンを含むHTTP応答メッセージにより、IDP63からGW100に認証結果が送信される。
【0142】
図18は、アクセス許可を示すリクエストトークンを含むHTTP応答メッセージの例を示す図である。図17に示したHTTP応答メッセージ91と同様に、アクセス許可を示すリクエストトークンを含むHTTP応答メッセージ92も、HTTPヘッダ92aと本文92bとを有する。そしてHTTPヘッダ92a内にトークン92cが含まれる。認可済みのトークン92cには、アクセスが認可されたことを示す情報「oauth_verifier=8FKxxxxx」が含まれる。
【0143】
<運用/学習フェーズを実現するGW100の詳細処理>
次に、メッセージを受信した際にGW100で実行される処理を詳細に説明する。
図19は、メッセージ受信時のGWの処理の一例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
【0144】
[ステップS101]GW100は、メッセージを受信する。例えばメッセージ送受信部120がネットワーク21を介して入力されたメッセージを受信し、受信したメッセージを受付部140に渡す。または、メッセージ送受信部130がネットワーク22を介して入力されたメッセージを受信し、受信したメッセージを受付部140に渡す。
【0145】
[ステップS102]受付部140は、メッセージの種類を判別する。メッセージは、以下の6種類に分けられる。
・サービス要求(図12のステップS21,S27のメッセージ)
・認証要求のリダイレクト要求(図12のステップS30,S38のメッセージ)
・認証情報要求(図12のステップS32,S40のメッセージ)
・アクセス許可判断要求(図13のステップS52のメッセージ)
・認証/アクセス許可結果のリダイレクト要求(図12のステップS34、図13のステップS54のメッセージ)
・サービス応答(図13のステップS60)
受付部140は、受信したメッセージがサービス要求メッセージであれば、処理をステップS103に進める。また受付部140は、受信したメッセージがリダイレクト指示を伴う認証要求メッセージであれば、処理をステップS104に進める。また受付部140は、受信したメッセージが認証情報要求メッセージであれば、処理をステップS105に進める。また受付部140は、受信したメッセージがアクセス許可判断要求メッセージであれば、処理をステップS106に進める。また受付部140は、受信したメッセージがリダイレクト指示を伴う認証/アクセス許可の結果応答メッセージであれば、処理をステップS107に進める。また受付部140は、受信したメッセージがサービス応答であれば、処理をステップS108に進める。
【0146】
[ステップS103]GW100は、サービス要求対応処理を行う。この処理の詳細は後述する(図20参照)。
[ステップS104]GW100は、認証要求リダイレクト処理を行う。この処理の詳細は後述する(図21参照)。
【0147】
[ステップS105]GW100は、認証情報応答処理を行う。この処理の詳細は後述する(図22参照)。
[ステップS106]GW100は、アクセス許可判断要求に対する応答を行う。例えば、アクセス許可要求メッセージは、受付部140から代理認証部170に渡される。代理認証部170は、キャッシュしておいたリクエストトークン(図16参照)を含むアクセス許可要求メッセージを生成し、受付部140に渡す。すると受付部140は、メッセージ送受信部130を介して、アクセス許可判断要求の送信元に対して、アクセス許可要求メッセージを送信する。
【0148】
[ステップS107]GW100は、受信したメッセージのリダイレクト指示に従って、リダイレクトでメッセージを送信する。例えば受信したメッセージが認証成功を示す認証結果メッセージ(図12のステップS34)であれば、リダイレクト指示に従って受付部140が、認証結果を、認証済みのサービス要求メッセージとしてリダイレクト先に送信する。また受信したメッセージが認証成功の認証結果メッセージ(図13のステップ54)であれば、リダイレクト指示に従って受付部140が、認証結果を、許可完了通知メッセージとしてリダイレクト先に送信する。
【0149】
[ステップS108]GW100は、連携サービス登録処理を行う。この処理の詳細は後述する(図23参照)。
次に、ステップS103,S104,S105,S108の処理の詳細について説明する。
【0150】
まず、ステップS103のサービス要求対応処理について説明する。
図20は、サービス要求対応処理の手順の一例を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
【0151】
[ステップS111]GW100は、いずれかの端末装置からサービス要求メッセージを受信すると、IDP42による事前認証が済んでいるか否かを判断する。例えばサービス要求メッセージは、メッセージ送受信部120で受信され、受付部140に渡される。受付部140は、サービス要求メッセージを事前認証部150に渡す。事前認証部150は、受信したサービス要求メッセージに、事前認証が済んでいることを示す情報が含まれているか否かにより、事前認証済みか否かを判断する。事前認証が済んでいない場合、事前認証部150は、処理をステップS112に進める。例えば、図12のステップS21のサービス要求メッセージを受信した場合、事前認証が済んでいないと判断される。事前認証が済んでいる場合、事前認証部150は、処理をステップS113に進める。例えば、図12のステップS27のサービス要求メッセージを受信した場合、事前認証が済んでいると判断される。
【0152】
[ステップS112]事前認証部150は、事前認証が済んでいない場合、サービス要求メッセージの送信元の端末装置に、認証要求メッセージを応答する。例えば事前認証部150が認証要求メッセージを生成し、受付部140に渡す。受付部140は、取得した認証要求メッセージを、メッセージ送受信部120を介して端末装置に送信する。その後、サービス要求対応処理が終了する。
【0153】
[ステップS113]事前認証が済んでいる場合、GW100は、連携サービステーブル111に認証情報取得候補が存在するか否かを判断する。例えばGW100の代理認証部170は、認証済みのサービス要求メッセージを受付部140から取得する。代理認証部170は、サービス要求メッセージに含まれているテナントIDとサービスURL(APサーバのURL)との組に対応するエントリを、連携サービステーブル111から検索する。代理認証部170は、該当するエントリがある場合、該当するエントリの「IDP_URL」欄と「連携先IDP_URL」欄とのそれぞれのURLを、サービス要求メッセージに示されるテナントIDおよびユーザIDと組み合わせる。そして代理認証部170は、組み合わせられたテナントID、ユーザID、およびURLの組を、認証情報取得候補として抽出し、認証情報取得候補が存在すると判断する。また代理認証部170は、該当するエントリがない場合、認証情報取得候補が存在しないと判断する。代理認証部170は、認証情報取得候補が存在する場合、処理をステップS114に進める。また代理認証部170は、認証情報取得候補が存在しない場合、処理をステップS116に進める。
【0154】
[ステップS114]代理認証部170は、認証情報取得候補に対応する認証情報が、認証情報管理テーブル112に格納されているか否かを判断する。例えば代理認証部170は、認証情報取得候補に示されるテナントID、ユーザID、およびURLの組に対応するエントリを、認証情報管理テーブル112から検索する。認証情報取得候補のすべてについて、該当エントリが見つかった場合、代理認証部170は、認証情報取得候補の認証情報がすべて存在すると判断する。一方、認証情報取得候補の少なくとも1つについて、該当エントリが見つからなかった場合、代理認証部170は、認証情報取得候補の認証情報が少なくとも1つ存在しないと判断する。代理認証部170は、すべての認証情報取得候補に対応する認証情報が存在する場合、処理をステップS116に進める。また代理認証部170は、少なくとも1つの認証情報取得候補に関し、対応する認証情報が存在しない場合、処理をステップS115に進める。
【0155】
[ステップS115]代理認証部170は、認証情報が存在しない認証情報取得候補がある場合、認証情報が存在しない認証情報取得候補に対応する認証情報を、管理サーバ200に問い合わせる。例えば代理認証部170は、受付部140を介して問い合わせ部160に対して、認証情報取得候補に対応する認証情報の取得を依頼する。すると問い合わせ部160が、認証情報取得候補で示されるテナントID、ユーザID、およびURLを指定した問い合わせメッセージを管理サーバ200に送信し、認証情報の応答を得る。応答された認証情報が、問い合わせ部160から、受付部140を介して代理認証部170に渡される。代理認証部170は、取得した認証情報を、認証情報取得候補のテナントID、ユーザID、およびURLに対応付けて、認証情報管理テーブルに格納する。
【0156】
[ステップS116]代理認証部170は、サービス要求メッセージに含まれるテナントID、ユーザID、およびURL(サービスURL)を、キャッシュデータとして保持する。
【0157】
[ステップS117]代理認証部170は、サービス要求メッセージを、サービスURLに対応するAPサーバ宛に送信する。サービス要求メッセージは、例えば代理認証部170から受付部140に渡される。そして受付部140からメッセージ送受信部130を介して、サービス要求メッセージがAPサーバに送信される。
【0158】
次にステップS104の認証要求リダイレクト処理について説明する。
図21は、認証要求リダイレクト処理の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
【0159】
[ステップS121]リダイレクト指示を伴う認証要求メッセージを取得した場合、GW100は、リクエストトークン(R_token)の有無を判断する。例えばGW100の代理認証部170が、受付部140から認証要求メッセージを取得する。そして代理認証部170は、認証要求メッセージにリクエストトークンが含まれていれば、処理をステップS122に進める。また代理認証部170は、認証要求メッセージにリクエストトークンが含まれていなければ、処理をステップS123に進める。なお、リクエストトークンを含む認証要求メッセージは、OAuthにおける許可要求メッセージである。
【0160】
[ステップS122]代理認証部170は、受信した認証要求メッセージが、リクエストトークンを含む許可要求メッセージの場合、連携サービスであると認識する。そして代理認証部170は、リクエストトークンとリダイレクト先のAPサーバのURL(連携先IDPのURL)をキャッシュデータとして保持する。その後、代理認証部170は、処理をステップS124に進める。
【0161】
[ステップS123]代理認証部170は、受信した認証要求メッセージが、リクエストトークンを含む許可要求メッセージでない場合、リダイレクト先のURL(IDPのURL)を、キャッシュデータとして保持する。
【0162】
[ステップS124]代理認証部170は、リダイレクトにより認証要求を送信する。
次にステップS105の認証情報応答処理について説明する。
図22は、認証情報応答処理の手順の一例を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
【0163】
[ステップS131]GW100の代理認証部170は、認証情報要求メッセージを受信すると、要求された認証情報が保持されているか否かを判断する。例えば代理認証部170は、認証情報管理テーブル112から、テナントID、ユーザID、およびIDPのURLの組に該当するエントリを検査する。代理認証部170は、該当するエントリが検出された場合、認証情報が保持されていると判断する。また代理認証部170は、該当するエントリが検出できなかった場合、認証情報が保持されていないと判断する。代理認証部170は、認証情報が保持されている場合、処理をステップS133に進める。また代理認証部170は、認証情報が保持されていない場合、処理をステップS132に進める。
【0164】
[ステップS132]代理認証部170は、受付部140を介して、問い合わせ部160に認証情報の問い合わせを依頼する。すると問い合わせ部160が、管理サーバ200に対して認証情報を問い合わせ、管理サーバ200から認証情報を取得する。問い合わせ部160は、取得した認証情報を、受付部140を介して代理認証部170に送信する。代理認証部170は、取得した認証情報を、テナントID、ユーザID、およびIDPのURLに対応付けて、1つのエントリを生成し、そのエントリを認証情報管理テーブル112に格納する。
【0165】
[ステップS133]代理認証部170は、認証情報を送出する。例えば代理認証部170は、認証情報が既に保持されていた場合、要求されている認証情報を認証情報管理テーブル112から取得し、認証情報要求メッセージの送信元のIDPに取得した認証情報を送信する。また代理認証部170は、認証情報が既に保持されていなかった場合、ステップS132で取得した認証情報を、認証情報要求メッセージの送信元のIDPに送信する。
【0166】
次にステップS108の連携サービス登録処理について説明する。
図23は、連携サービス登録処理の手順の一例を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
【0167】
[ステップS141]GW100は、受信したサービス応答メッセージを、対応するサービス要求メッセージの送信元の端末装置に送信する。例えばGW100の受付部140は、メッセージ送受信部130を介して受信したサービス応答メッセージを、サービス要求メッセージに対する応答として、メッセージ送受信部120を介して送信する。
【0168】
[ステップS142]GW100は、連携サービステーブルへのエントリ候補を作成する。例えばGW100の連携テーブル作成部180は、代理認証部170が保持しているキャッシュデータから、テナントID、サービスURL、連携元IDPのURL、および連携先IDPのURLを取得し、取得した情報をまとめて、1つのエントリ候補とする。
【0169】
[ステップS143]連携テーブル作成部180は、連携サービステーブル111に、エントリ候補と同一内容のエントリがあるか否かを判断する。連携テーブル作成部180は、該当エントリがすでにある場合、処理をステップS145に進める。連携テーブル作成部180は、該当エントリがない場合、処理をステップS144に進める。
【0170】
[ステップS144]連携テーブル作成部180は、ステップS142で作成したエントリ候補を、連携サービステーブル111に登録する。
[ステップS145]代理認証部170は、保持していたキャッシュデータを削除する。
【0171】
以上のようにして、連携サービスの代理認証を行う場合の、管理サーバ200からの認証情報の取得頻度を減らし、処理の効率化を図ることができる。すなわち、既知の連携サービスに対するサービス要求メッセージを受信した場合には、GW100は、その連携サービスを提供する複数のサービス事業者それぞれに送信する複数の認証情報を一括で管理サーバ200から取得する。これにより、サービス事業者のIDPから認証情報を要求されるごとに、個別に管理サーバ200から認証情報を取得する場合に比べ、GW100と管理サーバ200との間の通信頻度を抑止できる。
【0172】
例えばGW100と管理サーバ200との間では、認証情報の安全性確保のために、問い合わせごとにSSL(Secure Socket Layer)セッションを張る場合がある。SSLセッションを張る処理は複雑であり、GW100と管理サーバ200に係る処理負荷も大きい。このようなSSLセッションの接続回数を低減させることで、GW100と管理サーバ200との処理が軽減できる。
【0173】
さらに、SSLセッションを接続するには、送受信される問い合わせメッセージや認証情報以外にも、GW100と管理サーバ200との間で、安全性を確保するための様々な情報が交換される。そのため、SSLセッションの接続回数を低減させることで、GW100と管理サーバ200との間の通信量も削減される。
【0174】
しかも、一度取得した認証情報を認証情報管理テーブル112に保存しておくことで、過去に連携サービスの提供を受けたユーザが同じ連携サービスのサービス要求メッセージを送信した場合、管理サーバ200から認証情報を取得せずにすむ。その結果、GW100と管理サーバ200との間の通信頻度がさらに抑止される。
【0175】
また、GW100は、連携サービスが提供された場合に、連携サービスの連携元と連携先との組み合わせを学習することができる。その結果、GW100の管理者が連携サービステーブル111にエントリを登録する手間が省け、GW100の管理負荷が軽減される。
【0176】
また、連携サービステーブル111でユーザ単位ではなくテナント単位でエントリを作ることにより、メモリ量、テーブル検索処理の削減ができる。例えば、企業のユーザ数が大量(例えば数万)の場合もある。このような場合に、ユーザ単位で連携サービステーブル111にエントリを登録すると、エントリ数がユーザ数に比例するため、連携サービステーブル111のデータ量も膨大となる。一方、テナント単位で連携サービステーブル111にエントリを登録すれば、データ量が削減できる。連携サービステーブル111のデータ量が少なければ、連携サービステーブル111からエントリを検索する際の検索処理負荷も軽減される。
【0177】
〔その他の実施の形態〕
第2の実施の形態では、認証情報がユーザIDとパスワードとの組の場合を示したが、他の認証情報を使用することもできる。例えばパスワードに代えて、ユーザの手のひらの静脈の情報、指紋の情報などの生態認証情報を使用することもできる。
【0178】
また第2の実施の形態では、各サービス事業者において、APサーバとは別にIDPが設けられているが、APサーバ内にIDPの機能を実装することもできる。この場合、例えば、図12に示すステップS30の認証要求のリダイレクト処理は行わずに、認証機能を有するAPサーバ54がステップS29のサービス要求に対して認証画面を応答する。GW100では、APサーバ54から認証画面が応答された場合に、APサーバ54のURLを連携元IDPのURLとして保持することで、APサーバ54を連携元IDPと認識できる。
【0179】
さらに上記第2の実施の形態では、サービスの連携処理が2つのサーバで実行される場合の例を示したが、3つ以上のサーバで連携処理が行われる場合も考えられる。この場合、図10に示す連携サービステーブル111に、連携先DIP_URLの欄を複数設けることで、3つ以上のサーバの連携処理によるサービスのサーバ間の関係を保持できる。そして、GW100から管理サーバ200へ認証情報を問い合わせる際には、問い合わせメッセージ内に、連携サービステーブル111においてテナントIDとサービスURLとの組に対応付けられた各IDPのURLが含められる。ただし、既に認証情報管理テーブル112に登録されている認証情報については、問い合わせメッセージに含めなくてもよい。
【0180】
なお、上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、代理サーバ1、管理サーバ2、GW100、および管理サーバ200が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0181】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0182】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0183】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
【0184】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0185】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
(付記1) サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムにおけるユーザ認証用の認証情報を管理する管理サーバとを備えるシステムにおいて、
前記代理サーバは、
サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部と、
サービス識別子を指定したサービス要求に応じ、該サービス識別子に対応する少なくとも2つの処理システム識別子を前記第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信する手段と、を備え、
前記管理サーバは、
処理システムを特定する処理システム識別子と、該処理システムにおけるユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部と、
前記取得要求を前記代理サーバから受信する手段と、
受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記第2の記憶部から取得して前記代理サーバに送信する手段と、を備え、
前記代理サーバは、さらに、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信する手段と、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する手段と、を備える、
システム。
【0186】
(付記2) 前記代理サーバは、さらに、
サービス識別子を指定したサービス要求を処理システムに送信する手段と、
サービス要求を送信した処理システムから、連携相手の処理システムの認証要求が応答された場合、該サービス要求に示されるサービス識別子と、該サービス要求を送信した処理システムおよび連携相手の処理システムそれぞれの処理システム識別子との対応関係を、前記第1の記憶部に格納する手段と、
を備えることを特徴とする付記1記載のシステム。
【0187】
(付記3) 前記代理サーバは、さらに、
前記管理サーバから受信した認証情報を、対応する処理システム識別子と関連付けて、前記第1の記憶部に格納する手段を有し、
前記取得要求を前記管理サーバに送信する手段は、前記第1の記憶部から読み出した少なくとも2つの処理システム識別子のうち、対応する認証情報が前記第1の記憶部に格納されていない処理システム識別子を含む取得要求を前記管理サーバに送信する、
ことを特徴とする付記1または2のいずれかに記載のシステム。
【0188】
(付記4) 前記第1の記憶部は、ユーザが属する組織を識別する組織識別子に対応付けて、該組織に属するユーザが利用可能なサービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶しており、
前記取得要求を前記管理サーバに送信する手段は、ユーザが属する組織を特定する組織識別子とサービス識別子とを指定したサービス要求に応じ、該組織識別子と該サービス識別子との組に対応する少なくとも2つの処理システム識別子を前記第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信する、
ことを特徴とする付記1乃至3のいずれかに記載のシステム。
【0189】
(付記5) 前記代理サーバの前記第1の記憶部と前記管理サーバの前記第2の記憶部とに記憶される処理システム識別子は、処理システム内でユーザ認証を行う認証装置の識別子であり、
前記代理サーバのユーザ認証の要求を送信する手段は、前記少なくとも2つの処理システムそれぞれの認証装置に、該ユーザ認証の要求を送信する、
ことを特徴とする付記1乃至4のいずれかに記載のシステム。
【0190】
(付記6) 前記代理サーバは、処理システムへのサービス要求を出力する端末装置が接続されたネットワークと、処理システムが接続されたネットワークとの間に配置されたゲートウェイであることを特徴とする付記1乃至5のいずれかに記載のシステム。
【0191】
(付記7) サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムに送信する認証情報を管理する管理サーバとによる認証情報管理方法において、
前記代理サーバが、
提供を受けるサービスを特定するサービス識別子を指定したサービス要求に応じ、サービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部から、該サービス要求で指定されたサービス識別子に対応する少なくとも2つの処理システム識別子を読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信し、
前記管理サーバが、
前記取得要求を前記代理サーバから受信し、
処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部から、受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を取得して前記代理サーバに送信し、
前記代理サーバが、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信し、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する、
認証情報管理方法。
【0192】
(付記8) コンピュータに、
提供を受けるサービスを特定するサービス識別子を指定したサービス要求に応じ、サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部から、該サービス要求で指定されたサービス識別子に対応する少なくとも2つの処理システム識別子を読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を管理サーバに送信し、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信し、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する、
処理を実行させるプログラム。
【0193】
(付記9) コンピュータに、
サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する少なくとも2つの処理システム識別子を含む取得要求を代理サーバから受信し、
処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部から、受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記第2の記憶部から取得して前記代理サーバに送信する、
処理を実行させるプログラム。
【符号の説明】
【0194】
1 代理サーバ
1a 第1の記憶部
1b 送信手段
1c 受信手段
1d 送信手段
2 管理サーバ
2a 第2の記憶部
2b 受信手段
2c 送信手段
3,4 処理システム
5 端末装置
【技術分野】
【0001】
本発明は、代理認証に用いる認証情報を管理するシステム、認証情報管理方法、およびプログラムに関する。
【背景技術】
【0002】
アプリケーションプログラムを実行することによってサービスを提供するアプリケーションサーバ(以下、APサーバと呼ぶ)にユーザがアクセスするとき、ユーザの代わりに認証要求を行う代理認証の仕組みがある。代理認証を行う装置では、例えばユーザIDとパスワードとの組(認証情報)によるユーザの事前認証を行う。そして、正しく認証したユーザに対して、予め登録された認証情報を用いて、ユーザが使用するAPサーバのユーザ認証を受ける。これにより、複数のAPサーバごとの認証情報の入力の手間を省くことができる。また企業などの組織であれば、APサーバを利用するための認証情報をシステムの管理者が管理し、管理者が代理認証の設定を行うことで、個々のユーザがAPサーバごとの認証情報を管理せずにすむ。
【0003】
このような代理認証機能には、例えば端末装置上に代理認証機能を配備した形態(端末代理認証)がある。企業などの組織で端末代理認証を導入した場合、システムの管理者が、APサーバのサービスの利用を許すユーザの端末装置に、認証情報を配布することとなる。ただし端末代理認証では、認証情報の登録・削除・変更のたびに全端末装置への認証情報配布が行われる。そのため、ユーザ数が多くなると、管理者の認証情報配布の負担が過大となる。また、端末装置内のブラウザなどに認証情報を記憶させると、スパイウェア、ウィルスなどにより認証情報が漏洩する危険もある。
【0004】
そこで端末装置とは別のサーバで認証情報を一元管理して、代理認証を行うことが考えられている。例えばSSO(シングルサインオン)サーバで代理認証を行う技術がある。またプロキシサーバで代理認証を行う技術もある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−003119号公報
【特許文献2】特開2005−011098号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、従来は、代理認証を行う場合の処理の効率化が十分ではなかった。そのため、代理認証処理を利用するユーザ数が多くなった場合に、代理認証を行う装置の処理負荷が過大になってしまうという問題があった。
【0007】
1つの側面では、本発明は、代理認証処理の効率化を図ることができるシステム、認証情報管理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムにおけるユーザ認証用の認証情報を管理する管理サーバとを備えるシステムが提供される。代理サーバは、サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部と、サービス識別子を指定したサービス要求に応じ、該サービス識別子に対応する少なくとも2つの処理システム識別子を第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を管理サーバに送信する手段と、を備える。管理サーバは、処理システムを特定する処理システム識別子と、該処理システムにおけるユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部と、取得要求を代理サーバから受信する手段と、受信した取得要求に含まれる少なくとも2つの処理システム識別子それぞれに対応する認証情報を第2の記憶部から取得して代理サーバに送信する手段と、を備える。代理サーバは、さらに、少なくとも2つの処理システム識別子それぞれに対応する認証情報を管理サーバから受信する手段と、受信した認証情報を含む、処理システムごとのユーザ認証の要求を、少なくとも2つの処理システムそれぞれに送信する手段と、を備える。
【発明の効果】
【0009】
代理認証の処理効率が向上する。
【図面の簡単な説明】
【0010】
【図1】第1の実施の形態に係るシステムの機能構成例を示す図である。
【図2】第2の実施の形態に係るシステムの処理手順の一例を示すシーケンス図である。
【図3】第1の実施の形態による代理認証の一例を示す図である。
【図4】第2の実施の形態のシステム構成例を示す図である。
【図5】アクセス権の委譲により実行可能となるサービスの一例を示す図である。
【図6】本実施の形態に用いるGWのハードウェアの一構成例を示す図である。
【図7】各装置の処理機能の一例を示すブロック図である。
【図8】クラウド対応テーブルのデータ構造の一例を示す図である。
【図9】認証情報テーブルのデータ構造の一例を示す図である。
【図10】連携サービステーブルのデータ構造の一例を示す図である。
【図11】認証情報管理テーブルのデータ構造の一例を示す図である。
【図12】登録されている連携サービスの提供処理の一例の前半を示すシーケンス図である。
【図13】登録されている連携サービスの提供処理の一例の後半を示すシーケンス図である。
【図14】連携サービスの代理認証の一例を示す図である。
【図15】未登録の連携サービスの提供処理の一例を示すシーケンス図である。
【図16】連携サービステーブルへのエントリ登録例を示す図である。
【図17】未認可のリクエストトークンを含むHTTP応答メッセージの一例を示す図である。
【図18】アクセス許可を示すリクエストトークンを含むHTTP応答メッセージの例を示す図である。
【図19】メッセージ受信時のGWの処理の一例を示すフローチャートである。
【図20】サービス要求対応処理の手順の一例を示すフローチャートである。
【図21】認証要求リダイレクト処理の手順の一例を示すフローチャートである。
【図22】認証情報応答処理の手順の一例を示すフローチャートである。
【図23】連携サービス登録処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、代理認証を行う代理サーバと認証情報を管理する管理サーバとを別個に設け、それらの装置間での通信頻度を低く抑えることで、処理効率の向上を図ったものである。ここで、管理サーバは、例えば認証局(IDP:Identity Provider)の認証情報を管理するリポジトリサーバである。
【0012】
代理サーバと管理サーバとを別個の装置にすれば、代理サーバにおいて、認証情報の管理に要する処理を行わずにすみ、代理サーバの負荷が軽減される。その結果、代理認証処理の効率化が図られる。また、認証情報を管理サーバで集中管理できるため、端末代理認証に比べ、認証情報の変更処理に係る管理者の作業負荷が軽減できる。さらにアプリケーションサーバへの接続のための認証情報が管理サーバ内にあるため、認証情報が漏洩する可能性を軽減できる。
【0013】
ただし、代理サーバと管理サーバとを別個の装置にすると、ユーザからのサービス要求に基づいて、APサーバから認証情報の入力が求められるごとに、代理サーバから管理サーバへ、認証情報の問い合わせを行うこととなる。そのため、ユーザ数が膨大になると代理サーバと管理サーバとの間で認証情報の問い合わせと、問い合わせに対する応答との通信が頻繁に発生し、処理効率が悪化してしまう。そこで、第1の実施の形態では、代理サーバと管理サーバとの間の通信頻度を少なく抑えることで、処理効率を改善する。
【0014】
例えば代理認証が行われる場面の1つとして、複数のAPサーバの連係した処理で実現されるサービスの提供を受ける際に、複数のAPサーバそれぞれから認証情報の入力が求められるような場合がある。このような場合、ユーザが使用する端末装置から出された1つのサービス要求に応じて、複数のアプリケーションサーバへの代理認証が行われる。そこで、第1の実施の形態では、複数のアプリケーションサーバへの代理認証を伴う処理のサービス要求を、代理認証を行う代理サーバが受信した場合、代理サーバは、代理認証に使用する複数の認証情報を、一括で管理サーバから取得する。これにより、代理サーバと管理サーバとの間の通信頻度を低減することが可能となる。
【0015】
図1は、第1の実施の形態に係るシステムの機能構成例を示す図である。代理サーバ1は、サービスを連携して処理する2つの処理システム3,4へのユーザ認証手続きを代理する。管理サーバ2は、2つの処理システム3,4におけるユーザ認証用の認証情報を管理する。なお処理システム3,4それぞれは、例えば1以上のサーバを有するコンピュータシステムである。処理システム3,4には、例えばサービス要求に応じて処理を実行する機能と、ユーザ認証の要求に応じてユーザ認証を行う機能とが含まれる。なお、処理を実行する機能とユーザ認証を行う機能とは、それぞれ別のサーバに実装してもよく、1つのサーバに実装してもよい。
【0016】
代理サーバ1は、第1の記憶部1a、送信手段1b、受信手段1c、および送信手段1dを有する。
第1の記憶部1aは、サービスを特定するサービス識別子と、そのサービスを連携して処理する2つの処理システム3,4それぞれを特定する処理システム識別子との対応関係を記憶する。
【0017】
送信手段1bは、サービス識別子を指定したサービス要求に応じ、該サービス識別子に対応する2つの処理システム識別子を第1の記憶部から読み出す。そして送信手段1bは、読み出した2つの処理システム識別子を含む取得要求を管理サーバ2に送信する。サービス要求は、例えば端末装置5から入力される。
【0018】
受信手段1cは、2つの処理システム識別子それぞれに対応する認証情報を管理サーバ2から受信する。
送信手段1dは、受信した認証情報を含む、処理システムごとのユーザ認証の要求を、2つの処理システム3,4それぞれに送信する。
【0019】
管理サーバ2は、第2の記憶部2a、受信手段2b、および送信手段2cを備える。
第2の記憶部2aは、処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する。
【0020】
受信手段2bは、取得要求を代理サーバ1から受信する。
送信手段2cは、受信した取得要求に含まれる2つの処理システム識別子それぞれに対応する認証情報を第2の記憶部2aから取得して、代理サーバ1に送信する。
【0021】
なお、代理サーバ1の送信手段1b、受信手段1c、および送信手段1dは、代理サーバ1が有するCPU(Central Processing Unit)により実現することができる。また、代理サーバ1が有する第1の記憶部1aは、代理サーバ1が有するRAM(Random Access Memory)やハードディスクドライブ(HDD:Hard Disk Drive)などにより実現することができる。管理サーバ2の受信手段2bと送信手段2cとは、管理サーバ2が有するCPUにより実現することができる。また、管理サーバ2が有する第2の記憶部2aは、管理サーバ2が有するRAMやHDDなどにより実現することができる。
【0022】
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
次に、図1に示したシステムにおける処理手順を説明する。
【0023】
図2は、第2の実施の形態に係るシステムの処理手順の一例を示すシーケンス図である。以下、図2に示す処理をステップ番号に沿って説明する。
[ステップS1]端末装置5は、サービス要求を送信する。例えば端末装置5は、ユーザからの入力に応じてサービス要求を送信する。サービス要求には、サービスを特定するサービス識別子が含まれる。
【0024】
[ステップS2]代理サーバ1の送信手段1bは、端末装置5が送信したサービス要求を受信する。
[ステップS3]代理サーバ1の送信手段1bは、サービス要求で指定されたサービス識別子に対応する2つの処理システム識別子を、第1の記憶部1aから読み出す。
【0025】
[ステップS4]代理サーバ1の送信手段1bは、管理サーバ2へ取得要求を送信する。取得要求には、第1の記憶部1aから読み出した2つの処理システム識別子が含まれる。
【0026】
[ステップS5]管理サーバ2の受信手段2bは、代理サーバ1から送信された取得要求を受信する。受信手段2bは、受信した取得要求を、送信手段2cに渡す。
[ステップS6]管理サーバ2の送信手段2cは、受信した取得要求に含まれる2つの処理システム識別子それぞれに対応する認証情報を第2の記憶部2aから取得する。
【0027】
[ステップS7]管理サーバ2の送信手段2cは、取得した認証情報を代理サーバ1に送信する。
[ステップS8]代理サーバ1の受信手段1cは、管理サーバ2から送信された、2つの処理システム識別子それぞれに対応する認証情報を受信する。
【0028】
[ステップS9]代理サーバ1の送信手段1dは、受信した認証情報を含む、処理システム3,4ごとのユーザ認証の要求を、2つの処理システム3,4それぞれに送信する。
[ステップS10]処理システム3は、ユーザ認証の要求に応じて、そのユーザ認証の要求に含まれる認証情報によりユーザ認証を行う。
【0029】
[ステップS11]処理システム4は、ユーザ認証の要求に応じて、そのユーザ認証の要求に含まれる認証情報によりユーザ認証を行う。
図3は、第1の実施の形態による代理認証の一例を示す図である。図3の例では、端末装置5から、ユーザID「00930428」とサービス識別子「http://Ap1.c.com」とを含むサービス要求6が送信されている。サービス識別子は、例えばいずれかの処理システム内のアプリケーションサーバのURL(Uniform Resource Locator)である。
【0030】
サービス要求6を受信した代理サーバ1では、サービス要求6に示されるサービス識別子に対応する処理システム識別子が、第1の記憶部1aから抽出される。図3の例では、「https://IDP1.com」と「https://IDP2.com」との2つの処理システム識別子が抽出される。例えば、各処理システム3,4内のユーザ認証処理を行うサーバのURLが、処理システム3,4の処理システム識別子として使用されている。
【0031】
そして代理サーバ1から管理サーバ2へ、取得要求7が送信される。処理要求7には、サービス要求6に示されたユーザID「00930428」と、第1の記憶部1aから抽出した2つの処理システム識別子「https://IDP1.com」、「https://IDP2.com」が含まれている。
【0032】
取得要求7は管理サーバ2で受信される。管理サーバ2では、第2の記憶部2aから、取得要求7に示されるユーザIDと処理システム識別子それぞれとの組に対応する認証情報8が取得される。図3の例では、ユーザID「00930428」と処理システム識別子「https://IDP1.com」との組に対応する認証情報「x_ID/x_PW」とユーザID「00930428」が取得される。また処理システム識別子「https://IDP2.com」との組に対応する認証情報「y_ID/y_PW」も取得される。管理サーバ2で取得された認証情報8は、代理サーバ1に送信される。
【0033】
認証情報8は、代理サーバ1で取得される。そして代理サーバ1は、取得した認証情報8それぞれを含むユーザ認証要求9,10を、処理システム3,4に送信する。例えば処理システム識別子「https://IDP1.com」に対応する認証情報「x_ID/x_PW」を含むユーザ認証要求9が、処理システム識別子「https://IDP1.com」で示されるURLを宛先として送信される。また処理システム識別子「https://IDP2.com」に対応する認証情報「y_ID/y_PW」を含むユーザ認証要求10が、処理システム識別子「https://IDP2.com」で示されるURLを宛先として送信される。
【0034】
これにより、連携したサービスを行う2つの処理システム3,4のそれぞれに認証情報が送られ、各処理システム3,4でユーザ認証が行われる。このとき、代理サーバ1は、管理サーバ2への1回の取得要求により、2つの認証情報を取得している。従って、例えば処理システム3,4それぞれから認証要求が出されるごとに、個別に管理サーバ2から認証情報を取得する場合に比べ、代理サーバ1と管理サーバ2との間の通信頻度を抑止することができる。その結果、代理認証の処理効率が向上する。
【0035】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ゲートウェイ装置(GW)で代理認証を行うシステムの例である。
【0036】
図4は、第2の実施の形態のシステム構成例を示す図である。図4の例では、名称が「F社」であるネットワーク事業者Fが、GW100を用いて、ネットワーク21に接続された端末装置31〜34を使用するユーザの代理認証を行う。端末装置31〜34には、プリンタ、移動体端末装置、およびタブレット端末装置が含まれる。
【0037】
端末装置31〜34は、例えば企業などの組織に属するユーザが使用する。組織単位でサービス事業者X,Yとのサービス提供契約を締結することで、その組織に属するユーザが、サービス事業者X,Yのシステムで適用されているサービスを利用可能となる。以下、サービス事業者X,Yとの間でサービス提供契約を締結している組織を、テナントと呼ぶ。図4の例では、端末装置31,32は、テナントIDが「Te-A」のテナントAに属するユーザが使用する。端末装置33,34は、テナントIDが「Te-B」のテナントBに属するユーザが使用する。
【0038】
ネットワーク事業者F内では、GW100がネットワーク21とネットワーク22との間に設けられている。2つのネットワーク21,22は、例えばVPN(Virtual Private Network)を用いることができる。
【0039】
GW100には、ネットワーク事業者Fの内部のネットワーク41を介して認証局42と管理サーバ200とが接続されている。IDP42は、端末装置31〜34を使用するユーザの認証を行う。管理サーバ200は、ネットワーク22を介して接続されたサービス事業者からサービスの提供を受ける際の代理認証に用いられる認証情報を管理する。認証情報は、例えばユーザIDとパスワードとの組である。
【0040】
図4の例では、ネットワーク22に複数のサービス事業者X,Yのシステムが接続されている。例えば名称が「X社」のサービス事業者Xのシステムと、名称が「Y社」のサービス事業者Yのシステムとが、ネットワーク22を介してGW100に接続されている。
【0041】
ネットワーク事業者X内では、ルータ51を介して、内部のネットワーク52とネットワーク22とが接続されている。内部のネットワーク52には、IDP53とAPサーバ54とが接続されている。IDP53は、APサーバ54で提供するサービスを利用するユーザの認証を行う。APサーバ54は、IDP53で認証を受けたユーザに対してサービスを提供する。例えばAPサーバ54は、IDP53で認証を受けたユーザが使用する端末装置からの要求に応じて、要求された処理を実行する。
【0042】
ネットワーク事業者Y内では、ルータ61を介して、内部のネットワーク62とネットワーク22とが接続されている。内部のネットワーク62には、IDP63とAPサーバ64とが接続されている。IDP63は、APサーバ64で提供するサービスを利用するユーザの認証を行う。APサーバ64は、IDP63で認証を受けたユーザに対してサービスを提供する。例えばAPサーバ64は、IDP63で認証を受けたユーザが使用する端末装置からの要求に応じて、要求された処理を実行する。
【0043】
なお図4に示すGW100は、図1に示す第1の実施の形態の代理サーバ1の一例である。図4に示す管理サーバ200は、図1に示す第1の実施の形態の管理サーバ2の一例である。図4に示す各サービス事業者X,Yの内部のシステムは、図1に示す処理システム3,4の一例である。図4に示す端末装置31〜34は、図1に示す第1の実施の形態の端末装置5の一例である。
【0044】
ここで、ネットワーク事業者XのIDP53と、ネットワーク事業者YのIDP63とは、アクセス権の委譲処理を行うことができる。例えばIDP63は、端末装置31〜34を使用するユーザのAPサーバ64へのアクセス権を、APサーバ54に委譲することができる。これによりAPサーバ54が、APサーバ64にアクセスし、APサーバ64によって提供されるサービスをAPサーバ54が利用することができる。このようなアクセス権の委譲を行うことができるプロトコルとしては、例えばOAuthがある。
【0045】
図5は、アクセス権の委譲により実行可能となるサービスの一例を示す図である。例えばユーザ71は、APサーバ64に自己の書類(ドキュメント)を保管しているものとする。またAPサーバ54では、ユーザ71のドキュメントデータ72を印刷データ73に変換するサービスを行っているものとする。
【0046】
ユーザ71は、APサーバ64に保管しておいた自己のドキュメントデータ72の内容を印刷する場合、例えばプリンタ機能を有する端末装置31の操作パネルを用いて、ドキュメントデータ72の印刷を指示する入力を行う。端末装置31は、入力に応じて、APサーバ54に対してドキュメントデータ72のネットプリント要求を送信する(ステップS16)。ネットプリント要求は、GW100を介してAPサーバ54に送られる。APサーバ54は、ユーザ71に与えられたアクセス権を用いてAPサーバ64にアクセスし、ドキュメントデータ72を取得する(ステップS17)。そしてAPサーバ54は、ドキュメントデータ72を印刷データ73に変換し、端末装置31に送信する(ステップS18)。端末装置31は、受信した印刷データ73に基づいて印刷を行い、ドキュメントデータ72の内容が印刷された紙書類74を排出する(ステップS19)。
【0047】
このようなサービスを利用するには、APサーバ54に対して、APサーバ64へのアクセス権の委譲が行われる。その場合、ユーザ71の代理認証を行うGW100は、APサーバ54のサービスを利用するための代理認証を受けると共に、APサーバ64のサービスを利用するための代理認証を受けることとなる。そのために、GW100は、管理サーバ200から、APサーバ54とAPサーバ64とのそれぞれのサービスを利用するための複数の認証情報を取得する。
【0048】
第2の実施の形態では、個別に認証を受けて使用可能となるる複数のサーバが連携して実行するサービスを利用する場合には、GW100が、代理認証に利用する複数の認証情報を、まとめて管理サーバ200から取得する。これにより、GW100と管理サーバ200との間の通信頻度が低減させることができ、処理の効率化が図れる。
【0049】
図6は、本実施の形態に用いるGWのハードウェアの一構成例を示す図である。GW100は、CPU101によって装置全体が制御されている。CPU101には、バス100aを介してRAM102と複数の周辺機器が接続されている。
【0050】
RAM102は、GW100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
【0051】
バス100aに接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および複数の通信インタフェース107〜109がある。
【0052】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、GW100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0053】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0054】
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0055】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0056】
通信インタフェース107は、ネットワーク事業者Fの内部のネットワーク41に接続されている。通信インタフェース107は、ネットワーク41を介して、IDP42や管理サーバ200との間でデータの送受信を行う。
【0057】
通信インタフェース108は、ネットワーク21に接続されている。通信インタフェース108は、ネットワーク21を介して、端末装置31〜34との間でデータの送受信を行う。
【0058】
通信インタフェース109は、ネットワーク22に接続されている。通信インタフェース109は、ネットワーク22を介して、サービス事業者XのIDP53とAPサーバ54、およびサービス事業者YのIDP63とAPサーバ64を含む各種装置とデータの送受信を行う。
【0059】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお図6にはGW100のハードウェア構成を示したが、ネットワーク事業者F内のIDP42、管理サーバ200も同様のハードウェアで実現できる。またサービス事業者XのIDP53とAPサーバ54も、GW100と同様のハードウェアで実現できる。またサービス事業者YのIDP63とAPサーバ64も、GW100と同様のハードウェアで実現できる。さらに端末装置31〜34も、GW100と同様のハードウェアで実現できる。ただし端末装置31〜34は、その用途に応じて、GW100と同様のハードウェアに加え、プリンタ機能、電話機能、タッチセンサなどを有している。
【0060】
なお、第1の実施の形態に示した代理サーバ1、および管理サーバ2も、図6に示したGW100と同様のハードウェアにより実現することができる。
次に各装置の処理機能について説明する。
【0061】
図7は、各装置の処理機能の一例を示すブロック図である。図7の例では、端末装置32のユーザが、端末装置32のブラウザ32aを用いて、APサーバ54に実装されたアプリケーション54aによるサービスの提供を受ける場合が想定されている。また端末装置32のユーザは、APサーバ64に自己のドキュメントデータを保存しており、そのドキュメントデータは、APサーバ64に実装されたアプリケーション64aによって抽出される。そして、アプリケーション54aが実行する処理には、APサーバ64が保持するドキュメントデータを利用した処理が含まれる。
【0062】
管理サーバ200は、記憶部210と認証情報提供部220とを有している。記憶部210は、例えば管理サーバ200内のRAMまたはHDDによって実現される。記憶部210には、クラウド対応テーブル211と認証情報テーブル群212とが格納されている。クラウド対応テーブル211は、サービス事業者のIDP53,63のURLが登録されたデータテーブルである。認証情報テーブル群212は、サービスの提供を受ける組織(テナント)内のユーザそれぞれの認証情報それぞれの認証情報が登録された、サービス事業者ごとの認証情報テーブルの集合である。
【0063】
認証情報提供部220は、GW100からの認証情報の問い合わせに応じて、記憶部210から認証情報を取得し、GW100に応答する。例えば認証情報提供部220は、テナント名、ユーザID、および少なくとも1つのIDPのURLの組を含む問い合わせを受け取り、その問い合わせに示される情報に対応する認証情報を記憶部210から取得する。そして認証情報提供部220は、取得した認証情報を、GW100に送信する。
【0064】
GW100は、記憶部110、メッセージ送受信部120、メッセージ送受信部130、受付部140、事前認証部150、問い合わせ部160、代理認証部170、および連携テーブル作成部180を有する。
【0065】
記憶部110は、連携サービステーブル111と認証情報管理テーブル112とを記憶する。例えばRAM102またはHDD103の記憶領域の一部が、記憶部110として使用される。連携サービステーブル111は、サービスごとに、認証を受けるべきIDPのURLが登録されたデータテーブルである。認証情報管理テーブル112は、ユーザごとに、各サービスのIDPで認証を受けるための認証情報が登録されたデータテーブルである。
【0066】
メッセージ送受信部120は、端末装置31〜34から送られるメッセージを受信する。メッセージ送受信部120は、受信したメッセージを受付部140に渡す。またメッセージ送受信部120は、受付部140から端末装置31〜34宛のメッセージを受け取ると、宛先の端末装置へメッセージを送信する。
【0067】
メッセージ送受信部130は、IDP53,63やAPサーバ54,64から送られるメッセージを受信する。メッセージ送受信部130は、受信したメッセージを受付部140に渡す。またメッセージ送受信部130は、受付部140からIDP53,63やAPサーバ54,64宛のメッセージを受け取ると、宛先の装置へメッセージを送信する。
【0068】
受付部140は、端末装置31〜34、IDP53,63、APサーバ54,64などから出力されたメッセージを受け付け、メッセージの種別を解析する。そして受付部140は、各メッセージの種別に応じて他の要素に処理を依頼する。また受付部140は、他の要素から、メッセージに応じた処理結果を受け取ると、その処理結果のメッセージをメッセージ送受信部120,130のいずれかに送信する。
【0069】
事前認証部150は、端末装置31〜34の事前認証処理を制御する。例えば、事前認証部150は、受付部140から、事前認証が未認証の端末装置31〜34が出力した処理の要求を示すサービス要求メッセージを受け取ると、IDP42によるユーザ認証処理に移行させるメッセージを端末装置に応答する。なお、事前認証部150は、ユーザがIDP42において正しく認証された場合、そのユーザが認証されたことを示す情報をIDP42から取得する。なおユーザが認証されたことを示す情報は、例えばサービスを要求する端末装置からの再度のサービス要求メッセージに含められる。このとき、ユーザが認証されたことを示す情報は、例えば暗号化してサービス要求メッセージに含められる。その場合、事前認証部150は、例えばIDP42から予め取得しておいた鍵を用いてユーザが認証されたことを示す情報を複合することで、ユーザが正しく認証されたことを認識する。なおIDP42によるユーザ認証は、例えばOpenIDの認証システムを利用することができる。
【0070】
問い合わせ部160は、未認証のサービスに対するサービス要求メッセージを取得すると、管理サーバ200に認証情報を問い合わせる。そして問い合わせ部160は、管理サーバ200から取得した認証情報を受付部140に渡す。この認証情報は、受付部140を介して代理認証部170に渡される。
【0071】
代理認証部170は、サービス要求メッセージの宛先であるAPサーバの認証を行うIDPにアクセスし、受付部140介して受け取った認証情報を用いてユーザの認証を受ける。
【0072】
連携テーブル作成部180は、連携サービステーブル111を作成する。例えば連携テーブル作成部180は、連携サービステーブル111に登録されていないサーバ間の連携関係を検出すると、その連携関係を示すエントリを連携サービステーブル111に追加登録する。
【0073】
なお、図7に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
また、図1に示した実施の形態の第1の記憶部1aは、第2の実施の形態の記憶部110によって実現される。図1に示した実施の形態の送信手段1bおよび受信手段1cは、第2の実施の形態の問い合わせ部160によって実現される。図1に示した実施の形態の送信手段1dは、第2の実施の形態の代理認証部170によって実現される。図1に示した実施の形態の第2の記憶部2aは、第2の実施の形態の記憶部210によって実現される。図1に示した実施の形態の受信手段2bと送信手段2cとは、第2の実施の形態の認証情報提供部220によって実現される。
【0074】
次に、各装置に格納されているデータテーブルの内容について詳細に説明する。まず、管理サーバ200の記憶部210に格納されているクラウド対応テーブル211と認証情報テーブル群212内の認証情報テーブルとについて説明する。
【0075】
図8は、クラウド対応テーブルのデータ構造の一例を示す図である。クラウド対応テーブル211には、IDP_URLとサービス事業者との欄が設けられている。
IDP_URLの欄には、サービス事業者が有するIDPのURLが設定される。サービス事業者の欄には、サービス事業者の名称が設定される。図8の例では、ネットワーク事業社Fが有するIDP42のURLは「http://IDP0.com」である。サービス事業者Xが有するIDP53のURLは「https://IDP1.com」である。サービス事業者Yが有するIDP63のURLは「https://IDP2.com」である。
【0076】
図9は、認証情報テーブルのデータ構造の一例を示す図である。認証情報テーブル群212には、サービス事業者ごとの認証情報テーブル212a,212b,・・・が格納されている。例えば認証情報テーブル212aは、名称「X社」のサービス事業者Xに対応しており、認証情報テーブル212bは、名称「Y社」のサービス事業者Yに対応している。
【0077】
認証情報テーブル212aには、テナントID、ユーザID、X社ID、およびX社パスワードの欄が設けられている。テナントIDの欄には、サービス事業者Xのサービス提供を受ける組織(テナント)の識別情報(テナントID)が設定される。ユーザIDの欄には、テナントIDで示される組織に属するユーザの識別情報(ユーザID)が設定される。X社IDの欄には、サービス事業者XのIDP53に登録された、テナントのユーザIDが設定される。X社パスワードの欄には、サービス事業者XのIDP53のおけるテナントの認証用のパスワードが設定される。
【0078】
認証情報テーブル212bには、テナントID、ユーザID、Y社ID、およびY社パスワードの欄が設けられている。テナントIDの欄には、サービス事業者Yのサービス提供を受ける組織(テナント)の識別情報(テナントID)が設定される。ユーザIDの欄には、テナントIDで示される組織に属するユーザの識別情報(ユーザID)が設定される。Y社IDの欄には、サービス事業者YのIDP63に登録された、テナントのユーザIDが設定される。Y社パスワードの欄には、サービス事業者YのIDP63のおけるテナントの認証用のパスワードが設定される。
【0079】
次に、GW100の記憶部110に格納されている連携サービステーブル111と認証情報管理テーブル112とについて説明する。
図10は、連携サービステーブルのデータ構造の一例を示す図である。連携サービステーブル111には、テナントID、サービスURL、IDP_URL、および連携先IDP_URLの欄が設けられている。
【0080】
テナントIDの欄には、サービス要求メッセージを送信した端末装置を使用しているユーザが属する組織のテナントIDが設定される。サービスURLの欄には、サービス要求メッセージを宛先であるAPサーバのURLが設定される。IDP_URLの欄には、サービス要求メッセージを宛先であるAPサーバからサービスの提供を受けるユーザに関して、ユーザ認証を行うIDPのURLが設定される。連携先IDP_URLの欄には、サービス要求メッセージを宛先であるAPサーバと連携した処理を行う他のAPサーバのURLが設定される。
【0081】
図11は、認証情報管理テーブルのデータ構造の一例を示す図である。認証情報管理テーブル112には、テナントID、ユーザID、IDP_URL、ID、およびパスワード(PW)の欄が設けられている。
【0082】
テナントIDの欄には、サービス要求メッセージを送信した端末装置を使用しているユーザが属する組織のテナントIDが設定される。ユーザIDの欄には、サービス要求メッセージを送信した端末装置を使用しているユーザのユーザIDが設定される。IDP_URLの欄には、認証を行ったIDPのURLが設定される。IDの欄には、認証に使用されたユーザIDが設定される。パスワード(PW)の欄には、認証に使用されたパスワードが設定される。
【0083】
このような情報を用いて、代理認証を伴う連携したサービスの提供が行われる。以下、代理認証を伴う連携サービスの提供処理について詳細に説明する。なお以下の例では、OAuthを利用して、ユーザが自分のデータのあるAPサーバへのアクセス権を、他のAPサーバに付与するものとする。
【0084】
<運用フェーズ>
まず、APサーバ54を連携元、APサーバ64を連携先とする情報が連携サービステーブル111に既に登録されている場合の、X社のAPサーバ54とY社のAPサーバ64との連携サービスの提供処理(運用フェーズ)について説明する。この場合、Y社のIDP63は、OAuthにおけるトークンサーバとして機能する。
【0085】
図12は、登録されている連携サービスの提供処理の一例の前半を示すシーケンス図である。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS21]端末装置32は、事前認証が未承認の状態で、APサーバ54宛のサービス要求メッセージを送信する。例えば端末装置32のユーザによるブラウザ32aに対する入力に基づいて、サービス要求メッセージが送信される。送信されたサービス要求メッセージは、GW100で受信される。
【0086】
[ステップS22]GW100では、端末装置32に対して認証要求を応答する。例えばGW100では、メッセージ送受信部120がサービス要求メッセージを受信し、そのサービス要求メッセージが受付部140に転送される。受付部140は、メッセージの解析によりサービス要求メッセージであることを認識し、そのサービス要求メッセージを事前認証部150に渡す。事前認証部150は、端末装置32を使用しているユーザの事前認証が未承認であることを認識し、認証要求メッセージを生成する。この認証要求メッセージには、IDP42へのリダイレクトの指示が含まれる。そして事前認証部150は、端末装置32宛の認証要求メッセージを受付部140に渡す。受付部140は、メッセージ送受信部120を介して、認証要求メッセージを端末装置32に送信する。
【0087】
[ステップS23]端末装置32は、認証要求メッセージを受信すると、リダイレクトにより、IDP42へ認証要求メッセージを送信する。
[ステップS24]IDP42は、認証画面を端末装置32に応答する。
【0088】
[ステップS25]端末装置32は、認証画面を表示し、認証画面に対するユーザからの認証情報の入力を受け付ける。認証情報は、例えばユーザID(u_ID)とパスワードu_PW)との組である。そして端末装置32は、認証情報を含むユーザ認証メッセージをIDP42に送信する。
【0089】
[ステップS26]IDP42は、端末装置32から受け取ったユーザ認証メッセージに含まれる認証情報に基づいて、ユーザ認証を行う。例えばIDP42には、GW100による代理認証機能を利用可能なユーザの認証情報(ユーザIDとパスワードとの組)が予め登録されている。そして、IDP42は、ユーザ認証メッセージに含まれる認証情報が、予め登録されている認証情報のいずれかと合致すれば、端末装置32を使用しているユーザを正当なユーザであると認証する。IDP42は、認証結果を端末装置32に送信する。認証結果には、認証が成功したこと(OK)、または失敗したこと(NG)のいずれかを示す情報が含まれる。認証が成功した場合、認証結果には、例えば、認証成功を示す情報と共に、テナントIDとユーザIDとが暗号化して含まれる。
【0090】
[ステップS27]端末装置32は、認証成功を示す認証結果を受け取った場合、APサーバ54宛の認証済のサービス要求メッセージを送信する。このサービス要求メッセージには、例えば認証成功を示す情報が含まれる。送信されたサービス要求メッセージは、GW100で受信される。
【0091】
[ステップS28]GW100は、サービス要求メッセージを受信すると、管理サーバ200から認証情報を取得する。例えばGW100では、メッセージ送受信部130が認証画面データを受信し、受付部140に転送する。受付部140は、認証画面データを代理認証部170に渡す。代理認証部170は、連携サービステーブル111から、端末装置32からのサービス要求メッセージに対応するテナントIDとAPサーバ54のURLとの組に対応するエントリを検索する。そして代理認証部170は、該当するエントリに含まれるIDP53のURLと連携先のIDP63のURLとを取得する。
【0092】
さらに代理認証部170は、端末装置32からのメッセージに対応するテナントIDおよびユーザIDであり、IDP53とIDP63とのそれぞれをサービス事業者IDPとするエントリを認証情報管理テーブル112から検索する。代理認証部170は、該当する認証情報が認証情報管理テーブル112に登録されていなければ、認証情報の取得要求を受付部140経由で問い合わせ部160に送信する。すると問い合わせ部160が、管理サーバ200に対して、認証情報が格納されていないIDPに対応する認証情報を問い合わせる。問い合わせには、例えばテナントID、ユーザID、および各IDPのURLが含められる。
【0093】
管理サーバ200では、認証情報提供部220が認証情報問い合わせを受信し、問い合わせに応じた認証情報を記憶部210から取得する。例えば管理サーバ200では認証情報提供部220が、クラウド対応テーブル211を参照し、問い合わせで示されるIDPのURLに対応するサービス事業者を特定する。次に認証情報提供部220は、特定されたサービス事業者それぞれの認証情報テーブルから、問い合わせで示されるテナントIDとユーザIDとの組に対応するユーザIDとパスワードとの組を取得する。そして認証情報提供部220は、例えばサービス事業者のIDPのURLに対応付けて、そのサービス事業者の認証情報テーブルから取得した認証情報を、GW100に送信する。
【0094】
GW100では、問い合わせ部160が、認証情報提供部220から送信された認証情報を取得する。問い合わせ部160は、取得したIDPのURLごとの認証情報を、受付部140経由で代理認証部170に送信する。
【0095】
[ステップS29]GW100は、認証済みのサービス要求メッセージを宛先であるAPサーバ54に転送する。例えばGW100のメッセージ送受信部120がサービス要求メッセージを受信し、受付部140に転送する。受付部140は、サービス要求メッセージを事前認証部150に渡す。すると事前認証部150は、事前認証が認証済みであることを確認し、サービス要求メッセージを受付部140に返す。すると受付部140は、サービス要求メッセージを、メッセージ送受信部130を介してAPサーバ54に送信する。
【0096】
なお受付部140は、端末装置32から認証済みのサービス要求メッセージを受信すると、以後、端末装置32からのメッセージに応じた通信処理は、サービス要求メッセージに示されたテナントIDとユーザIDとの組に対応付けて管理する。サービス要求メッセージと、そのサービス要求メッセージに応じた通信との対応関係は、例えば通信に用いるセッション間の関連づけを保持することで管理できる。
【0097】
[ステップS30]APサーバ54は、サービス要求メッセージを受信すると、端末装置32宛に認証要求メッセージを応答する。この認証要求メッセージには、IDP53へのリダイレクトの指示が含まれる。送信された認証要求メッセージは、GW100で受信される。
【0098】
[ステップS31]GW100は、認証要求メッセージを受信すると、リダイレクトにより、IDP53へ認証要求メッセージを送信する。例えばGW100では、APサーバ54から送信された認証要求メッセージをメッセージ送受信部130が受信し、受付部140に転送する。受付部140は、認証要求メッセージのリダイレクトの指示に基づいて、メッセージ送受信部130を介して、認証要求メッセージをIDP53に送信する。
【0099】
[ステップS32]IDP53は、認証画面データをGW100に応答する。
[ステップS33]GW100は、ユーザ認証メッセージをIDP53に送信する。例えばGW100の代理認証部170が、IDP53のURLに対応する認証情報(x_ID/x_PW)を含む、IDP53宛のユーザ認証メッセージを生成する。そして代理認証部170は、生成したユーザ認証メッセージを受付部140に渡す。受付部140は、メッセージ送受信部130を介して、取得したユーザ認証メッセージをIDP53に送信する。
【0100】
[ステップS34]IDP53は、受信したユーザ認証メッセージに含まれる認証情報に基づいて、ユーザ認証を行う。例えばIDP53には、APサーバ54のサービスを利用可能なテナントの認証情報(ユーザIDとパスワードとの組)が予め登録されている。そして、IDP53は、ユーザ認証メッセージに含まれる認証情報が、予め登録されている認証情報のいずれかと合致すれば、認証成功と判定する。そしてIDP53は、認証結果をGW100に送信する。認証結果には、認証が成功したこと(OK)、または失敗したこと(NG)のいずれかを示す情報が含まれる。また認証結果を送信する認証結果メッセージには、例えばAPサーバ54へのリダイレクト指示が含まれている。
【0101】
[ステップS35]GW100は、認証成功を示す認証結果を受け取った場合、APサーバ54宛の認証済のサービス要求メッセージを送信する。このサービス要求メッセージには、例えば認証成功を示す情報が含まれる。例えばGW100のメッセージ送受信部130は、IDP53から送られた認証結果メッセージを受信し、受付部140に渡す。受付部140は、受信した認証結果メッセージのリダイレクト指示に従って、認証結果を、認証済みのサービス要求メッセージとして、メッセージ送受信部130を介してAPサーバ54に送信する。
【0102】
[ステップS36]APサーバ54は、サービス要求メッセージの内容を解析し、APサーバ64との連携処理であることを認識する。APサーバ54は、このようなサービス要求メッセージの内容に基づき、APサーバ64との連携処理を行うと判断する。この場合、APサーバ54は、Y社のIDP63に対してリクエストトークン要求を送信する。
【0103】
[ステップS37]IDP63は、リクエストトークン要求に応じて、ユーザのデータを渡してよいか否かの判断のために、APサーバ54に対して未認可のリクエストトークンを応答する。ここでリクエストトークンが未認可であるとは、リクエストトークンにアクセス許可の情報が含まれていないことを示す。
【0104】
[ステップS38]APサーバ54は、未認可のリクエストトークンを受け取ると、そのリクエストトークンを含む許可要求メッセージをGW100に送信する。この際、許可要求メッセージには、IDP63へのリダイレクトの指示が含まれる。この際、未認可のリクエストトークンは、例えばHTTP形式の応答メッセージに含めることができる(図17参照)。なお許可要求メッセージに応じてGW100においてIDP63への代理認証が行われるため、この許可要求メッセージは、認証要求メッセージの一種である。
【0105】
[ステップS39]GW100は、許可要求メッセージを取得すると、リダイレクトにより、許可要求メッセージをIDP63に送信する。この際、GW100の代理認証部170では、取得した許可要求メッセージに含まれる未認可のリクエストトークンを保持しておく。
【0106】
[ステップS40]IDP63は、ユーザ認証画面データをGW100に応答する。その後、処理がステップS51に進められる(図13参照)。
図13は、登録されている連携サービスの提供処理の一例の後半を示すシーケンス図である。以下、図13に示す処理をステップ番号に沿って説明する。
【0107】
[ステップS51]GW100は、ユーザ認証メッセージをIDP63に送信する。例えばGW100の代理認証部170が、IDP63のURLに対応する認証情報(y_ID/y_PW)を含む、IDP63宛のユーザ認証メッセージを生成する。そして代理認証部170は、生成したユーザ認証メッセージを受付部140に渡す。受付部140は、メッセージ送受信部130を介して、取得したユーザ認証メッセージをIDP63に送信する
なお、このときユーザ認証メッセージに含められる認証情報は、ステップS28(図12参照)において取得されている。
【0108】
[ステップS52]IDP63は、アクセス許可画面データをGW100に応答する。アクセス許可画面データは、例えばAPサーバ54がアクセスするドキュメントデータの内容と条件を表示し、アクセス許可をしてよいか否かの判断を促す画面のデータ(アクセス許可判断要求)である。
【0109】
[ステップS53]GW100は、未認可のリクエストトークンを含むアクセス許可要求メッセージをIDP63に送信する。なおアクセス許可要求メッセージは、アクセス許可画面データに示される内容(ドキュメントデータのAPサーバ54への提供)を許可してよいかどうかを問い合わせるメッセージである。例えばGW100の代理認証部170は、ステップS39で保持しておいた未認可のリクエストトークンを含む、IDP63宛のアクセス許可要求メッセージを生成する。そして代理認証部170は、生成したアクセス許可要求メッセージを受付部140に渡す。受付部140は、許可要求メッセージを、メッセージ送受信部130を介してIDP63に送信する。
【0110】
[ステップS54]IDP63は、認証結果をGW100に応答する。認証結果には、認証が成功したか(OK)、失敗したか(NG)の情報が含まれる。認証に成功の場合、認証結果には、アクセス許可を示すリクエストトークンが含められる。なお、アクセス許可を示すリクエストトークンは、例えばHTTP応答メッセージに含められる(図18参照)。また認証結果を示す認証結果メッセージには、例えばAPサーバ54へのリダイレクト指示が含まれている。
【0111】
[ステップS55]GW100は、認証成功の認証結果メッセージを受け取ると、アクセス許可を示すリクエストトークンを含む許可完了通知をAPサーバ54に送信する。例えばGW100のメッセージ送受信部130が認証結果を受信し、受付部140に転送する。受付部140は、認証結果メッセージに示されるリダイレクト指示に従い、受信した認証結果メッセージを、APサーバ54宛の許可完了通知メッセージとして、メッセージ送受信部130を介してAPサーバ54に送信する。
【0112】
[ステップS56]APサーバ54は、許可完了通知メッセージを受信すると、IDP63に対してアクセストークン要求を送信する。アクセストークン要求には、アクセス許可を示すリクエストトークンが含まれる。
【0113】
[ステップS57]IDP63は、アクセストークン要求を受け取ると、アクセス許可を示すリクエストトークンが含まれていることを確認後、アクセストークン応答をAPサーバ54に送信する。アクセストークン応答には、データ取得のAPI(Application Program Interface)を示すアクセストークンが含まれる。
【0114】
[ステップS58]APサーバ54は、アクセストークン応答を受信すると、アクセストークン応答に含まれるデータ取得のAPIを用いたデータ要求を、APサーバ64に送信する。
【0115】
[ステップS59]APサーバ64は、データ要求に応じてデータを応答する。
[ステップS60]APサーバ54は、APサーバ64から応答されたデータを用いて、所定の処理を実行する。例えばAPサーバ54は、APサーバ64から取得したドキュメントデータを、印刷データに変換する。そしてAPサーバ54は、処理結果を示すサービス応答を、GW100に送信する。
【0116】
[ステップS61]GW100は、受信したサービス応答を端末装置32に転送する。
このようにして、連携サービスを行う複数のAPサーバ54,64の機能を使用するための代理認証の手続きを、GW100が行うことができる。しかも、GW100は、代理認証に用いられる複数の認証情報を、一括で管理サーバ200から取得することができる。
【0117】
図14は、連携サービスの代理認証の一例を示す図である。例えば端末装置32から、認証済みのサービス要求メッセージ81がGW100に入力される。サービス要求メッセージ81には、例えばテナントID「Te-A」、ユーザID「00930428」、およびAPサーバ54のURL「http://Ap1.c.com」が含まれる。GW100では、連携サービステーブル111から、テナントID「Te-A」とAPサーバ54のURL「http://Ap1.c.com」との組に対応する、連携元のIDP53のURL「https://IDP1.com」と連携先のIDP63のURL「https://IDP2.com」とが取得される。
【0118】
そしてGW100から管理サーバ200に、問い合わせメッセージ82が送信される。問い合わせメッセージ82には、例えば、テナントID「Te-A」、ユーザID「00930428」、連携元のIDP53のURL「https://IDP1.com」、および連携先のIDP63のURL「https://IDP2. com」が含まれる。
【0119】
管理サーバ200は、クラウド対応テーブル211に基づいて、問い合わせメッセージ82の連携元のIDP53のURL「https://IDP1.com」に対応するサービス事業者が「X社」であることを判断する。そこで管理サーバ200は、X社に対応して設けられた認証情報テーブル212aから、テナントID「Te-A」とユーザID「00930428」との組に対応する認証情報を取得する。認証情報は、ユーザID「x_ID」とパスワード「x_PW」との組である。
【0120】
同様に、管理サーバ200は、クラウド対応テーブル211に基づいて、問い合わせメッセージ82の連携先のIDP63のURL「https://IDP2.com」に対応するサービス事業者が「Y社」であることを判断する。そこで管理サーバ200は、Y社に対応して設けられた認証情報テーブル212bから、テナントID「Te-A」とユーザID「00930428」との組に対応する認証情報を取得する。認証情報は、ユーザID「y_ID」とパスワード「y_PW」との組である。
【0121】
そして管理サーバ200は、例えば連携元のIDP53のURLと認証情報との組、および連携先のIDP63のURLと認証情報との組を、まとめて1つの応答メッセージ83として、GW100に送信する。
【0122】
GW100は、管理サーバ200から応答された複数の認証情報83を、テナントID「Te-A」、ユーザID「00930428」、および連携元のIDP53のURL「https://IDP1.com」に対応付けて、認証情報管理テーブル112に登録する。そして、GW100は、連携元のIDP53に対して、連携元のIDP53のURL「https://IDP1.com」に対応する認証情報(x_ID/x_PW)を含むユーザ認証メッセージ84を送信して、IDP53による認証を受ける。またGW100は、連携先のIDP63に対して、連携先のIDP63のURL「https://IDP2.com」に対応する認証情報(y_ID/y_PW)を含むユーザ認証メッセージ85を送信して、IDP63による認証を受ける。
【0123】
このようにして、連携サービスを実行する複数のサーバそれぞれの認証情報を、管理サーバ200から一括で取得することができる。その結果、GW100と管理サーバ200との間の通信回数を削減することができ、処理の効率化を図ることができる。
【0124】
<学習フェーズ>
次に、APサーバ54を連携元、APサーバ64を連携先とする情報が連携サービステーブル111に登録されてない場合(学習フェーズ)について説明する。このような場合、X社のAPサーバ54とY社のAPサーバ64との連携サービスのサービス要求メッセージがGW100に最初に入力されると、GW100は、複数のAPサーバ54,64それぞれの認証情報を個別に管理サーバ200から取得する。その際、GW100は、連携サービスの関係を学習し、連携サービステーブル111に情報を登録することができる。
【0125】
図15は、未登録の連携サービスの提供処理の一例を示すシーケンス図である。なお、図15には、図12および図13に示したシーケンス図と異なる処理についてのみ示している。未登録の連携サービスを提供する場合、ステップS32−1、ステップS41、およびステップS60−1の処理が、図12、図13の処理に示した処理と異なる。なお未登録の連携サービスを提供する場合、図12のステップS28の処理は実行されない。そこで図12、図13と異なる処理の内容について、以下に説明する。
【0126】
[ステップS32−1]この処理は、図12のステップS32の後、テップS33の前に実行される。
ステップS32−1では、GW100は、認証画面データを受信すると、管理サーバ200から認証情報を取得する。この際、GW100は、IDP53のURLのみを指定した問い合わせを管理サーバ200に対して行う点が、ステップS32の処理と異なる。
【0127】
例えば、GW100では、メッセージ送受信部130が認証画面データを受信し、受付部140に転送する。受付部140は、認証画面データを代理認証部170に渡す。代理認証部170は、連携サービステーブル111から、端末装置32からのメッセージに対応するテナントIDおよびAPサーバ54のURLの組に対応するエントリを検索する。このとき、該当するエントリは検出できない。そこで代理認証部170は、認証画面データを送信したIDP53のURLを、問い合わせ対象のURLとする。
【0128】
さらに代理認証部170は、端末装置32からのサービス要求メッセージに示されたテナントIDおよびユーザIDであり、IDP53をサービス事業者IDPとするエントリを認証情報管理テーブル112から検索する。代理認証部170は、該当する認証情報が認証情報管理テーブル112に登録されていなければ、認証情報の取得要求を受付部140経由で問い合わせ部160に送信する。すると問い合わせ部160が、管理サーバ200に対して、認証情報が格納されていないIDPに対応する認証情報を問い合わせる。管理サーバ200では、認証情報提供部220が認証情報問い合わせに応じて、認証情報をGW100に送信する。GW100では、問い合わせ部160が、認証情報提供部220から送信された認証情報を取得する。問い合わせ部160は、取得した認証情報を、受付部140経由で代理認証部170に送信する。
【0129】
[ステップS41]この処理は、図12のステップS40の後、図13のステップS51の前に実行される。
ステップS41では、GW100は、ユーザ認証画面データを受信すると、管理サーバ200から認証情報を取得する。例えば、GW100では、メッセージ送受信部130がユーザ認証画面データを受信し、受付部140に転送する。受付部140は、ユーザ認証画面データを代理認証部170に渡す。代理認証部170は、認証画面データを送信したIDP63のURLを、問い合わせ対象のURLとする。
【0130】
さらに代理認証部170は、端末装置32からのサービス要求メッセージに示されたテナントIDおよびユーザIDであり、IDP63をサービス事業者IDPとするエントリを認証情報管理テーブル112から検索する。代理認証部170は、該当する認証情報が認証情報管理テーブル112に登録されていなければ、認証情報の取得要求を受付部140経由で問い合わせ部160に送信する。すると問い合わせ部160が、管理サーバ200に対して、認証情報が格納されていないIDPに対応する認証情報を問い合わせる。管理サーバ200では、認証情報提供部220が認証情報問い合わせに応じて、認証情報をGW100に送信する。GW100では、問い合わせ部160が、認証情報提供部220から送信された認証情報を取得する。問い合わせ部160は、取得した認証情報を、受付部140経由で代理認証部170に送信する。
【0131】
[ステップS60−1]この処理は、図13のステップS60の後、ステップS61の前に実行される。
ステップS60−1では、連携サービステーブル111に、新たに認識した連携サービスの連携元と連携先とのIDPのURLを登録する。例えば連携テーブル作成部180は、ステップS27(図12参照)以後の代理認証部170の処理により、代理認証部170が保持している情報(キャッシュデータ)を取得する。キャッシュデータには、テナントID、ユーザID、サービスURL、IDP53のURL、およびIDP63のURLが含まれる。連携テーブル作成部180は、取得したテナントID、ユーザID、サービスURL、IDP53のURL、およびIDP63のURLに対応するエントリが、連携サービステーブル111に登録されているか否かを判断する。そして、連携テーブル作成部180は、該当するエントリが登録されていなければ、取得したテナントID、ユーザID、サービスURL、IDP53のURL、およびIDP63のURLを含むエントリを、連携サービステーブル111に登録する。
【0132】
このようにして、未登録の連携サービスの提供処理を実行した際には、連携するサービスの関係をGW100において学習し、連携サービステーブル111を更新することができる。
【0133】
図16は、連携サービステーブルへのエントリ登録例を示す図である。例えば代理認証部170は、ステップS27(図15参照)において端末装置32から認証済みのサービス要求メッセージ81を受信すると、サービス要求メッセージ81内の情報にインデックスを付与し、キャッシュデータとして保持する。キャッシュデータは、例えばRAM102内に格納される。図16の例では、インデックス「00100234」に対応付けて、テナントID「Te-A」、ユーザID「00930428」、サービスURL「http://Ap1.c.com」のがキャッシュに格納されている。
【0134】
その後、代理認証部170は、ステップS30(図15参照)においてAPサーバ54から認証要求メッセージ86を取得する。このとき代理認証部170は、認証要求メッセージ86からIDP53のURL「https://IDP1.com」を抽出する。そして代理認証部170は、抽出したURL「https://IDP1.com」を、連携元のIDPのURLとしてインデックス「00100234」に対応付けて保持する。
【0135】
さらに代理認証部170は、ステップS38(図15参照)においてAPサーバ54から許可要求メッセージ87を取得する。このとき代理認証部170は、許可要求メッセージ87から、未認可のリクエストトークン「OAuth_token1」とIDP63のURL「https://IDP2.com」を抽出する。そして代理認証部170は、抽出したリクエストトークン「OAuth_token1」をインデックス「00100234」に対応付けてキャッシュデデータに保存する。また代理認証部170は、抽出したIDP63のURL「https://IDP2.com」を、連携先のIDPのURLとしてインデックス「00100234」に対応付けて保持する。
【0136】
その後、連携テーブル作成部180は、ステップS60(図15参照)でサービス応答を受信したときに、代理認証部170がキャッシュとして保持しているデータを取得する。そして連携テーブル作成部180は、取得したデータから、テナントID、サービスURL、連携元IDPのURL、および連携先のIDPのURLを含むエントリを作成し、連携サービステーブル111に格納する。
【0137】
このようにして、互いに連携する複数のサービスを、GW100に学習させることができる。その結果、GW100の管理者が、連携サービスの登録作業を行わずにすみ、管理負担が軽減される。
【0138】
ところで、GW100では、IDPからの応答メッセージにリクエストトークンが含まれていることを検出し、連携するサービスがあることを認識できる。リクエストトークンを含む応答メッセージは、例えばHTTP形式の文書である。この場合、HTTPヘッダ部にリクエストトークンを含められる。
【0139】
図17は、未認可のリクエストトークンを含むHTTP応答メッセージの一例を示す図である。HTTP応答メッセージ91には、HTTPヘッダ91aと本文91bとが含まれる。HTTPヘッダ91aと本文91bとの間には、1行の空き行が設けられている。
【0140】
HTTPヘッダ91aには、トークン91cが含まれている。トークン91cには、連携先のIDPのURLやトークン91cの識別情報などが含まれている。GW100は、図15に示すステップS38において、APサーバ54から許可要求として送られたHTTP応答メッセージ91内にトークン91cが含まれていることにより、連携したサービスが実行されることを認識する。
【0141】
なお、連携先のIDPによるユーザ認証とアクセス許可(認可)が完了した場合、例えばアクセス許可を示すリクエストトークンを含むHTTP応答メッセージにより、IDP63からGW100に認証結果が送信される。
【0142】
図18は、アクセス許可を示すリクエストトークンを含むHTTP応答メッセージの例を示す図である。図17に示したHTTP応答メッセージ91と同様に、アクセス許可を示すリクエストトークンを含むHTTP応答メッセージ92も、HTTPヘッダ92aと本文92bとを有する。そしてHTTPヘッダ92a内にトークン92cが含まれる。認可済みのトークン92cには、アクセスが認可されたことを示す情報「oauth_verifier=8FKxxxxx」が含まれる。
【0143】
<運用/学習フェーズを実現するGW100の詳細処理>
次に、メッセージを受信した際にGW100で実行される処理を詳細に説明する。
図19は、メッセージ受信時のGWの処理の一例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
【0144】
[ステップS101]GW100は、メッセージを受信する。例えばメッセージ送受信部120がネットワーク21を介して入力されたメッセージを受信し、受信したメッセージを受付部140に渡す。または、メッセージ送受信部130がネットワーク22を介して入力されたメッセージを受信し、受信したメッセージを受付部140に渡す。
【0145】
[ステップS102]受付部140は、メッセージの種類を判別する。メッセージは、以下の6種類に分けられる。
・サービス要求(図12のステップS21,S27のメッセージ)
・認証要求のリダイレクト要求(図12のステップS30,S38のメッセージ)
・認証情報要求(図12のステップS32,S40のメッセージ)
・アクセス許可判断要求(図13のステップS52のメッセージ)
・認証/アクセス許可結果のリダイレクト要求(図12のステップS34、図13のステップS54のメッセージ)
・サービス応答(図13のステップS60)
受付部140は、受信したメッセージがサービス要求メッセージであれば、処理をステップS103に進める。また受付部140は、受信したメッセージがリダイレクト指示を伴う認証要求メッセージであれば、処理をステップS104に進める。また受付部140は、受信したメッセージが認証情報要求メッセージであれば、処理をステップS105に進める。また受付部140は、受信したメッセージがアクセス許可判断要求メッセージであれば、処理をステップS106に進める。また受付部140は、受信したメッセージがリダイレクト指示を伴う認証/アクセス許可の結果応答メッセージであれば、処理をステップS107に進める。また受付部140は、受信したメッセージがサービス応答であれば、処理をステップS108に進める。
【0146】
[ステップS103]GW100は、サービス要求対応処理を行う。この処理の詳細は後述する(図20参照)。
[ステップS104]GW100は、認証要求リダイレクト処理を行う。この処理の詳細は後述する(図21参照)。
【0147】
[ステップS105]GW100は、認証情報応答処理を行う。この処理の詳細は後述する(図22参照)。
[ステップS106]GW100は、アクセス許可判断要求に対する応答を行う。例えば、アクセス許可要求メッセージは、受付部140から代理認証部170に渡される。代理認証部170は、キャッシュしておいたリクエストトークン(図16参照)を含むアクセス許可要求メッセージを生成し、受付部140に渡す。すると受付部140は、メッセージ送受信部130を介して、アクセス許可判断要求の送信元に対して、アクセス許可要求メッセージを送信する。
【0148】
[ステップS107]GW100は、受信したメッセージのリダイレクト指示に従って、リダイレクトでメッセージを送信する。例えば受信したメッセージが認証成功を示す認証結果メッセージ(図12のステップS34)であれば、リダイレクト指示に従って受付部140が、認証結果を、認証済みのサービス要求メッセージとしてリダイレクト先に送信する。また受信したメッセージが認証成功の認証結果メッセージ(図13のステップ54)であれば、リダイレクト指示に従って受付部140が、認証結果を、許可完了通知メッセージとしてリダイレクト先に送信する。
【0149】
[ステップS108]GW100は、連携サービス登録処理を行う。この処理の詳細は後述する(図23参照)。
次に、ステップS103,S104,S105,S108の処理の詳細について説明する。
【0150】
まず、ステップS103のサービス要求対応処理について説明する。
図20は、サービス要求対応処理の手順の一例を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
【0151】
[ステップS111]GW100は、いずれかの端末装置からサービス要求メッセージを受信すると、IDP42による事前認証が済んでいるか否かを判断する。例えばサービス要求メッセージは、メッセージ送受信部120で受信され、受付部140に渡される。受付部140は、サービス要求メッセージを事前認証部150に渡す。事前認証部150は、受信したサービス要求メッセージに、事前認証が済んでいることを示す情報が含まれているか否かにより、事前認証済みか否かを判断する。事前認証が済んでいない場合、事前認証部150は、処理をステップS112に進める。例えば、図12のステップS21のサービス要求メッセージを受信した場合、事前認証が済んでいないと判断される。事前認証が済んでいる場合、事前認証部150は、処理をステップS113に進める。例えば、図12のステップS27のサービス要求メッセージを受信した場合、事前認証が済んでいると判断される。
【0152】
[ステップS112]事前認証部150は、事前認証が済んでいない場合、サービス要求メッセージの送信元の端末装置に、認証要求メッセージを応答する。例えば事前認証部150が認証要求メッセージを生成し、受付部140に渡す。受付部140は、取得した認証要求メッセージを、メッセージ送受信部120を介して端末装置に送信する。その後、サービス要求対応処理が終了する。
【0153】
[ステップS113]事前認証が済んでいる場合、GW100は、連携サービステーブル111に認証情報取得候補が存在するか否かを判断する。例えばGW100の代理認証部170は、認証済みのサービス要求メッセージを受付部140から取得する。代理認証部170は、サービス要求メッセージに含まれているテナントIDとサービスURL(APサーバのURL)との組に対応するエントリを、連携サービステーブル111から検索する。代理認証部170は、該当するエントリがある場合、該当するエントリの「IDP_URL」欄と「連携先IDP_URL」欄とのそれぞれのURLを、サービス要求メッセージに示されるテナントIDおよびユーザIDと組み合わせる。そして代理認証部170は、組み合わせられたテナントID、ユーザID、およびURLの組を、認証情報取得候補として抽出し、認証情報取得候補が存在すると判断する。また代理認証部170は、該当するエントリがない場合、認証情報取得候補が存在しないと判断する。代理認証部170は、認証情報取得候補が存在する場合、処理をステップS114に進める。また代理認証部170は、認証情報取得候補が存在しない場合、処理をステップS116に進める。
【0154】
[ステップS114]代理認証部170は、認証情報取得候補に対応する認証情報が、認証情報管理テーブル112に格納されているか否かを判断する。例えば代理認証部170は、認証情報取得候補に示されるテナントID、ユーザID、およびURLの組に対応するエントリを、認証情報管理テーブル112から検索する。認証情報取得候補のすべてについて、該当エントリが見つかった場合、代理認証部170は、認証情報取得候補の認証情報がすべて存在すると判断する。一方、認証情報取得候補の少なくとも1つについて、該当エントリが見つからなかった場合、代理認証部170は、認証情報取得候補の認証情報が少なくとも1つ存在しないと判断する。代理認証部170は、すべての認証情報取得候補に対応する認証情報が存在する場合、処理をステップS116に進める。また代理認証部170は、少なくとも1つの認証情報取得候補に関し、対応する認証情報が存在しない場合、処理をステップS115に進める。
【0155】
[ステップS115]代理認証部170は、認証情報が存在しない認証情報取得候補がある場合、認証情報が存在しない認証情報取得候補に対応する認証情報を、管理サーバ200に問い合わせる。例えば代理認証部170は、受付部140を介して問い合わせ部160に対して、認証情報取得候補に対応する認証情報の取得を依頼する。すると問い合わせ部160が、認証情報取得候補で示されるテナントID、ユーザID、およびURLを指定した問い合わせメッセージを管理サーバ200に送信し、認証情報の応答を得る。応答された認証情報が、問い合わせ部160から、受付部140を介して代理認証部170に渡される。代理認証部170は、取得した認証情報を、認証情報取得候補のテナントID、ユーザID、およびURLに対応付けて、認証情報管理テーブルに格納する。
【0156】
[ステップS116]代理認証部170は、サービス要求メッセージに含まれるテナントID、ユーザID、およびURL(サービスURL)を、キャッシュデータとして保持する。
【0157】
[ステップS117]代理認証部170は、サービス要求メッセージを、サービスURLに対応するAPサーバ宛に送信する。サービス要求メッセージは、例えば代理認証部170から受付部140に渡される。そして受付部140からメッセージ送受信部130を介して、サービス要求メッセージがAPサーバに送信される。
【0158】
次にステップS104の認証要求リダイレクト処理について説明する。
図21は、認証要求リダイレクト処理の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
【0159】
[ステップS121]リダイレクト指示を伴う認証要求メッセージを取得した場合、GW100は、リクエストトークン(R_token)の有無を判断する。例えばGW100の代理認証部170が、受付部140から認証要求メッセージを取得する。そして代理認証部170は、認証要求メッセージにリクエストトークンが含まれていれば、処理をステップS122に進める。また代理認証部170は、認証要求メッセージにリクエストトークンが含まれていなければ、処理をステップS123に進める。なお、リクエストトークンを含む認証要求メッセージは、OAuthにおける許可要求メッセージである。
【0160】
[ステップS122]代理認証部170は、受信した認証要求メッセージが、リクエストトークンを含む許可要求メッセージの場合、連携サービスであると認識する。そして代理認証部170は、リクエストトークンとリダイレクト先のAPサーバのURL(連携先IDPのURL)をキャッシュデータとして保持する。その後、代理認証部170は、処理をステップS124に進める。
【0161】
[ステップS123]代理認証部170は、受信した認証要求メッセージが、リクエストトークンを含む許可要求メッセージでない場合、リダイレクト先のURL(IDPのURL)を、キャッシュデータとして保持する。
【0162】
[ステップS124]代理認証部170は、リダイレクトにより認証要求を送信する。
次にステップS105の認証情報応答処理について説明する。
図22は、認証情報応答処理の手順の一例を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
【0163】
[ステップS131]GW100の代理認証部170は、認証情報要求メッセージを受信すると、要求された認証情報が保持されているか否かを判断する。例えば代理認証部170は、認証情報管理テーブル112から、テナントID、ユーザID、およびIDPのURLの組に該当するエントリを検査する。代理認証部170は、該当するエントリが検出された場合、認証情報が保持されていると判断する。また代理認証部170は、該当するエントリが検出できなかった場合、認証情報が保持されていないと判断する。代理認証部170は、認証情報が保持されている場合、処理をステップS133に進める。また代理認証部170は、認証情報が保持されていない場合、処理をステップS132に進める。
【0164】
[ステップS132]代理認証部170は、受付部140を介して、問い合わせ部160に認証情報の問い合わせを依頼する。すると問い合わせ部160が、管理サーバ200に対して認証情報を問い合わせ、管理サーバ200から認証情報を取得する。問い合わせ部160は、取得した認証情報を、受付部140を介して代理認証部170に送信する。代理認証部170は、取得した認証情報を、テナントID、ユーザID、およびIDPのURLに対応付けて、1つのエントリを生成し、そのエントリを認証情報管理テーブル112に格納する。
【0165】
[ステップS133]代理認証部170は、認証情報を送出する。例えば代理認証部170は、認証情報が既に保持されていた場合、要求されている認証情報を認証情報管理テーブル112から取得し、認証情報要求メッセージの送信元のIDPに取得した認証情報を送信する。また代理認証部170は、認証情報が既に保持されていなかった場合、ステップS132で取得した認証情報を、認証情報要求メッセージの送信元のIDPに送信する。
【0166】
次にステップS108の連携サービス登録処理について説明する。
図23は、連携サービス登録処理の手順の一例を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
【0167】
[ステップS141]GW100は、受信したサービス応答メッセージを、対応するサービス要求メッセージの送信元の端末装置に送信する。例えばGW100の受付部140は、メッセージ送受信部130を介して受信したサービス応答メッセージを、サービス要求メッセージに対する応答として、メッセージ送受信部120を介して送信する。
【0168】
[ステップS142]GW100は、連携サービステーブルへのエントリ候補を作成する。例えばGW100の連携テーブル作成部180は、代理認証部170が保持しているキャッシュデータから、テナントID、サービスURL、連携元IDPのURL、および連携先IDPのURLを取得し、取得した情報をまとめて、1つのエントリ候補とする。
【0169】
[ステップS143]連携テーブル作成部180は、連携サービステーブル111に、エントリ候補と同一内容のエントリがあるか否かを判断する。連携テーブル作成部180は、該当エントリがすでにある場合、処理をステップS145に進める。連携テーブル作成部180は、該当エントリがない場合、処理をステップS144に進める。
【0170】
[ステップS144]連携テーブル作成部180は、ステップS142で作成したエントリ候補を、連携サービステーブル111に登録する。
[ステップS145]代理認証部170は、保持していたキャッシュデータを削除する。
【0171】
以上のようにして、連携サービスの代理認証を行う場合の、管理サーバ200からの認証情報の取得頻度を減らし、処理の効率化を図ることができる。すなわち、既知の連携サービスに対するサービス要求メッセージを受信した場合には、GW100は、その連携サービスを提供する複数のサービス事業者それぞれに送信する複数の認証情報を一括で管理サーバ200から取得する。これにより、サービス事業者のIDPから認証情報を要求されるごとに、個別に管理サーバ200から認証情報を取得する場合に比べ、GW100と管理サーバ200との間の通信頻度を抑止できる。
【0172】
例えばGW100と管理サーバ200との間では、認証情報の安全性確保のために、問い合わせごとにSSL(Secure Socket Layer)セッションを張る場合がある。SSLセッションを張る処理は複雑であり、GW100と管理サーバ200に係る処理負荷も大きい。このようなSSLセッションの接続回数を低減させることで、GW100と管理サーバ200との処理が軽減できる。
【0173】
さらに、SSLセッションを接続するには、送受信される問い合わせメッセージや認証情報以外にも、GW100と管理サーバ200との間で、安全性を確保するための様々な情報が交換される。そのため、SSLセッションの接続回数を低減させることで、GW100と管理サーバ200との間の通信量も削減される。
【0174】
しかも、一度取得した認証情報を認証情報管理テーブル112に保存しておくことで、過去に連携サービスの提供を受けたユーザが同じ連携サービスのサービス要求メッセージを送信した場合、管理サーバ200から認証情報を取得せずにすむ。その結果、GW100と管理サーバ200との間の通信頻度がさらに抑止される。
【0175】
また、GW100は、連携サービスが提供された場合に、連携サービスの連携元と連携先との組み合わせを学習することができる。その結果、GW100の管理者が連携サービステーブル111にエントリを登録する手間が省け、GW100の管理負荷が軽減される。
【0176】
また、連携サービステーブル111でユーザ単位ではなくテナント単位でエントリを作ることにより、メモリ量、テーブル検索処理の削減ができる。例えば、企業のユーザ数が大量(例えば数万)の場合もある。このような場合に、ユーザ単位で連携サービステーブル111にエントリを登録すると、エントリ数がユーザ数に比例するため、連携サービステーブル111のデータ量も膨大となる。一方、テナント単位で連携サービステーブル111にエントリを登録すれば、データ量が削減できる。連携サービステーブル111のデータ量が少なければ、連携サービステーブル111からエントリを検索する際の検索処理負荷も軽減される。
【0177】
〔その他の実施の形態〕
第2の実施の形態では、認証情報がユーザIDとパスワードとの組の場合を示したが、他の認証情報を使用することもできる。例えばパスワードに代えて、ユーザの手のひらの静脈の情報、指紋の情報などの生態認証情報を使用することもできる。
【0178】
また第2の実施の形態では、各サービス事業者において、APサーバとは別にIDPが設けられているが、APサーバ内にIDPの機能を実装することもできる。この場合、例えば、図12に示すステップS30の認証要求のリダイレクト処理は行わずに、認証機能を有するAPサーバ54がステップS29のサービス要求に対して認証画面を応答する。GW100では、APサーバ54から認証画面が応答された場合に、APサーバ54のURLを連携元IDPのURLとして保持することで、APサーバ54を連携元IDPと認識できる。
【0179】
さらに上記第2の実施の形態では、サービスの連携処理が2つのサーバで実行される場合の例を示したが、3つ以上のサーバで連携処理が行われる場合も考えられる。この場合、図10に示す連携サービステーブル111に、連携先DIP_URLの欄を複数設けることで、3つ以上のサーバの連携処理によるサービスのサーバ間の関係を保持できる。そして、GW100から管理サーバ200へ認証情報を問い合わせる際には、問い合わせメッセージ内に、連携サービステーブル111においてテナントIDとサービスURLとの組に対応付けられた各IDPのURLが含められる。ただし、既に認証情報管理テーブル112に登録されている認証情報については、問い合わせメッセージに含めなくてもよい。
【0180】
なお、上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、代理サーバ1、管理サーバ2、GW100、および管理サーバ200が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0181】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0182】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0183】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
【0184】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0185】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
(付記1) サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムにおけるユーザ認証用の認証情報を管理する管理サーバとを備えるシステムにおいて、
前記代理サーバは、
サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部と、
サービス識別子を指定したサービス要求に応じ、該サービス識別子に対応する少なくとも2つの処理システム識別子を前記第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信する手段と、を備え、
前記管理サーバは、
処理システムを特定する処理システム識別子と、該処理システムにおけるユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部と、
前記取得要求を前記代理サーバから受信する手段と、
受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記第2の記憶部から取得して前記代理サーバに送信する手段と、を備え、
前記代理サーバは、さらに、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信する手段と、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する手段と、を備える、
システム。
【0186】
(付記2) 前記代理サーバは、さらに、
サービス識別子を指定したサービス要求を処理システムに送信する手段と、
サービス要求を送信した処理システムから、連携相手の処理システムの認証要求が応答された場合、該サービス要求に示されるサービス識別子と、該サービス要求を送信した処理システムおよび連携相手の処理システムそれぞれの処理システム識別子との対応関係を、前記第1の記憶部に格納する手段と、
を備えることを特徴とする付記1記載のシステム。
【0187】
(付記3) 前記代理サーバは、さらに、
前記管理サーバから受信した認証情報を、対応する処理システム識別子と関連付けて、前記第1の記憶部に格納する手段を有し、
前記取得要求を前記管理サーバに送信する手段は、前記第1の記憶部から読み出した少なくとも2つの処理システム識別子のうち、対応する認証情報が前記第1の記憶部に格納されていない処理システム識別子を含む取得要求を前記管理サーバに送信する、
ことを特徴とする付記1または2のいずれかに記載のシステム。
【0188】
(付記4) 前記第1の記憶部は、ユーザが属する組織を識別する組織識別子に対応付けて、該組織に属するユーザが利用可能なサービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶しており、
前記取得要求を前記管理サーバに送信する手段は、ユーザが属する組織を特定する組織識別子とサービス識別子とを指定したサービス要求に応じ、該組織識別子と該サービス識別子との組に対応する少なくとも2つの処理システム識別子を前記第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信する、
ことを特徴とする付記1乃至3のいずれかに記載のシステム。
【0189】
(付記5) 前記代理サーバの前記第1の記憶部と前記管理サーバの前記第2の記憶部とに記憶される処理システム識別子は、処理システム内でユーザ認証を行う認証装置の識別子であり、
前記代理サーバのユーザ認証の要求を送信する手段は、前記少なくとも2つの処理システムそれぞれの認証装置に、該ユーザ認証の要求を送信する、
ことを特徴とする付記1乃至4のいずれかに記載のシステム。
【0190】
(付記6) 前記代理サーバは、処理システムへのサービス要求を出力する端末装置が接続されたネットワークと、処理システムが接続されたネットワークとの間に配置されたゲートウェイであることを特徴とする付記1乃至5のいずれかに記載のシステム。
【0191】
(付記7) サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムに送信する認証情報を管理する管理サーバとによる認証情報管理方法において、
前記代理サーバが、
提供を受けるサービスを特定するサービス識別子を指定したサービス要求に応じ、サービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部から、該サービス要求で指定されたサービス識別子に対応する少なくとも2つの処理システム識別子を読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信し、
前記管理サーバが、
前記取得要求を前記代理サーバから受信し、
処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部から、受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を取得して前記代理サーバに送信し、
前記代理サーバが、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信し、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する、
認証情報管理方法。
【0192】
(付記8) コンピュータに、
提供を受けるサービスを特定するサービス識別子を指定したサービス要求に応じ、サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部から、該サービス要求で指定されたサービス識別子に対応する少なくとも2つの処理システム識別子を読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を管理サーバに送信し、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信し、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する、
処理を実行させるプログラム。
【0193】
(付記9) コンピュータに、
サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する少なくとも2つの処理システム識別子を含む取得要求を代理サーバから受信し、
処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部から、受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記第2の記憶部から取得して前記代理サーバに送信する、
処理を実行させるプログラム。
【符号の説明】
【0194】
1 代理サーバ
1a 第1の記憶部
1b 送信手段
1c 受信手段
1d 送信手段
2 管理サーバ
2a 第2の記憶部
2b 受信手段
2c 送信手段
3,4 処理システム
5 端末装置
【特許請求の範囲】
【請求項1】
サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムにおけるユーザ認証用の認証情報を管理する管理サーバとを備えるシステムにおいて、
前記代理サーバは、
サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部と、
サービス識別子を指定したサービス要求に応じ、該サービス識別子に対応する少なくとも2つの処理システム識別子を前記第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信する手段と、を備え、
前記管理サーバは、
処理システムを特定する処理システム識別子と、該処理システムにおけるユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部と、
前記取得要求を前記代理サーバから受信する手段と、
受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記第2の記憶部から取得して前記代理サーバに送信する手段と、を備え、
前記代理サーバは、さらに、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信する手段と、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する手段と、を備える、
システム。
【請求項2】
前記代理サーバは、さらに、
サービス識別子を指定したサービス要求を処理システムに送信する手段と、
サービス要求を送信した処理システムから、連携相手の処理システムの認証要求が応答された場合、該サービス要求に示されるサービス識別子と、該サービス要求を送信した処理システムおよび連携相手の処理システムそれぞれの処理システム識別子との対応関係を、前記第1の記憶部に格納する手段と、
を備えることを特徴とする請求項1記載のシステム。
【請求項3】
前記代理サーバは、さらに、
前記管理サーバから受信した認証情報を、対応する処理システム識別子と関連付けて、前記第1の記憶部に格納する手段を有し、
前記取得要求を前記管理サーバに送信する手段は、前記第1の記憶部から読み出した少なくとも2つの処理システム識別子のうち、対応する認証情報が前記第1の記憶部に格納されていない処理システム識別子を含む取得要求を前記管理サーバに送信する、
ことを特徴とする請求項1または2のいずれかに記載のシステム。
【請求項4】
前記第1の記憶部は、ユーザが属する組織を識別する組織識別子に対応付けて、該組織に属するユーザが利用可能なサービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶しており、
前記取得要求を前記管理サーバに送信する手段は、ユーザが属する組織を特定する組織識別子とサービス識別子とを指定したサービス要求に応じ、該組織識別子と該サービス識別子との組に対応する少なくとも2つの処理システム識別子を前記第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信する、
ことを特徴とする請求項1乃至3のいずれかに記載のシステム。
【請求項5】
サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムに送信する認証情報を管理する管理サーバとによる認証情報管理方法において、
前記代理サーバが、
提供を受けるサービスを特定するサービス識別子を指定したサービス要求に応じ、サービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部から、該サービス要求で指定されたサービス識別子に対応する少なくとも2つの処理システム識別子を読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信し、
前記管理サーバが、
前記取得要求を前記代理サーバから受信し、
処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部から、受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を取得して前記代理サーバに送信し、
前記代理サーバが、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信し、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する、
認証情報管理方法。
【請求項6】
コンピュータに、
提供を受けるサービスを特定するサービス識別子を指定したサービス要求に応じ、サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部から、該サービス要求で指定されたサービス識別子に対応する少なくとも2つの処理システム識別子を読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を管理サーバに送信し、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信し、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する、
処理を実行させるプログラム。
【請求項7】
コンピュータに、
サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する少なくとも2つの処理システム識別子を含む取得要求を代理サーバから受信し、
処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部から、受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記第2の記憶部から取得して前記代理サーバに送信する、
処理を実行させるプログラム。
【請求項1】
サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムにおけるユーザ認証用の認証情報を管理する管理サーバとを備えるシステムにおいて、
前記代理サーバは、
サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部と、
サービス識別子を指定したサービス要求に応じ、該サービス識別子に対応する少なくとも2つの処理システム識別子を前記第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信する手段と、を備え、
前記管理サーバは、
処理システムを特定する処理システム識別子と、該処理システムにおけるユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部と、
前記取得要求を前記代理サーバから受信する手段と、
受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記第2の記憶部から取得して前記代理サーバに送信する手段と、を備え、
前記代理サーバは、さらに、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信する手段と、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する手段と、を備える、
システム。
【請求項2】
前記代理サーバは、さらに、
サービス識別子を指定したサービス要求を処理システムに送信する手段と、
サービス要求を送信した処理システムから、連携相手の処理システムの認証要求が応答された場合、該サービス要求に示されるサービス識別子と、該サービス要求を送信した処理システムおよび連携相手の処理システムそれぞれの処理システム識別子との対応関係を、前記第1の記憶部に格納する手段と、
を備えることを特徴とする請求項1記載のシステム。
【請求項3】
前記代理サーバは、さらに、
前記管理サーバから受信した認証情報を、対応する処理システム識別子と関連付けて、前記第1の記憶部に格納する手段を有し、
前記取得要求を前記管理サーバに送信する手段は、前記第1の記憶部から読み出した少なくとも2つの処理システム識別子のうち、対応する認証情報が前記第1の記憶部に格納されていない処理システム識別子を含む取得要求を前記管理サーバに送信する、
ことを特徴とする請求項1または2のいずれかに記載のシステム。
【請求項4】
前記第1の記憶部は、ユーザが属する組織を識別する組織識別子に対応付けて、該組織に属するユーザが利用可能なサービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶しており、
前記取得要求を前記管理サーバに送信する手段は、ユーザが属する組織を特定する組織識別子とサービス識別子とを指定したサービス要求に応じ、該組織識別子と該サービス識別子との組に対応する少なくとも2つの処理システム識別子を前記第1の記憶部から読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信する、
ことを特徴とする請求項1乃至3のいずれかに記載のシステム。
【請求項5】
サービスを連携して処理する少なくとも2つの処理システムへのユーザ認証手続きを代理する代理サーバと、該少なくとも2つの処理システムに送信する認証情報を管理する管理サーバとによる認証情報管理方法において、
前記代理サーバが、
提供を受けるサービスを特定するサービス識別子を指定したサービス要求に応じ、サービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部から、該サービス要求で指定されたサービス識別子に対応する少なくとも2つの処理システム識別子を読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を前記管理サーバに送信し、
前記管理サーバが、
前記取得要求を前記代理サーバから受信し、
処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部から、受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を取得して前記代理サーバに送信し、
前記代理サーバが、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信し、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する、
認証情報管理方法。
【請求項6】
コンピュータに、
提供を受けるサービスを特定するサービス識別子を指定したサービス要求に応じ、サービスを特定するサービス識別子と、該サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する処理システム識別子との対応関係を記憶する第1の記憶部から、該サービス要求で指定されたサービス識別子に対応する少なくとも2つの処理システム識別子を読み出し、読み出した該少なくとも2つの処理システム識別子を含む取得要求を管理サーバに送信し、
前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記管理サーバから受信し、
受信した認証情報を含む、処理システムごとのユーザ認証の要求を、前記少なくとも2つの処理システムそれぞれに送信する、
処理を実行させるプログラム。
【請求項7】
コンピュータに、
サービスを連携して処理する少なくとも2つの処理システムそれぞれを特定する少なくとも2つの処理システム識別子を含む取得要求を代理サーバから受信し、
処理システムを特定する処理システム識別子と、該処理システムへのユーザ認証に用いる認証情報との対応関係を記憶する第2の記憶部から、受信した前記取得要求に含まれる前記少なくとも2つの処理システム識別子それぞれに対応する認証情報を前記第2の記憶部から取得して前記代理サーバに送信する、
処理を実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2012−194722(P2012−194722A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−57440(P2011−57440)
【出願日】平成23年3月16日(2011.3.16)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願日】平成23年3月16日(2011.3.16)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]