サーバ装置、アクセス制御方法及びアクセス制御プログラム
【課題】データベース間でユーザの私的な関係に基づくアクセス制御を行うと共にデータベース間でのトラフィックを私的な関係を有するユーザの数に比例したデータ量に抑えてアクセス制御を効率的に行う。
【解決手段】アプリケーションサーバ1の検索部は、ユーザ(クライアント4)からインターネット5を介してコンテンツデータの検索のクエリを受けて、前記コンテンツデータと共にこのデータの所有者の識別子を保存したコンテンツDB3からの前記コンテンツデータの検索時に、前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報DB2から取得する。そして、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧とを前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索する。
【解決手段】アプリケーションサーバ1の検索部は、ユーザ(クライアント4)からインターネット5を介してコンテンツデータの検索のクエリを受けて、前記コンテンツデータと共にこのデータの所有者の識別子を保存したコンテンツDB3からの前記コンテンツデータの検索時に、前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報DB2から取得する。そして、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧とを前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webサイトに保存されたコンテンツに対してユーザ情報に基づくアクセス制御技術、特に、コンテンツの公開範囲を友人関係に例示されるユーザ間の私的な関係に基づいて設定するアクセス制御技術に関する。
【背景技術】
【0002】
ネットワークを介してデータベースへのアクセスを制御する技術としては例えば以下の非特許文献1や特許文献1に開示されたアクセス制御技術が挙げられる。
【0003】
非特許文献1に開示されたアクセス制御技術は、データベースのスキーマ情報にアクセス権情報や論理情報などを付加することにより、メタデータを構築し、これをユーザ情報とともにディレクトリサーバで管理している。この技術は分離されたデータベース間でのアクセス制御を可能とさせる。この技術は役割(role)に基づくアクセス制御は提供するが、友人関係に基づくアクセス制御は提供しない。
【0004】
特許文献1に開示された情報検索技術は、文書へのアクセス権を有するクライアントの識別子に制御文字を付加した文字列を前記文書と共に予め記憶手段に格納しておき、文書へのアクセス要求時に、検索語に対して前記アクセス要求したクライアントの識別子に前記制御文字を付与した文字列を追加して全文検索を実行する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】相馬仁志,市川範子,近藤誠一,松田昇平,松岡恭正,「メタデータを用いたデータアクセス制御ミドルウェアの開発」,日本データベース学会Letters Vol.2,No.3,2003年12月,pp.29−32
【特許文献】
【0006】
【特許文献1】特開2009−169736号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
非特許文献1のアクセス制御技術では、分離されたデータベース間で友人関係に基づくアクセス制御を実施する場合、一般的には検索結果に対してフィルタを実行することで実現している。すなわち、検索実行後、改めてフィルタを実行していた。しかしながら、検索結果が多いときにはデータベース間でのトラフィックが大きくなるという課題があった。
【0008】
特許文献1の情報検索技術は、ユーザ情報データベースに登録されている友人リストを変更しても、過去に登録したデータのアクセス制御はその当時の友人関係に基づいて行われるという課題があった。
【課題を解決するための手段】
【0009】
そこで、本発明は、コンテンツデータの登録時に当該コンテンツデータとともにその所有者の識別子をコンテンツデータベースに保存する。そして、コンテンツデータの検索時にこの検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記検索されるコンテンツデータの所有者の識別子が前記取得された一覧に含まれる場合に前記コンテンツデータベースからの当該コンテンツデータの読み取りを許可する。
【0010】
本発明のサーバ装置及びアクセス制御方法の態様としては、ユーザのコンテンツデータの他のユーザへの公開を制御するサーバ装置及びアクセス制御方法であって、コンテンツデータと共にこのデータの所有者の識別子を保存したコンテンツデータベースから、前記コンテンツデータの検索時に、検索手段は、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧とを前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索する。
【0011】
コンテンツデータを全てのユーザに公開する場合には、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子として全てのユーザを表す識別子が保存されるようにし、前記検索手段が、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて全てのユーザを表す識別子に対応したコンテンツデータも検索対象とするようにするとよい。
【0012】
また、本発明のサーバ装置及びアクセス制御方法の他の態様としては、ユーザのコンテンツデータの他のユーザへの公開を制御するサーバ装置及びアクセス制御方法であって、コンテンツデータと共にこのデータの所有者の識別子と前記コンテンツデータの公開先の範囲を示す公開範囲が前記所有者と私的な関係を有するユーザであることを示す識別子とを保存したコンテンツデータベースから、前記コンテンツデータの検索時に、検索手段が、前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータを検索する。
【0013】
上記他の態様において、コンテンツデータを全てのユーザに公開する場合には、前記コンテンツデータベースに、前記コンテンツデータと共に当該データの所有者の識別子と前記所有者と私的な関係を有するユーザの識別子として全てのユーザを表す識別子とが保存されるようにし、前記検索手段が、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とするようにするとよい。
【0014】
尚、本発明は上記のサーバ装置を構成する各手段としてコンピュータを機能させるアクセス制御プログラムの態様とすることもできる。
【発明の効果】
【0015】
以上の発明によれば、分離されたデータベース間でユーザの私的な関係に基づくアクセス制御が行えると共にデータベース間でのトラフィックを私的な関係を有するユーザの数に比例したデータ量に抑えてアクセス制御を効率的に行える。
【図面の簡単な説明】
【0016】
【図1】発明に係るサーバ装置を備えたアクセス制御システムの構成を示したブロック図。
【図2】発明に係るサーバ装置の構成を示したブロック図。
【図3】発明の実施形態1に係るサーバ装置によるコンテンツデータの登録の手順を説明したシーケンス図。
【図4】発明の実施形態1に係るユーザ情報データベースの一例を示した図。
【図5】発明の実施形態1に係るコンテンツデータベースの一例を示した図。
【図6】発明の実施形態1に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【図7】発明の実施形態2に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【図8】発明の実施形態2に係るユーザ情報データベースの一例を示した図。
【図9】発明の実施形態3に係るサーバ装置によるコンテンツデータの登録の手順を説明したシーケンス図。
【図10】発明の実施形態3に係るユーザ情報データベースの一例を示した図。
【図11】発明の実施形態3に係るコンテンツデータベースの一例を示した図。
【図12】発明の実施形態3に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【図13】発明の実施形態4に係るユーザ情報データベースの一例を示した図。
【図14】発明の実施形態4に係るサーバ装置によるコンテンツデータの登録の手順を説明したシーケンス図。
【図15】発明の実施形態4に係るコンテンツデータベースの一例を示した図。
【図16】発明の実施形態4に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【図17】発明の実施形態5に係るサーバ装置によるコンテンツデータの登録の手順を説明したシーケンス図。
【図18】発明の実施形態5に係るコンテンツデータベースの一例を示した図。
【図19】発明の実施形態5に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【発明を実施するための形態】
【0017】
以下、図面を参照しながら本発明の実施形態について説明する。
【0018】
図1に示された本発明に係るアプリケーションサーバ1は私的な関係を有するユーザ間で利用可能なWebサイトに保存されたユーザ情報DB(ユーザ情報データベース)2、コンテンツDB(コンテンツデータベース)3間でクライアント(ユーザ)4の私的な関係に基づくアクセス制御を行う。前記私的な関係を有するWebサイトとしては例えば友人関係を利用したネットワーキングサービスがある。当該サービスには、片方向のユーザの友人関係を設定できるサービス(例えば、Twitter)と、双方向のユーザの友人関係のみを設定できるサービス(例えば、たとえばmixi)が挙げられる。
【0019】
ユーザ情報DB2には、ユーザID(ユーザ識別子)、ユーザ名、パスワードなどログインに必要な情報に加え、ユーザと私的な関係を有する他のユーザのユーザ識別子の一覧が保存されている。ユーザ情報DB2の具体的な態様としては例えば図4,8,10,13に開示されたユーザ情報DB21〜24が挙げられる。ユーザ情報DB21〜24にはユーザと私的な関係を有する他のユーザのユーザ識別子の一覧として「友人リスト」が格納されている。このように、ユーザ情報DB2は片方向のユーザ(各ユーザ)の友人関係を管理する。そして、片方向のユーザの友人関係の組み合わせにより、双方向のユーザの友人関係を表現できる。つまり、アプリケーションサーバ1はこのユーザ情報DB2を用いることでいずれの友人関係を設定するネットワーキングサービスにも適用可能である。
【0020】
コンテンツDB3にはコンテンツデータとこのデータに対するアクセス制御に必要な情報が保存されている。前記アクセス制御に必要な情報としては、例えばコンテンツのデータID(データ識別子)と当該コンテンツデータの所有者ID(所有者識別子)が挙げられる。コンテンツDB3の具体的な態様としては例えば図5,11,15,18に開示されたコンテンツDB31,33〜35が挙げられる。
【0021】
これらのDB2,3は要求条件が異なるため、異なるシステムによって実現されることがある(例えば、ユーザ情報DB2には厳密なトランザクション処理が求められるが、コンテンツDB3はトランザクションの厳密さを犠牲にして規模性を重視するなど)。また、これらのDB2,3は複数のコンポーネントによって実装されていてもよい。
【0022】
アプリケーションサーバ1は、このDB2,3に保存されたデータを操作し、インターネット5を介したクライアント4からのリクエストに応答する。
【0023】
アプリケーションサーバ1は図2に示したように登録部11と認証部12と検索部13とを備える。登録部11,認証部12,検索部13は通信部14を介してコンテンツDB2,ユーザ情報DB3にアクセス可能となっている。
【0024】
登録部11はコンテンツデータ、当該データのデータID、当該データの所有者ID、友人ID(当該所有者と私的な関係を有するユーザの識別子)等を通信部14経由でコンテンツDB2に登録(保存)する。さらに、ユーザのユーザ情報(ユーザID、ユーザ名、パスワード、友人リスト、公開範囲等)をユーザ情報DB2に登録(保存)する。
【0025】
認証部12は図1に示されたインターネット5を介したコンテンツデータの登録または検索の際にクライアント4のユーザ名及びパスワードを通信部14経由でユーザ情報DB3に格納されたユーザ名及びパスワードと照合して前記アクセスの認証を行う。
【0026】
検索部13はクライアント4からの検索要求に基づきコンテンツデータ2に格納されたコンテンツデータを検索する。
【0027】
また、アプリケーションサーバ1はユーザ情報DB2とコンテンツDB3から独立したコンポーネントの態様となっているが、いずれかのDB2,3と一緒に実装されていてもかまわない。あるいは、複数のコンポーネントによってアプリケーションサーバを構成してもよい。このアプリケーションサーバ1を有するWebサイトに対して、複数のクライアント4がデータの登録あるいは読み取りをリクエストする。
【0028】
発明に係るアクセス制御は、アクセス制御の対象によって2つに分けられる。
【0029】
すなわち、第一のアクセス制御の態様としては、後述の実施形態1〜3のように、ユーザごとにデータの公開範囲を選択する方式である。例えば、ユーザjoeのデータは彼(joe)にしかアクセスできないように設定されるが、ユーザkateのデータは彼女(kate)の友人に公開される態様が挙げられる。
【0030】
第二のアクセスの態様としては、後述の実施形態4,5のように、データごとに公開範囲を選択する方式である。例えば、ユーザjoeは、彼(joe)のデータの一部を友人に公開し、残りを本人(joe)しかアクセスできないように設定する態様が挙げられる。
【0031】
以下、本発明の具体的な実施形態について図面を参照しながら説明する。
【0032】
(実施形態1)
実施形態1は全ユーザの公開範囲が「友人」である場合の態様である。
【0033】
本実施形態に係るアプリケーションサーバ1では、図3,図5に示したように、コンテンツデータの登録時に、コンテンツDB31において、前記コンテンツデータと共にこのデータの所有者IDが保存される(S1〜S5)。
【0034】
そして、図6に示したように、コンテンツDB31からのコンテンツデータの検索時では、検索部13が、前記検索を要求したユーザと私的な関係を有するユーザの識別子(友人ID)の一覧(友人リスト)をユーザ情報DB21から取得する(S13,14)。次いで、前記コンテンツデータの検索を要求したユーザの識別子(所有者ID)と前記取得した一覧(友人リスト)とを前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索対象とする(S15)。
【0035】
先ず、本実施形態におけるコンテンツデータの登録の具体的な手順について図3〜図5を参照しながら説明する。ユーザ名「joe」であるクライアント41から供されたコンテンツデータがアプリケーションサーバ1によって登録される事例について説明する。
【0036】
予め、アプリケーションサーバ1の登録部11はユーザjoe(クライアント41)の友人リストをユーザ情報DB21に登録する。この登録方法は任意である。ユーザ情報DB21は図4に例示されたように「ユーザID」と「ユーザ名」と「パスワード」と「友人リスト」のカラムを有する。例えば、クライアント41の場合、「ユーザID」のセルには「1」が、「ユーザ名」のセルには「joe」が、「友人リスト」のセルにはユーザkate,meg,tomのIDとして「2」,「3」,「5」が登録される。
【0037】
次に、図3を参照しながらユーザ名「joe」であるクライアント41から供されたコンテンツデータをアプリケーションサーバ1が登録する具体的な手順S1〜S5について説明する。
【0038】
S1:クライアント(ユーザjoe)41はコンテンツデータの登録のために当該データをインターネット経由でアプリケーションサーバ1に送信する。
【0039】
S2:アプリケーションサーバ1の認証部12はクライアント41から供されたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB21に格納されたユーザ情報と照合して認証を行う。
【0040】
S3:ステップS2での認証に成功すると、アプリケーションサーバ1の登録部11は、コンテンツデータとその所有者ID「1」を通信部14経由でコンテンツDB31に登録する。コンテンツDB31は図5に例示されたように「ユーザID」と「コンテンツデータ」と「所有者ID」のカラムを有する。図示された事例では、「データ」のセルにはコンテンツデータとして「xxx」が、「所有者ID」のセルには当該コンテンツデータの所有者であるユーザjoeのIDとして「1」が登録される。
【0041】
S4:アプリケーションサーバ1は通信部14を介してコンテンツDB31からステップS3の登録の応答を受ける。
【0042】
S5:アプリケーションサーバ1はコンテンツDB31からの応答・結果をインターネット経由でクライアント(ユーザjoe)41に転送する。
【0043】
次に、図6を参照しながらユーザjoeと私的な関係にある者すなわち友人であるユーザkateがコンテンツデータを検索する具体的な手順S11〜S17について説明する。
【0044】
S11:クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0045】
S12:アプリケーションサーバ1の認証部12はステップS11で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB21に登録されたユーザ情報と照合して認証を行う。
【0046】
S13:ステップS12の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB21からユーザkateの友人リスト「1,3」を検索する。
【0047】
S14:アプリケーションサーバ1の検索部13はステップS13の検索によってユーザ情報DB21から得られた友人リスト「1,3」を取得する。
【0048】
S15:アプリケーションサーバ1の検索部13は検索クエリにユーザkateのID「2」とステップS14で取得された「友人リスト」を追加し、当該リストに含まれる友人のいずれかが登録したデータのみを検索対象としてコンテンツDB31から検索する。例えば、SQLであれば、元の検索クエリに”AND(ユーザID IN 1,2,3)”のようなクエリを追加することで、ユーザID1,2,3のいずれかに対応したコンテンツデータのみを検索対象にできる。このようにして、アクセス制御が実行される。
【0049】
S16:アプリケーションサーバ1はステップS15の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0050】
S17:アプリケーションサーバ1は前記取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0051】
以上のように実施形態1に係るアプリケーションサーバ1によれば分離されたデータベース間でユーザの私的な関係に基づくアクセス制御が可能になる。また、データベース間でのトラフィックを検索結果ではなく、私的な関係を有するユーザの数に比例したデータ量に抑えることができ、アクセス制御を効率的に実行できる。
【0052】
すなわち、従来方式では、アクセス制御を実行する前の全検索結果をアプリケーションサーバに送り、友人関係を利用してフィルタを行っていたが、フィルタ前の全検索結果は膨大になりうるため、非常に大きなトラフィックが発生する。
【0053】
これに対して本実施形態に係るアクセス制御では、アプリケーションサーバ1からユーザの「友人リスト」を付加した検索クエリをコンテンツDB31に送り、コンテンツDB31で検索とアクセス制御を同時に実行する。「友人リスト」は検索結果に比べて小さいので、上記の従来方式の問題が解決される。
【0054】
(実施形態2)
実施形態1に係るアクセス制御はコンテンツの公開範囲が「友人」である場合の態様であるが、図7に示された実施形態2に係るアクセス制御はユーザ情報DBにおいて公開範囲を「自分(データ所有者自身)のみ」に設定しているユーザがいる場合の態様である。
【0055】
本実施形態に係るアプリケーションサーバ1では、図8に示したように、ユーザ情報DB22において、少なくとも、ユーザの識別子(ユーザID)と当該ユーザと私的な関係を有するユーザの識別子の一覧(友人リスト)と、当該ユーザの所有するコンテンツデータの公開先の範囲を示す公開範囲(例えば、自分,友人)とが格納されている。
【0056】
そして、図7に示したように、前記コンテンツデータの検索には、検索部13は、ユーザ情報DB22から前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を取得する際に、前記コンテンツデータの公開範囲を私的な関係を有するユーザまでに指定しているユーザのみの識別子(友人ID)の一覧(友人リスト)を取得する(S23,S24)。
【0057】
本実施形態に係る図8に例示されたユーザ情報DB22には、予め、「ユーザID」、「ユーザ名」、「パスワード」、「友人リスト」のカラムに加え「公開範囲」のカラムが登録されている。図示されたユーザ情報DB22の事例では、例えば、ユーザ名「joe」であるユーザ(ユーザID「1」)が公開範囲を「自分」に設定している。「公開範囲」が「自分」であることは、コンテンツデータの公開先の範囲が当該データの所有者のみを意味する。一方、他のユーザ(例えば、ユーザkate,meg,tom,…)は公開範囲を「友人」に設定している。「公開範囲」が「友人」であることは、コンテンツデータの公開先の範囲が当該データの所有者のみならず私的な関係を有するユーザまで及ばせることを意味する。
【0058】
実施形態2でも実施形態1と同様に予めコンテンツDB31へのコンテンツデータの登録が実行される。登録の手順は実施形態1に係る登録手順S1〜S4と同じである。
【0059】
図7を参照しながら実施形態2に係るコンテンツデータ検索の具体的な手順S21〜S27について説明する。
【0060】
S21:例えば、クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0061】
S22:アプリケーションサーバ1の認証部12はステップS11で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB22に登録されたユーザ情報と照合して認証を行う。
【0062】
S23:ステップS22の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB22からユーザkateの友人(joe,meg)のうち公開範囲を「友人」に設定している友人を検索する。
【0063】
S24:アプリケーションサーバ1の検索部13はステップS23の検索によってユーザ情報DB21から得られた友人(meg)のユーザID「3」を取得する。
【0064】
S25:アプリケーションサーバ1の検索部13は所有者(kate)のユーザID「2」と前記取得された友人(meg)のユーザID「3」とを検索クエリに追加する。すなわち、ユーザID「2」,「3」に対応するユーザが登録したコンテンツデータのみを検索対象としてコンテンツDB31から検索する。このようにして、本実施形態のアクセス制御が実行される。
【0065】
S26:アプリケーションサーバ1はステップS25の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0066】
S27:アプリケーションサーバ1はステップS26で取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0067】
以上のように、実施形態2に係るアクセス制御よれば、上述の実施形態1の効果に加えて、公開範囲の変更にも柔軟に対応できる。
【0068】
(実施形態3)
実施形態3に係るアクセス制御は図10に例示されたユーザ情報DB23のようにユーザ情報DBの「公開範囲」のカラムに「全体」と設定しているユーザが存在する場合の態様である。「公開範囲」が「全体」であることは、所有するコンテンツデータを全てのユーザに公開することを意味する。図10に示されたユーザ情報DB23の事例では「公開範囲」のセルに対して「全体」と設定しているユーザは「tom」となっている。
【0069】
本実施形態に係るアプリケーションサーバ1では、コンテンツデータを全てのユーザに公開する場合に、図11に示されたように、コンテンツDB33において、前記コンテンツデータと共に当該データの所有者の識別子として全てのユーザを表す識別子(例えば、ユーザID「0」)が保存されている。
【0070】
そして、図12に示されたように、検索部13は、コンテンツDB33からのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧(友人リスト)をユーザ情報DB23から取得する(S31〜S34)。次いで、前記検索を要求したユーザの識別子と前記取得した一覧と共にコンテンツDB33に保存された前記全てのユーザを表す識別子(ユーザID「0」)を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とする(S35)。
【0071】
図9を参照しながらコンテンツデータを全体に公開するユーザtom(クライアント44)が当該データを登録する具体的な手順S301〜S307について説明する。
【0072】
S301:クライアント(ユーザtom)44はコンテンツデータの登録のために当該データをアプリケーションサーバ1に送信する。
【0073】
S302:アプリケーションサーバ1の認証部12はクライアント41から供されたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB23に格納されたユーザ情報と照合して認証を行う。
【0074】
S303:ステップS302での認証に成功すると、アプリケーションサーバ1はユーザ情報DBに対してユーザtomの公開範囲を通信部14経由で要求する。
【0075】
S304:アプリケーションサーバ1はユーザ情報DB23からユーザtomの公開範囲を通信部14経由で取得する。
【0076】
S305:アプリケーションサーバ1の登録部11はステップS304で取得された公開範囲が「全体」であるため、クライアント44から供されたデータに加えて「全体」を表すユーザID「0」をコンテンツDB23のユーザIDのセルに登録する。図11に示されたようにコンテンツDB23には「ユーザID」のセルにユーザID「0」が登録される。
【0077】
S306:アプリケーションサーバ1は通信部10を介してコンテンツDB33からステップS303の登録の応答を受ける。
【0078】
S307:アプリケーションサーバ1はコンテンツDB33からの応答・結果をインターネット経由でクライアント(ユーザtom)44に転送する。
【0079】
次に、図12を参照しながら実施形態3に係るコンテンツデータ検索の具体的な手順S31〜S37について説明する。
【0080】
S31:例えば、クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0081】
S32:アプリケーションサーバ1の認証部12はステップS31で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB23に登録されたユーザ情報と照合して認証を行う。
【0082】
S33:ステップS32の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB32からユーザkateの友人(joe,meg)のうち公開範囲を「友人」に設定している友人を検索する。
【0083】
S34:アプリケーションサーバ1の検索部13はステップS33の検索によってユーザ情報DB23から得られた友人(meg)のユーザID「3」を取得する。
【0084】
S35:アプリケーションサーバ1の検索部13は、所有者(kate)のユーザID「2」と前記取得された友人(meg)のユーザID「3」とに加えて、全体ID「0」を検索クエリに追加する。すなわち、ユーザID「2」,「3」及び全体ID「0」に対応するコンテンツデータのみを検索対象としてコンテンツDB33から検索する。このようにして、本実施形態のアクセス制御が実行される。
【0085】
S36:アプリケーションサーバ1はステップS35の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0086】
S37:アプリケーションサーバ1はステップS36で取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0087】
以上のように実施形態2に係るアクセス制御は、所有者IDと友人IDだけでなく、全体IDを検索クエリに追加することで、全てのユーザへ公開が許可されたデータ(事例ではユーザtomの所有するコンテンツデータ)も検索対象にできる。このように、本実施形態に係るアクセス制御によれば上述の実施形態1の効果に加えて公開範囲の変更にも柔軟に対応する。
【0088】
(実施形態4)
実施形態4に係るアクセス制御はデータごとに公開範囲が設定され、公開範囲が「自分(データ所有者自身)」あるいは「友人」である場合の態様である。
【0089】
本実施形態に係るアプリケーションサーバ1では、図15に示したように、予め、コンテンツDB34において、コンテンツデータと共にこのデータの所有者の識別子(所有者ID)と前記コンテンツデータの公開先の範囲を示す公開範囲が前記所有者と私的な関係を有するユーザであることを示す識別子(例えば友人ID「1」)とが格納されている。
【0090】
そして、図16に示されたように、検索部13は、前記コンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧(例えば友人ID「1,3」)をユーザ情報DB24から取得する(S41〜S44)。次いで、前記コンテンツデータの検索を要求したユーザの識別子(例えば所有者ID「2」)と前記取得した一覧を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータのみならず前記一覧に含まれる識別子に対応したコンテンツデータを検索する(S45)。
【0091】
予め、ユーザは図13に例示されたようにユーザ情報DB24に友人リストを登録している。ユーザ情報DB24は「ユーザID」と「ユーザ名」と「パスワード」と「友人リスト」のカラムを有する。図示された事例では各カラムのセルには図4に例示されたユーザ情報DB21と同じ内容のユーザ情報が登録されている。
【0092】
公開範囲が「自分」あるいは「友人」である場合に、例えば、ユーザ名「joe」のクライアント41から供されたコンテンツデータをアプリケーションサーバ1が登録する具体的な手順S401〜S405について図14を参照しながら説明する。
【0093】
S401:クライアント(ユーザjoe)41はコンテンツデータの登録のために当該データをインターネット経由でアプリケーションサーバ1に送信する。このとき、登録データの公開範囲として「友人」を指定する。
【0094】
S402:アプリケーションサーバ1の認証部12はクライアント41から供されたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB24に格納されたユーザ情報と照合して認証を行う。
【0095】
S403:ステップS402での認証に成功すると、アプリケーションサーバ1の登録部11は、コンテンツデータに加えてその所有者であるユーザjoeのユーザID「1」を通信部14経由でコンテンツDB34に登録する。コンテンツDB34は図15に例示されたように「ユーザID」と「コンテンツデータ」と「所有者ID」と「友人ID(友人識別子)」のカラムを有する。ステップ403では、公開範囲が友人であれば、図15に示したように、コンテンツDB34の「友人ID」のセルに対して所有者ID「1」が書き込まれる。公開範囲が「自分」のみであれば、友人IDは空白のままにしておく。
【0096】
S404:アプリケーションサーバ1は通信部14を介してコンテンツDB34からステップS403の登録の応答を受ける。
【0097】
S405:アプリケーションサーバ1はコンテンツDB34からの応答・結果をインターネット経由でクライアント(ユーザjoe)41に転送する。
【0098】
次に、例えば、ユーザjoeの友人であるユーザkateがコンテンツデータを検索する場合の具体的な手順S41〜S47について図16を参照しながら説明する。
【0099】
S41:クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0100】
S42:アプリケーションサーバ1の認証部12はステップS11で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB24に登録されているユーザ情報と照合して認証を行う。
【0101】
S43:ステップS42の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB24からユーザkateの友人リスト「1,3」を検索する。
【0102】
S44:アプリケーションサーバ1の検索部13はステップS43の検索によってユーザ情報DB24から得られた友人リスト「1,3」を取得する。
【0103】
S45:アプリケーションサーバ1の検索部13は検索クエリにユーザkateのID「2」とステップS44で取得された友人リスト「1,3」とを追加し、コンテンツDB34から、自分(ユーザkate)または友人の登録したコンテンツデータを検索対象としてコンテンツDB34から検索する。例えば、SQLであれば、元の検索クエリに”AND(所有者ID=2)AND(友人ID IN = 1,3)”のようなクエリを追加することで、ユーザID1,2,3のいずれかに対応したコンテンツデータのみを検索対象にできる。尚、公開範囲が「自分」のみであるデータは、友人IDが空白であるため、所有者が行う検索でしかヒットしない。このようにして、アクセス制御が実行される。
【0104】
S46:アプリケーションサーバ1はステップS45の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0105】
S47:アプリケーションサーバ1は前記取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0106】
以上のように実施形態4に係るアクセス制御によれば上述の実施形態1の効果に加えて公開範囲の変更にも柔軟に対応できる。
【0107】
(実施形態5)
実施形態5に係るアクセス制御は、データのユーザに対する公開範囲を「全体(全てのユーザ)」に設定、すなわち、所有するコンテンツデータを全てのユーザに公開するように設定しているユーザが存在する場合の態様である。本実施形態では公開範囲は図18に例示されたようにコンテンツDB35に設定される。尚、本実施形態では、予め、図13に例示されたユーザ情報DB24が用意されている。
【0108】
本実施形態に係るアプリケーションサーバ1では、図18に示したように、予め、コンテンツDB35には、前記コンテンツデータと共に当該データの所有者の識別子(例えば所有者ID「1」)と前記所有者と私的な関係を有するユーザの識別子として全てのユーザを表す識別子(例えば全体ID「0」)とが保存されている。
【0109】
そして、図19に示されたように、コンテンツDB35からのコンテンツデータの検索時に、検索部13は、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧(友人リスト)をユーザ情報DB24から取得する(S51〜S54)。次いで、前記検索を要求したユーザの識別子(所有者ID)と前記取得した一覧(友人リスト)と共にコンテンツDB35に保存された前記全てのユーザを表す識別子(全体ID「0」)を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とする。
【0110】
図17を参照しながらユーザ名「joe」であるクライアント41から供されたコンテンツデータがアプリケーションサーバ1によって登録される具体的な手順S501〜S505について説明する。
【0111】
S501:クライアント(ユーザjoe)41はコンテンツデータの登録のために当該データをインターネット経由でアプリケーションサーバ1に送信する。このとき、登録データの公開範囲として「全体」を指定する。
【0112】
S502:アプリケーションサーバ1の認証部12はクライアント41から供されたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB24に格納されたユーザ情報と照合して認証を行う。
【0113】
S503:ステップS402での認証に成功すると、アプリケーションサーバ1の登録部11は、コンテンツデータに加えて、友人IDとして「全体」を表すID「0」を通信部14経由でコンテンツDB35に登録する。コンテンツDB35は図18に例示されたように「ユーザID」と「コンテンツデータ」と「所有者ID」と「友人ID」のカラムを有する。ステップ503では、図18に示されたコンテンツDB35の「友人ID」のセルに対して所有者ID「0」が書き込まれる。
【0114】
S504:アプリケーションサーバ1は通信部14を介してコンテンツDB35からステップS403の登録の応答を受ける。
【0115】
S505:アプリケーションサーバ1はコンテンツDB35からの応答・結果をインターネット経由でクライアント(ユーザjoe)41に転送する。
【0116】
次に、ユーザjoeの友人であるユーザkateがコンテンツデータを検索する場合の具体的な手順S51〜S57について図19を参照しながら説明する。
【0117】
S51:クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0118】
S52:アプリケーションサーバ1の認証部12はステップS51で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB24に登録されているユーザ情報と照合して認証を行う。
【0119】
S53:ステップS52の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB24からユーザkateの友人リスト「1,3」を検索する。
【0120】
S54:アプリケーションサーバ1の検索部13はステップS53の検索によってユーザ情報DB24から得られた友人リスト「1,3」を取得する。
【0121】
S55:アプリケーションサーバ1の検索部13は、検索クエリに対して、ユーザkateのID「2」とステップS44で取得された友人リスト「1,3」に加えて全体ID「0」を追加し、全てのユーザへ公開が許可されたデータ(事例ではユーザID「1」に対応したユーザの所有するコンテンツデータ)も、検索対象として、コンテンツDB35から検索する。例えば、SQLであれば、元の検索クエリに”AND(所有者ID=2)AND(友人ID IN = 1,3,0)”のようなクエリを追加することで、ユーザID1,2,3のいずれかのデータのみに加え、全てのユーザへの公開が許可されたデータを検索対象にできる。
【0122】
S56:アプリケーションサーバ1はステップS45の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0123】
S57:アプリケーションサーバ1は前記取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0124】
以上のように実施形態5に係るアクセス制御によれば上述の実施形態1の効果に加えて公開範囲の変更にも柔軟に対応する。特に、所有者IDと友人IDだけでなく、全てのユーザへ公開が許可されたデータも検索対象にできる。
【0125】
本発明に係るアクセス制御装置はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。すなわち、本発明は、上述の実施形態1〜5のサーバ1を構成する各機能手段11〜13に係る処理をプログラムとして構築し、当該プログラムを通信回線または記録媒体によってコンピュータにインストールすることにより、当該コンピュータによって実施できる。上述のコンテンツDB2,21〜24及びユーザ情報DB3,31〜35はハードディス装置やファイルサーバ等に例示される記憶手段に予め格納するようにすればよい。
【符号の説明】
【0126】
1…アプリケーションサーバ(サーバ装置)
2,21〜24…ユーザ情報DB(ユーザ情報データベース)
3,31〜35…コンテンツDB(コンテンツデータベース)
4,41,42,44…クライアント
13…検索部(検索手段)
【技術分野】
【0001】
本発明は、Webサイトに保存されたコンテンツに対してユーザ情報に基づくアクセス制御技術、特に、コンテンツの公開範囲を友人関係に例示されるユーザ間の私的な関係に基づいて設定するアクセス制御技術に関する。
【背景技術】
【0002】
ネットワークを介してデータベースへのアクセスを制御する技術としては例えば以下の非特許文献1や特許文献1に開示されたアクセス制御技術が挙げられる。
【0003】
非特許文献1に開示されたアクセス制御技術は、データベースのスキーマ情報にアクセス権情報や論理情報などを付加することにより、メタデータを構築し、これをユーザ情報とともにディレクトリサーバで管理している。この技術は分離されたデータベース間でのアクセス制御を可能とさせる。この技術は役割(role)に基づくアクセス制御は提供するが、友人関係に基づくアクセス制御は提供しない。
【0004】
特許文献1に開示された情報検索技術は、文書へのアクセス権を有するクライアントの識別子に制御文字を付加した文字列を前記文書と共に予め記憶手段に格納しておき、文書へのアクセス要求時に、検索語に対して前記アクセス要求したクライアントの識別子に前記制御文字を付与した文字列を追加して全文検索を実行する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】相馬仁志,市川範子,近藤誠一,松田昇平,松岡恭正,「メタデータを用いたデータアクセス制御ミドルウェアの開発」,日本データベース学会Letters Vol.2,No.3,2003年12月,pp.29−32
【特許文献】
【0006】
【特許文献1】特開2009−169736号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
非特許文献1のアクセス制御技術では、分離されたデータベース間で友人関係に基づくアクセス制御を実施する場合、一般的には検索結果に対してフィルタを実行することで実現している。すなわち、検索実行後、改めてフィルタを実行していた。しかしながら、検索結果が多いときにはデータベース間でのトラフィックが大きくなるという課題があった。
【0008】
特許文献1の情報検索技術は、ユーザ情報データベースに登録されている友人リストを変更しても、過去に登録したデータのアクセス制御はその当時の友人関係に基づいて行われるという課題があった。
【課題を解決するための手段】
【0009】
そこで、本発明は、コンテンツデータの登録時に当該コンテンツデータとともにその所有者の識別子をコンテンツデータベースに保存する。そして、コンテンツデータの検索時にこの検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記検索されるコンテンツデータの所有者の識別子が前記取得された一覧に含まれる場合に前記コンテンツデータベースからの当該コンテンツデータの読み取りを許可する。
【0010】
本発明のサーバ装置及びアクセス制御方法の態様としては、ユーザのコンテンツデータの他のユーザへの公開を制御するサーバ装置及びアクセス制御方法であって、コンテンツデータと共にこのデータの所有者の識別子を保存したコンテンツデータベースから、前記コンテンツデータの検索時に、検索手段は、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧とを前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索する。
【0011】
コンテンツデータを全てのユーザに公開する場合には、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子として全てのユーザを表す識別子が保存されるようにし、前記検索手段が、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて全てのユーザを表す識別子に対応したコンテンツデータも検索対象とするようにするとよい。
【0012】
また、本発明のサーバ装置及びアクセス制御方法の他の態様としては、ユーザのコンテンツデータの他のユーザへの公開を制御するサーバ装置及びアクセス制御方法であって、コンテンツデータと共にこのデータの所有者の識別子と前記コンテンツデータの公開先の範囲を示す公開範囲が前記所有者と私的な関係を有するユーザであることを示す識別子とを保存したコンテンツデータベースから、前記コンテンツデータの検索時に、検索手段が、前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータを検索する。
【0013】
上記他の態様において、コンテンツデータを全てのユーザに公開する場合には、前記コンテンツデータベースに、前記コンテンツデータと共に当該データの所有者の識別子と前記所有者と私的な関係を有するユーザの識別子として全てのユーザを表す識別子とが保存されるようにし、前記検索手段が、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とするようにするとよい。
【0014】
尚、本発明は上記のサーバ装置を構成する各手段としてコンピュータを機能させるアクセス制御プログラムの態様とすることもできる。
【発明の効果】
【0015】
以上の発明によれば、分離されたデータベース間でユーザの私的な関係に基づくアクセス制御が行えると共にデータベース間でのトラフィックを私的な関係を有するユーザの数に比例したデータ量に抑えてアクセス制御を効率的に行える。
【図面の簡単な説明】
【0016】
【図1】発明に係るサーバ装置を備えたアクセス制御システムの構成を示したブロック図。
【図2】発明に係るサーバ装置の構成を示したブロック図。
【図3】発明の実施形態1に係るサーバ装置によるコンテンツデータの登録の手順を説明したシーケンス図。
【図4】発明の実施形態1に係るユーザ情報データベースの一例を示した図。
【図5】発明の実施形態1に係るコンテンツデータベースの一例を示した図。
【図6】発明の実施形態1に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【図7】発明の実施形態2に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【図8】発明の実施形態2に係るユーザ情報データベースの一例を示した図。
【図9】発明の実施形態3に係るサーバ装置によるコンテンツデータの登録の手順を説明したシーケンス図。
【図10】発明の実施形態3に係るユーザ情報データベースの一例を示した図。
【図11】発明の実施形態3に係るコンテンツデータベースの一例を示した図。
【図12】発明の実施形態3に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【図13】発明の実施形態4に係るユーザ情報データベースの一例を示した図。
【図14】発明の実施形態4に係るサーバ装置によるコンテンツデータの登録の手順を説明したシーケンス図。
【図15】発明の実施形態4に係るコンテンツデータベースの一例を示した図。
【図16】発明の実施形態4に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【図17】発明の実施形態5に係るサーバ装置によるコンテンツデータの登録の手順を説明したシーケンス図。
【図18】発明の実施形態5に係るコンテンツデータベースの一例を示した図。
【図19】発明の実施形態5に係るサーバ装置によるコンテンツデータの検索の手順を説明したシーケンス図。
【発明を実施するための形態】
【0017】
以下、図面を参照しながら本発明の実施形態について説明する。
【0018】
図1に示された本発明に係るアプリケーションサーバ1は私的な関係を有するユーザ間で利用可能なWebサイトに保存されたユーザ情報DB(ユーザ情報データベース)2、コンテンツDB(コンテンツデータベース)3間でクライアント(ユーザ)4の私的な関係に基づくアクセス制御を行う。前記私的な関係を有するWebサイトとしては例えば友人関係を利用したネットワーキングサービスがある。当該サービスには、片方向のユーザの友人関係を設定できるサービス(例えば、Twitter)と、双方向のユーザの友人関係のみを設定できるサービス(例えば、たとえばmixi)が挙げられる。
【0019】
ユーザ情報DB2には、ユーザID(ユーザ識別子)、ユーザ名、パスワードなどログインに必要な情報に加え、ユーザと私的な関係を有する他のユーザのユーザ識別子の一覧が保存されている。ユーザ情報DB2の具体的な態様としては例えば図4,8,10,13に開示されたユーザ情報DB21〜24が挙げられる。ユーザ情報DB21〜24にはユーザと私的な関係を有する他のユーザのユーザ識別子の一覧として「友人リスト」が格納されている。このように、ユーザ情報DB2は片方向のユーザ(各ユーザ)の友人関係を管理する。そして、片方向のユーザの友人関係の組み合わせにより、双方向のユーザの友人関係を表現できる。つまり、アプリケーションサーバ1はこのユーザ情報DB2を用いることでいずれの友人関係を設定するネットワーキングサービスにも適用可能である。
【0020】
コンテンツDB3にはコンテンツデータとこのデータに対するアクセス制御に必要な情報が保存されている。前記アクセス制御に必要な情報としては、例えばコンテンツのデータID(データ識別子)と当該コンテンツデータの所有者ID(所有者識別子)が挙げられる。コンテンツDB3の具体的な態様としては例えば図5,11,15,18に開示されたコンテンツDB31,33〜35が挙げられる。
【0021】
これらのDB2,3は要求条件が異なるため、異なるシステムによって実現されることがある(例えば、ユーザ情報DB2には厳密なトランザクション処理が求められるが、コンテンツDB3はトランザクションの厳密さを犠牲にして規模性を重視するなど)。また、これらのDB2,3は複数のコンポーネントによって実装されていてもよい。
【0022】
アプリケーションサーバ1は、このDB2,3に保存されたデータを操作し、インターネット5を介したクライアント4からのリクエストに応答する。
【0023】
アプリケーションサーバ1は図2に示したように登録部11と認証部12と検索部13とを備える。登録部11,認証部12,検索部13は通信部14を介してコンテンツDB2,ユーザ情報DB3にアクセス可能となっている。
【0024】
登録部11はコンテンツデータ、当該データのデータID、当該データの所有者ID、友人ID(当該所有者と私的な関係を有するユーザの識別子)等を通信部14経由でコンテンツDB2に登録(保存)する。さらに、ユーザのユーザ情報(ユーザID、ユーザ名、パスワード、友人リスト、公開範囲等)をユーザ情報DB2に登録(保存)する。
【0025】
認証部12は図1に示されたインターネット5を介したコンテンツデータの登録または検索の際にクライアント4のユーザ名及びパスワードを通信部14経由でユーザ情報DB3に格納されたユーザ名及びパスワードと照合して前記アクセスの認証を行う。
【0026】
検索部13はクライアント4からの検索要求に基づきコンテンツデータ2に格納されたコンテンツデータを検索する。
【0027】
また、アプリケーションサーバ1はユーザ情報DB2とコンテンツDB3から独立したコンポーネントの態様となっているが、いずれかのDB2,3と一緒に実装されていてもかまわない。あるいは、複数のコンポーネントによってアプリケーションサーバを構成してもよい。このアプリケーションサーバ1を有するWebサイトに対して、複数のクライアント4がデータの登録あるいは読み取りをリクエストする。
【0028】
発明に係るアクセス制御は、アクセス制御の対象によって2つに分けられる。
【0029】
すなわち、第一のアクセス制御の態様としては、後述の実施形態1〜3のように、ユーザごとにデータの公開範囲を選択する方式である。例えば、ユーザjoeのデータは彼(joe)にしかアクセスできないように設定されるが、ユーザkateのデータは彼女(kate)の友人に公開される態様が挙げられる。
【0030】
第二のアクセスの態様としては、後述の実施形態4,5のように、データごとに公開範囲を選択する方式である。例えば、ユーザjoeは、彼(joe)のデータの一部を友人に公開し、残りを本人(joe)しかアクセスできないように設定する態様が挙げられる。
【0031】
以下、本発明の具体的な実施形態について図面を参照しながら説明する。
【0032】
(実施形態1)
実施形態1は全ユーザの公開範囲が「友人」である場合の態様である。
【0033】
本実施形態に係るアプリケーションサーバ1では、図3,図5に示したように、コンテンツデータの登録時に、コンテンツDB31において、前記コンテンツデータと共にこのデータの所有者IDが保存される(S1〜S5)。
【0034】
そして、図6に示したように、コンテンツDB31からのコンテンツデータの検索時では、検索部13が、前記検索を要求したユーザと私的な関係を有するユーザの識別子(友人ID)の一覧(友人リスト)をユーザ情報DB21から取得する(S13,14)。次いで、前記コンテンツデータの検索を要求したユーザの識別子(所有者ID)と前記取得した一覧(友人リスト)とを前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索対象とする(S15)。
【0035】
先ず、本実施形態におけるコンテンツデータの登録の具体的な手順について図3〜図5を参照しながら説明する。ユーザ名「joe」であるクライアント41から供されたコンテンツデータがアプリケーションサーバ1によって登録される事例について説明する。
【0036】
予め、アプリケーションサーバ1の登録部11はユーザjoe(クライアント41)の友人リストをユーザ情報DB21に登録する。この登録方法は任意である。ユーザ情報DB21は図4に例示されたように「ユーザID」と「ユーザ名」と「パスワード」と「友人リスト」のカラムを有する。例えば、クライアント41の場合、「ユーザID」のセルには「1」が、「ユーザ名」のセルには「joe」が、「友人リスト」のセルにはユーザkate,meg,tomのIDとして「2」,「3」,「5」が登録される。
【0037】
次に、図3を参照しながらユーザ名「joe」であるクライアント41から供されたコンテンツデータをアプリケーションサーバ1が登録する具体的な手順S1〜S5について説明する。
【0038】
S1:クライアント(ユーザjoe)41はコンテンツデータの登録のために当該データをインターネット経由でアプリケーションサーバ1に送信する。
【0039】
S2:アプリケーションサーバ1の認証部12はクライアント41から供されたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB21に格納されたユーザ情報と照合して認証を行う。
【0040】
S3:ステップS2での認証に成功すると、アプリケーションサーバ1の登録部11は、コンテンツデータとその所有者ID「1」を通信部14経由でコンテンツDB31に登録する。コンテンツDB31は図5に例示されたように「ユーザID」と「コンテンツデータ」と「所有者ID」のカラムを有する。図示された事例では、「データ」のセルにはコンテンツデータとして「xxx」が、「所有者ID」のセルには当該コンテンツデータの所有者であるユーザjoeのIDとして「1」が登録される。
【0041】
S4:アプリケーションサーバ1は通信部14を介してコンテンツDB31からステップS3の登録の応答を受ける。
【0042】
S5:アプリケーションサーバ1はコンテンツDB31からの応答・結果をインターネット経由でクライアント(ユーザjoe)41に転送する。
【0043】
次に、図6を参照しながらユーザjoeと私的な関係にある者すなわち友人であるユーザkateがコンテンツデータを検索する具体的な手順S11〜S17について説明する。
【0044】
S11:クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0045】
S12:アプリケーションサーバ1の認証部12はステップS11で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB21に登録されたユーザ情報と照合して認証を行う。
【0046】
S13:ステップS12の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB21からユーザkateの友人リスト「1,3」を検索する。
【0047】
S14:アプリケーションサーバ1の検索部13はステップS13の検索によってユーザ情報DB21から得られた友人リスト「1,3」を取得する。
【0048】
S15:アプリケーションサーバ1の検索部13は検索クエリにユーザkateのID「2」とステップS14で取得された「友人リスト」を追加し、当該リストに含まれる友人のいずれかが登録したデータのみを検索対象としてコンテンツDB31から検索する。例えば、SQLであれば、元の検索クエリに”AND(ユーザID IN 1,2,3)”のようなクエリを追加することで、ユーザID1,2,3のいずれかに対応したコンテンツデータのみを検索対象にできる。このようにして、アクセス制御が実行される。
【0049】
S16:アプリケーションサーバ1はステップS15の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0050】
S17:アプリケーションサーバ1は前記取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0051】
以上のように実施形態1に係るアプリケーションサーバ1によれば分離されたデータベース間でユーザの私的な関係に基づくアクセス制御が可能になる。また、データベース間でのトラフィックを検索結果ではなく、私的な関係を有するユーザの数に比例したデータ量に抑えることができ、アクセス制御を効率的に実行できる。
【0052】
すなわち、従来方式では、アクセス制御を実行する前の全検索結果をアプリケーションサーバに送り、友人関係を利用してフィルタを行っていたが、フィルタ前の全検索結果は膨大になりうるため、非常に大きなトラフィックが発生する。
【0053】
これに対して本実施形態に係るアクセス制御では、アプリケーションサーバ1からユーザの「友人リスト」を付加した検索クエリをコンテンツDB31に送り、コンテンツDB31で検索とアクセス制御を同時に実行する。「友人リスト」は検索結果に比べて小さいので、上記の従来方式の問題が解決される。
【0054】
(実施形態2)
実施形態1に係るアクセス制御はコンテンツの公開範囲が「友人」である場合の態様であるが、図7に示された実施形態2に係るアクセス制御はユーザ情報DBにおいて公開範囲を「自分(データ所有者自身)のみ」に設定しているユーザがいる場合の態様である。
【0055】
本実施形態に係るアプリケーションサーバ1では、図8に示したように、ユーザ情報DB22において、少なくとも、ユーザの識別子(ユーザID)と当該ユーザと私的な関係を有するユーザの識別子の一覧(友人リスト)と、当該ユーザの所有するコンテンツデータの公開先の範囲を示す公開範囲(例えば、自分,友人)とが格納されている。
【0056】
そして、図7に示したように、前記コンテンツデータの検索には、検索部13は、ユーザ情報DB22から前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を取得する際に、前記コンテンツデータの公開範囲を私的な関係を有するユーザまでに指定しているユーザのみの識別子(友人ID)の一覧(友人リスト)を取得する(S23,S24)。
【0057】
本実施形態に係る図8に例示されたユーザ情報DB22には、予め、「ユーザID」、「ユーザ名」、「パスワード」、「友人リスト」のカラムに加え「公開範囲」のカラムが登録されている。図示されたユーザ情報DB22の事例では、例えば、ユーザ名「joe」であるユーザ(ユーザID「1」)が公開範囲を「自分」に設定している。「公開範囲」が「自分」であることは、コンテンツデータの公開先の範囲が当該データの所有者のみを意味する。一方、他のユーザ(例えば、ユーザkate,meg,tom,…)は公開範囲を「友人」に設定している。「公開範囲」が「友人」であることは、コンテンツデータの公開先の範囲が当該データの所有者のみならず私的な関係を有するユーザまで及ばせることを意味する。
【0058】
実施形態2でも実施形態1と同様に予めコンテンツDB31へのコンテンツデータの登録が実行される。登録の手順は実施形態1に係る登録手順S1〜S4と同じである。
【0059】
図7を参照しながら実施形態2に係るコンテンツデータ検索の具体的な手順S21〜S27について説明する。
【0060】
S21:例えば、クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0061】
S22:アプリケーションサーバ1の認証部12はステップS11で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB22に登録されたユーザ情報と照合して認証を行う。
【0062】
S23:ステップS22の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB22からユーザkateの友人(joe,meg)のうち公開範囲を「友人」に設定している友人を検索する。
【0063】
S24:アプリケーションサーバ1の検索部13はステップS23の検索によってユーザ情報DB21から得られた友人(meg)のユーザID「3」を取得する。
【0064】
S25:アプリケーションサーバ1の検索部13は所有者(kate)のユーザID「2」と前記取得された友人(meg)のユーザID「3」とを検索クエリに追加する。すなわち、ユーザID「2」,「3」に対応するユーザが登録したコンテンツデータのみを検索対象としてコンテンツDB31から検索する。このようにして、本実施形態のアクセス制御が実行される。
【0065】
S26:アプリケーションサーバ1はステップS25の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0066】
S27:アプリケーションサーバ1はステップS26で取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0067】
以上のように、実施形態2に係るアクセス制御よれば、上述の実施形態1の効果に加えて、公開範囲の変更にも柔軟に対応できる。
【0068】
(実施形態3)
実施形態3に係るアクセス制御は図10に例示されたユーザ情報DB23のようにユーザ情報DBの「公開範囲」のカラムに「全体」と設定しているユーザが存在する場合の態様である。「公開範囲」が「全体」であることは、所有するコンテンツデータを全てのユーザに公開することを意味する。図10に示されたユーザ情報DB23の事例では「公開範囲」のセルに対して「全体」と設定しているユーザは「tom」となっている。
【0069】
本実施形態に係るアプリケーションサーバ1では、コンテンツデータを全てのユーザに公開する場合に、図11に示されたように、コンテンツDB33において、前記コンテンツデータと共に当該データの所有者の識別子として全てのユーザを表す識別子(例えば、ユーザID「0」)が保存されている。
【0070】
そして、図12に示されたように、検索部13は、コンテンツDB33からのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧(友人リスト)をユーザ情報DB23から取得する(S31〜S34)。次いで、前記検索を要求したユーザの識別子と前記取得した一覧と共にコンテンツDB33に保存された前記全てのユーザを表す識別子(ユーザID「0」)を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とする(S35)。
【0071】
図9を参照しながらコンテンツデータを全体に公開するユーザtom(クライアント44)が当該データを登録する具体的な手順S301〜S307について説明する。
【0072】
S301:クライアント(ユーザtom)44はコンテンツデータの登録のために当該データをアプリケーションサーバ1に送信する。
【0073】
S302:アプリケーションサーバ1の認証部12はクライアント41から供されたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB23に格納されたユーザ情報と照合して認証を行う。
【0074】
S303:ステップS302での認証に成功すると、アプリケーションサーバ1はユーザ情報DBに対してユーザtomの公開範囲を通信部14経由で要求する。
【0075】
S304:アプリケーションサーバ1はユーザ情報DB23からユーザtomの公開範囲を通信部14経由で取得する。
【0076】
S305:アプリケーションサーバ1の登録部11はステップS304で取得された公開範囲が「全体」であるため、クライアント44から供されたデータに加えて「全体」を表すユーザID「0」をコンテンツDB23のユーザIDのセルに登録する。図11に示されたようにコンテンツDB23には「ユーザID」のセルにユーザID「0」が登録される。
【0077】
S306:アプリケーションサーバ1は通信部10を介してコンテンツDB33からステップS303の登録の応答を受ける。
【0078】
S307:アプリケーションサーバ1はコンテンツDB33からの応答・結果をインターネット経由でクライアント(ユーザtom)44に転送する。
【0079】
次に、図12を参照しながら実施形態3に係るコンテンツデータ検索の具体的な手順S31〜S37について説明する。
【0080】
S31:例えば、クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0081】
S32:アプリケーションサーバ1の認証部12はステップS31で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB23に登録されたユーザ情報と照合して認証を行う。
【0082】
S33:ステップS32の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB32からユーザkateの友人(joe,meg)のうち公開範囲を「友人」に設定している友人を検索する。
【0083】
S34:アプリケーションサーバ1の検索部13はステップS33の検索によってユーザ情報DB23から得られた友人(meg)のユーザID「3」を取得する。
【0084】
S35:アプリケーションサーバ1の検索部13は、所有者(kate)のユーザID「2」と前記取得された友人(meg)のユーザID「3」とに加えて、全体ID「0」を検索クエリに追加する。すなわち、ユーザID「2」,「3」及び全体ID「0」に対応するコンテンツデータのみを検索対象としてコンテンツDB33から検索する。このようにして、本実施形態のアクセス制御が実行される。
【0085】
S36:アプリケーションサーバ1はステップS35の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0086】
S37:アプリケーションサーバ1はステップS36で取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0087】
以上のように実施形態2に係るアクセス制御は、所有者IDと友人IDだけでなく、全体IDを検索クエリに追加することで、全てのユーザへ公開が許可されたデータ(事例ではユーザtomの所有するコンテンツデータ)も検索対象にできる。このように、本実施形態に係るアクセス制御によれば上述の実施形態1の効果に加えて公開範囲の変更にも柔軟に対応する。
【0088】
(実施形態4)
実施形態4に係るアクセス制御はデータごとに公開範囲が設定され、公開範囲が「自分(データ所有者自身)」あるいは「友人」である場合の態様である。
【0089】
本実施形態に係るアプリケーションサーバ1では、図15に示したように、予め、コンテンツDB34において、コンテンツデータと共にこのデータの所有者の識別子(所有者ID)と前記コンテンツデータの公開先の範囲を示す公開範囲が前記所有者と私的な関係を有するユーザであることを示す識別子(例えば友人ID「1」)とが格納されている。
【0090】
そして、図16に示されたように、検索部13は、前記コンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧(例えば友人ID「1,3」)をユーザ情報DB24から取得する(S41〜S44)。次いで、前記コンテンツデータの検索を要求したユーザの識別子(例えば所有者ID「2」)と前記取得した一覧を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータのみならず前記一覧に含まれる識別子に対応したコンテンツデータを検索する(S45)。
【0091】
予め、ユーザは図13に例示されたようにユーザ情報DB24に友人リストを登録している。ユーザ情報DB24は「ユーザID」と「ユーザ名」と「パスワード」と「友人リスト」のカラムを有する。図示された事例では各カラムのセルには図4に例示されたユーザ情報DB21と同じ内容のユーザ情報が登録されている。
【0092】
公開範囲が「自分」あるいは「友人」である場合に、例えば、ユーザ名「joe」のクライアント41から供されたコンテンツデータをアプリケーションサーバ1が登録する具体的な手順S401〜S405について図14を参照しながら説明する。
【0093】
S401:クライアント(ユーザjoe)41はコンテンツデータの登録のために当該データをインターネット経由でアプリケーションサーバ1に送信する。このとき、登録データの公開範囲として「友人」を指定する。
【0094】
S402:アプリケーションサーバ1の認証部12はクライアント41から供されたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB24に格納されたユーザ情報と照合して認証を行う。
【0095】
S403:ステップS402での認証に成功すると、アプリケーションサーバ1の登録部11は、コンテンツデータに加えてその所有者であるユーザjoeのユーザID「1」を通信部14経由でコンテンツDB34に登録する。コンテンツDB34は図15に例示されたように「ユーザID」と「コンテンツデータ」と「所有者ID」と「友人ID(友人識別子)」のカラムを有する。ステップ403では、公開範囲が友人であれば、図15に示したように、コンテンツDB34の「友人ID」のセルに対して所有者ID「1」が書き込まれる。公開範囲が「自分」のみであれば、友人IDは空白のままにしておく。
【0096】
S404:アプリケーションサーバ1は通信部14を介してコンテンツDB34からステップS403の登録の応答を受ける。
【0097】
S405:アプリケーションサーバ1はコンテンツDB34からの応答・結果をインターネット経由でクライアント(ユーザjoe)41に転送する。
【0098】
次に、例えば、ユーザjoeの友人であるユーザkateがコンテンツデータを検索する場合の具体的な手順S41〜S47について図16を参照しながら説明する。
【0099】
S41:クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0100】
S42:アプリケーションサーバ1の認証部12はステップS11で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB24に登録されているユーザ情報と照合して認証を行う。
【0101】
S43:ステップS42の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB24からユーザkateの友人リスト「1,3」を検索する。
【0102】
S44:アプリケーションサーバ1の検索部13はステップS43の検索によってユーザ情報DB24から得られた友人リスト「1,3」を取得する。
【0103】
S45:アプリケーションサーバ1の検索部13は検索クエリにユーザkateのID「2」とステップS44で取得された友人リスト「1,3」とを追加し、コンテンツDB34から、自分(ユーザkate)または友人の登録したコンテンツデータを検索対象としてコンテンツDB34から検索する。例えば、SQLであれば、元の検索クエリに”AND(所有者ID=2)AND(友人ID IN = 1,3)”のようなクエリを追加することで、ユーザID1,2,3のいずれかに対応したコンテンツデータのみを検索対象にできる。尚、公開範囲が「自分」のみであるデータは、友人IDが空白であるため、所有者が行う検索でしかヒットしない。このようにして、アクセス制御が実行される。
【0104】
S46:アプリケーションサーバ1はステップS45の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0105】
S47:アプリケーションサーバ1は前記取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0106】
以上のように実施形態4に係るアクセス制御によれば上述の実施形態1の効果に加えて公開範囲の変更にも柔軟に対応できる。
【0107】
(実施形態5)
実施形態5に係るアクセス制御は、データのユーザに対する公開範囲を「全体(全てのユーザ)」に設定、すなわち、所有するコンテンツデータを全てのユーザに公開するように設定しているユーザが存在する場合の態様である。本実施形態では公開範囲は図18に例示されたようにコンテンツDB35に設定される。尚、本実施形態では、予め、図13に例示されたユーザ情報DB24が用意されている。
【0108】
本実施形態に係るアプリケーションサーバ1では、図18に示したように、予め、コンテンツDB35には、前記コンテンツデータと共に当該データの所有者の識別子(例えば所有者ID「1」)と前記所有者と私的な関係を有するユーザの識別子として全てのユーザを表す識別子(例えば全体ID「0」)とが保存されている。
【0109】
そして、図19に示されたように、コンテンツDB35からのコンテンツデータの検索時に、検索部13は、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧(友人リスト)をユーザ情報DB24から取得する(S51〜S54)。次いで、前記検索を要求したユーザの識別子(所有者ID)と前記取得した一覧(友人リスト)と共にコンテンツDB35に保存された前記全てのユーザを表す識別子(全体ID「0」)を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とする。
【0110】
図17を参照しながらユーザ名「joe」であるクライアント41から供されたコンテンツデータがアプリケーションサーバ1によって登録される具体的な手順S501〜S505について説明する。
【0111】
S501:クライアント(ユーザjoe)41はコンテンツデータの登録のために当該データをインターネット経由でアプリケーションサーバ1に送信する。このとき、登録データの公開範囲として「全体」を指定する。
【0112】
S502:アプリケーションサーバ1の認証部12はクライアント41から供されたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB24に格納されたユーザ情報と照合して認証を行う。
【0113】
S503:ステップS402での認証に成功すると、アプリケーションサーバ1の登録部11は、コンテンツデータに加えて、友人IDとして「全体」を表すID「0」を通信部14経由でコンテンツDB35に登録する。コンテンツDB35は図18に例示されたように「ユーザID」と「コンテンツデータ」と「所有者ID」と「友人ID」のカラムを有する。ステップ503では、図18に示されたコンテンツDB35の「友人ID」のセルに対して所有者ID「0」が書き込まれる。
【0114】
S504:アプリケーションサーバ1は通信部14を介してコンテンツDB35からステップS403の登録の応答を受ける。
【0115】
S505:アプリケーションサーバ1はコンテンツDB35からの応答・結果をインターネット経由でクライアント(ユーザjoe)41に転送する。
【0116】
次に、ユーザjoeの友人であるユーザkateがコンテンツデータを検索する場合の具体的な手順S51〜S57について図19を参照しながら説明する。
【0117】
S51:クライアント(ユーザkate)42がインターネット経由で検索クエリをアプリケーションサーバ1に送信する。
【0118】
S52:アプリケーションサーバ1の認証部12はステップS51で前記検索クエリに含まれたユーザ情報(例えば、ユーザ名、パスワード)をユーザ情報DB24に登録されているユーザ情報と照合して認証を行う。
【0119】
S53:ステップS52の認証に成功すると、アプリケーションサーバ1の検索部13はユーザ情報DB24からユーザkateの友人リスト「1,3」を検索する。
【0120】
S54:アプリケーションサーバ1の検索部13はステップS53の検索によってユーザ情報DB24から得られた友人リスト「1,3」を取得する。
【0121】
S55:アプリケーションサーバ1の検索部13は、検索クエリに対して、ユーザkateのID「2」とステップS44で取得された友人リスト「1,3」に加えて全体ID「0」を追加し、全てのユーザへ公開が許可されたデータ(事例ではユーザID「1」に対応したユーザの所有するコンテンツデータ)も、検索対象として、コンテンツDB35から検索する。例えば、SQLであれば、元の検索クエリに”AND(所有者ID=2)AND(友人ID IN = 1,3,0)”のようなクエリを追加することで、ユーザID1,2,3のいずれかのデータのみに加え、全てのユーザへの公開が許可されたデータを検索対象にできる。
【0122】
S56:アプリケーションサーバ1はステップS45の検索によってコンテンツDB31から得られた検索結果(アクセス制御済み)を通信部14経由で取得する。
【0123】
S57:アプリケーションサーバ1は前記取得された検索結果(アクセス制御済み)をインターネット経由でクライアント(ユーザkate)42に送信する。
【0124】
以上のように実施形態5に係るアクセス制御によれば上述の実施形態1の効果に加えて公開範囲の変更にも柔軟に対応する。特に、所有者IDと友人IDだけでなく、全てのユーザへ公開が許可されたデータも検索対象にできる。
【0125】
本発明に係るアクセス制御装置はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。すなわち、本発明は、上述の実施形態1〜5のサーバ1を構成する各機能手段11〜13に係る処理をプログラムとして構築し、当該プログラムを通信回線または記録媒体によってコンピュータにインストールすることにより、当該コンピュータによって実施できる。上述のコンテンツDB2,21〜24及びユーザ情報DB3,31〜35はハードディス装置やファイルサーバ等に例示される記憶手段に予め格納するようにすればよい。
【符号の説明】
【0126】
1…アプリケーションサーバ(サーバ装置)
2,21〜24…ユーザ情報DB(ユーザ情報データベース)
3,31〜35…コンテンツDB(コンテンツデータベース)
4,41,42,44…クライアント
13…検索部(検索手段)
【特許請求の範囲】
【請求項1】
ユーザのコンテンツデータの他のユーザへの公開を制御するサーバ装置であって、
コンテンツデータと共にこのデータの所有者の識別子を保存したコンテンツデータベースから、前記コンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧とを前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索する検索手段を備えたこと
を特徴とするサーバ装置。
【請求項2】
前記ユーザ情報データベースには、少なくとも、ユーザの識別子と、当該ユーザと私的な関係を有するユーザの識別子の一覧と、当該ユーザの所有するコンテンツデータの公開先の範囲を示す公開範囲とが格納され、
前記検索手段は、前記コンテンツデータベースからのコンテンツデータの検索に、前記ユーザ情報データベースから前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を取得する際に、前記コンテンツデータの公開範囲を私的な関係を有するユーザまでに指定しているユーザのみの識別子の一覧を取得すること
を特徴とする請求項1に記載のサーバ装置。
【請求項3】
コンテンツデータを全てのユーザに公開する場合に、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子として全てのユーザを表す識別子が保存され、
前記検索手段は、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて全てのユーザを表す識別子に対応したコンテンツデータも検索対象とすること
を特徴とする請求項1に記載のサーバ装置。
【請求項4】
ユーザのコンテンツデータの他のユーザへの公開を制御するサーバ装置であって、
コンテンツデータと共にこのデータの所有者の識別子と前記コンテンツデータの公開先の範囲を示す公開範囲が前記所有者と私的な関係を有するユーザであることを示す識別子とを保存したコンテンツデータベースから、前記コンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータを検索する検索手段を備えたこと
を特徴とするサーバ装置。
【請求項5】
コンテンツデータを全てのユーザに公開する場合に、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子と前記所有者と私的な関係を有するユーザの識別子として全てのユーザを表す識別子とが保存され、
前記検索手段は、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とすること
を特徴とする請求項4に記載のサーバ装置。
【請求項6】
ユーザのコンテンツデータの他のユーザへの公開を制御するアクセス制御方法であって、
コンテンツデータと共にこのデータの所有者の識別子を保存したコンテンツデータベースからの前記コンテンツデータの検索時に、検索手段が、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧とを前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索するステップ
を有すること
を特徴とするアクセス制御方法。
【請求項7】
コンテンツデータを全てのユーザに公開する場合に、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子として全てのユーザを表す識別子が保存され、前記検索手段が、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて全てのユーザを表す識別子に対応したコンテンツデータも検索対象とするステップを有すること
を特徴とする請求項6に記載のアクセス制御方法。
【請求項8】
ユーザのコンテンツデータの他のユーザへの公開を制御するアクセス制御方法であって、
コンテンツデータと共にこのデータの所有者の識別子と前記コンテンツデータの公開先の範囲を示す公開範囲が前記所有者と私的な関係を有するユーザであることを示す識別子とを保存したコンテンツデータベースからの前記コンテンツデータの検索時に、検索手段が、前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータを検索するステップ
を有すること
を特徴とするアクセス制御方法。
【請求項9】
コンテンツデータを全てのユーザに公開する場合に、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子と前記所有者と私的な関係を有するユーザの識別子として全てのユーザを表す識別子とが保存され、前記検索手段が、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とするステップ
を有すること
を特徴とする請求項8に記載のアクセス制御方法。
【請求項10】
請求項1から5のいずれか1項に記載のサーバ装置を構成する各手段としてコンピュータを機能させることを特徴とするアクセス制御プログラム。
【請求項1】
ユーザのコンテンツデータの他のユーザへの公開を制御するサーバ装置であって、
コンテンツデータと共にこのデータの所有者の識別子を保存したコンテンツデータベースから、前記コンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧とを前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索する検索手段を備えたこと
を特徴とするサーバ装置。
【請求項2】
前記ユーザ情報データベースには、少なくとも、ユーザの識別子と、当該ユーザと私的な関係を有するユーザの識別子の一覧と、当該ユーザの所有するコンテンツデータの公開先の範囲を示す公開範囲とが格納され、
前記検索手段は、前記コンテンツデータベースからのコンテンツデータの検索に、前記ユーザ情報データベースから前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を取得する際に、前記コンテンツデータの公開範囲を私的な関係を有するユーザまでに指定しているユーザのみの識別子の一覧を取得すること
を特徴とする請求項1に記載のサーバ装置。
【請求項3】
コンテンツデータを全てのユーザに公開する場合に、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子として全てのユーザを表す識別子が保存され、
前記検索手段は、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて全てのユーザを表す識別子に対応したコンテンツデータも検索対象とすること
を特徴とする請求項1に記載のサーバ装置。
【請求項4】
ユーザのコンテンツデータの他のユーザへの公開を制御するサーバ装置であって、
コンテンツデータと共にこのデータの所有者の識別子と前記コンテンツデータの公開先の範囲を示す公開範囲が前記所有者と私的な関係を有するユーザであることを示す識別子とを保存したコンテンツデータベースから、前記コンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータを検索する検索手段を備えたこと
を特徴とするサーバ装置。
【請求項5】
コンテンツデータを全てのユーザに公開する場合に、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子と前記所有者と私的な関係を有するユーザの識別子として全てのユーザを表す識別子とが保存され、
前記検索手段は、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とすること
を特徴とする請求項4に記載のサーバ装置。
【請求項6】
ユーザのコンテンツデータの他のユーザへの公開を制御するアクセス制御方法であって、
コンテンツデータと共にこのデータの所有者の識別子を保存したコンテンツデータベースからの前記コンテンツデータの検索時に、検索手段が、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧とを前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとを検索するステップ
を有すること
を特徴とするアクセス制御方法。
【請求項7】
コンテンツデータを全てのユーザに公開する場合に、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子として全てのユーザを表す識別子が保存され、前記検索手段が、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて全てのユーザを表す識別子に対応したコンテンツデータも検索対象とするステップを有すること
を特徴とする請求項6に記載のアクセス制御方法。
【請求項8】
ユーザのコンテンツデータの他のユーザへの公開を制御するアクセス制御方法であって、
コンテンツデータと共にこのデータの所有者の識別子と前記コンテンツデータの公開先の範囲を示す公開範囲が前記所有者と私的な関係を有するユーザであることを示す識別子とを保存したコンテンツデータベースからの前記コンテンツデータの検索時に、検索手段が、前記検索を要求したユーザと私的な関係を有するユーザの識別子の一覧をユーザ情報データベースから取得し、前記コンテンツデータの検索を要求したユーザの識別子と前記取得した一覧を前記検索のクエリに追加することにより、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータを検索するステップ
を有すること
を特徴とするアクセス制御方法。
【請求項9】
コンテンツデータを全てのユーザに公開する場合に、前記コンテンツデータベースには、前記コンテンツデータと共に当該データの所有者の識別子と前記所有者と私的な関係を有するユーザの識別子として全てのユーザを表す識別子とが保存され、前記検索手段が、前記コンテンツデータベースからのコンテンツデータの検索時に、この検索を要求したユーザと私的な関係を有するユーザの識別子の一覧を前記ユーザ情報データベースから取得し、前記検索を要求したユーザの識別子と前記取得した一覧と共に前記コンテンツデータベースに保存された前記全てのユーザを表す識別子を前記検索のクエリに追加することで、前記検索を要求したユーザの識別子に対応したコンテンツデータと前記一覧に含まれる識別子に対応したコンテンツデータとに加えて前記全てのユーザを表す識別子に対応したコンテンツデータも検索対象とするステップ
を有すること
を特徴とする請求項8に記載のアクセス制御方法。
【請求項10】
請求項1から5のいずれか1項に記載のサーバ装置を構成する各手段としてコンピュータを機能させることを特徴とするアクセス制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2011−113227(P2011−113227A)
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願番号】特願2009−268118(P2009−268118)
【出願日】平成21年11月25日(2009.11.25)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願日】平成21年11月25日(2009.11.25)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]