特許第6760904号(P6760904)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤフー株式会社の特許一覧

特許6760904情報処理装置、情報処理方法、及び情報処理プログラム
<>
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000002
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000003
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000004
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000005
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000006
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000007
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000008
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000009
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000010
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000011
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000012
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000013
  • 特許6760904-情報処理装置、情報処理方法、及び情報処理プログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6760904
(24)【登録日】2020年9月7日
(45)【発行日】2020年9月23日
(54)【発明の名称】情報処理装置、情報処理方法、及び情報処理プログラム
(51)【国際特許分類】
   G06F 21/62 20130101AFI20200910BHJP
   G06Q 20/40 20120101ALI20200910BHJP
   G06Q 50/10 20120101ALI20200910BHJP
【FI】
   G06F21/62 345
   G06Q20/40
   G06Q50/10
【請求項の数】8
【全頁数】22
(21)【出願番号】特願2017-169803(P2017-169803)
(22)【出願日】2017年9月4日
(65)【公開番号】特開2019-46263(P2019-46263A)
(43)【公開日】2019年3月22日
【審査請求日】2018年7月18日
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】遠藤 禎士
【審査官】 吉田 歩
(56)【参考文献】
【文献】 特開2016−189202(JP,A)
【文献】 特開2014−112290(JP,A)
【文献】 特開2010−128554(JP,A)
【文献】 特開2012−244284(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06Q 20/40
G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
複数のシステムがそれぞれ保持するユーザ識別情報を暗号化した暗号化IDを取得する取得部と、
同一ユーザを示す複数の前記暗号化IDの関連付けに関する情報が含まれる管理情報を管理する管理部と、
前記複数のシステムの1つである第1のシステムから第1の暗号化IDを受信した場合に、前記管理情報に基づいて、前記第1の暗号化IDに対応する他のシステムの暗号化IDを特定する特定部と、
前記他のシステムの暗号化IDに関する情報を前記第1のシステムに対して送信する送信部と、を備え、
前記送信部は、前記他のシステムが保持するユーザデータであって前記他のシステムの暗号化IDで特定される前記ユーザデータを前記他のシステムから取得し、取得した前記ユーザデータを前記第1のシステムに対して送信する、
とを特徴とする情報処理装置。
【請求項2】
前記送信部は、前記他のシステムの暗号化IDを前記第1のシステムに対して送信する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記管理部は、複数の前記暗号化IDそれぞれを識別子とし、複数の前記識別子それぞれに同一ユーザを示す他の複数のシステムの前記暗号化IDを関連付けた情報が含まれる前記管理情報を管理する、
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記管理部は、前記複数のシステムの中から選択されるシステムの前記暗号化IDを前記管理情報から削除する、
ことを特徴とする請求項1〜のいずれか1項に記載の情報処理装置。
【請求項5】
前記管理部は、前記複数のシステムに新たに加わったシステムの前記暗号化IDを前記管理情報に追加する、
ことを特徴とする請求項1〜のいずれか1項に記載の情報処理装置。
【請求項6】
前記管理部は、前記管理情報に記憶されている前記暗号化IDを同一のユーザ識別情報から生成した他の暗号化IDに変更する、
ことを特徴とする請求項1〜のいずれか1項に記載の情報処理装置。
【請求項7】
情報処理装置が実行する情報処理方法であって、
複数のシステムがそれぞれ保持するユーザ識別情報を暗号化した暗号化IDを取得する取得工程と、
同一ユーザを示す複数の前記暗号化IDの関連付けに関する情報が含まれる管理情報を管理する管理工程と、
前記複数のシステムの1つである第1のシステムから第1の暗号化IDを受信した場合に、前記管理情報に基づいて、前記第1の暗号化IDに対応する他のシステムの暗号化IDを特定する特定工程と、
前記他のシステムの暗号化IDに関する情報を前記第1のシステムに対して送信する送信工程と、を含み、
前記送信工程では、前記他のシステムが保持するユーザデータであって前記他のシステムの暗号化IDで特定される前記ユーザデータを前記他のシステムから取得し、取得した前記ユーザデータを前記第1のシステムに対して送信する、
とを特徴とする情報処理方法。
【請求項8】
複数のシステムがそれぞれ保持するユーザ識別情報を暗号化した暗号化IDを取得する取得手順と、
同一ユーザを示す複数の前記暗号化IDの関連付けに関する情報が含まれる管理情報を管理する管理手順と、
前記複数のシステムの1つである第1のシステムから第1の暗号化IDを受信した場合に、前記管理情報に基づいて、前記第1の暗号化IDに対応する他のシステムの暗号化IDを特定する特定手順と、
前記他のシステムの暗号化IDに関する情報を前記第1のシステムに対して送信する送信手順と、をコンピュータに実行させ、
前記送信手順では、前記他のシステムが保持するユーザデータであって前記他のシステムの暗号化IDで特定される前記ユーザデータを前記他のシステムから取得し、取得した前記ユーザデータを前記第1のシステムに対して送信する、
報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【0002】
ネットワークを使用したサービスの提供が活発になっている。近年では様々なサービス提供主体が様々なサービスを提供している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2013−257793号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ユーザによりよいサービスを提供するためには、複数のサービス提供主体間でユーザデータを共有することが望ましい。しかし、サービス提供主体毎にユーザ識別情報(以下、ユーザIDという。)は異なっており、データの共有は容易ではない。ユーザIDを統一すれば、ユーザデータの共有は容易である。しかし、ユーザIDの統一は容易なことではない。サービス提供主体間でユーザIDを交換することも考えられるが、この場合、他のサービス提供主体にユーザIDが不正利用される恐れは否定できない。
【0005】
本願は、上記に鑑みてなされたものであって、他のサービス提供主体が保有するデータを容易に利用できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本願に係る情報処理装置は、複数のシステムがそれぞれ保持するユーザ識別情報を暗号化した暗号化IDを取得する取得部と、同一ユーザを示す複数の暗号化IDを関連付けた管理情報を管理する管理部と、を備える。
【発明の効果】
【0007】
実施形態の一態様によれば、他のサービス提供主体が保有するデータを容易に利用できるようにすることができる。
【図面の簡単な説明】
【0008】
図1図1は、実施形態に係る情報処理システムの動作を示す図である。
図2図2は、ユーザ情報データベースのデータ構成を示す図である。
図3図3は、管理情報の構成例を示す図である。
図4図4は、図3に示す管理情報に暗号化IDを追加した例を示す図である。
図5図5は、管理情報の他の構成例を示す図である。
図6図6は、実施形態に係る端末装置の構成例を示す図である。
図7図7は、実施形態に係るサービス提供サーバの構成例を示す図である。
図8図8は、ユーザ情報データベースに格納されるユーザ情報の一例を示す図である。
図9図9は、実施形態に係る情報処理装置の構成例を示す図である。
図10図10は、管理情報データベースに格納される情報の一例を示す図である。
図11図11は、登録処理の一例を示すフローチャートである。
図12図12は、管理処理の一例を示すフローチャートである。
図13図13は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0009】
以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、以下の実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0010】
〔1.情報処理装置の動作〕
最初に、本実施形態の情報処理装置30を備える情報処理システム1を例に、情報処理装置の動作を説明する。
【0011】
図1は、実施形態に係る情報処理システム1の動作を示す図である。情報処理システム1は、複数のサービス提供主体間でユーザデータを共有することを可能にするためのシステムである。本実施形態でいう「サービス」は、ネットを介して提供されるサービスのことである。例えば、サービスは、ネットショッピング、広告配信、メール、ゲーム、ニュース、オークション、掲示板、ブログ、天気予報、ファイナンス、路線検索、地図、旅行、求人、不動産、飲食店紹介、データダウンロード等のサービスである。サービスは、医療情報(例えば、カルテ)に関するクラウドサービスであってもよい。
【0012】
情報処理システム1は、端末装置10、10、10と、サービス提供サーバ20、20、20と、情報処理装置30と、を備える。なお、図1の例では、端末装置が3つ示されているが、端末装置は3つより少なくてもよいし、3つより多くてもよい。以下の説明では、端末装置10、10、10等を総称して端末装置10と記載することがある。また、図1の例では、サービス提供サーバが3つ示されているが、サービス提供サーバは3つより少なくてもよいし、3つより多くてもよい。以下の説明では、サービス提供サーバ20、20、20等を総称してサービス提供サーバ20と記載することがある。
【0013】
端末装置10は、例えば、スマートデバイス(スマートフォン、或いはタブレット)、携帯電話、パーソナルコンピュータ等のユーザ端末である。端末装置10はユーザU1が使用する端末であり、端末装置10はユーザU2が使用する端末であり、端末装置10はユーザU3が使用する端末である。端末装置10は、ネットワークを介してサービス提供サーバ20と通信する。
【0014】
サービス提供サーバ20は、クライアント端末或いはクライアント端末を操作するユーザに対して各種サービスを提供するサーバ用ホストコンピュータである。例えば、サービス提供サーバ20は、端末装置10を操作するユーザに対し各種サービスを提供するサービス提供システムである。サービス提供システムは、1台の装置から構成されていてもよいし、複数台の装置から構成されていてもよい。サービス提供サーバ20が提供するサービスは、例えば、ネットショッピング、広告配信、メール、ゲーム、ニュース、オークション、掲示板、ブログ、天気予報、ファイナンス、路線検索、地図、旅行、求人、不動産、飲食店紹介、データダウンロード等のサービスである。サービス提供サーバ20がネットショッピングサービスを提供するシステムとして機能する場合、サービス提供サーバ20はオンラインモールとしての機能を併せ持っていてもよい。
【0015】
図1の例の場合、サービス提供サーバ20は組織Aが運用するシステムであり、サービス提供サーバ20は組織Bが運用するシステムであり、サービス提供サーバ20は組織Cが運用するシステムである。組織A、組織B、組織Cは、それぞれ所定のサービスを提供するサービス提供主体である。組織A、組織B、組織Cは、例えば、会社(企業)である。なお、サービス提供主体は会社(企業)に限られない。サービス提供主体は、会社(企業)以外の組織、例えば、非営利法人、公共団体等の団体であってもよい。勿論、サービス提供主体は組織ではなく個人であってもよい。また、サービス提供主体は、組織内の所定の部門(例えば、第1のサービスを提供する部門)であってもよい。この場合、同じ組織内の他の部門(例えば、第2のサービスを提供する部門)は、他のサービス提供主体である。以下の説明で登場する“組織”は、適宜、“会社”、“個人”、“部門”に置き換え可能である。
【0016】
複数の組織(例えば、組織A、組織B、組織C)は、それぞれ、ユーザに対してユーザ識別情報(以下、ユーザIDという。)を付している。ユーザIDは、例えば、ユーザが所定のサイトにアクセスするためのユーザ名、ログインID、アカウントであってもよい。所定のサイトは、ポータルサイトであってもよいし、SNS(Social Networking Service)のサイトであってもよい。ユーザを識別できるのであれば、ユーザIDは、電話番号、メールアドレスであってもよい。また、ユーザIDは、人間の身体的特徴(例えば、指紋、虹彩、静脈パターン)或いは行動的特徴(例えば、筆跡、歩行)に基づく生体情報であってもよい。勿論、ユーザIDは、サービス提供システムが内部で保持する内部IDであってもよい。
【0017】
情報処理装置30は、サービス提供サーバ20に対して各種サービスを提供するサーバ用ホストコンピュータである。情報処理装置30は、サービス提供サーバ20がサービスの提供にあたり蓄積したデータの、サービス提供サーバ20間の共有を可能にするための処理を行う。例えば、情報処理装置30は、サービス提供サーバ20それぞれが有するユーザ識別情報(以下、ユーザIDという。)を管理する。情報処理装置30は、サービス提供サーバ20それぞれと通信可能である。
【0018】
サービス提供サーバ20を運営する複数のサービス提供主体(例えば、組織A、組織B、組織C)は協業関係にある。しかし、ユーザIDは統一されておらず、サービス提供主体間でユーザデータの共有は容易ではない。また、他のサービス提供主体との協業関係が崩れた後のことを考慮すると、自身が保有するユーザIDの全てを他のサービス提供主体に渡してしまうのは極めてリスクが高い。情報処理装置30は、各組織が保有するユーザデータの互いの利用を可能としつつ、各組織が保有するユーザIDをセキュアに管理する。なお、組織A、組織B等の複数のサービス提供主体が、ユーザデータの交換のための契約下にあるものとする。以下の説明では、ユーザデータの交換のための契約下にある集団のことを単にグループという。
【0019】
以下、図1を参照しながら、本実施形態の情報処理装置30を備える情報処理システム1の動作を説明する。
【0020】
まず、サービス提供サーバ20は、ユーザにサービスを提供するため、ユーザが操作する端末装置10とサービスに関する通信を行う(ステップS1a〜ステップS1e)。例えば、サービス提供サーバ20は、ユーザU1が操作する端末装置10とサービス(例えば、ネットショッピング)に関する通信を行う(ステップS1a)。また、サービス提供サーバ20は、ユーザU1が操作する端末装置10とサービス(例えば、広告配信)に関する通信を行う(ステップS1b)。
【0021】
そして、サービス提供サーバ20は、サービスの提供にあたり取得したユーザデータをユーザ情報データベースに保存する(ステップS2a〜ステップS2c)。なお、ユーザ情報データベースは、RDB(Relational Database)に限られない。大量のデータを高速に扱えるようにするため、データベースは、NoSQL(Not Only SQL)のハイパースケールなデータベース情報処理システム(スケールアウト型のシステム)を使ったデータベースであってもよい。このとき、NoSQLは、KVS(Key-Value Store)であってもよい。
【0022】
図2は、ユーザ情報データベースのデータ構成を示す図である。図2の例では、サービス提供サーバ20、20、20それぞれが有するユーザ情報データベースのデータ構成を示している。サービス提供サーバ20のユーザ情報データベースには、ユーザデータとしてD11〜D13が格納されている。また、サービス提供サーバ20のユーザ情報データベースには、ユーザデータとしてD21〜D23が格納されている。また、サービス提供サーバ20のユーザ情報データベースには、ユーザデータとしてD31〜D33が格納されている。各ユーザデータには、ユーザIDが付されている。なお、以下の説明では、ユーザIDとユーザデータのペアのことをレコードという。
【0023】
図2を見れば分かるように、ユーザデータD11〜D13には、ユーザIDとしてU1A〜U3Aが付されている。U1A〜U3Aは、サービス提供サーバ20の運営者である組織Aが各ユーザに付したユーザIDである。U1Aは、ユーザU1のユーザIDであり、U2Aは、ユーザU2のユーザIDであり、U3Aは、ユーザU3のユーザIDである。なお、各レコードの左側のP11〜P13は、各レコードのデータベース内の格納位置を示す。P11は、ユーザデータD11が格納されたレコードの格納位置であり、P12は、ユーザデータD12が格納されたレコードの格納位置であり、P13は、ユーザデータD13が格納されたレコードの格納位置である。
【0024】
また、ユーザデータD21〜D23には、ユーザIDとしてU1B〜U3Bが付されている。U1B〜U3Bは、サービス提供サーバ20の運営者である組織Bが各ユーザに付したユーザIDである。U1Bは、ユーザU1のユーザIDであり、U2Bは、ユーザU2のユーザIDであり、U3Bは、ユーザU3のユーザIDである。なお、各レコードの左側のP21〜P23は、各レコードのデータベース内の格納位置を示す。P21は、ユーザデータD21が格納されたレコードの格納位置であり、P22は、ユーザデータD22が格納されたレコードの格納位置であり、P23は、ユーザデータD23が格納されたレコードの格納位置である。
【0025】
また、ユーザデータD31〜D33には、ユーザIDとしてU1C〜U3Cが付されている。U1C〜U3Cは、サービス提供サーバ20の運営者である組織Cが各ユーザに付したユーザIDである。U1Cは、ユーザU1のユーザIDであり、U2Cは、ユーザU2のユーザIDであり、U3Cは、ユーザU3のユーザIDである。なお、各レコードの左側のP31〜P33は、各レコードのデータベース内の格納位置を示す。P31は、ユーザデータD31が格納されたレコードの格納位置であり、P32は、ユーザデータD32が格納されたレコードの格納位置であり、P33は、ユーザデータD33が格納されたレコードの格納位置である。
【0026】
複数のサービス提供サーバ20は、それぞれ、自身が保持するユーザIDを他の組織が復号できないよう暗号化する。暗号化には、共通鍵暗号(例えば、AES(Advanced Encryption Standard))や公開鍵暗号(例えば、RSA(Rivest-Shamir-Adleman cryptosystem))等を使った可逆暗号化のみならず、MD5(Message Digest Algorithm 5)やSHA(Secure Hash Algorithm)等を使った不可逆暗号化(ハッシュ化)も含まれる。
【0027】
そして、情報処理装置30は、サービス提供サーバ20が暗号化したユーザID(以下、暗号化IDという。)を取得する(ステップS3a〜ステップS3c)。なお、以下の説明では、暗号化IDを示す符号には、“E−”を頭に付す。例えば、ユーザU1のユーザIDであるU1A、U1B、U1Cの暗号化IDは、それぞれ、E−U1A、E−U1B、E−U1Cである。また、ユーザU2のユーザIDであるU2A、U2B、U2Cの暗号化IDは、それぞれ、E−U2A、E−U2B、E−U2Cである。また、ユーザU3のユーザIDであるU3A、U3B、U3Cの暗号化IDは、それぞれ、E−U3A、E−U3B、E−U3Cである。
【0028】
各サービス提供サーバ20から暗号化IDを取得したら、情報処理装置30は、同一ユーザを示す複数の暗号化IDを関連付ける(ステップS4)。例えば、情報処理装置30は、図1に示すように、ユーザU1の暗号化IDを示すE−U1A、E−U1B、E−U1Cを関連付ける。また、情報処理装置30は、ユーザU2の暗号化IDを示すE−U2A、E−U2B、E−U2Cを関連付ける。また、情報処理装置30は、ユーザU3の暗号化IDを示すE−U3A、E−U3B、E−U3Cを関連付ける。関連付けの手法は様々な方法を使用可能である。例えば、情報処理装置30は、各サービス提供サーバ20から暗号化IDで特定されるユーザデータを取得する。そして、情報処理装置30は、ユーザデータと暗号化IDを関連付けるとともに、ユーザデータに基づいてどの暗号化IDとどの暗号化IDが同一ユーザのものか特定する。例えば、情報処理装置30は、電話番号、名前、生年月日のうちいずれか2つが一致している場合に、同一ユーザと特定してもよい。勿論、関連付けの方法はこの方法に限られない。また、関連付けが完了した後、情報処理装置30は、情報が漏洩しないように、ユーザデータを破棄してもよい。そして、情報処理装置30は、暗号化IDを関連付けた情報を、ユーザIDを管理するための管理情報として記憶する。
【0029】
図3は、管理情報の構成例を示す図である。図3は、各組織が保有するユーザ情報データベースを1つのリレーショナルデータベースとみなして管理する場合の管理情報の構成例を示している。図3の例では、組織AのユーザIDと組織BのユーザIDを情報処理装置30が管理する例を示している。図3の例では、ユーザU1〜U3の内部IDに、組織Aが保持するユーザIDを暗号化したE−U1A、E−U2A、E−U3Aと、組織Bが保持するユーザIDを暗号化したE−U1B、E−U2B、E−U3Bと、が関連付けられている。内部IDは、情報処理装置30が保持するユーザIDである。また、暗号化ID1は、組織Aが保持するユーザIDの暗号化IDを示し、暗号化ID2は、組織Bが保持するユーザIDの暗号化IDを示す。
【0030】
リレーショナルデータベースの場合、検索を高速にするため、インデックスが作成される。図3の例では、暗号化ID1をキーとしてユーザデータを検索するためのインデックス1と、暗号化ID2をキーとしてユーザデータを検索するためのインデックス2とが作成されている。各暗号化IDには、ユーザデータのレコードの位置を示すレコード位置が関連付けられている。なお、図3の例では、インデックスはいずれもインデックステーブルとなっているが、インデックスはインデックステーブルに限られない。例えば、インデックスはB木(B−tree)であってもよい。
【0031】
図4は、図3に示す管理情報に暗号化IDを追加した例を示す図である。具体的には、図4は、図3に示す管理情報に暗号化ID3を追加した例である。暗号化ID3は、組織Cが保持するユーザIDの暗号化IDである。組織Cが新たに加わったため、情報処理装置30は、組織Cのため、新たにインデックス3を作成する。インデックス3は、暗号化ID3をキーとしてユーザデータを検索するためのインデックスである。また、組織Cが保持するユーザデータを組織Aと組織Bが高速に検索できるようにするため、情報処理装置30は、インデックス1とインデックス2を更新する。図3の例では、インデックス1とインデックス2にそれぞれレコード位置P31〜P33が追加されている。このように、ユーザデータの管理にリレーショナルデータベースを使用する場合、組織が新たにグループに加入するたびに、全てのインデックスに更新が発生する。グループに加入する組織が少ないうちはよいものの、グループに加入する組織が多くなると(例えば、グループに加入する組織が1000、2000となると)、インデックスの更新時間は無視できないものとなる。こうなると、新たに組織がグループに加入するたびに長時間のインデックスの更新時間が発生し、サービスの断絶が発生することになる。
【0032】
そこで、情報処理装置30は、管理情報を図3図4に示す構造とは異なる構造とし、暗号化IDが増えても大きなサービスの断絶が起こらないようにする。図5は、管理情報の他の構成例を示す図である。情報処理装置30は、図5に示すように、複数の暗号化IDそれぞれを識別子とし、複数の識別子それぞれに同一ユーザを示す他の複数のシステムの暗号化IDを関連付ける。識別子とは、データベース中の所定の情報(レコード)を識別するための情報である。識別子は、検索ID、キー等と言い換えることができる。図5の例の場合、情報処理装置30は、組織Aが保持するユーザIDを暗号化したE−U1A、E−U2A、E−U3A、組織Bが保持するユーザIDを暗号化したE−U1B、E−U2B、E−U3B、組織Cが保持するユーザIDを暗号化したE−U1C、E−U2C、E−U3Cをそれぞれ識別子とする。そして、識別子それぞれに、同一ユーザを示す他のサービス提供主体の暗号化IDを関連付ける。例えば、組織Aが保持するユーザU1の暗号化IDであるE−U1Aには、組織Bが保持するユーザU1の暗号化IDであるE−U1Bと、組織Cが保持するユーザU1の暗号化IDであるE−U1Cと、を関連付ける。なお、識別子には、情報処理装置30が内部でユーザを管理するためのID(内部ID)が関連付けられていてもよい。例えば、識別子のE−U1Aには、情報処理装置30が内部IDのU1が関連付けられていてもよい。
【0033】
なお、図5の例では、管理情報は表形式となっているが、管理情報は表形式に限られない。管理情報はJSON(JavaScript(登録商標) Object Notation)形式であってもよい。例えば、管理情報は“暗号化ID1:{内部ID,暗号化ID2,暗号化ID3,…}”、“暗号化ID2:{内部ID,暗号化ID1,暗号化ID3,…}”といった形式であってもよい。ここで、内部IDは、情報処理装置30が保持するユーザIDを示すメンバー(例えば、名前と値のペア)であり、暗号化ID1は、組織Aが保持するユーザIDの暗号化IDを示すメンバーであり、暗号化ID2は、組織Bが保持するユーザIDの暗号化IDを示すメンバーであり、暗号化ID3は、組織Cが保持するユーザIDの暗号化IDを示すメンバーである。管理情報を図5に示すような構造とすることで、NoSQL、KVS等のハイパースケールなミドルウェアを使ってリレーショナルデータベースの限界を大幅に超えることができる。
【0034】
情報処理装置30は、複数のシステムの1つから暗号化IDを受信すると(ステップS5)、管理情報に基づいて、その暗号化IDに対応する他のシステムの暗号化IDを特定する(ステップS6)。例えば、情報処理装置30が、組織Bのサービス提供サーバ20から暗号化IDとしてE−U2Bを受信したとする。この場合、情報処理装置30は、図5に示す管理情報から識別子のE−U2Bに関連付けられているE−U2A、E−U2Cを特定する。
【0035】
そして、情報処理装置30は、暗号化IDを受信したシステムに対して、他のシステムの暗号化IDに関する情報を送信する(ステップS7)。例えば、情報処理装置30が、組織Bのサービス提供サーバ20からユーザU2のユーザIDの暗号化IDであるE−U2Bを受信したとする。この場合、情報処理装置30は、サービス提供サーバ20に対して、対応する暗号化IDであるE−U2A、E−U2Cを送信する。暗号化IDには、どのシステムの暗号化IDかを特定するための情報が付されていてもよい。例えば、E−U2Aには、組織Aのサービス提供サーバ20を示す識別情報が付されていてもよい。また、E−U2Cには、組織Cのサービス提供サーバ20を示す識別情報が付されていてもよい。なお、他のシステムの暗号化IDに関する情報は、暗号化IDで特定されるユーザデータであってもよい。
【0036】
他のシステムの暗号化IDを取得したら、サービス提供サーバ20は、取得した暗号化IDを使って他のシステムからユーザデータを取得する。例えば、サービス提供サーバ20が情報処理装置30からE−U2AとE−U2Cを取得したとする。また、サービス提供サーバ20の運営者(組織B)が、ユーザU2のユーザデータを組織Cから取得しようとしているとする。このとき、サービス提供サーバ20は、サービス提供サーバ20に対してE−U2Cとともにユーザデータの送信を要求する。サービス提供サーバ20は、要求を受けて、暗号化IDのE−U2Cに対応するユーザID(本実施形態の場合、U2C)を特定するとともに、該当のユーザデータ(図2の例の場合、D32)をユーザ情報データベースから取得する。そして、サービス提供サーバ20は、取得したユーザデータをサービス提供サーバ20に送信する。
【0037】
なお、ユーザデータの送信は情報処理装置30が行ってもよい。例えば、情報処理装置30が、複数のシステムの1つ(例えば、サービス提供サーバ20)から暗号化IDを受信したとする。このとき、情報処理装置30は、他のシステムが保持するユーザデータであって他のシステムの暗号化IDで特定されるユーザデータを、暗号化IDを送信したシステム(例えば、サービス提供サーバ20)に対して送信してもよい。例えば、情報処理装置30が、サービス提供サーバ20からユーザU2のユーザデータの送信要求ともに暗号化IDであるE−U2Bを受信したとする。情報処理装置30は、E−U2Bに対応する他のシステムの暗号化ID(E−U2A、E−U2C)を特定するとともに、サービス提供サーバ20とサービス提供サーバ20に対して、E−U2A或いはE−U2Cで特定されるユーザデータの送信を要求する。サービス提供サーバ20とサービス提供サーバ20からユーザデータを取得したら、情報処理装置30は、取得したユーザデータをサービス提供サーバ20に対して送信する。
【0038】
上述したように、複数の組織は協業関係にある。しかしながら、複数の組織の1つが敵対的買収を受ける等、協業関係が崩れることもあり得る。この場合、情報処理装置30は、情報漏洩が起こらないように、管理情報の管理のための処理を行う必要がある。具体的には、情報処理装置30は、敵対的買収された組織が他の組織のユーザデータを取得できないようにする必要がある。
【0039】
そこで、情報処理装置30は、情報処理装置30の運営者から複数のシステムの中から選択される所定のシステムの排除を命令された場合には、所定のシステムの暗号化IDを管理情報から削除する(ステップS8)。例えば、サービス提供サーバ20を運営する組織Cが敵対的買収を受け、情報処理装置30の運営者が組織Cのシステム(サービス提供サーバ20)のグループからの排除のための処理を命令したとする。この場合、情報処理装置30は、図5に示す管理情報から組織Cの暗号化ID(E−U1C、E−U2C、E−U3C等)を削除して、以後、組織Cが他の組織の暗号化IDを取得できないようにする。なお、会社の買収等により、グループに加入する組織が増える可能性もある。この場合、情報処理装置30は、新たにグループに加わったシステムの暗号化IDを管理情報に追加してもよい。
【0040】
なお、グループから排除された組織は、グループ内の他の組織の暗号化IDの一部をすでに持っている可能性がある。排除された組織を介して他の組織の情報が漏洩しないように、情報処理装置30は、管理情報に記憶されている暗号化IDを他の暗号化IDに変更してもよい。このとき、他の暗号化IDは、変更前の暗号化IDが示すユーザと同一のユーザIDから生成した暗号化IDであってもよい。例えば、情報処理装置30の運営者が組織Cのシステムを排除したとする。このとき、情報処理装置30は、組織Aのサービス提供サーバ20と組織Bのサービス提供サーバ20に新たな暗号化IDの送信を要求する。サービス提供サーバ20とサービス提供サーバ20から新たな暗号化IDを取得した場合には、情報処理装置30は、図5に示す管理情報のうち、暗号化ID1、暗号化ID2、及び識別子を新たな暗号化IDに置き換える。
【0041】
本実施形態によれば、情報処理装置30は、複数のサービス提供システム(サービス提供サーバ20)がそれぞれ保持するユーザIDを暗号化した暗号化IDを取得するとともに、同一ユーザを示す複数の暗号化IDを関連付けた管理情報を管理する。これにより、情報処理装置30は、ユーザIDを統一することなく、ユーザIDが統一されたのと同様の効果を複数のサービス提供主体に提供できる。しかも、関連付けられるユーザIDは暗号化されているので、サービス提供主体(例えば、サービス提供サーバ20の運営者)は自身が保有するユーザIDの漏洩を心配する必要はない。
【0042】
〔2.情報処理システムの構成例〕
以上、本実施形態の情報処理装置30を備える情報処理システム1を例に、本実施形態の情報処理装置の動作を述べたが、以下、情報処理システム1の構成を説明する。上述したように、情報処理システム1は、端末装置10と、サービス提供サーバ20と、情報処理装置30と、を備える。端末装置10、サービス提供サーバ20、及び情報処理装置30は、ネットワークを介して接続される。ネットワークは、LAN(Local Area Network)、WAN(Wide Area Network)、電話網(携帯電話網、固定電話網等)、地域IP(Internet Protocol)網、インターネット等の通信ネットワークである。ネットワークには、有線ネットワークが含まれていてもよいし、無線ネットワークが含まれていてもよい。
【0043】
〔3.端末装置の構成例〕
図6は、実施形態に係る端末装置10の構成例を示す図である。端末装置10は、ユーザがページの閲覧に使用する情報表示装置(情報処理装置)である。端末装置10は、例えば、スマートフォン、タブレット、携帯電話等の通信端末である。通信機能を備えるのであれば、端末装置10は、パーソナルコンピュータ(ノートPC、デスクトップPC)、PDA(Personal Digital Assistant)等の情報処理端末であってもよい。この場合、情報処理端末も通信端末の一種である。端末装置10は、ネットワークを介して情報処理装置30と接続する。端末装置10は、図6に示すように、通信部11と、入力部12と、記憶部13と、出力部14と、制御部15と、を備える。なお、図6に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
【0044】
通信部11は、外部の装置と通信する通信インタフェースである。通信部11は、ネットワークインタフェースであってもよいし、機器接続インタフェースであってもよい。例えば、通信部11は、NIC(Network Interface Card)等のLANインタフェースであってもよいし、USB(Universal Serial Bus)ホストコントローラ、USBポート等により構成されるUSBインタフェースであってもよい。また、通信部11は、有線インタフェースであってもよいし、無線インタフェースであってもよい。通信部11は、端末装置10の通信手段として機能する。通信部11は、制御部15の制御に従って情報処理装置30と通信する。
【0045】
入力部12は、外部から各種入力を受け付ける入力装置である。例えば、入力部12は、キーボードやマウスや操作キー等、ユーザが各種操作を行うための操作装置である。入力部12は、端末装置10の入力手段として機能する。なお、端末装置10にタッチパネルが採用される場合には、タッチパネルも入力部12に含まれる。この場合、ユーザは、指やスタイラスで画面をタッチすることにより各種操作を行う。
【0046】
記憶部13は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、フラッシュメモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部13は、端末装置10の記憶手段として機能する。記憶部13は、ウェブブラウザ等のアプリケーションソフトのデータが格納されている。ユーザはアプリケーションソフトを介して情報処理装置30と通信する。
【0047】
出力部14は、音、光、振動、画像等、外部に各種出力を行う装置である。出力部14は、端末装置10の出力手段として機能する。出力部14は、各種情報を表示する表示装置を備える。表示装置は、例えば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイである。なお、端末装置10にタッチパネルが採用される場合には、表示装置は入力部12と一体であってもよい。出力部14は、制御部15の制御に従って、画面に画像を表示する。
【0048】
制御部15は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、端末装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部15は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
【0049】
〔4.サービス提供サーバの構成例〕
次に、サービス提供サーバ20の構成について詳細に説明する。サービス提供サーバ20は、端末装置10等のクライアントコンピュータからの要求を処理するサーバ用ホストコンピュータ(以下、単に「サーバ」という。)である。サービス提供サーバ20は、PCサーバであってもよいし、ミッドレンジサーバであってもよいし、メインフレームサーバであってもよい。また、サービス提供サーバ20は、1つのサーバにより構成されていてもよいし、協働して処理を実行する複数のサーバにより構成されていてもよい。サービス提供サーバ20が複数のサーバで構成される場合、これらサーバの設置場所は離れていてもよい。設置場所が離れていたとしても、協働して処理を実行するのであれば、これらサーバは1つのサービス提供サーバとみなすことができる。
【0050】
図7は、実施形態に係るサービス提供サーバ20の構成例を示す図である。サービス提供サーバ20は、通信部21と、記憶部22と、制御部23と、を備える。なお、図7に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
【0051】
通信部21は、外部の装置と通信する通信インタフェースである。通信部21は、ネットワークインタフェースであってもよいし、機器接続インタフェースであってもよい。例えば、通信部21は、NIC等のLANインタフェースであってもよいし、USBホストコントローラ、USBポート等により構成されるUSBインタフェースであってもよい。また、通信部21は、有線インタフェースであってもよいし、無線インタフェースであってもよい。通信部21は、サービス提供サーバ20の通信手段として機能する。通信部21は、制御部23の制御に従って端末装置10及び情報処理装置30と通信する。
【0052】
記憶部22は、DRAM、SRAM、フラッシュメモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部22は、サービス提供サーバ20の記憶手段として機能する。記憶部22は、ユーザ情報データベース221を記憶する。
【0053】
ユーザ情報データベース221は、サービス提供サーバ20がユーザにサービスを提供するにあたり取得したユーザデータを記憶するデータベースである。ユーザ情報データベース221は、RDBであってもよいし、NoSQL等のハイパースケールなデータベース情報処理システム(スケールアウト型のシステム)を使ったデータベースであってもよい。このとき、NoSQLは、KVSであってもよい。
【0054】
図8は、ユーザ情報データベース221に格納されるユーザ情報の一例を示す図である。図8に示した例では、ユーザ情報データベース221は、ユーザID、ユーザ名、性別、年齢、購入商品等の項目を有している。「ユーザID」は、ユーザの識別情報である。「ユーザ名」は、ユーザIDで示されるユーザの名前である。「性別」は、ユーザIDで示されるユーザの性別である。「年齢」は、ユーザIDで示されるユーザの年齢である。「購入商品」は、ユーザIDで示されるユーザがネットショッピングサービス等を使って購入した商品の情報である。なお、図8に示したユーザ情報はあくまで例である。ユーザ情報はサービス提供サーバ20が提供するサービスに合わせ適宜変更可能である。
【0055】
制御部23は、コントローラであり、例えば、CPU、MPU等のプロセッサによって、サービス提供サーバ20内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部23は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
【0056】
〔5.情報処理装置の構成例〕
次に、情報処理装置30の構成について詳細に説明する。情報処理装置30は、端末装置10等のクライアントコンピュータからの要求を処理するサーバ用ホストコンピュータ(以下、単に「サーバ」という。)である。情報処理装置30は、PCサーバであってもよいし、ミッドレンジサーバであってもよいし、メインフレームサーバであってもよい。また、情報処理装置30は、1つのサーバにより構成されていてもよいし、協働して処理を実行する複数のサーバにより構成されていてもよい。情報処理装置30が複数のサーバで構成される場合、これらサーバの設置場所は離れていてもよい。設置場所が離れていたとしても、協働して処理を実行するのであれば、これらサーバは1つの情報処理装置とみなすことができる。
【0057】
図9は、実施形態に係る情報処理装置30の構成例を示す図である。情報処理装置30は、通信部31と、記憶部32と、制御部33と、を備える。なお、図9に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
【0058】
通信部31は、外部の装置と通信する通信インタフェースである。通信部31は、ネットワークインタフェースであってもよいし、機器接続インタフェースであってもよい。例えば、通信部31は、NIC等のLANインタフェースであってもよいし、USBホストコントローラ、USBポート等により構成されるUSBインタフェースであってもよい。また、通信部31は、有線インタフェースであってもよいし、無線インタフェースであってもよい。通信部31は、情報処理装置30の通信手段として機能する。通信部31は、制御部33の制御に従ってサービス提供サーバ20と通信する。
【0059】
記憶部32は、DRAM、SRAM、フラッシュメモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部32は、情報処理装置30の記憶手段として機能する。記憶部32は、管理情報データベース321を記憶する。
【0060】
管理情報データベース321は、サービス提供サーバ20が保持しているユーザIDを管理するための管理情報を記憶するデータベースである。管理情報データベース321は、RDB(Relational Database)であってもよいし、ハイパースケールなデータベース情報処理システムを使ったデータベースであってもよい。図10は、管理情報データベース321に格納される管理情報の一例を示す図である。図10に示した例では、管理情報データベース321は、識別子、内部ID、暗号化ID1、暗号化ID2、暗号化ID3等の項目を有している。
【0061】
「識別子」は、同一ユーザを示す複数の暗号化IDが格納されたレコードの主キーとなる情報である。識別子には、E−U1A、E−U2A、E−U3A、E−U1B、E−U2B、E−U3B、E−U1C、E−U2C、E−U3C等の値が格納されている。E−U1A、E−U2A、及びE−U3Aは、組織Aが保持するユーザIDの暗号化IDである。E−U1B、E−U2B、及びE−U3Bは、組織Bが保持するユーザIDの暗号化IDである。E−U1C、E−U2C、及びE−U3Cは、組織Cが保持するユーザIDの暗号化IDである。識別子には、全ての複数のサービス提供サーバ20から提供された全ての暗号化IDが識別子として格納される。
【0062】
「内部ID」は、情報処理装置30が保持するユーザIDを示す。内部IDには、U1、U2、U3等の値が格納されている。
【0063】
「暗号化ID1」は、組織Aが保持するユーザIDの暗号化IDを示す。暗号化ID1には、E−U1A、E−U2A、E−U3A等の値が格納されている。
【0064】
「暗号化ID2」は、組織Bが保持するユーザIDの暗号化IDを示す。暗号化ID2には、E−U1B、E−U2B、E−U3B等の値が格納されている。
【0065】
「暗号化ID3」は、組織Cが保持するユーザIDの暗号化IDを示す。暗号化ID3には、E−U1C、E−U2C、E−U3C等の値が格納されている。
【0066】
図9に戻り、制御部33は、コントローラであり、例えば、CPU、MPU等のプロセッサによって、情報処理装置30内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部33は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
【0067】
制御部33は、図9に示すように、取得部331と、管理部332と、特定部333と、送信部334と、を備える。制御部33を構成するブロック(取得部331〜送信部334)はそれぞれ制御部33の機能を示す機能ブロックである。これら機能ブロックはソフトウェアブロックであってもよいし、ハードウェアブロックであってもよい。例えば、上述の機能ブロックが、それぞれ、ソフトウェア(マイクロプログラムを含む。)で実現される1つのソフトウェアモジュールであってもよいし、半導体チップ(ダイ)上の1つの回路ブロックであってもよい。勿論、各機能ブロックがそれぞれ1つのプロセッサ或いは1つの集積回路であってもよい。機能ブロックの構成方法は任意である。なお、制御部33は上述の機能ブロックとは異なる機能単位で構成されていてもよい。
【0068】
取得部331は、複数のサービス提供システム(複数のサービス提供サーバ20)がそれぞれ保持するユーザIDを暗号化した暗号化IDを取得する。
【0069】
管理部332は、同一ユーザを示す複数の暗号化IDを関連付けた管理情報を管理する。例えば、管理部332は、複数の暗号化IDそれぞれを識別子とし、複数の識別子それぞれに同一ユーザを示す他の複数のサービス提供システム(複数のサービス提供サーバ20)の暗号化IDを関連付けた情報が含まれる管理情報を管理する。
【0070】
具体的には、管理部332は、複数のサービス提供システムの中から選択されるシステムの暗号化IDを管理情報から削除する。また、管理部332は、複数のサービス提供システムに新たに加わったシステムの暗号化IDを管理情報に追加する。また、管理部332は、管理情報に記憶されている暗号化IDを同一のユーザ識別情報から生成した他の暗号化IDに変更する。
【0071】
特定部333は、複数のサービス提供システムの1つである第1のシステム(例えば、サービス提供サーバ20)から第1の暗号化ID(例えば、ユーザU2の暗号化IDであるE−U2B)を受信した場合に、管理情報に基づいて、第1の暗号化IDに対応する他のシステムの暗号化ID(例えば、図10に示すE−U2A、E−U2C)を特定する。
【0072】
送信部334は、他のシステム(例えば、サービス提供サーバ20及びサービス提供サーバ20)の暗号化IDに関する情報を第1のシステム(例えば、サービス提供サーバ20)に対して送信する。例えば、送信部334は、他のシステムの暗号化ID(例えば、E−U2A、E−U2C)を第1のシステムに対して送信する。また、送信部334は、他のシステムが保持するユーザデータであって他のシステムの暗号化IDで特定されるユーザデータ(例えば、図2に示すD12、D32)を第1のシステムに対して送信する。
【0073】
〔6.情報処理装置の処理フロー〕
次に、情報処理装置30が実行する処理の手順について説明する。情報処理装置30は生成処理と管理処理とを実行する。情報処理装置30はマルチタスクOSを備え、これらの処理を並行して実行可能である。
【0074】
〔6−1.登録処理〕
最初に登録処理を説明する。図11は、登録処理の一例を示すフローチャートである。登録処理は、管理情報データベース321に管理情報を登録する処理である。情報処理装置30は、情報処理装置30の運営者から処理の開始を命令されると登録処理を実行する。
【0075】
まず、情報処理装置30は、サービス提供サーバ20それぞれに対し暗号化IDの送信要求を行う(ステップS11)。そして、情報処理装置30は、要求を行った全てのサービス提供サーバ20から暗号化IDを受信したか判別する(ステップS12)。暗号化IDを送信していないサービス提供サーバ20が1つでもある場合(ステップS12:No)、情報処理装置30は、全てのサービス提供サーバ20から暗号化IDを受信するまでステップS12を繰り返す。
【0076】
全てのサービス提供サーバ20から暗号化IDを受信した場合(ステップS12:Yes)、情報処理装置30は、暗号化IDの関連付けを実行する(ステップS13)。例えば、情報処理装置30は、図1に示すように、ユーザU1の暗号化IDを示すE−U1A、E−U1B、E−U1Cを関連付ける。また、情報処理装置30は、ユーザU2の暗号化IDを示すE−U2A、E−U2B、E−U2Cを関連付ける。また、情報処理装置30は、ユーザU3の暗号化IDを示すE−U3A、E−U3B、E−U3Cを関連付ける。
【0077】
そして、情報処理装置30は、関連付けた情報を管理情報データベース321に登録する(ステップS14)。登録が完了したら、情報処理装置30は、登録処理を終了する。
【0078】
〔6−2.管理処理〕
最初に管理処理を説明する。図12は、管理処理の一例を示すフローチャートである。管理処理は、管理情報の管理に関する処理である。情報処理装置30は、電源が投入されると、管理処理を開始する。
【0079】
まず、情報処理装置30は、サービス提供サーバ20或いは情報処理装置30の運営者の端末からリクエスト(処理の要求)を受信したか判別する(ステップS21)。リクエストを受信していない場合(ステップS21:No)、情報処理装置30は、リクエストを受信するまでステップS21を繰り返す。
【0080】
リクエストを受信した場合(ステップS21:Yes)、リクエストがサービス提供サーバ20からの暗号化IDを伴うデータの送信要求か判別する(ステップS22)。データの送信要求でない場合(ステップS22:No)、情報処理装置30は、ステップS26に処理を進める。
【0081】
リクエストがサービス提供サーバ20からのデータの送信要求の場合(ステップS22:Yes)、情報処理装置30は、管理情報データベース321に登録されている管理情報に基づいて、データの送信要求とともに送信された暗号化IDに対応する他のシステムの暗号化IDを特定する(ステップS23)。
【0082】
そして、情報処理装置30は、特定した暗号化IDを使って、該当のサービス提供サーバ20からユーザデータを取得する(ステップS24)。そして、情報処理装置30は、リクエストを送信したサービス提供サーバ20に対し、取得したユーザデータを送信する(ステップS25)。送信が完了したら、情報処理装置30は、ステップS21に処理を戻す。
【0083】
ステップS22に戻り、リクエストがサービス提供サーバ20からのデータの送信要求でない場合(ステップS22:No)、管理情報の管理のための処理を実行する(ステップS26)。例えば、情報処理装置30は、情報処理装置30の運営者から、所定のサービス提供主体をグループから排除するための処理を命令された場合には、所定のサービス提供主体が提供する暗号化IDを管理情報から削除する。この場合、グループに残るサービス提供主体が提要した暗号化IDを同一のユーザIDから生成した他の暗号化IDに変更してもよい。また、情報処理装置30は、グループに新たにサービス提供主体が加わった場合には、新たに加わったサービス提供主体が提供する暗号化IDを管理情報に追加する。
【0084】
処理が完了したら、情報処理装置30は、ステップS21に処理を戻し、リクエストの受信を待機する。
【0085】
〔7.変形例〕
上述の実施形態は一例を示したものであり、種々の変更及び応用が可能である。
【0086】
例えば、上述の実施形態では、サービス提供サーバ20が提供するサービスは、ネットを介して提供されるサービスであるものとしたが、サービスはネットを介して提供されるサービスに限られない。サービスは、ネットを使用しないサービスであってもよい。例えば、サービスは、小売店での対面販売であってもよい。
【0087】
本実施形態の情報処理装置30を制御する制御装置は、専用のコンピュータシステムによって実現してもよいし、通常のコンピュータシステムにより実現してもよい。例えば、上述の動作を実行するためのプログラムを、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムをコンピュータにインストールし、上述の処理を実行することによって制御装置を構成してもよい。制御装置は、情報処理装置30の外部の装置(例えば、パーソナルコンピュータ)であってもよいし、内部の装置(例えば、制御部33)であってもよい。また、上記プログラムをインターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OS(Operating System)とアプリケーションソフトとの協働により実現してもよい。この場合には、OS以外の部分を媒体に格納して配布してもよいし、OS以外の部分をサーバ装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。
【0088】
また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0089】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0090】
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0091】
〔8.ハードウェア構成〕
実施形態及び変形例に係る情報処理装置30は、例えば図13に示すような構成のコンピュータ1000によっても実現可能である。図13は、情報処理装置30の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU(Central Processing Unit)1100、RAM1200、ROM1300、HDD(Hard Disk Drive)1400、通信インタフェース(I/F)1500、入出力インタフェース(I/F)1600、及びメディアインタフェース(I/F)1700を有する。
【0092】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0093】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インタフェース1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
【0094】
CPU1100は、入出力インタフェース1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インタフェース1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インタフェース1600を介して出力装置へ出力する。
【0095】
メディアインタフェース1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインタフェース1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0096】
例えば、コンピュータ1000が実施形態に係る情報処理装置30として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部33を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
【0097】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0098】
〔9.効果〕
本実施形態によれば、情報処理装置30は、複数のシステムがそれぞれ保持するユーザ識別情報を暗号化した暗号化IDを取得する。そして、情報処理装置30は、同一ユーザを示す複数の暗号化IDを関連付けた管理情報を管理する。これにより、情報処理装置30は、複数のサービス提供主体が保持するユーザIDを統一することなく、ユーザIDが統一されたのと同様の効果をサービス提供主体に提供できる。しかも、関連付けられるユーザIDは暗号化されているので、サービス提供主体は自身が保有するユーザIDが他のサービス提供主体に取得される心配はない。この結果、暗号化IDの提供がスムーズに行われるようになるので、サービス提供主体は、暗号化IDを介して、他のサービス提供主体が保有するデータを容易に利用できる。
【0099】
また、情報処理装置30は、複数のシステムの1つである第1のシステムから第1の暗号化IDを受信した場合に、管理情報に基づいて、第1の暗号化IDに対応する他のシステムの暗号化IDを特定する。そして、情報処理装置30は、他のシステムの暗号化IDに関する情報を第1のシステムに対して送信する。例えば、情報処理装置30は、他のシステムの暗号化IDを第1のシステムに対して送信する。これにより、サービス提供主体は、他の暗号化IDを介して、他のサービス提供主体が保有するデータを容易に利用できる。
【0100】
また、情報処理装置30は、他のシステムが保持するユーザデータであって他のシステムの暗号化IDで特定されるユーザデータを第1のシステムに対して送信する。これにより、第1のシステムを運営するサービス提供主体は、他のサービス提供主体が保有するデータを容易に取得できる。他のサービス提供主体も自身が保持するユーザIDを第1のシステムを運営するサービス提供主体に知られることはない。
【0101】
また、情報処理装置30は、複数の暗号化IDそれぞれを識別子とし、複数の識別子それぞれに同一ユーザを示す他の複数のシステムの暗号化IDを関連付けた情報が含まれる管理情報を管理する。これにより、情報処理装置30は、NoSQL等のハイパースケールなデータベース情報処理システム(スケールアウト型のシステム)の使用が容易になるので、データベースのスケール(特に、水平スケール)を大きくすることができる。
【0102】
また、情報処理装置30は、複数のシステムの中から選択されるシステムの暗号化IDを管理情報から削除する。これにより、情報処理装置30は、協業関係から離脱したサービス提供主体を介して、情報が漏洩する可能性を低くできる。
【0103】
また、情報処理装置30は、複数のシステムに新たに加わったシステムの暗号化IDを管理情報に追加する。これにより、情報処理装置30は、新たなサービス提供主体を容易に情報の共有関係に取り込むことができる。結果として、情報処理装置30は、新たなサービス提供主体と既存のサービス提供主体との情報の共有を促進することができる。
【0104】
管理部は、管理情報に記憶されている暗号化IDを同一のユーザ識別情報から生成した他の暗号化IDに変更する。これにより、情報処理装置30は、敵対的買収等により協業関係から離脱したサービス提供主体への情報漏洩の可能性を低くできる。
【0105】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0106】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、通知部は、通知手段や通知回路に読み替えることができる。
【符号の説明】
【0107】
1…情報処理システム
10、10、10、10…端末装置
11、21、31…通信部
12…入力部
13、22、32…記憶部
14…出力部
15、23、33…制御部
20、20、20、20…サービス提供サーバ
221…ユーザ情報データベース
30…情報処理装置
321…管理情報データベース
331…取得部
332…管理部
333…特定部
334…送信部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13