説明

クラウドサービス間の信頼関係構築方法及びシステム

【課題】クラウドコンピューティングの特性を残したまま、信頼できる認証サービスの提供を可能とする等、クラウドサービス間の信頼関係を構築できる技術を提供する。
【解決手段】本方法は、クラウドサービス間(S1,S2等)で、各自の信頼性を証明するためのチケット(T1等)を用いて、一方が他方の信頼性を確認・検証する処理手順を含む。IaaSサービス(IS)上、サービス(S1等)を実現するサーバのインスタンス(E)と、パートナー契約したサービスの情報を互いに交換して管理するクラウド連携サーバ(CS)とが設けられる。インスタンス(E)は、チケット添付モジュール、チケット確認モジュールを有する。クラウド連携サーバ(CS)は、チケット検証モジュール、チケット検証連携モジュール、及び各情報のリポジトリを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネット、クラウドコンピューティングなどの技術に関する。特に、クラウドコンピューティングのようにインターネット上にあるアプリケーションなどのクラウドサービス(クラウドクラウドコンピューティングによるサービス)に対し、ユーザが必要なときに必要なものを選択して利用することができる環境・状況において、ユーザが任意にそれを選択できるという特性を残したまま、認証における信頼性を保証するための方法などに関する。
【0002】
また特に、IaaS(Infrastructure as a Service)サービスを利用して実現されるアプリケーションサービス及びその事業者と認証サービス及びその事業者との間で、それぞれの信頼性を保証する方法などに関する。
【0003】
また特に、エンドユーザがシングルサインオン等の方式を適用する環境におけるサービス間の信頼関係を構築する方法などに関する。
【背景技術】
【0004】
ユーザがインターネット上にあるアプリケーション(サービス)を任意に選択し利用するクラウドコンピューティング環境では、認証に関して、OpenIDやSAMLなど、一つのIDで複数のサービスが利用できるシングルサインオンの仕組み(ないしその類似の方式)が利用されている。このような認証方式では、アプリケーションがユーザを認証する際、ユーザが指定した認証サービスに処理を委託して、認証結果や認証したユーザの情報を得る。これによりアプリケーションの負荷軽減やユーザの利便性向上が期待できる。
【0005】
しかし、ユーザが自由に認証サービスを指定できるという点から、アプリケーションと認証サービスが互いに信頼できるサービスであるのかを確認する仕組みが必要となる。
【0006】
IaaSサービスとしては、公知のAmazon Elastic Compute Cloud(Amazon EC2)などに代表されるようなサービスがある。
【0007】
シングルサインオンや認証などに関する先行技術例として、特表2005−516533号公報(特許文献1)(「パブリックキー暗号法を用いたインターネット上でのシングルサインオン」)などがある。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2005−516533号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
前記OpenIDやSAMLなどのクラウドコンピューティングにおける認証方式(シングルサインオンなど)は、インターネット上にあるアプリケーション(サービス)が認証処理を外部委託し負荷の軽減が可能であると共に、一つのIDでユーザが任意に選択した複数のアプリケーションにログインでき、ユーザの利便性が向上するといった特徴を持つ。
【0010】
しかし、認証サービスをユーザが自由に指定できることから、認証サービスの信頼性(認証サービスからアプリケーションが取得する認証情報及びユーザ情報がどれほど信頼できるのか等)、あるいは、アプリケーションの信頼性(アプリケーションに対して認証サービスはユーザ情報をどの程度開示できるのか等)、といった課題がある。
【0011】
以上を鑑み、本発明の主な目的は、ユーザがサービスを自由に選択できるといったクラウドコンピューティングの特性を残したまま、信頼できる認証サービスの提供を可能とする等、クラウドサービス間の信頼関係を構築できる技術を提供することである。
【0012】
さらに、本発明の処理機能をモジュールとして組み込んだIaaSサービスとして提供可能とすることで、例えばアプリケーション事業者が簡単な設定だけで信頼性の高い認証(認証サービス)を利用することができる技術を提供することである。
【課題を解決するための手段】
【0013】
上記目的を達成するため、本発明の代表的な形態は、ユーザが利用するサービスを選択可能なクラウドコンピューティング環境を含むインターネット上で、複数のクラウドサービス(クラウドコンピューティングによるサービス)間の信頼性を構築及び確保する、クラウドサービス間の信頼関係構築方法及びシステムなどであって、以下に示す構成を有することを特徴とする。
【0014】
本方法及びシステムは、クラウドサービス間で、各自のクラウドサービスの信頼性を証明するための固有の情報を含むチケットを用いて、一方が他方の信頼性を確認・検証する処理手順及び対応する処理部(モジュール等)を含む方法及びシステムであり、インターネット上に、クラウドサービスを実現するサーバのインスタンスと、クラウドサービス間で当該クラウドサービスの情報を互いに交換して管理するクラウド連携サーバと、が設けられる。サービスのサーバのインスタンスは、チケット添付モジュールと、チケット確認モジュールと、を有する。クラウド連携サーバは、チケット検証モジュールと、チケット検証連携モジュールと、パートナー契約したクラウドサービスの情報として、チケットの情報と、チケットに関する暗号化・復号化のための鍵の情報と、パートナー契約したクラウドサービスの識別子の情報とを含む各情報を管理するリポジトリと、を有する。チケット情報は、一意の文字列を鍵により暗号化した文字列を含む。
【0015】
一方が他方の信頼性を確認・検証する処理手順において、第1のクラウドサービスの第1のインスタンスは、第2のクラウドサービスの第2のインスタンスへ、自身を証明する場合、前記チケット添付モジュールにより第1のチケットを添付して送信する。第2のクラウドサービスの第2のインスタンスは、第1のチケットをチケット確認モジュールにより第2のクラウド連携サーバへ送信して検証を依頼する。第2のクラウド連携サーバは、第1のチケットを、チケット検証モジュールによりリポジトリの情報を参照して検証する。上記検証できた場合は、結果を第2のインスタンスへ送信することにより第2のサービスが第1のサービスの信頼性を確認できる。上記検証できなかった場合は、他のクラウドサービスのクラウド連携サーバへ、チケット検証連携モジュールにより第1のチケットの検証の依頼を送信する。他のクラウドサービスのクラウド連携サーバは、上記第2のクラウド連携サーバと同様に、第1のチケットを、チケット検証モジュールによりリポジトリの情報を参照して検証し、結果を第2のクラウド連携サーバへ送信する。
【発明の効果】
【0016】
本発明の代表的な形態によれば、ユーザがサービスを自由に選択できるといったクラウドコンピューティングの特性を残したまま、信頼できる認証サービスの提供を可能とする等、クラウドサービス間の信頼関係を構築できる。
【0017】
さらに、本発明の処理機能をモジュールとして組み込んだIaaSサービスとして提供可能とすることで、例えばアプリケーション事業者が簡単な設定だけで信頼性の高い認証(認証サービス)を利用することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施の形態の方法及びシステム(クラウドサービス間の信頼関係構築方法及びシステム)の全体の概要構成を示す図である。
【図2】本実施の形態におけるサーバ(IaaSサービス)の構成を示す図である。
【図3】本実施の形態におけるクラウドリポジトリの情報の一例を示す図である。
【図4】本実施の形態におけるキーリポジトリの情報の一例を示す図である。
【図5】本実施の形態におけるチケットリポジトリの情報の一例を示す図である。
【図6】本実施の形態における各リポジトリの情報の関係を示すER図である。
【図7】本実施の形態におけるチケットの構成を示す図である。
【図8】本実施の形態における各サーバ・モジュール等の関連の動作(処理例)を示す図である。
【図9】本実施の形態でチケット添付モジュールの処理を示すフローチャートである。
【図10】本実施の形態でチケット確認モジュールの処理を示すフローチャートである。
【図11】本実施の形態でチケット検証モジュールの処理を示すフローチャートである。
【図12】本実施の形態でチケット検証連携モジュールの処理を示すフローチャートである。
【図13】本実施の形態の基本的な構成などを補足するための説明図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態(クラウドサービス間の信頼関係構築方法及びシステム)を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【0020】
本実施の形態では、概要として、図1,図2,図13等の構成に基づき、図3〜図7のようなデータ情報を用いて、図8の例に示すように各部(サーバ、モジュール等)間で動作する。図9〜図12は各部の個別の処理を示す。特徴的な要素として各モジュール(図2、21,22,31,32等)やチケット(図2、41)等を有する。複数のクラウドサービス間、例えば図8のIS1,E1のアプリケーション(803)のサービス(S1)と、IS2,E2の認証モジュール(808)のサービス(S2)との間において、各自の信頼性を証明するためのチケット41(例えばE1側の信頼性を証明するためのチケットT1(805)や、E2側の信頼性を証明するためのチケットT2)を用いて、互いに信頼性の確認・検証を行う仕組みを有する。
【0021】
[基本]
図1,図2,図13等に基づき、本実施の形態の方法及びシステムにおける基本的な前提や方式などについて以下である。インターネット上、パートナー契約などによる互いに信頼できるIaaSサービス100間で、それぞれに、一意な識別子、一意な文字列、及び共通の暗号化・復号化の鍵情報を持たせる。次にこれらの情報を管理するサーバ(クラウド連携サーバ300)をそれぞれのIaaSサービス100環境上に構築する(図1)。これを前提として、IaaSサービス事業者(P)は、IaaSサービス100のインスタンス200(サーバ)を提供し、アプリケーション事業者や認証サービス事業者などのサービス利用者(Q)は、上記インスタンス200(サーバ)を利用して各自のサービス(アプリケーションや認証サービスなど)をエンドユーザに対し提供する(図13)。
【0022】
上記サービスの利用・提供の際は、例えば、サービス利用者(Q)がIaaSサービス事業者(P)に対して利用申請を行い、IaaSサービス事業者(P)は当該サービス利用者(Q)が十分に信頼できる事業者であるかどうか審査し、審査の結果、信頼できる事業者である場合、当該IaaSサービス100で持つ一意な文字列や、それを利用するためのモジュール(図2)が組み込まれたサーバ(インスタンス200)を用意(割り振り、提供)する(図1)。上記サーバ(インスタンス200)上に、各サービス利用者(Q)は、自身のアプリケーション(サービスS1)や認証サービス(サービスS2)などを構築して当該サービスをエンドユーザに提供する(図13)。あるIaaSサービス事業者(P)を利用してアプリケーション(S1)を提供する事業者(Q1)の場合も、別のIaaSサービス事業者(P2)を利用して認証サービス(S2)を提供する事業者(Q)の場合も、同様の手順である。
【0023】
上記サービスの提供・構築の際、当該サーバ(インスタンス200)には、予め、本発明で特徴的なモジュール(図2)が組み込まれる。エンドユーザから当該サーバ(サービス)へのアクセス(リクエスト、レスポンス等)の際には、当該サーバ(インスタンス200)に組み込まれているモジュールが自動的に呼び出され特徴的な処理を行うという構成である。
【0024】
エンドユーザ(対応する端末等)は、OpenIDやSAMLなどの所定のシングルサインオン等の方式に基づき、上記サービスを開始したアプリケーション(S1)や認証サービス(S2)を自由に選択して利用する(図13)。エンドユーザが例えばアプリケーションのサービスS1にアクセスした際、当該エンドユーザの認証が済んでいない場合は、当該アプリケーション(S1)から認証サービス(S2)に遷移して認証処理を行う。認証が済んでいる場合は、当該アプリケーション(S1)から、ユーザ情報を利用してエンドユーザにサービス処理が提供される。
【0025】
上記認証の際、アプリケーション(S1)側は、当該インスタンス200(E1)で持つチケット41(T1)を用いて、自身の信頼性を認証サービス(S2)側に対して証明する(言い換えればS2側はT1を参照してS1側を確認・検証する)。同様に、認証サービス(S2)側は、当該インスタンス200(E1)で持つチケット41(T2)を用いて、自身の信頼性をアプリケーション(S1)側に対して証明する(言い換えればS1側はT2を参照してS2側を確認・検証する)。
【0026】
例えば、アプリケーション(S1)側は、エンドユーザに関する認証処理を認証サービス(S2)へ要求する際、E1のチケットT1を添付して送信し、認証サービス(S2)側は当該チケットT1を用いた確認・検証を行う(図13のa1)。例えば、認証サービス(S2)側は、エンドユーザに関する認証処理の後、認証結果を含む認証情報に、E2のチケットT2を添付して、アプリケーション(S1)側に送信し、アプリケーション(S1)側は、当該チケットT2を用いた確認・検証を行う(図13のa2)。
【0027】
上記チケット41を用いた信頼性の確認・検証の際は、IaaSサービス100上のインスタンス200のチケット確認モジュール(図2の21)、同IaaSサービス100上のクラウド連携サーバ300上のチケット検証モジュール(図2の31)及びチケット検証連携モジュール(図2の32)を用いて行う(詳しくは図8)。依頼元からチケット確認モジュール21に確認を依頼し、チケット確認モジュール21からチケット検証モジュール31に検証を依頼する。
【0028】
チケット検証モジュール31は、自IaaSサービス100内のリポジトリの情報(IaaSサービス情報)を参照して検証を試みる。検証ができた場合は、結果を依頼元などへ送信する。自IaaSサービス100内のチケット検証モジュール31で当該チケットの検証ができない場合(該当IaaSサービス情報などが登録されていない場合など)は、チケット検証連携モジュール32を用いて、信頼できる他(パートナー)のIaaSサービス100上のチケット検証モジュール31に検証を依頼(問い合わせ)する。同様に複数のIaaSサービス100間で繰り返し検証の連携が可能となっている。
【0029】
図13は、説明の補足として、IaaSサービス事業者(P)、アプリケーション事業者や認証サービス事業者(サービス利用者(Q))、及びエンドユーザ間の関係などを示している。図13の例では、IS1を提供するP1と、IS2を提供するP2とがパートナー契約しており、P1(IS1)は、Q1のサービスS1(アプリケーション)のためにインスタンスE1を提供しており、P2(IS2)は、Q2のサービスS2(認証サービス)のためにインスタンスE2を提供している。
【0030】
[システム構成]
図1は、本発明の一実施の形態の方法及びシステム(クラウドサービス間の信頼関係構築方法及びシステム)の全体の概要構成を示している。クラウドコンピューティング環境を含むインターネット上に、複数のIaaSサービス100が存在する。なおIaaSサービスを記号ISで表す。図1の例では3つのIaaSサービス100(101〜103)としてIS1〜IS3を有する。IaaSサービス100は、クラウドコンピューティングによるサービスである。各IaaSサービス100は、対応するIaaSサービス事業者(記号Pで表す(P1〜P3等))や情報処理システム等(サービス処理を実現するハードウェア・ソフトウェア等の技術的な構成、例えばサーバ)が存在する。なおIaaSサービス100等を実現する前提的なサーバ等の詳細については公知技術であるため説明は省略する。
【0031】
各IaaSサービス100の事業者(P)は、それぞれが一意な識別子、一意な文字列、及び当該文字列を暗号化及び復号化するための鍵情報(記号Kで表す)を持つ。複数のIaaSサービス100の事業者Pは、互いにパートナー契約を結び、これらの情報(識別子、文字列、鍵)を互いに交換している。図1の例では、IS1(101)の事業者P1とIS2(102)の事業者P2がパートナー契約を結んでおり、IS2(102)の事業者P2とIS3(103)の事業者P3がパートナー契約を結んでいる。
【0032】
各IaaSサービス100上には、IaaSサービス情報を管理するクラウド連携サーバ300(記号CSで表す)が存在し、上記契約時に交換した情報(識別子、文字列、鍵)(IaaSサービス情報)を管理している。クラウド連携サーバ(CS)300は、IS事業者(P)が1台ずつ持つ。図1の例では3つのクラウド連携サーバ300(301〜303)としてCS1〜CS3を有する。
【0033】
上記のような環境(図1)を持つIaaSサービス事業者(P)に対して、アプリケーション事業者などのサービス利用者(記号Qで表す)がサービス(記号Sで表す)の利用申請を行い、当該サービス(S)に対応するインスタンス200が割り振られる。図1の例では、各IS100上にインスタンス200(201〜203)を有する。
【0034】
また、上記申請があった際、IaaSサービス事業者(P)は、申請しているアプリケーション事業者(サービス利用者(Q))が十分に信頼できることを確認(審査などによる)してインスタンス200を提供する。このインスタンス200には、IaaSサービス事業者(P)が持つ一意の文字列とそれを操作するためのモジュールが含まれている。
【0035】
[IaaSサービス]
図2において、IaaSサービス(IS)100の構成、IS100上にあるクラウド連携サーバ(CS)300とインスタンス(E)200の構成について説明する。本発明の構成要素として、21,22,41,42,31,32,50,51,52等がある。インスタンス(E)200は、IS100上の標準インスタンスを示す。各インスタンス(E)200及びCS300は主にサーバ(ハードウェア及びソフトウェア)により構成され、各モジュールは当該サーバでのソフトウェアプログラム処理などにより構成される。尚これらサーバ(サービス、インスタンス)等の基本的な構成は公知技術(クラウドコンピューティング等)であるため詳細な説明は省略する。
【0036】
[クラウド連携サーバ]
クラウド連携サーバ(CS)300は、チケット検証モジュール31、チケット検証連携モジュール32、キーリポジトリ50、チケットリポジトリ51、及びクラウドリポジトリ52、等を有する。
【0037】
チケット検証モジュール31は、IaaSサービス100の持つチケット(記号Tで表す)(41と対応)を確認するためのモジュール(処理部)である。
【0038】
チケット検証連携モジュール32は、他のIaaSサービス100にチケット検証を依頼するためのモジュールである。
【0039】
キーリポジトリ50は、契約したIaaSサービス100間で交換した鍵情報(K)を保管するためのリポジトリである。
【0040】
チケットリポジトリ51は、契約したIaaSサービス100間で交換したチケット(T)の情報を保管するためのリポジトリである。
【0041】
クラウドリポジトリ52は、契約したIaaSサービス100の識別子などの情報を保管するためのリポジトリである。
【0042】
[リポジトリ]
図3は、クラウドリポジトリ52が持つ情報の一例を示す。本テーブル例では、ID、IaaS事業者名称、事業者識別子、チケット検証サーバ、等の項目を有するレコードから成る。「IaaS事業者名称」、「事業者識別子」は、前記Pの名称や識別子である。「チケット検証サーバ」は、チケット検証モジュール31に対応したアドレス(URL)情報である。
【0043】
図4は、キーリポジトリ50が持つ情報の一例を示す。本テーブル例では、ID、IaaS事業者、キー(鍵)、等の項目を有するレコードから成る。「IaaS事業者」は、当該鍵(K)に対応する前記PのIDである。「キー(鍵)」(K)は、数値・文字列などである。
【0044】
図5は、チケットリポジトリ51が持つ情報の一例を示す。本テーブル例では、ID、IaaS事業者、チケット(T)、等の項目を有するレコードから成る。「IaaS事業者」は、当該チケット(T)に対応する前記PのIDである。チケット(T)は、数値・文字列などである。
【0045】
図6は、上記リポジトリ(50,51,52)のそれぞれの情報(601〜603)の関係を示すER図である。各テーブルのIDは主キーとなる。図3のクラウドリポジトリ52の情報(601)の「IaaS事業者名称」(IaaSプロバイダ)、及び「事業者識別子」(クラウド識別子)、図4のキーリポジトリ50の情報(602)の「IaaS事業者」(IaaSプロバイダ)、図5のチケットリポジトリ51の情報(603)の「IaaS事業者」(IaaSプロバイダ)は、ユニークキーである。
【0046】
[インスタンス]
前記図2で、一方、アプリケーション事業者(サービス利用者(Q))が利用するインスタンス(E)200は、チケット添付モジュール21、チケット確認モジュール22、チケット41、プロパティ42、等を有する。
【0047】
チケット添付モジュール21は、アプリケーションサービス(サービスS)にチケット(T)(41と対応)を添付するためのモジュールである。
【0048】
チケット確認モジュール22は、上記添付されたチケット(T)を確認するためのモジュールである。
【0049】
チケット41は、上記添付するチケット(T)のデータ情報であり、当該ISのインスタンス(E)であることを証明する情報である。チケット(T)や鍵(K)の情報は、基本的に、各サービスで秘密情報であり、契約サービス間では共通情報となる。
【0050】
図7は、チケット41(T)の構成を示す。チケット41(T)は、事業者識別子701と、暗号化文字列702(一意な文字列を鍵により暗号化した文字列)とを有する。事業者識別子701は、IS事業者(P)が持つ固有の識別子の文字列である(この識別子はクラウドリポジトリ52で管理されている)。暗号化文字列702の元となる一意な文字列は、チケットリポジトリ51(図5)の「チケット」文字列を用い、この「チケット」文字列を、自ISの鍵K(キーリポジトリ50(図4)の「キー」文字列)で暗号化することにより得られる。
【0051】
プロパティ206は、チケット確認モジュール22によるチケット検証の依頼先などの情報(CS300(またはそのチケット検証モジュール31)のアドレス情報など)が記載されたプロパティファイル情報である。
【0052】
インスタンス200は、上述の状態をテンプレートとして、各アプリケーション事業者(Q)に、コピーにて展開(割り振り、提供)され、それぞれのアプリケーション(サービス)を組み込み利用する。また、インスタンス200が持つチケット41(T)は、図7の通り、事業者識別子701と暗号化文字列702とを結合した文字列となる。
【0053】
[動作]
次に、図8を用いて、本実施の形態における各モジュール等の関連の動作(処理例)について説明する。OpenIDやSAMLなどのシングルサインオンあるいはそれに類する方式を適用するものとする。図8では、インターネット上の複数のIS100(IS1〜IS3)の例として、まず、第1のIS事業者P1による第1のIaaSサービス(IS1)801上にある第1のインスタンス802(E1)を利用して、アプリケーション事業者(第1のサービス利用者Q1)が当該アプリケーションのサービスS1を提供している。また、第2のIS事業者P2による第2のIaaSサービス(IS2)806上にある第2のインスタンス(E2)807を利用して、認証サービス事業者(第2のサービス利用者Q2)が認証サービス(サービスS2)を提供している。他にも、第3のIS事業者P3による第3のIaaSサービス(IS3)819等が存在する。パートナー契約の状態として例えば、P1−P2間は無しまたは有り、P2−P3間は有り、P3−P1間は有り、とする。
【0054】
第1のインスタンス802(E1)上には、アプリケーション事業者(Q1)が提供するアプリケーションプログラム803(サービスS1の処理を実現するプログラム、例えばWebアプリケーションプログラム)がある。第2のインスタンス(E2)807上には、認証サービス事業者(Q2)が提供する認証モジュール808(サービスS2のプログラム)がある。
【0055】
適用するシングルサインオン等の方式に応じて、アプリケーションプログラム803は、ユーザ(803にアクセスし利用するエンドユーザ)が指定した認証サービス(本例ではインスタンス(E2)807上の認証モジュール808によるサービスS2)に認証処理を依頼(要求)する。そのために、アプリケーションプログラム803は、同一インスタンス(E1)内にあるチケット添付モジュール804(図2の21)を呼び出す。チケット添付モジュール804は、チケット805(図2の41)(IS1のインスタンス(E1)であることを証明するチケット:T1とする)を読み込み、当該チケット(T1)を、認証要求に関するレスポンスヘッダ情報に付加する。
【0056】
図9に上記チケット添付モジュール804の処理の詳細を示す(後述)。
【0057】
上記チケット添付モジュール804の処理(チケット(T1)添付)の終了後、アプリケーションプログラム803は、適用するシングルサインオン等の方式に則り、認証サービス事業者(Q2)が提供する認証モジュール808(サービスS2)に対して認証処理を依頼(認証要求)する。この認証要求には、上記チケット(T1)情報が伴う。
【0058】
第2のIaaSサービス(IS2)806上のインスタンス(E2)807上には、認証サービス事業者(Q2)が開発した認証モジュール808が動作している。認証モジュール808は、認証サービス(第2のサービスS2)を提供するモジュール(プログラム)である。アプリケーションプログラム803(チケット添付モジュール804)から上記認証要求(チケット(T1)付き)を受けた認証モジュール808は、認証結果などを提供する対象となるアプリケーション(803)が信頼できるのかを判断するために、同一インスタンス(E2)内にあるチケット確認モジュール809(図2の22)に、当該チケット(上記認証要求に伴うチケット(T1))の確認を依頼する。
【0059】
チケット確認モジュール809は、プロパティ810(図2の42)(IS2のCS2のアドレス情報を含むプロパティファイル情報)を参照し、チケット検証処理を行うチケット検証サーバとなるチケット検証モジュール812(図2の31)のアドレス情報を取得する。そして、チケット確認モジュール809は、当該チケット(T1)情報を、IS2で稼動するクラウド連携サーバ811(CS2)上にある当該チケット検証モジュール812へ送信する。
【0060】
上記チケット(T1)情報を受け取ったチケット検証モジュール812は、当該チケット(T1)から、図7(701,702)に示したような、識別子813と暗号化文字列814の情報(文字列)を取得する。また、チケット検証モジュール812は、同CS2内のクラウドリポジトリ818(図2の52)とキーリポジトリ816(図2の50)を参照して、当該チケット(T1)(そのうちの暗号化文字列702)の復号化のための鍵(K)を取得する。
【0061】
ここで、初回の状況では、IS1(P1)とIS2(P2)との間で、まだパートナー契約が無く、そのため、当該リポジトリに、IS1に対応する識別子と鍵(K)等の情報が存在しない(即ち上記T1に対応する鍵K1を取得できない)状態とする。そのため、チケット検証モジュール812は、チケット検証連携モジュール815(図2の32)に、他のIS100に対するチケット検証処理を依頼する。
【0062】
なおIS2(CS2)のリポジトリに上記IS1に対応する情報が登録済みの場合は、IS2にて当該チケット(T1)の検証処理が行われることになる。
【0063】
上記依頼を受けたチケット検証連携モジュール815は、他のIS100に対するチケット検証処理依頼のために、同CS2内のクラウドリポジトリ818(図2の52)を参照し、IS2と契約しているIaaSサービス100、本例ではIS3(819)、の情報を取得する。詳しくは、IS3上で稼働するCS3(821)上のチケット検証サーバ(チケット検証モジュール821)のアドレス情報を取得する。そして、チケット検証連携モジュール815は、当該取得したIS3(CS3)のアドレスに対してチケット検証処理依頼を転送(送信)する。この際、検証依頼には、検証対象のチケット(T1)情報を伴う。
【0064】
上記検証依頼を受け取ったIS3(819)上のCS3(820)上にあるチケット検証モジュール821は、上記検証対象のチケット(T1)から取得した識別子822(701)をもとに、CS3上のクラウドリポジトリ826とキーリポジトリ824を参照して、当該チケット(T1)(その暗号化文字列823(702))の復号化のための鍵(本例ではIS1のK1)を取得する。ここではP1−P3間の契約有りによりCS3内に当該IS1に関する情報(K1を含む)が登録済みの状態であるため当該情報を取得できる場合である。
【0065】
チケット検証モジュール821は、取得した鍵(K1)を用いて当該チケット(T1)の暗号化文字列823(702)を復号化した後、クラウドリポジトリ826とキーリポジトリ825を参照し、当該識別子(822)と文字列(上記823を復号化した文字列)の組み合わせが正しいかを確認する。即ち当該チケットの有効性・無効性を判断するチケット検証処理を行う。当該組み合わせが正しいという結果(OK)の場合、当該チケットは有効となり、正しくないという結果(NG)の場合、無効となる。OKの場合、当該チケット(T1)がIS1のインスタンス(E1)であることを証明する情報であることが確認できる。
【0066】
IS3のCS3のチケット検証モジュール821は、上記確認(チケット検証処理)の結果を、IS2のCS2のチケット検証連携モジュール815へ返す。更に、当該結果は、チケット検証連携モジュール815からチケット検証モジュール812へ、チケット検証モジュール812からE2(807)のチケット確認モジュール809へ、チケット確認モジュール809から認証モジュール808へと、順に返される(図8に示す流れの逆)。
【0067】
上記チケット検証処理の結果でOK(T1有効)の場合、対象アプリケーション(803)の信頼性を確認できたことになる。そのため、認証モジュール808は、前記依頼されている認証処理(認証サービス(S2)の処理)を行い、認証結果及びユーザの属性情報を認証情報として、適用するシングルサインオン等の方式に則り、E1(802)上のアプリケーションプログラム803へ伝える(送信する)。
【0068】
また、上記結果でNG(T1無効)の場合、対象アプリケーション(803)の信頼性を確認できなかったため、認証モジュール808は、適用するシングルサインオン等の方式に則り、前記依頼されている認証処理ができないことを、E1のアプリケーションプログラム803に伝える。
【0069】
図10に、上記チケット確認モジュール809の処理の詳細を示す(後述)。
【0070】
図11に、上記IS2上のチケット検証モジュール812とIS3上のチケット検証モジュール821の処理の詳細を示す(後述)。
【0071】
図12に、上記IS2上のチケット検証連携モジュール815の処理の詳細を示す(後述)。
【0072】
なお、上記(図8)では、IS1のチケットT1を用いてアプリケーション(803)側の信頼性を認証モジュール808側が確認・検証する流れを説明しているが、IS2のチケットT2を用いて認証モジュール808側の信頼性をアプリケーション(803)側が確認・検証する場合なども同様となる。即ち例えば、上記(図8)で認証モジュール808が認証情報(認証結果とユーザの属性情報)をアプリケーション(803)へ返す際に、アプリケーション(803)側が当該認証モジュール808側の認証情報が信頼できるのかを判断させる(判断できるようにする)ために、当該認証情報に、E2上にあるチケットT2(IS2のインスタンス(E2)であることを証明するチケット)の情報を添付する。この際、アプリケーション(803)側が当該チケットT2を確認・検証する手順については、上記認証モジュール808側がチケットT1を確認・検証した手順と同様となる。
【0073】
以上(図8)の流れにより、アプリケーションサービス(S1)側と認証サービス(S2)側とで相互に信頼性を確認した通信ができる。
【0074】
[チケット添付モジュール処理]
図9において、チケット添付モジュール21(例えば804)は、まず、呼び出し元(プログラム(803))から処理要求を受け付る(901)。即ち、同一インスタンス200(例えばE1)上で動作するプログラム(803)から、レスポンス情報を受け取る。次に、同一インスタンス200(E1)内にあるチケット情報(41)を読み込む(902)。このチケット(例えばT1)は、図7の通り、暗号化文字列702は、自IS(例えばIS1)に対応する一意の文字列(例えばUS1)が、自ISの鍵(例えばK1)により暗号化されている。次に、上記読み込んだチケット情報(41)をBASE64変換する(903)。次に、上記変換したチケット情報(41)を、レスポンス情報のLocationヘッダのURLにURLパラメータとして付加する(904)。次に、上記編集したリクエスト情報(チケット付き)を呼び出し元(プログラム(803))に戻す(905)。
【0075】
[チケット確認モジュール処理]
図10において、チケット確認モジュール22(例えば809)は、まず、呼び出し元から処理要求を受け取る(1001)。即ち、同一インスタンス200(E2)上で動作するプログラム(認証モジュール808)から、リクエスト情報を受け取る。次に、受け取ったリクエスト情報のヘッダ情報から、リクエストURL(URLパラメータ)に付加されているチケット情報を取得する(1002)。次に、プロパティ42(810)の参照から、同一IS上のクラウド連携サーバ(CS)300のアドレス情報を取得する(1003)。次に、当該アドレスのCS(チケット検証サーバ)へ当該チケット情報をSOAPで転送(送信)する(1004)。次に、当該CS(チケット検証サーバ)から、当該チケットの有効性・無効性の判定結果(チケット検証処理結果)を受け取る(1005)。次に、上記取得した判定結果を、呼び出し元のプログラム(808)に返す(1006)。
【0076】
[チケット検証モジュール処理]
図11において、チケット検証モジュール31(例えば812,821)は、まず、インスタンス200(例えばE2)のチケット確認モジュール22(例えば809)から対象のチケット情報(変換状態)を受け取る(1101)。次に、受け取ったチケット情報に対してBASE64デコーディングを行い、チケットデータ(例えばT1)を取得する(1102)。次に、取得したチケットデータ(T1)から、事業者識別子(701,818)(クラウド識別子)を取得し、この識別子を検索キーとしてクラウドリポジトリ52の参照に基づき対応するIS(例えばIS1)の情報を取得し、取得した情報を用いてキーリポジトリ50から対象(IS1)の鍵情報(例えばK1)を取得する。
【0077】
上記対象の鍵(K1)を取得できた場合(1103−Y)、チケットデータ(T1)から暗号化文字列(702,814)を取得し(1104)、取得した暗号化文字列を上記鍵(K1)により復号化する(1105)。そして、チケットリポジトリ51を参照し、上記クラウド識別子(事業者識別子)とチケットが合致するデータを取得する(1106)。
【0078】
上記合致するデータがある場合(1108−Y)、該当インスタンス200(例えばE2)のチケット確認モジュール22(809)に、当該チケット(T1)が有効であることを伝え、合致するデータが無い場合(1108−N)、無効であることを伝える。
【0079】
前記対象の鍵(K1)を取得できなかった場合(1103−N)、チケット検証モジュール31は、同CS300(例えばCS2)内のチケット検証連携モジュール32(例えば815)に、当該チケットデータ(T1)を引き渡し、当該チケット(T1)の確認(検証)処理を依頼する(1111)。そして、チケット検証連携モジュール32から返ってきたチケット確認(検証)結果を、該当インスタンス200(E2)のチケット確認モジュール22(809)に伝える。
【0080】
[チケット検証連携モジュール処理]
図12において、チケット検証連携モジュール32(例えば815)は、まず、チケット検証モジュール31(例えば812)から事業者識別子(701)を含むチケットデータ(前記1111の依頼)を受け取る(1201)。次に、クラウドリポジトリ52から、上記事業者識別子(クラウド識別子)を検索キーとして連携可能なクラウド連携サーバ(CS)300の情報を取得する(1202)。次に、連携可能なCS(例えばCS3(820))に、当該チケットデータをSOAPで送信する。
【0081】
チケット検証連携モジュール32は、連携可能なCS(CS3)のチケット検証モジュール31(821)によるチケット検証結果を待ち受けて取得する(1203)。そして、当該検証結果を、依頼元のチケット検証モジュール31(812)に渡す(1204)。
【0082】
[効果等]
以上のように、本実施の形態によれば、クラウドサービス(IS事業者(P)から提供されるインスタンス200によるサービスS)間のシングルサインオン等の方式の通信における信頼関係を構築・確保することができ、ユーザがサービスSを自由に選択できるといったクラウドコンピューティングの特性を残したまま、信頼できる認証サービス(図13ではS2)の提供・利用が可能となる。さらに、本発明の特徴的な処理機能をモジュール(21,22,31,32)として組み込んだIaaSサービス100(サーバ)をサービス利用者(Q)に提供することにより、例えばアプリケーション事業者(図13ではQ1)が簡単な設定だけで信頼性の高い認証を利用できる。
【0083】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【0084】
本発明は、クラウドコンピューティング環境における、IaaSサービス、アプリケーションサービス、認証サービスなどの各種サービスに利用可能である。
【符号の説明】
【0085】
21,804…チケット添付モジュール、22,809…チケット確認モジュール、31,812,821…チケット検証モジュール、32,815…チケット検証連携モジュール、41,805…チケット、42,810…プロパティ、50,816,824…キーリポジトリ、51,817,825…チケットリポジトリ、52,818,826…クラウドリポジトリ、100(101〜103),801,806,819…IaaSサービス(IS)、200(201〜203),802,807…インスタンス(E)、300(301〜303),811,820…クラウド連携サーバ(CS)、803…アプリケーションプログラム、808…認証モジュール。

【特許請求の範囲】
【請求項1】
ユーザが利用するサービスを選択可能なクラウドコンピューティング環境を含むインターネット上で、複数のクラウドサービス間の信頼関係を構築及び確保する、クラウドサービス間の信頼関係構築方法であって、
前記クラウドサービス間で、各自のクラウドサービスの信頼性を証明するための固有の情報を含むチケットを用いて、一方が他方の信頼性を確認・検証する処理手順を含む方法であり、
前記インターネット上に、前記クラウドサービスを実現するサーバのインスタンスと、前記クラウドサービス間で当該クラウドサービスの情報を互いに交換して管理するクラウド連携サーバと、が設けられ、
前記インスタンスは、チケット添付モジュールと、チケット確認モジュールとを有し、
前記クラウド連携サーバは、チケット検証モジュールと、チケット検証連携モジュールと、パートナー契約したクラウドサービスの情報として、前記チケットの情報と、前記チケットに関する暗号化・復号化のための鍵の情報と、前記パートナー契約したクラウドサービスの識別子の情報とを含む各情報を管理するリポジトリと、を有し、
前記チケットは、一意の文字列を前記鍵により暗号化した文字列を含み、
前記一方が他方の信頼性を確認・検証する処理手順において、
第1のクラウドサービスの第1のインスタンスが、第2のクラウドサービスの第2のインスタンスへ、自身を証明する場合、前記チケット添付モジュールにより第1のチケットを添付して送信する処理手順と、
前記第2のクラウドサービスの第2のインスタンスが、前記第1のチケットを前記チケット確認モジュールにより第2のクラウド連携サーバへ送信して検証を依頼する処理手順と、
前記第2のクラウド連携サーバが、前記第1のチケットを、前記チケット検証モジュールにより前記リポジトリの情報を参照して検証する処理手順と、
上記検証できた場合は、結果を前記第2のインスタンスへ送信することにより前記第2のクラウドサービスが前記第1のクラウドサービスの信頼性を確認できる処理手順と、
上記検証できなかった場合は、他の第3のクラウドサービスのクラウド連携サーバへ、前記チケット検証連携モジュールにより前記第1のチケットの検証の依頼を送信する処理手順と、
前記他の第3のクラウドサービスのクラウド連携サーバが、上記第2のクラウド連携サーバと同様に、前記第1のチケットを、前記チケット検証モジュールにより前記リポジトリの情報を参照して検証し、結果を前記第2のクラウド連携サーバへ送信する処理手順と、を有すること、を特徴とするクラウドサービス間の信頼関係構築方法。
【請求項2】
請求項1記載のクラウドサービス間の信頼関係構築方法において、
前記クラウドサービスは、IaaSサービス事業者によるIaaSサービスを利用して実現されるサービス利用者によるサービスであり、
前記IaaSサービス上に、前記サービスを実現するサーバの前記インスタンスと、前記IaaSサービス間でパートナー契約したIaaSサービスの情報を互いに交換して管理する前記クラウド連携サーバと、が設けられ、
前記インスタンスの各々は、各自のインスタンスであることを証明するチケットと、対応する前記クラウド連携サーバの情報を含むプロパティファイルと、を保持し、
前記クラウド連携サーバのリポジトリは、前記パートナー契約したIaaSサービスの事業者の識別子の情報を含み、
前記チケットは、前記IaaSサービスの事業者の識別子と、前記一意の文字列を前記鍵により暗号化した文字列とを含み、
第1のIaaSサービス上に、アプリケーション事業者によるアプリケーションである第1のサービスを実現するサーバの第1のインスタンスと、対応する第1のクラウド連携サーバとを有し、第2のIaaSサービス上に、認証サービス事業者による認証サービスである第2のサービスを実現するサーバの第2のインスタンスと、対応する第2のクラウド連携サーバとを有し、他の第3のIaaSサービス上に、他の第3の事業者によるサービスを実現するサーバの第3のインスタンスと、対応する第3のクラウド連携サーバとを有し、
エンドユーザが利用する認証サービスを指定できる性質を持つシングルサインオンの方式を適用し、
前記第1のインスタンスの第1のチケットは、第1の文字列を第1の鍵により暗号化した文字列を含み、前記第2のインスタンスの第2のチケットは、第2の文字列を第2の鍵により暗号化した文字列を含み、
前記第1と第2のサービス間で認証情報を通信する際に、前記第1、第2のチケットを用いて互いに信頼性を確認・検証する処理手順を有すること、を特徴とするクラウドサービス間の信頼関係構築方法。
【請求項3】
請求項2記載のクラウドサービス間の信頼関係構築方法において、
前記第1と第2のサービス間で認証情報を通信する際の処理手順において、
前記第1のサービスから前記第2のサービスへ認証要求する際、前記第1のチケットを用いて前記第1のチケットの有効性を確認・検証することにより前記第1のサービスの信頼性を確認・検証する処理手順と、
前記第2のサービスから前記第1のサービスへ認証処理結果を応答する際、前記第2のチケットを用いて前記第2のチケットの有効性を確認・検証することにより前記第2のサービスの信頼性を確認・検証する処理手順と、を有すること、を特徴とするクラウドサービス間の信頼関係構築方法。
【請求項4】
ユーザが利用するサービスを選択可能なクラウドコンピューティング環境を含むインターネット上で、複数のクラウドサービス間の信頼関係を構築及び確保する、クラウドサービス間の信頼関係構築システムであって、
前記クラウドサービス間で、各自のクラウドサービスの信頼性を証明するための固有の情報を含むチケットを用いて、一方が他方の信頼性を確認・検証する処理を含むシステムであり、
前記インターネット上に、前記クラウドサービスを実現するサーバのインスタンスと、前記クラウドサービス間で当該クラウドサービスの情報を互いに交換して管理するクラウド連携サーバと、が設けられ、
前記インスタンスは、チケット添付モジュールと、チケット確認モジュールとを有し、
前記クラウド連携サーバは、チケット検証モジュールと、チケット検証連携モジュールと、パートナー契約したクラウドサービスの情報として、前記チケットの情報と、前記チケットに関する暗号化・復号化のための鍵の情報と、前記パートナー契約したクラウドサービスの識別子の情報とを含む各情報を管理するリポジトリと、を有し、
前記チケット情報は、一意の文字列を前記鍵により暗号化した文字列を含み、
前記一方が他方の信頼性を確認・検証する処理において、
第1のクラウドサービスの第1のインスタンスは、第2のクラウドサービスの第2のインスタンスへ、自身を証明する場合、前記チケット添付モジュールにより第1のチケットを添付して送信する処理を行い、
前記第2のクラウドサービスの第2のインスタンスは、前記第1のチケットを前記チケット確認モジュールにより第2のクラウド連携サーバへ送信して検証を依頼する処理を行い、
前記第2のクラウド連携サーバは、前記第1のチケットを、前記チケット検証モジュールにより前記リポジトリの情報を参照して検証する処理を行い、
上記検証できた場合は、結果を前記第2のインスタンスへ送信することにより前記第2のクラウドサービスが前記第1のクラウドサービスの信頼性を確認でき、
上記検証できなかった場合は、他の第3のクラウドサービスのクラウド連携サーバへ、前記チケット検証連携モジュールにより前記第1のチケットの検証の依頼を送信する処理を行い、
前記他の第3のクラウドサービスのクラウド連携サーバは、上記第2のクラウド連携サーバと同様に、前記第1のチケットを、前記チケット検証モジュールにより前記リポジトリの情報を参照して検証し、結果を前記第2のクラウド連携サーバへ送信する処理を行うこと、を特徴とするクラウドサービス間の信頼関係構築システム。
【請求項5】
請求項4記載のクラウドサービス間の信頼関係構築システムにおいて、
前記クラウドサービスは、IaaSサービス事業者によるIaaSサービスを利用して実現されるサービス利用者によるサービスであり、
前記IaaSサービス上に、前記サービスを実現するサーバの前記インスタンスと、前記IaaSサービス間でパートナー契約したIaaSサービスの情報を互いに交換して管理する前記クラウド連携サーバと、が設けられ、
前記インスタンスの各々は、各自のインスタンスであることを証明するチケットと、対応する前記クラウド連携サーバの情報を含むプロパティファイルと、を保持し、
前記クラウド連携サーバのリポジトリは、前記パートナー契約したIaaSサービスの事業者の識別子の情報を含み、
前記チケット情報は、前記IaaSサービスの事業者の識別子と、前記一意の文字列を前記鍵により暗号化した文字列とを含み、
第1のIaaSサービス上に、アプリケーション事業者によるアプリケーションである第1のサービスを実現するサーバの第1のインスタンスと、対応する第1のクラウド連携サーバとを有し、第2のIaaSサービス上に、認証サービス事業者による認証サービスである第2のサービスを実現するサーバの第2のインスタンスと、対応する第2のクラウド連携サーバとを有し、他の第3のIaaSサービス上に、他の第3の事業者によるサービスを実現するサーバの第3のインスタンスと、対応する第3のクラウド連携サーバとを有し、
エンドユーザが利用する認証サービスを指定できる性質を持つシングルサインオンの方式を適用し、
前記第1のインスタンスの第1のチケットは、第1の文字列を第1の鍵により暗号化した文字列を含み、前記第2のインスタンスの第2のチケットは、第2の文字列を第2の鍵により暗号化した文字列を含み、
前記第1と第2のサービス間で認証情報を通信する際に、前記第1、第2のチケットを用いて互いに信頼性を確認・検証する処理を行うこと、を特徴とするクラウドサービス間の信頼関係構築システム。
【請求項6】
請求項5記載のクラウドサービス間の信頼関係構築システムにおいて、
前記第1と第2のサービス間で認証情報を通信する際の処理において、
前記第1のサービスから前記第2のサービスへ認証要求する際、前記第1のチケットを用いて前記第1のチケットの有効性を確認・検証することにより前記第1のサービスの信頼性を確認・検証する処理と、
前記第2のサービスから前記第1のサービスへ認証処理結果を応答する際、前記第2のチケットを用いて前記第2のチケットの有効性を確認・検証することにより前記第2のサービスの信頼性を確認・検証する処理と、を行うこと、を特徴とするクラウドサービス間の信頼関係構築システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−103931(P2012−103931A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−252448(P2010−252448)
【出願日】平成22年11月11日(2010.11.11)
【出願人】(000233491)株式会社日立システムズ (394)
【Fターム(参考)】