(57)【要約】【課題】クライアント装置からサーバ装置へのアクセス権限を委譲された中継装置がサーバ装置へのアクセスを中継するシステムにおいて、複数の中継装置のうちの利用者が所望する中継装置を介したサーバ装置へのアクセスを行う。【解決手段】中継装置３０ＡのＣＰＵは、クライアント装置２０Ａからアクセス要求を受信すると、受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬであるかを判定する。ＣＰＵは、ＵＲＬが一意に割り当てられたＵＲＬでない場合に、アクセス要求に含まれるCookieヘッダーの値を読み出し、読み出した値に対応するＵＲＬへのリダイレクトを、クライアント装置２０Ａに指示する。【選択図】図４
2015219687.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置から自装置へのログイン要求を受信した場合に、ヘッダーの予め定められた領域に自装置を識別する値を含む第１レスポンスを、該ログイン要求の応答として該クライアント装置に送信する第１送信手段と、
アクセス権限の委譲先として１または複数のＵＲＬが予め登録されたサーバ装置であってクライアント装置によってアクセス権限の委譲が認可された場合に該予め登録されたＵＲＬへのリダイレクトを該クライアント装置に指示するサーバ装置へのアクセス要求を、クライアント装置から受信する受信手段と、
前記受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬでない場合に、該アクセス要求に含まれるヘッダーの予め定められた領域に含まれる値を読み出し、読み出した値に対応するＵＲＬへのリダイレクトを指示する第２レスポンスを、前記受信されたアクセス要求の送信元であるクライアント装置に送信する第２送信手段と
を有する中継装置。
【請求項２】
前記アクセス要求は、権限情報を含み、
前記受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬである場合に、該受信されたアクセス要求に含まれる権限情報を用いて前記サーバ装置へのアクセスを中継する中継手段
を更に有する請求項１に記載の中継装置。
【請求項３】
前記第１レスポンスは、前記中継装置の識別情報をクッキー情報としてクライアント装置に保存させるための第１ヘッダーを含み、
前記アクセス要求は、当該アクセス要求の送信元であるクライアント装置に保存されているクッキー情報を含む第２ヘッダーを含む
請求項１または２に記載の中継装置。
【請求項４】
前記アクセス要求は、第１権限情報および第２権限情報を含み、
前記第１権限情報は、設定された第１有効期限において前記サーバ装置へアクセスする権限を示す情報であり、
前記第２権限情報は、前記第１有効期限よりも短い第２有効期限において前記サーバ装置へアクセスする権限を示す情報であり、
記憶されているデータが他の中継装置のリソースにコピーされる第１記憶手段と、
データを記憶する第２記憶手段と、
前記受信されたアクセス要求に含まれる第１権限情報を前記第１記憶手段に記憶し、該アクセス要求に含まれる第２権限情報を前記第２記憶手段に記憶する記憶制御手段と
を更に有する
請求項１に記載の中継装置。
【請求項５】
第１中継装置と、
第２中継装置と
を有し、
前記第１中継装置は、
クライアント装置から自装置へのログイン要求を受信した場合に、ヘッダーの予め定められた領域に自装置を識別する値を含む第１レスポンスを、該ログイン要求の応答として該クライアント装置に送信する第１送信手段
を備え、
前記第２中継装置は、
アクセス権限の委譲先として１または複数のＵＲＬが予め登録されたサーバ装置であってクライアント装置によってアクセス権限の委譲が認可された場合に該予め登録されたＵＲＬへのリダイレクトを該クライアント装置に指示するサーバ装置へのアクセス要求を、クライアント装置から受信する受信手段と、
前記受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬでない場合に、該アクセス要求に含まれるヘッダーの予め定められた領域に含まれる値を読み出し、読み出した値に対応するＵＲＬへのリダイレクトを指示する第２レスポンスを、前記受信されたアクセス要求の送信元であるクライアント装置に送信する第２送信手段と
を備える
システム。
【請求項６】
コンピュータに、
クライアント装置から自装置へのログイン要求を受信した場合に、ヘッダーの予め定められた領域に自装置を識別する値を含む第１レスポンスを、該ログイン要求の応答として該クライアント装置に送信するステップと、
アクセス権限の委譲先として１または複数のＵＲＬが予め登録されたサーバ装置であってクライアント装置によってアクセス権限の委譲が認可された場合に該予め登録されたＵＲＬへのリダイレクトを該クライアント装置に指示するサーバ装置へのアクセス要求を、クライアント装置から受信するステップと、
前記受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬでない場合に、該アクセス要求に含まれるヘッダーの予め定められた領域に含まれる値を読み出し、読み出した値に対応するＵＲＬへのリダイレクトを指示する第２レスポンスを、前記受信されたアクセス要求の送信元であるクライアント装置に送信するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置、システム及びプログラムに関する。
【背景技術】
【０００２】
ネットワーク上のサーバ装置を利用するときに、中継装置を介してサーバ装置にアクセスする技術が知られている。例えば、特許文献１および２には、多機能装置が中継装置と連携して、サービス提供装置にデータをアップロードしたり、サービス提供装置からデータをダウンロードしたりする技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１１３７０１号公報
【特許文献２】特開２０１２−１１８９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、クライアント装置からサーバ装置へのアクセス権限を委譲された中継装置がサーバ装置へのアクセスを中継するシステムにおいて、複数の中継装置のうちの利用者が所望する中継装置を介したサーバ装置へのアクセスを行うことを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に係る発明は、クライアント装置から自装置へのログイン要求を受信した場合に、ヘッダーの予め定められた領域に自装置を識別する値を含む第１レスポンスを、該ログイン要求の応答として該クライアント装置に送信する第１送信手段と、アクセス権限の委譲先として１または複数のＵＲＬが予め登録されたサーバ装置であってクライアント装置によってアクセス権限の委譲が認可された場合に該予め登録されたＵＲＬへのリダイレクトを該クライアント装置に指示するサーバ装置へのアクセス要求を、クライアント装置から受信する受信手段と、前記受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬでない場合に、該アクセス要求に含まれるヘッダーの予め定められた領域に含まれる値を読み出し、読み出した値に対応するＵＲＬへのリダイレクトを指示する第２レスポンスを、前記受信されたアクセス要求の送信元であるクライアント装置に送信する第２送信手段とを有する中継装置を提供する。
【０００６】
請求項２に係る発明は、請求項１に記載の構成において、前記アクセス要求は、権限情報を含み、前記受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬである場合に、該受信されたアクセス要求に含まれるアクセストークンを用いて前記サーバ装置へのアクセスを中継する中継手段を更に有することを特徴とする。
【０００７】
請求項３に係る発明は、請求項１または２に記載の構成において、前記第１レスポンスは、前記中継装置の識別情報をクッキー情報としてクライアント装置に保存させるための第１ヘッダーを含み、前記アクセス要求は、当該アクセス要求の送信元であるクライアント装置に保存されているクッキー情報を含む第２ヘッダーを含むことを特徴とする。
【０００８】
請求項４に係る発明は、請求項１に記載の構成において、前記アクセス要求は、第１権限情報および第２権限情報を含み、前記第１権限情報は、設定された第１有効期限において前記サーバ装置へアクセスする権限を示す情報であり、前記第２権限情報は、前記第１有効期限よりも短い第２有効期限において前記サーバ装置へアクセスする権限を示す情報であり、記憶されているデータが他の中継装置のリソースにコピーされる第１記憶手段と、データを記憶する第２記憶手段と、前記受信されたアクセス要求に含まれる第１権限情報を前記第１記憶手段に記憶し、該アクセス要求に含まれる第２権限情報を前記第２記憶手段に記憶する記憶制御手段とを更に有することを特徴とする。
【０００９】
請求項５に係る発明は、第１中継装置と、第２中継装置とを有し、前記第１中継装置は、クライアント装置から自装置へのログイン要求を受信した場合に、ヘッダーの予め定められた領域に自装置を識別する値を含む第１レスポンスを、該ログイン要求の応答として該クライアント装置に送信する第１送信手段を備え、前記第２中継装置は、アクセス権限の委譲先として１または複数のＵＲＬが予め登録されたサーバ装置であってクライアント装置によってアクセス権限の委譲が認可された場合に該予め登録されたＵＲＬへのリダイレクトを該クライアント装置に指示するサーバ装置へのアクセス要求を、クライアント装置から受信する受信手段と、前記受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬでない場合に、該アクセス要求に含まれるヘッダーの予め定められた領域に含まれる値を読み出し、読み出した値に対応するＵＲＬへのリダイレクトを指示する第２レスポンスを、前記受信されたアクセス要求の送信元であるクライアント装置に送信する第２送信手段とを備えるシステムを提供する。
【００１０】
請求項６に係る発明は、コンピュータに、クライアント装置から自装置へのログイン要求を受信した場合に、ヘッダーの予め定められた領域に自装置を識別する値を含む第１レスポンスを、該ログイン要求の応答として該クライアント装置に送信するステップと、アクセス権限の委譲先として１または複数のＵＲＬが予め登録されたサーバ装置であってクライアント装置によってアクセス権限の委譲が認可された場合に該予め登録されたＵＲＬへのリダイレクトを該クライアント装置に指示するサーバ装置へのアクセス要求を、クライアント装置から受信するステップと、前記受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬでない場合に、該アクセス要求に含まれるヘッダーの予め定められた領域に含まれる値を読み出し、読み出した値に対応するＵＲＬへのリダイレクトを指示する第２レスポンスを、前記受信されたアクセス要求の送信元であるクライアント装置に送信するステップとを実行させるためのプログラムを提供する。
【発明の効果】
【００１１】
請求項１、２、３、５および６に係る発明によれば、クライアント装置からサーバ装置へのアクセス権限を委譲された中継装置がサーバ装置へのアクセスを中継するシステムにおいて、複数の中継装置のうちの利用者が所望する中継装置を介したサーバ装置へのアクセスを行うことができる。
請求項４に係る発明によれば、第２権限情報を第２記憶手段に記憶しない場合に比べて、第２権限情報の書込や読出に係る処理速度が速くなる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係るシステム１の全体構成を示す図。
【図２】システム１の機能構成を示す図。
【図３】中継装置３０のハードウェア構成を示す図。
【図４】システム１の動作を例示するシーケンス図。
【図５】システム１の動作を例示するシーケンス図。
【発明を実施するための形態】
【００１３】
１．構成
図１は、本実施形態に係るシステム１の全体構成を示す図である。システム１は、サービス提供装置１０Ａ、１０Ｂおよび１０Ｃと、クライアント装置２０Ａ、２０Ｂ、２０Ｃおよび２０Ｄと、中継装置３０Ａ、３０Ｂおよび３０Ｃとを備える。なお、以下の説明では、サービス提供装置１０Ａ、１０Ｂおよび１０Ｃを区別する必要がない場合には、これらを総称して「サービス提供装置１０」という。クライアント装置２０Ａ、２０Ｂ、２０Ｃおよび２０Ｄを区別する必要がない場合には、これらを総称して「クライアント装置２０」という。中継装置３０Ａ、３０Ｂおよび３０Ｃを区別する必要がない場合には、これらを総称して「中継装置３０」という。サービス提供装置１０および中継装置３０は、インターネット等の通信回線２を介して接続される。クライアント装置２０および中継装置３０は、インターネットやＬＡＮ（Local Area Network）等の通信回線３を介して通信回線２に接続される。なお、クライアント装置２０は、通信回線３および中継装置３０を介することなく通信回線２に接続されてもよい。
【００１４】
サービス提供装置１０は、データを保存するサービス等の各種のサービスを提供する。このサービスは、いわゆるクラウドサービスであってもよい。クライアント装置２０は、例えば画像処理装置であり、ユーザがサービス提供装置１０から提供されるサービスを利用するときに用いられる。クライアント装置２０は、スキャナ機能の他、コピー機能、プリント機能、ファクシミリ機能等の複数の機能を有していてもよい。中継装置３０は、クライアント装置２０とサービス提供装置１０との間のデータのやり取りを中継する機能を有する。
【００１５】
この例で、クライアント装置２０が設置される場所は、複数の地域４Ａ、４Ｂおよび４Ｃに区分される。中継装置３０Ａは、地域４Ａに設置されたクライアント装置２０Ａおよび２０Ｂと、サービス提供装置１０とのデータのやり取りを中継する。中継装置３０Ｂは、地域４Ｂに設置されたクライアント装置２０Ｃと、サービス提供装置１０とのデータのやり取りを中継する。中継装置３０Ｃは、地域４Ｃに設置されたクライアント装置２０Ｄとサービス提供装置１０とのデータのやり取りを中継する。なお、以下の説明では、地域４Ａ、４Ｂおよび４Ｃを区別する必要がない場合には、これらを総称して「地域４」という。
【００１６】
システム１のユーザは地域４のいずれかに属している。以下の説明では、説明の便宜上、あるユーザが属している地域４を、そのユーザの「ホーム」と呼び、そのユーザが属していない地域を「アウェイ」と呼ぶ。この例で、ユーザＵ１とユーザＵ２のホームは地域４Ａであり、ユーザＵ１とユーザＵ２にとって地域４Ｂと地域４Ｃはアウェイである。ユーザは通常、自身が属する地域４に設置されたクライアント装置２０を用いて各種作業を行う。各ユーザが属する地域４の中継装置３０には、そのユーザのアカウント情報など、そのユーザに関する情報（ユーザ情報）が登録されている。中継装置３０は、自装置に登録されているユーザ情報に基づいてユーザ認証などの処理を行う。以下では、ユーザＵ１、Ｕ２、Ｕ３およびＵ４を区別する必要がない場合には、これらを総称して「ユーザＵ」という。
【００１７】
図２は、システム１の機能構成を示す図である。システム１は、サービス提供装置１０と、クライアント装置２０と、中継装置３０−１と、中継装置３０−２とを備える。中継装置３０−１は第１中継装置の一例であり、中継装置３０−２は第２中継装置の一例である。中継装置３０−１は、第１送信手段３１と、受信手段３２と、第２送信手段３３と、中継手段３４と、第１記憶手段３５と、第２記憶手段３６と、記憶制御手段３７とを有する。
【００１８】
第１送信手段３１は、クライアント装置２０から自装置へのログイン要求を受信した場合に、ヘッダーの予め定められた領域に自装置を識別する値を含む第１レスポンスを、該ログイン要求の応答としてクライアント装置２０に送信する。
【００１９】
受信手段３２は、サービス提供装置１０へのアクセス要求をクライアント装置２０から受信する。この例で、サービス提供装置１０には、アクセス権限の委譲先として１または複数のＵＲＬが予め登録されている。サービス提供装置１０は、クライアント装置２０によってアクセス権限の委譲が認可された場合に予め登録されたＵＲＬへのリダイレクトをクライアント装置２０に指示する。
【００２０】
第２送信手段３３は、受信手段３２によって受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬでない場合に、該アクセス要求に含まれるヘッダーの予め定められた領域に含まれる値を読み出す。また、第２送信手段３３は、読み出した値に対応するＵＲＬへのリダイレクトを指示する第２レスポンスを、受信されたアクセス要求の送信元であるクライアント装置２０へ送信する。
【００２１】
中継手段３４は、受信手段３２によって受信されたアクセス要求に含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬである場合に、受信されたアクセス要求に含まれる権限情報を用いてサービス提供装置１０へのアクセスを中継する。
【００２２】
第１記憶手段３５は、データを記憶する記憶手段であって、記憶されているデータが他の中継装置３０のリソースにコピーされる記憶手段である。第２記憶手段３６は、データを記憶する記憶手段である。記憶制御手段３７は、受信手段３２によって受信されたアクセス要求に含まれる第１権限情報を第１記憶手段３５に記憶する一方、受信されたアクセス要求に含まれる第２権限情報を第２記憶手段３６に記憶する。
【００２３】
中継装置３０−２は、第１送信手段４１と、受信手段４２と、第２送信手段４３と、中継手段４４と、第１記憶手段４５と、第２記憶手段４６と、記憶制御手段４７とを有する。第１送信手段４１、受信手段４２、第２送信手段４３、中継手段４４、第１記憶手段４５、第２記憶手段４６および記憶制御手段４７はそれぞれ、中継装置３０−１の第１送信手段３１、受信手段３２、第２送信手段３３、中継手段３４、第１記憶手段３５、第２記憶手段３６および記憶制御手段３７と同様の構成を有する。
【００２４】
図３は、中継装置３０のハードウェア構成を例示する図である。中継装置３０は、ＣＰＵ（Central Processing Unit）３０１と、ＲＯＭ（Read Only Memory）３０２と、ＲＡＭ（Random Access Memory）３０３と、ストレージ３０４と、通信ＩＦ３０５とを有するコンピュータ装置である。ＣＰＵ３０１は、中継装置３０の各部を制御する制御装置（プロセッサ）である。ＲＯＭ３０２は、プログラムおよびデータを記憶する不揮発性の記憶装置である。ＲＡＭ３０３は、ＣＰＵ３０１がプログラムを実行する際の作業領域として機能する揮発性の主記憶装置である。ストレージ３０４は、プログラムおよびデータを記憶する不揮発性の補助記憶装置である。通信ＩＦ３０５は、通信回線２を介した通信を行うためのインターフェースであり、この例では特に、サービス提供装置１０およびクライアント装置２０と通信を行うためのインターフェースである。
【００２５】
ストレージ３０４は、グローバルデータベース３０８ａと、ローカルデータベース３０８ｂとを記憶する。グローバルデータベース３０８ａは複数の中継装置３０で共用されるデータが格納されるデータベースであり、ローカルデータベース３０８ｂは自装置で参照されるデータが格納されるデータベースである。グローバルデータベース３０８ａに記憶されたデータは、予め定められたタイミング（例えば、定期的なタイミング、データベースの更新がなされたタイミング、など）で他の中継装置３０にコピーされる。一方、ローカルデータベース３０８ｂに記憶されたデータは他の中継装置３０にコピーされない。グローバルデータベース３０８ａは第１記憶手段３５および第１記憶手段４５の一例である。ローカルデータベース３０８ｂは第２記憶手段３６および第２記憶手段４６の一例である。以下の説明では、グローバルデータベース３０８ａとローカルデータベース３０８ｂを各々区別する必要がない場合には、これらを「データベース３０８」と称する。
【００２６】
この例で、ストレージ３０４（またはＲＯＭ３０２）に記憶されている中継プログラムをＣＰＵ３０１が実行することにより、図２に示される機能が実装される。中継プログラムを実行しているＣＰＵ３０１、またはＣＰＵ３０１および通信ＩＦ３０５は、第１送信手段３１、受信手段３２、第２送信手段３３、中継手段３４、第１送信手段４１、受信手段４２、第２送信手段４３および中継手段４４の一例である。
【００２７】
なお、サービス提供装置１０およびクライアント装置２０のハードウェア構成についての詳細な説明は省く。サービス提供装置１０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ストレージおよび通信インターフェースを有するコンピュータ装置である。クライアント装置２０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ストレージ、操作部、表示部、画像読取部および画像形成部を有する画像形成装置である。
【００２８】
２．動作
２−１．動作例１
図４は、システム１の動作を例示するシーケンス図である。この例では、ユーザＵ１がクライアント装置２０Ａを用いて、サービス提供装置１０Ａが提供するサービスを利用する動作が示されている。この例では、システム１は予め定められたプロトコル、例えばＯＡｕｔｈ２プロトコルを用いたアクセス権限の委譲を行う。すなわち、システム１では、ＯＡｕｔｈ２プロトコルが用いられることにより、クライアント装置２０Ａのサービス提供装置１０Ａへのアクセス権限が中継装置３０Ａに委譲され、アクセス権限が委譲された中継装置３０Ａがクライアント装置２０Ａからサービス提供装置１０Ａへのアクセスを中継する。図４に示す例では、装置間のデータやり取りはＨＴＴＰプロトコルが用いられる。
【００２９】
この例で、中継装置３０ＡのＵＲＬが「us.example.com」であり、中継装置３０ＢのＵＲＬが「eu.example.com」であり、中継装置３０ＣのＵＲＬが「jp.example.com」である。「us.example.com」は中継装置３０Ａのリソースに一意に割り当てられたＵＲＬであり、「eu.example.com」は中継装置３０Ｂのリソースに一意に割り当てられたＵＲＬである。「jp.example.com」は中継装置３０Ｃのリソースに一意に割り当てられたＵＲＬである。一方、中継装置３０Ａ、中継装置３０Ｂおよび中継装置３０Ｃに共通するＵＲＬ（すなわち中継装置３０Ａ、中継装置３０Ｂおよび中継装置３０Ｃを指し示す一のＵＲＬ）として、「www.example.com」が用いられる。以下では、説明の便宜上、各中継装置３０に一意に割り当てられたＵＲＬを「リージョンＵＲＬ」と呼び、複数の中継装置３０に共通するＵＲＬを「グローバルＵＲＬ」とよぶ。
【００３０】
まず、ユーザＵ１は、クライアント装置２０Ａを用いて中継装置３０Ａにログインする。具体的には、ユーザＵ１は、クライアント装置２０Ａの操作部を用いた操作により、自身のアカウント情報（ユーザＩＤとパスワード、など）を入力する。例えば、ユーザＵ１は、ユーザＩＤとして「user01」を入力し、パスワードとして「password01」を入力する。
【００３１】
ステップＳ１０１において、クライアント装置２０Ａは、ユーザＵ１の操作により入力されたアカウント情報を含むログイン要求（ＨＴＴＰリクエスト）を中継装置３０Ａに送信する。ステップＳ１０２において、中継装置３０ＡのＣＰＵ３０１は、受信されたログイン要求に含まれるアカウント情報によりユーザ認証を行う。グローバルデータベース３０８ａには、ユーザのアカウント情報などのユーザに関するデータ（以下「ユーザデータ」という）が記憶されており、ＣＰＵ３０１はグローバルデータベース３０８ａを参照してユーザ認証を行う。ステップＳ１０１において受信されたリクエストに含まれるアカウント情報がグローバルデータベース３０８ａに登録されている場合には、ユーザ認証は成功する。一方、受信されたログイン要求に含まれるアカウント情報がグローバルデータベース３０８ａに登録されていない場合には、ユーザ認証は失敗する。
【００３２】
ステップＳ１０２においてユーザ認証に成功した場合は、ＣＰＵ３０１は、ステップＳ１０３において、ステップＳ１０１で受信したログイン要求の応答としてログインが成功した旨のＨＴＴＰレスポンス（第１レスポンスの一例）をクライアント装置２０Ａへ送信する。このとき、ＣＰＵ３０１は、ＨＴＴＰレスポンスの予め定められた領域に自装置を識別する値を含むレスポンスを送信する。この例で、ＨＴＴＰレスポンスは、中継装置３０Ａの識別情報をクッキー情報としてクライアント装置２０Ａに保存させるためのSet-Cookieヘッダー（第１ヘッダーの一例）を含む。具体的には、この例で、ＣＰＵ３０１は、自装置が存在するリージョンを識別する値である「ＵＳ」を含むSet-Cookieヘッダーを含むＨＴＴＰレスポンスを生成する。
【００３３】
クライアント装置２０Ａは中継装置３０Ａから受信されるレスポンスに基づいて表示部に情報を表示する。ユーザＵ１は、クライアント装置２０Ａは表示部に表示される情報に基づいて、サービス提供装置１０Ａへアクセスするための操作を行う。ステップＳ１０４において、クライアント装置２０Ａは、ユーザＵ１によって操作された内容に基づいて、サービス提供装置１０Ａへのアクセス要求（ＨＴＴＰリクエスト）を中継装置３０Ａに送信する。このＨＴＴＰリクエストは、クライアント装置２０Ａに保存されているクッキー情報を含むCookieヘッダー（第２ヘッダーの一例）を含む。この例で、このＨＴＴＰリクエストには、ステップＳ１０３で受信されたレスポンスのSet-Cookieヘッダーに設定されていた値、すなわちリージョン情報を示す値「ＵＳ」を含むCookieヘッダーが含まれる。また、cookieヘッダーには、ドメイン属性として「.example.com」が設定される。
【００３４】
ステップＳ１０５において、中継装置３０ＡのＣＰＵ１０１は、クライアント装置２０Ａからアクセス要求を受信すると、受信されたアクセス要求に対応するユーザのリフレッシュトークン（第１権限情報の一例）およびアクセストークン（第２権限情報の一例）がデータベース３０８に記憶されているかを確認する。リフレッシュトークンは、設定された第１有効期限においてサービス提供装置１０Ａへアクセスする権限を示す情報である。アクセストークンは、第１有効期限よりも短い第２有効期限においてサービス提供装置１０Ａへアクセスする権限を示す情報である。この例で、アクセストークンおよびリフレッシュトークンは、サービス提供装置１０Ａにより発行される、アクセス権限が記述されたデータ構造である。サービス提供装置１０Ａではアクセストークンが照合されることによりアクセスの可否が決定される。この例で、アクセストークンとリフレッシュトークンには有効期限が予め設定されており、有効期限が過ぎたアクセストークンやリフレッシュトークンは無効となる。アクセストークンの有効期限が切れた場合は、サービス提供装置１０Ａでリフレッシュトークンが照合されることによりアクセストークンが再発行される。この例で、アクセストークンはローカルデータベース３０８ｂに格納され、リフレッシュトークンはグローバルデータベース３０８ａに格納される。以下の説明では、アクセストークンとリフレッシュトークンとを各々区別する必要がない場合には、これらを単に「トークン」と称する。
【００３５】
図４は、ユーザＵ１のトークンが中継装置３０Ａに格納されていない例を示している。ステップＳ１０５において、自装置のデータベース３０８にトークンが格納されていないと判断された場合、ＣＰＵ３０１は、ステップＳ１０６において、アクセス権限の委譲の認可を要求する旨のレスポンスを、アクセス要求の送信元であるクライアント装置２０Ａに送信する。このレスポンスのCookieヘッダーのリージョン情報を示す値には「ＵＳ」が含まれる。また、このレスポンスには、認可情報を入力するための画面のＵＲＬ（サービス提供装置１０のリソースのＵＲＬ。以下「認可用ＵＲＬ」という）と、認可が認められた場合のリダイレクト先のＵＲＬ（以下「リダイレクトＵＲＬ」という）とが含まれる。
【００３６】
リダイレクトＵＲＬは、ＯＡｕｔｈ２プロトコルで定められた規定に従って上記レスポンスに含まれる。このリダイレクトＵＲＬはサービス提供装置１０Ａに予め登録されているＵＲＬである。この例で、サービス提供装置１０Ａには、リダイレクトＵＲＬとして「www.example.com」が登録されている。そのため、中継装置３０ＡがステップＳ１０６において送信するレスポンスにも、リダイレクトＵＲＬとして「www.example.com」が含まれる。
【００３７】
ＯＡｕｔｈ２を用いたアクセス権限の委譲システムにおいては、ユーザによる認可がなされた場合のリダイレクト先としてアクセス権限の委譲先となるＵＲＬ（リダイレクトＵＲＬ）をサーバ装置に予め登録しておく必要がある。登録可能なリダイレクトＵＲＬの数は、クラウドサービスの種類などによって異なるが、複数のリダイレクトＵＲＬを登録できるクラウドサービスもある一方、ひとつのリダイレクトＵＲＬしか登録できないクラウドサービスも存在する。本実施形態に係るシステム１は、複数の中継装置３０Ａ、３０Ｂおよび３０Ｃを備えているが、ひとつのリダイレクトＵＲＬしか登録できないクラウドサービスの場合、これら複数の中継装置３０のリージョンＵＲＬをクラウドサービス（サービス提供装置１０）に登録することができない。そこで、この例では、リダイレクトＵＲＬとして、リージョンＵＲＬではなくグローバルＵＲＬがサービス提供装置１０に登録されている。
【００３８】
ステップＳ１０７において、クライアント装置２０ＡのＣＰＵは、ステップＳ１０６において受信されたレスポンスに含まれる認可用ＵＲＬへアクセスし、認可画面の取得要求を行う。ステップＳ１０８において、サービス提供装置１０ＡのＣＰＵは、認可画面を表すデータを含むレスポンスをクライアント装置２０Ａへ送信する。クライアント装置２０ＡのＣＰＵは、受信されたレスポンスに含まれるデータに基づいて認可情報を入力するための認可画面を表示部に表示する。
【００３９】
ユーザＵ１は、クライアント装置２０Ａの表示部に表示される画面を確認し、操作部を用いて、アクセス権限の委譲を認可するための認可情報を入力する。ステップＳ１０９において、クライアント装置２０ＡのＣＰＵは、入力された認可情報をサービス提供装置１０Ａに送信する。ステップＳ１１０において、サービス提供装置１０ＡのＣＰＵは、クライアント装置２０Ａから受信された認可情報に基づいて認可を認めるか否かの判定を行う。ステップＳ１１１において、認可を認める場合には、サービス提供装置１０ＡのＣＰＵは、ＯＫを示すレスポンスをクライアント装置２０Ａに送信する。このレスポンスには、ユーザＵ１のアクセストークンおよびリフレッシュトークンが含まれる。また、このレスポンスには、リダイレクト先を示すＵＲＬとして、サービス提供装置１０ＡにリダイレクトＵＲＬとして予め登録されているＵＲＬ、すなわち「 HYPERLINK "http://www.csb.com" www.example.com」が含まれる。
【００４０】
ステップＳ１１２において、クライアント装置２０ＡのＣＰＵは、ステップＳ１１１において受信されたレスポンスに含まれるリダイレクトＵＲＬへのリダイレクト、すなわち「www.example.com」へのリダイレクト処理を行う。ステップＳ１１２において送信されるＨＴＴＰリクエスト（アクセス要求）は、当該アクセス要求の送信元であるクライアント装置２０Ａに保存されているクッキー情報を含むCookieヘッダー（第２ヘッダーの一例）を含む。この例で、このＨＴＴＰリクエストのCookieヘッダーのリージョンを示す値には「ＵＳ」が含まれている。また、このＨＴＴＰリクエストにはステップＳ１１１で受信されたアクセストークンとリフレッシュトークンが含まれる。
【００４１】
ステップＳ１１２において、クライアント装置２０ＡのＣＰＵは、リダイレクトするためのＨＴＴＰリクエストを送信する際に、リダイレクト先である「www.example.com」に対応するＩＰアドレスをＤＮＳ（Domain Name System）サーバ（図示略）に問い合わせる。この例で、システム１で用いられるＤＮＳサーバは、アクセス先のＵＲＬがグローバルＵＲＬである場合、すなわち複数の中継装置３０に共通して用いられるＵＲＬである場合、通信ネットワークの負荷状況などに基づいて上記複数の中継装置３０からいずれかの中継装置３０を選択する。ＤＮＳサーバは、選択した中継装置３０のＩＰアドレスをクライアント装置２０Ａに返信する。このように、アクセス先のグローバルＵＲＬが同一のＵＲＬである場合であっても、ＤＮＳサーバによって選択される中継装置３０はネットワークの負荷状況などに応じてその時々で異なってくる。例えば、クライアント装置２０Ａが「www.example.com」にリダイレクトする場合、ＤＮＳサーバから返信されるＩＰアドレスは、或るタイミングにおいては中継装置３０ＡのＩＰアドレスであり、また、別のタイミングでは中継装置３０ＢのＩＰアドレスである場合がある。
【００４２】
このようにグローバルＵＲＬをリダイレクトＵＲＬとした場合のアクセス先となる中継装置３０は、リダイレクトのタイミングによって異なり、クライアント装置２０Ａがアクセス先となる中継装置３０を選択することはできない。以下の説明では、説明の便宜上、グローバルＵＲＬをリダイレクトＵＲＬとした場合のアクセス先となる中継装置を「中継装置３０Ｚ」と称して説明する。
【００４３】
ステップＳ１１２において送信されたＨＴＴＰリクエストは、中継装置３０Ｚで受信される。なお、上述したように、中継装置３０Ｚは実在しない中継装置であり、実際には、この例では、中継装置３０Ａ、中継装置３０Ｂ、中継装置３０Ｃのいずれかである。
【００４４】
中継装置３０ＺのＣＰＵ３０１は、受信されたアクセス要求に含まれるアクセス先を示すＵＲＬがグローバルＵＲＬである場合（すなわち自装置のリソースに一意に割り当てられたＵＲＬでない場合）に、ステップＳ１１３ないしステップＳ１１５の処理を行う。ステップＳ１１３において、中継装置３０ＺのＣＰＵ３０１は、受信されたＨＴＴＰリクエスト（アクセス要求）に含まれるCookieヘッダーのリージョンを示す情報の値を読み出す。ステップＳ１１４において、ＣＰＵ３０１は、読み出した値に対応するローカルＵＲＬをリダイレクトＵＲＬに設定したＨＴＴＰレスポンスを生成する。この例で、受信されたＨＴＴＰリクエストのCookieヘッダーのリージョンを示す情報には「ＵＳ」が設定されているため、ＣＰＵ３０１は、リダイレクトＵＲＬとして「us.example.com」を設定する。なお、Cookieヘッダーのリージョンを示す情報に「ＥＵ」が設定されていた場合には、ＣＰＵ３０１は、リダイレクトＵＲＬとして「eu.example.com」を設定する。ステップＳ１１５において、ＣＰＵ３０１は、ステップＳ１１４で生成したＨＴＴＰレスポンス（第２レスポンスの一例）をクライアント装置２０Ａへ送信する。
【００４５】
ステップＳ１１６において、クライアント装置２０ＡのＣＰＵは、ステップＳ１１５において受信されたレスポンスに含まれるリダイレクトＵＲＬへのリダイレクト、すなわち「us.example.com」へのリダイレクト処理を行う。このリダイレクトＵＲＬはローカルＵＲＬであるため、リダイレクト先となる中継装置３０は一意に決定される。クライアント装置２０ＡのＣＰＵは、このリダイレクトＵＲＬに対応するＩＰアドレスをＤＮＳサーバに問い合わせ、ＤＮＳサーバから中継装置３０ＡのＩＰアドレスを受け取る。クライアント装置２０ＡのＣＰＵは、中継装置３０Ａへリダイレクト処理を行う。ステップＳ１１６で送信されるＨＴＴＰリクエストには、ステップＳ１１１においてサービス提供装置１０Ａから受信したアクセストークンとリフレッシュトークンとが含まれる。このリダイレクト処理が行われる際に、Cookieヘッダーのドメイン属性として「.example.com」が設定されているため、同じドメインである「www.example.com」からリダイレクトＵＲＬ「us.example.com」へHTTPリクエストのリダイレクトが可能となる。
【００４６】
中継装置３０ＡのＣＰＵ３０１は、クライアント装置２０ＡからＨＴＴＰリクエスト（アクセス要求）を受信する。ＣＰＵ３０１は、受信されたリクエストに含まれるアクセス先を示すＵＲＬが自装置のリソースに一意に割り当てられたＵＲＬである場合に、受信されたアクセス要求に含まれるアクセストークンを用いてサービス提供装置１０Ａへのアクセスを中継する。この例で、ステップＳ１１６において受信されたレスポンスに含まれるリダイレクトＵＲＬ（「us.example.com」）は、中継装置３０Ａに一意に割り当てられたＵＲＬであるため、中継装置３０ＡのＣＰＵ３０１は、サービス提供装置１０Ａへのアクセスを中継する。まず、ステップＳ１１７において、ＣＰＵ３０１は、受信されたＨＴＴＰリクエストに含まれるアクセストークンをローカルデータベース３０９に格納する。また、ステップＳ１１８において、ＣＰＵ３０１は、受信されたＨＴＴＰリクエストに含まれるリフレッシュトークンをグローバルデータベース３０８に格納する。ステップＳ１１９において、ＣＰＵ３０１は、アクセストークンを含むアクセス要求をサービス提供装置１０Ａへ送信する。
【００４７】
ステップＳ１２０において、サービス提供装置１０ＡのＣＰＵは、受信されたアクセス要求に基づいてサービスを実行する。ステップＳ１２１において、サービス提供装置１０ＡのＣＰＵは、依頼されたサービスの実行結果を示すデータを中継装置３０Ａに送信する。ステップＳ１２２において、中継装置３０ＡのＣＰＵ３０１は、サービス提供装置１０Ａから受信したデータをクライアント装置２０へ送信する。
【００４８】
ところで、上述したように、ＯＡｕｔｈ２を用いたシステムにおいては、アクセス権限の中継装置３０への委譲が認可された場合のリダイレクトＵＲＬとして、ひとつのＵＲＬしかサービス提供装置１０Ａに登録できない場合がある。ここで、ひとつのグローバルＵＲＬ「www.example.com」をサービス提供装置１０Ａに予め登録しておく場合、このグローバルＵＲＬへリダイレクト処理が行われると、リダイレクト先となる装置はＤＮＳサーバによって選択されるため、ネットワークの負荷状況などの各種条件によってその時々で異なってしまう。すなわち、ユーザＵ１が中継装置３０Ａにログインした（図４のステップＳ１０１）にも関わらず、ステップＳ１１２において中継装置３０Ａとは異なる中継装置３０（例えば中継装置３０Ｂ）にリダイレクトされてしまう場合がある。
【００４９】
そこで、この実施形態では、クライアント装置２０Ａがリダイレクト処理を行った場合に、リダイレクトされたアクセス要求に含まれるアクセス先のＵＲＬがグローバルＵＲＬである場合、受信されたアクセス要求に含まれるCookieヘッダーのリージョン情報の値を読み出し、読み出した値に対応するリージョンＵＲＬへのリダイレクトをクライアント装置２０Ａに指示する。これにより、ユーザがログインした中継装置３０Ａを介したサービス提供装置１０Ａへのアクセスが行われる。
【００５０】
２−２．動作例２
図５は、システム１の他の動作を例示するシーケンス図である。この例では、ユーザＵ１が中継装置３０Ａを介してサービス提供装置１０Ａにアクセスする際に、アクセストークンとリフレッシュトークンとが中継装置３０Ａのデータベース３０８に登録されているものの、アクセストークンの有効期限が過ぎてしまっている場合の動作例を説明する。図５において、図４に示した処理と同様の処理については同じ符号を付してその説明を省略する。
【００５１】
図５のステップＳ１０５において、中継装置３０ＡのＣＰＵ３０１は、クライアント装置２０Ａからアクセス要求を受信すると、受信されたアクセス要求に対応するユーザのアクセストークンおよびリフレッシュトークンがデータベース３０８に記憶されているか、また有効期限が過ぎていないかを確認する。図５は、アクセストークンおよびリフレッシュトークンがデータベース３０８に記憶されているものの、アクセストークンの有効期限が切れている場合を示している。アクセストークンの有効期限が切れているため、ステップＳ２０１において、ＣＰＵ３０１は、アクセストークンの再取得要求をサービス提供装置１０Ａに送信する。この取得要求には、ユーザＵ１のリフレッシュトークンと、クライアントクレデンシャルとが含まれる。この例で、クライアントクレデンシャルは、サービス提供装置１０Ａによって中継装置３０Ａに対して事前に発行された認証情報である。
【００５２】
ステップＳ２０２において、サービス提供装置１０ＡのＣＰＵは、受信された取得要求に含まれるリフレッシュトークンとクライアントクレデンシャルに基づいてユーザＵ１のアクセストークンを再発行する。ステップＳ２０３において、サービス提供装置１０ＡのＣＰＵは、再発行したアクセストークンを中継装置３０Ａに送信する。
【００５３】
ステップＳ１１７において、中継装置３０ＡのＣＰＵ３０１は、受信されたアクセス要求をローカルデータベース３０８ｂに格納する。ステップＳ１１９において、ＣＰＵ３０１は、再発行されたアクセストークンを用いてサービス提供装置１０Ａへアクセス要求を送信する。
【００５４】
３．変形例
上述した実施形態は、本発明の一例である。これらの実施形態は、以下のように変形してもよい。また、以下の変形例は、互いに組み合わせてもよい。
【００５５】
３−１．変形例１
上述の実施形態では、図４のステップＳ１０３において、中継装置３０ＡのＣＰＵ３０１は、ＨＴＴＰレスポンスのSet-Cookieヘッダーに自装置を識別する値を設定した。自装置を識別する値が設定されるヘッダーはこれに限られない。ＨＴＴＰレスンポスの他のヘッダーに中継装置３０を識別する値が設定されてもよい。また、上述の実施形態では、装置間のデータのやり取りにＨＴＴＰプロトコルが用いられる例を説明したが、装置間のデータのやり取りで用いられるプロトコルはＨＴＴＰに限られない。
【００５６】
３−２．変形例２
上述の実施形態に係るシステム１は、サービス提供装置１０Ａ、１０Ｂおよび１０Ｃと、クライアント装置２０Ａ、２０Ｂ、２０Ｃおよび２０Ｄと、中継装置３０Ａ、３０Ｂおよび３０Ｃとを備えていた。サービス提供装置１０、クライアント装置２０および中継装置３０の台数はシステム１で示した台数に限られない。
【００５７】
３−３．変形例３
上述した実施形態において、中継装置３０のＣＰＵ３０１により実行されるプログラムは、インターネットなどの通信回線を介してダウンロードされてもよい。また、このプログラムは、磁気記録媒体（磁気テープ、磁気ディスクなど）、光記録媒体（光ディスクなど）、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。
【符号の説明】
【００５８】
１…システム、１０Ａ、１０Ｂ、１０Ｃ…サービス提供装置、２０Ａ、２０Ｂ、２０Ｃ、２０Ｄ…クライアント装置、３０Ａ、３０Ｂ、３０Ｃ…中継装置、３１…第１送信手段、３２…受信手段、３３…第２送信手段、３４…中継手段、３５…第１記憶手段、３６…第２記憶手段
【図１】
2015219687.tif 000003
【図２】
2015219687.tif 000004
【図３】
2015219687.tif 000005
【図４】
2015219687.tif 000006
【図５】
2015219687.tif 000007