情報提供装置、情報提供ポータルシステム、情報提供方法、情報提供プログラム
【課題】本発明は、利用者によるデータの改竄を防ぎ、利用者装置及び情報提供装置に対する処理上の負荷を軽減する情報提供装置、情報提供方法及び情報提供プログラムを提供することを目的とする。
【解決手段】本発明の情報提供装置は、各サービスモジュールのポリシー情報として記憶し、利用者装置と情報提供装置間において接続を確立する際に、主セッションID、及び、サービスセッションIDを生成し、利用者装置からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証し、リクエスト情報に含まれるサービスモジュール名を用いて、識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、サービスセッションIDに対応付けられるセッション情報と識別情報を用いて、サービスモジュールを呼び出し、実行する。
【解決手段】本発明の情報提供装置は、各サービスモジュールのポリシー情報として記憶し、利用者装置と情報提供装置間において接続を確立する際に、主セッションID、及び、サービスセッションIDを生成し、利用者装置からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証し、リクエスト情報に含まれるサービスモジュール名を用いて、識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、サービスセッションIDに対応付けられるセッション情報と識別情報を用いて、サービスモジュールを呼び出し、実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、利用者のリクエストに対して、返答する情報提供装置、情報提供ポータルシステム、情報提供方法及び情報提供プログラムに関する。
【背景技術】
【0002】
利用者装置のリクエストに対して、返答する情報提供装置としては例えばwebサーバ等が、利用者装置としては例えばwebブラウザ等が、提供される情報としてはwebページ等がある。
【0003】
webサーバは、HTML文書や画像などの情報を蓄積しておき、webブラウザのリクエストに応じて、インターネットなどのネットワークを通じて、これらの情報を送信する。これは、以下のような手順により行われる。
【0004】
利用者がwebブラウザ上でURL(Uniform Resource Locator)を指定する。なお、URLとは、インターネット上に存在する情報資源(文書や画像など)の場所を指し示す記述方式であり、情報の種類やサーバ名、ポート番号、フォルダ名、ファイル名などで構成される(例えば、「www.test01.example02.com/sample03/index.html」等)。webブラウザは、URLからドメインを抽出する。なお、ドメインとは、インターネット上に存在するコンピュータやネットワークにおける共通して管理される領域を意味し、その識別子をドメイン名(例えば、「www.test01.example02.com」等)という。webブラウザは、抽出したドメインにリクエスト情報を送信する。なお、リクエスト情報とは、メソッド、URL、要求するデータ等を含んだ情報である。
【0005】
webサーバは、動的にwebページを生成し、レスポンス情報をwebブラウザに送信する。なお、レスポンス情報とは、ステータス・コードやレスポンス・フレーズ、応答するデータ等を含む情報である。なお、webページは、表示を担当するHTMLの部分と、実行可能なJava(登録商標)script等のwebブラウザ上で稼動するスクリプトの部分から構成されてもよい。なお、スクリプトは、他のwebページの情報にアクセスできる。但し、アクセスできる範囲は、同じドメインから配信されたwebページに限定される。この限定は、Same Origin Policyと呼ばれる。つまり、ドメイン「www.test01.example02.com」のwebページは、同一ドメイン内のwebページにはアクセスできるが、異なるドメイン「www.test02.example02.com」内のwebページにアクセスすることはできない。
【0006】
利用者のwebページ間の挙動を追跡し、webページが異なるドメイン間でもアクセスすることを可能にする方法として、セッションIDを利用する方法がある。なお、セッションとは、一連の通信のことを意味し、例えば、接続を確立してから切断するまでが一つのセッションとすることもできる。セッションIDとは、このセッションを一意に特定する識別子のことを意味する。また、セッションIDは、利用者とサービス提供者以外の第三者が推測できない情報を利用する。セッションIDの発行手順は以下の通りである。webサーバがリクエスト情報を送信した利用者の正当性を検証する。正当性が認められれば(認証)、webサーバは、利用者に対してセッションIDを生成し、割り当てる。さらに、webサーバは、利用者とセッションIDを記憶部に記憶する。webサーバは、webブラウザに対して、「ドメイン・URLのパス・プロトコルが指定と一致するページを有効期限内に訪れる際には、必ずこのセッションIDをリクエスト情報に含めよ」という指示をレスポンス情報に含める。以降、webサーバは、リクエスト情報に含まれるセッションIDを用いて一連の通信を識別することができる。
【0007】
ここで、主モジュールと複数のサービスモジュールから構成され、情報を提供するポータルについて考える。なお、サービスモジュールは、webサーバが提供する情報の少なくとも一部を提供する。ポータルは、サービスモジュールを追加、削除することで機能を容易に変更することができる。例えば、利用者の要望に応じてサービスモジュールを追加することなどが考えられる。このような場合には、複数のサービスモジュールは、一つのセッションIDを共有する。この場合には、Same Origin Policyにかかわらず、webページは異なるドメインに存在する他のwebページにもアクセスが可能となる。
【0008】
しかし、一般的に、開発費の大小や開発者の技術レベルの差異によりサービスモジュールは主モジュールに比べて、セキュリティホールが存在する可能性が高い。一つのセッションIDを共有する場合には、複数のサービスモジュールの内の一つのサービスモジュールに欠陥があれば、攻撃者にセッションIDを盗難され、利用者になりすまされ、ポータル全体に被害が及ぶ可能性がある。
【0009】
非特許文献1記載の技術は、1ドメインに1サービスモジュールが対応するという構成である。なお、以下、サービスモジュールが対応する個別のドメインのことをサービスドメインという。セッションIDは、サービスモジュール毎に個別のIDを利用する。このような構成とすることで、上記、ポータル全体に被害が及ばないようにしている。各サービスモジュールは、Same Origin Policyにより、ドメインが異なる他のサービスモジュールにアクセスできない。なお、Same Origin Policyを用いず、セッションIDが異なっても、他のドメインに対しアクセスできる構成とすることは、従来技術同様、ポータル全体に被害が及ぶ可能性がある。そこで非特許文献1記載の技術では、サービスモジュール間のデータの通信は利用者のwebブラウザ上で実行されるスクリプトを利用し、利用者装置を経由して行う。
【非特許文献1】Collin Jackson, Helen J. Wang," Subspace: Secure Cross-Domain Communication for Web Mashups", [on line], May 8-12 2007, the International World Wide Web Conference Committee (IW3C2), Banff, Alberta, Canada,[平成2008年12月9日検索], インターネット< http://www2007.org/papers/paper801.pdf >
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかし、非特許文献1記載の技術では、データが利用者の利用者装置(例えば、「webブラウザ」等)を経由するため、利用者によるデータの改竄の可能性があるという問題がある。また、各サービスモジュールは、他のサービスモジュールからデータを取得したい場合には、他のサービスモジュールを起動し、スクリプトによって情報を共有しなければならないため、webサーバ及びwebブラウザに対する処理上の負荷が増大するという問題がある。また、通信量が増大するという問題がある。
【0011】
本発明は、セキュリティを高めたまま、スクリプトを利用せずにサービスモジュール間のデータ通信を行い、利用者によるデータの改竄を防ぎ、利用者装置及び情報提供装置に対する処理上の負荷を軽減する情報提供装置、情報提供方法及び情報提供プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の情報提供技術は、サービスモジュールに対する利用者装置のリクエストに返答し、情報提供装置のドメインとサービスモジュールの少なくとも一部のドメインとが異なり、サービスモジュール名とサービスモジュールの識別情報を記憶し、各サービスモジュール名とそのサービスモジュールの権限をポリシー情報として記憶し、利用者装置と情報提供装置間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者装置と各サービスモジュールとの接続を一意に識別するサービスセッションIDを生成し、主セッションIDから得ることができる値、サービスセッションIDから得ることができる値及び対応するポリシー情報をセッション情報として記憶し、利用者装置からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証し、リクエスト情報に含まれるサービスモジュール名を用いて、識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、サービスセッションIDに対応付けられるセッション情報と識別情報を用いて、サービスモジュールを呼び出し、実行し、ポリシーに従って情報提供装置が提供する情報の少なくとも一部を提供する。
【発明の効果】
【0013】
本発明の情報提供装置及び情報提供方法によれば、スクリプトを利用せずにサービスモジュール間のデータ通信を行うことができるため、利用者による改竄を防止できる。また、利用者装置及び情報提供装置の処理上の負荷を軽減できる。また、通信量を軽減することができる。
【発明を実施するための最良の形態】
【0014】
ここで、本発明の実施例について説明する。
【実施例1】
【0015】
[情報提供ポータルシステム10]
図1は、利用者装置3と情報提供ポータルシステム10の関係を示す。図2は、情報提供ポータルシステム10の構成例を示す。情報提供ポータルシステム10は、主モジュール100と、一つ以上のサービスモジュール200n(1≦n≦N)から構成され、利用者装置3(例えば、webブラウザ等)の求めに応じて、ネットワーク5(例えば、LANやインターネット等)を介して、情報を提供するシステムである。なお、利用者装置3は、webブラウザ等を意味してもよいし、それを実装するコンピュータ等を意味してもよい。主モジュール100は、情報提供ポータルシステムが情報を提供するために必要となるモジュールである。詳細は後述する。
【0016】
<サービスモジュール200n>
サービスモジュール200nは、情報提供装置1が提供する情報の少なくとも一部を提供する。例えば、主モジュール100の実行部160に呼び出され、実行部160において実行され、情報提供装置の提供するwebページの一部を作成する。
【0017】
主モジュール100は、情報提供ポータルシステム10を構成する情報提供装置1上に実装される。なお、主モジュールが実装される情報提供装置100も、情報提供ポータルシステム10の一部を構成する。サービスモジュール200nは、主モジュール100と同じドメイン上に実装されてもよいし(例えば、サービスモジュール2001及び2002)、主モジュール100と異なるドメイン上に実装されてもよい(例えば、サービスモジュール2005)。なお、全てのサービスモジュールが、主モジュールと異なるドメインに実装されてもよい。以下、主モジュールが実装されるドメインを「主ドメイン」、サービスモジュールが実装されるドメインを「サービスドメイン」という。よって、主ドメインと各サービスドメインは同一ドメインの場合もあれば、異なるドメインの場合もある。但し、主ドメインとサービスドメインの少なくとも一部は異なる。このとき、Same Origin Policyにより、異なるドメイン内のモジュールは、スクリプトを利用して、互いにアクセスすることはできない。例えば、各サービスモジュール200nは図示しない記憶部208n等を有してもよく、利用者の個人情報等を各記憶部208nに記憶してもよい。異なるドメイン内のモジュールは、スクリプトを利用して、他の記憶部にアクセスすることはできないため、個人情報等を安全に管理することができる。サービスドメインを管理するDNS(Domain Name System)サーバには、サービスドメインに対応するIPアドレスとして情報提供装置1のIPアドレスが登録されている。このような構成とすることで、サービスドメインにアクセスしようとした利用者装置3は、情報提供装置1にアクセスする。
【0018】
[情報提供装置1]
図3は、情報提供装置1の処理フロー例を示す。情報提供装置1は、通信部7、記憶部8、制御部9、主モジュール100及びサービスモジュール200nを有する。主モジュール100は、識別情報記憶部105、認証部110、ポリシー記憶部120、生成部130、セッション情報記憶部140、検証部150、実行部160を備える。
なお、本実施例は発明の内容を限定するものではない。例えば、サービスモジュール200nを設けなくともよく、外部のサービスモジュールのみを用いてもよい。
【0019】
<通信部7、記憶部8及び制御部9>
情報提供装置1は、利用者装置3からリクエスト情報が送信されるのを待つ(s1)。利用者装置3からリクエスト情報が送信されると、情報提供装置1は、ネットワーク5及び通信部7を介して、利用者装置3からのリクエスト情報を受信する(s7)。以下、特に記述しなくとも、情報提供装置1及び利用者装置3と通信する際には、通信部7を介して行われるものとする。通信部7は、例えば、LANアダプタ等により構成され、LANやインターネット等からなるネットワーク5と接続される。
【0020】
記憶部8は、受信したリクエスト情報を一時的に記憶してもよい。以下、特に示さない限り、入出力される各データや演算過程の各データは、逐一、記憶部8に格納・読み出され、各演算処理が進められる。但し、必ずしも記憶部8に記憶しなければならないわけではなく、各部間で直接データを受け渡してもよい。なお、後述するポリシー記憶部120及びセッション情報記憶部140は、記憶部9の一部として設けてもよいし、別に設けてもよい。
【0021】
制御部9は、情報提供装置1において、各処理を制御、実行する。例えば、通信部7を介して、リクエスト情報を受信した際に、制御部9は、主モジュール100を起動させてもよい。
【0022】
検証部150は、利用者装置3からのリクエスト情報にサービスセッションIDが含まれるか否か検証する。初めてのアクセスの際には、サービスセッションIDはリクエスト情報に含まれないため、情報を提供する前に処理を認証部110に移す。サービスセッションIDがリクエスト情報に含まれる場合の処理については、後述する。
【0023】
<識別情報記憶部105>
識別情報記憶部105は、予め各サービスモジュールの識別子(例えば、各サービスモジュールのURL等。以下、「サービスモジュール名」という)とサービスモジュールの識別情報を記憶しておく。図4は、識別情報記憶部105に記憶されるデータ例を示す。例えば、識別情報としては、IPアドレス等が考えられる。他にMACアドレス等、サービスモジュールが実装される機器(サーバ等)を識別できる情報であればよい。例えば、図4の2行目、3行目のドメインは「module2.portal.com」であり、同一である。このように一つのサービスドメインに複数のサービスモジュールや識別情報が対応してもよい。また、3行目、4行目の識別情報は、「192.168.200.△△△」であり、同一である。このように一つ識別情報に複数のサービスドメインやサービスモジュールが対応してもよい。
【0024】
<認証部110>
図5は、認証部110の処理フロー例を示す。認証部110は、利用者を認証する(s110)。例えば、リクエスト情報を送信した利用者装置3に対し、認証情報を要求する(s112)。認証情報としては、例えば、利用者IDとパスワード、指紋情報等の生体認証に用いる認証情報が考えられる。利用者装置3は、認証情報を情報提供装置1へ送信する。認証部110は、認証情報を受信し(s114)、図示していない認証情報データベース等を参照し、利用者装置3の正当性を確認する(s116)。正当性が確認できない場合には、エラーを出力する(s117)。また、利用者装置3の要求を拒否してもよいし、再度認証情報を要求してもよい。正当性が確認できる場合には、生成部130に処理を移す(s118)。
【0025】
なお、非特許文献1記載の技術を用いて、利用者を認証する場合には、各サービスモジュールに利用者装置がアクセスする際に、各サービスモジュールにより認証を行う必要があり、処理量及び通信量が増大する。また、前述の通り、サービスモジュールは主モジュールに比べて、セキュリティホールが存在する可能性が高く、攻撃者に狙われやすい。主モジュールに認証部110を有することによって、集中管理することによりセキュリティを高めることができる。また、認証を一括することにより処理量及び通信量を軽減することができる。
【0026】
なお、本実施例は発明の内容を限定するものではない。必ずしも認証部110は、認証情報を要求せずともよい。例えば、リクエスト情報を受信した際に得られる送信元IPアドレス等によって認証してもよい。この場合、上記「利用者」とは、必ずしも「利用者自身」を意味せずともよく、例えば、「利用者装置」を意味してもよい。また、例えば、利用者装置の正当性を確認する必要がない場合には、認証部110を設けなくともよい。
【0027】
<ポリシー記憶部120>
ポリシー記憶部120は、サービスモジュール名とそのサービスモジュールの権限をポリシー情報として予め記憶しておく。図6は、ポリシー記憶部120に記憶されるデータ例を示す。権限としては、アクセスできる範囲や処理内容等がある。例えば、図6に沿って説明すると、サービスモジュール「module1.portal.com」は、サービスモジュール「module2.portal.com」に対して、書込みをする権限を有していることを意味する。また、例えば、アクセスできる範囲には、サービスモジュールだけではなく、サービスモジュールの有するデータ項目まで、範囲を限定することも可能である。例えば、主モジュールは、あるサービスモジュール200nからデータ項目「年齢」だけを「読込み」をすることができるといった構成とすることも可能である。
【0028】
<生成部130>
図7は、生成部130の処理フロー例を示す。生成部130は、利用者装置3と情報提供装置1間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者装置3と各サービスモジュール200nとの接続を一意に識別するサービスセッションIDを生成する(s130)。例えば、生成部130は、リクエスト情報から用いるサービスモジュール名を特定し(s131)、対応する主セッションID及びサービスセッションIDを生成し(s133)、さらに、ポリシー記憶部120を参照し、特定したサービスモジュール名に対応するポリシー情報を取得し(s135)、主セッションIDから得ることができる値、サービスセッションIDから得ることができる値及びポリシー情報をセッション情報記憶部140に出力する(s137)。なお、以下、主セッションIDから得ることができる値、サービスセッションIDから得ることができる値及びこれに対応するポリシー情報を併せてセッション情報という。なお、主セッションIDから得ることができる値、サービスセッションIDから得ることができる値とは、主セッションID、サービスセッションID自体であってもよいし、そこから得ることができる値であってもよい。例えば、主セッションID、サービスセッションIDから得ることができるハッシュ値や暗号処理した値等が考えられる。サービスセッションIDは、サービスモジュール間で、共有させないため、非特許文献同様、ポータル全体に被害が及ぶことはない。
【0029】
情報提供装置1は、サービスセッションIDとともに、「ドメイン・URLのパス・プロトコルが指定と一致するページを有効期限内に訪れる際には、必ずこのサービスセッションIDをリクエスト情報に含めよ」という指示をレスポンス情報に加える。
例えば、クッキー(Cookie)等を用いて、以降のリクエスト情報にはサービスセッションIDを付加する。なお、主セッションIDもリクエスト情報に含めるよう指示してもよい。
【0030】
<セッション情報記憶部140>
セッション情報記憶部140は、セッション情報を記憶する(s140)。図8は、セッション情報記憶部140に記憶されるデータ例を示す。例えば、主セッションIDが「osdkmasgaso」であり、かつ、サービスセッションIDが「agq3qvw4tq24」である接続は、サービスモジュール「module1.portal.com」は、サービスモジュール「module2.portal.com」に対して、書込みをすることができる。主セッションIDは、主モジュール(または、情報提供装置1)と利用者装置3とのセッションを管理し、サービスセッションIDは、サービスモジュール200nと利用者装置3とのセッションを管理する。よって、複数のサービスモジュール200nを呼び出す場合には、一つの主セッションIDに複数のサービスセッションIDが対応することとなる。また、情報提供装置1は、リクエスト情報にサービスセッションIDのみ含まれる場合であっても、セッション情報記憶部140のデータから、主セッションIDを特定することができる。なお、ポリシー情報として主セッションID、サービスセッションIDから得ることができるハッシュ値や暗号処理した値等を用いた場合には、セッション情報記憶部140が覗き見られた場合であっても、攻撃者は主セッションID、サービスセッションIDが分からない。よって、攻撃者が利用者になりすますことを防止できる。また、ハッシュ値等を用いて記憶する情報量を軽減してもよい。
【0031】
<検証部150>
図9は、検証部150の処理フロー例を示す。検証部150は、利用者装置3からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証する(s150)。例えば、検証部150は、利用者装置3からのリクエスト情報に含まれるサービスセッションIDがセッション情報記憶部に存在するか否か確認することにより有効性を検証する。検証部150は、リクエスト情報を入力され、前述の通り利用者装置3からのリクエスト情報にサービスセッションIDが含まれるか否か検証する(s151)。前述の通り含まれない場合には、処理を認証部110に移す(s153)。サービスセッションIDがリクエスト情報に含まれる場合には、セッション情報記憶部140を参照し、このサービスセッションIDが存在するか否か確認し(s155)、存在する場合には処理を実行部160に移し(s157)、存在しない場合には処理を認証部に移す(s153)。なお、認証部に処理を移す前に、「セッションの有効期限が切れた」旨のメッセージを利用者装置3に送信してもよい。なお、セッション情報記憶部140にサービスセッションIDのハッシュ値等が記憶されている場合には、同じハッシュ関数等を用いて、リクエスト情報に含まれるサービスセッションIDからハッシュ値を求め、同様に有効性を検証する。
【0032】
<実行部160>
図10は、実行部160の処理フロー例を示す。実行部160は、リクエスト情報に含まれるサービスモジュール名を用いて、識別情報記憶部105を参照して対応するサービスモジュールの識別情報を取得する。また、サービスセッションIDに対応付けられるセッション情報と識別情報を用いて、サービスモジュールを呼び出し、実行する。ポリシーに従って情報提供装置が提供する情報の少なくとも一部を提供する(s160)。例えば、実行部160は、リクエスト情報が入力され、リクエスト情報に含まれるURLからサービスモジュール名を抽出し、識別情報記憶部105を参照し、サービスモジュールの識別情報を取得する(s161)。さらに、リクエスト情報に含まれるサービスセッションIDから、セッション情報記憶部140を参照し、ポリシー情報を取得する(s162)。但し、セッション情報記憶部140を参照せずに、生成部130から直接セッション情報を受け取る構成としてもよい。リクエスト情報がポリシー情報に従っているか確認し(s163)、リクエスト情報がポリシー情報に従っている場合には、サービスモジュールを呼び出し、実行する(s165)。処理結果をレスポンス情報の少なくとも一部として出力する(s166)。従っていない場合には、エラーを出力する(s167)。
【0033】
情報提供装置1は、レスポンス情報を利用者装置3に送信し、情報を提供する。なお、一つのセッションの間に、複数のサービスモジュールにアクセスしてもよい。その際は、生成部130において、対応する複数のサービスセッションIDを生成する。
【0034】
このような構成とすることで、各サービスモジュールに対し、サービスセッションIDを設け、非特許文献1記載の従来技術と同等のセキュリティを有することができる。さらに、スクリプトを利用せずにサービスモジュール間のデータ通信を行うことができるため、利用者による改竄を防止できる。また、利用者装置及び情報提供装置の処理上の負荷を軽減できる。また、通信量を軽減することができる。
【0035】
<ハードウェア構成>
図11は、本実施例における情報提供装置1のハードウェア構成を例示したブロック図である。
図11に例示するように、この例の情報提供装置1は、CPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16及びバス17を有している。
【0036】
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部12は、データが入力される入力インターフェース、キーボード、マウス等であり、出力部13は、データが出力される出力インターフェース等である。補助記憶装置14は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、情報提供装置1としてコンピュータを機能させるためのプログラムが格納されるプログラム領域14a及び各種データが格納されるデータ領域14bを有している。また、RAM16は、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、上記のプログラムが格納されるプログラム領域16a及び各種データが格納されるデータ領域16bを有している。また、バス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15及びRAM16を通信可能に接続する。
【0037】
なお、このようなハードウェアの具体例としては、例えば、パーソナルコンピュータの他、サーバ装置やワークステーション等を例示できる。
【0038】
<プログラム構成>
上述のように、プログラム領域14a,16aには、本実施例の情報提供装置1の各処理を実行するための各プログラムが格納される。情報提供名プログラムを構成する各プログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。また、各プログラムが単体でそれぞれの機能を実現してもよいし、各プログラムがさらに他のライブラリを読み出して各機能を実現するものでもよい。
【0039】
<ハードウェアとプログラムとの協働>
CPU11(図11)は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置14のプログラム領域14aに格納されている上述のプログラムをRAM16のプログラム領域16aに書き込む。同様にCPU11は、補助記憶装置14のデータ領域14bに格納されている各種データを、RAM16のデータ領域16bに書き込む。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11aは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。
【0040】
図1は、このようにCPU11に上述のプログラムが読み込まれて実行されることにより構成される情報提供装置1の機能構成を例示したブロック図である。
【0041】
ここで、記憶部8、ポリシー記憶部120及びセッション情報記憶部140は、補助記憶装置14、RAM16、レジスタ11c、その他のバッファメモリやキャッシュメモリ等の何れか、あるいはこれらを併用した記憶領域に相当する。また、通信部7と、記憶部8と、制御部9と、認証部110と、生成部130と、検証部150と、実行部160は、CPU11に情報提供プログラムを実行させることにより構成されるものである。
また、本形態の情報提供装置1は、各制御部9の制御のもと各処理を実行する。
【0042】
[変形例1]認証用サービスモジュール
実施例1と異なる部分についてのみ説明する。変形例1の情報提供装置1は、認証部110を有さない。情報提供ポータルシステム10は、認証用サービスモジュール2003を有する。さらに、認証処理を分散するために認証用サービスモジュール2004等を有してもよい。
【0043】
認証用サービスモジュール2003等は、利用者を認証する。例えば、このような構成とした場合、検証部150は、リクエスト情報を入力され、利用者装置3からのリクエスト情報にサービスセッションIDが含まれるか否か検証する。含まれない場合、または、含まれるが、セッション情報記憶部140に存在しない場合には、認証用サービスモジュール2003を呼び出す。認証用サービスモジュールの呼び出し方法は、実施例1と同様であってもよいし、他の方法であってもよい。他の方法としては、認証用サービスモジュールの識別情報は、別途記憶部8に記憶しておき、識別情報記憶部105を参照せずに、呼び出してもよい。次に、実行部160において、認証用サービスモジュールを実行する。認証処理は、認証部130と同様である。
【0044】
このような構成とすることで複数の認証処理を行うことが可能となり、処理を分散することができる。また、モジュール毎に認証の強度を容易に変更することができる。例えば、一つの認証用サービスモジュールでは、利用者ID、パスワードのみで認証可能だが、他の認証用サービスモジュールでは、利用者ID、パスワードに加え、バイオメトリクス認証情報等を必要としてもよい。なお、認証用サービスモジュールは、主ドメイン内であっても、主ドメイン外であってもよい。
【0045】
[変形例2]ユーザIDによるアクセス制限
実施例1と異なる部分についてのみ説明する。変形例2の情報提供装置1は、ポリシー記憶部120に記憶されるデータが実施例1とは異なる。図12は、変形例2のポリシー情報記憶部120に記憶されるデータ例を示す。ポリシー記憶部120は、利用者名とサービスモジュール名の組合せとその組合せに対する権限を表すポリシー情報を記憶する。図12を用いて説明する。例えば、図12に沿って説明すると、利用者「user_A」の場合には、サービスモジュール「module1.portal.com」は、サービスモジュール「module2.portal.com」に対して、読込みをする権限は有さず、書込みをする権限を有している。一方、利用者「user_B」の場合には、サービスモジュール「module1.portal.com」は、サービスモジュール「module2.portal.com」に対して、書込みをする権限は有さず、読込みをする権限を有していることを意味する。
【0046】
例えば、生成部130は、主セッションID及びサービスセッションIDを生成する際に、リクエスト情報から用いるサービスモジュール名と利用者を特定し、対応する主セッションID及びサービスセッションIDを生成する。さらに、ポリシー記憶部120を参照し、特定したサービスモジュール名と利用者の組合せに対応するポリシー情報を取得し、主セッションID及びサービスセッションID、及びポリシー情報をセッション情報記憶部140に出力する。
【0047】
このような構成とすることで利用者毎に柔軟にポリシーを設定することができる。ポリシー情報の設定変更は、利用者側が行ってもよいし、情報提供装置の管理者が行ってもよい。利用者が行う構成とする場合には、例えば、保護者が未成年者の有害なサイトへのアクセスを制限することができる。また、管理者側が行う構成とする場合には、特定のサービスに申し込みをしている利用者のみに、そのサービスを受けることができるように設定することができる。また、サービスモジュール毎にポリシーを設定することで、ポータルが提供できるサービスの組合せのバリエーションを多数用意することができる。用意したサービスの組合せを選択する構成としてもよい。
【図面の簡単な説明】
【0048】
【図1】利用者装置3と情報提供ポータルシステム10の関係を示す図。
【図2】情報提供ポータルシステム10の構成例を示す図。
【図3】情報提供装置1の処理フロー例を示す図。
【図4】識別情報記憶部105に記憶されるデータ例を示す図。
【図5】認証部110の処理フロー例を示す図。
【図6】ポリシー記憶部120に記憶されるデータ例を示す図。
【図7】生成部130の処理フロー例を示す図。
【図8】セッション情報記憶部140に記憶されるデータ例を示す図。
【図9】検証部150の処理フロー例を示す図。
【図10】実行部160の処理フロー例を示す図。
【図11】本実施例における情報提供装置1のハードウェア構成を例示したブロック図。
【図12】変形例2のポリシー情報記憶部120に記憶されるデータ例を示す図。
【符号の説明】
【0049】
1 情報提供装置 10 情報提供ポータルシステム
7 通信部 8 記憶部
9 制御部 105 識別情報記憶部
110 認証部 120 ポリシー記憶部
130 生成部 140 セッション情報記憶部
150 検証部 160 実行部
【技術分野】
【0001】
本発明は、利用者のリクエストに対して、返答する情報提供装置、情報提供ポータルシステム、情報提供方法及び情報提供プログラムに関する。
【背景技術】
【0002】
利用者装置のリクエストに対して、返答する情報提供装置としては例えばwebサーバ等が、利用者装置としては例えばwebブラウザ等が、提供される情報としてはwebページ等がある。
【0003】
webサーバは、HTML文書や画像などの情報を蓄積しておき、webブラウザのリクエストに応じて、インターネットなどのネットワークを通じて、これらの情報を送信する。これは、以下のような手順により行われる。
【0004】
利用者がwebブラウザ上でURL(Uniform Resource Locator)を指定する。なお、URLとは、インターネット上に存在する情報資源(文書や画像など)の場所を指し示す記述方式であり、情報の種類やサーバ名、ポート番号、フォルダ名、ファイル名などで構成される(例えば、「www.test01.example02.com/sample03/index.html」等)。webブラウザは、URLからドメインを抽出する。なお、ドメインとは、インターネット上に存在するコンピュータやネットワークにおける共通して管理される領域を意味し、その識別子をドメイン名(例えば、「www.test01.example02.com」等)という。webブラウザは、抽出したドメインにリクエスト情報を送信する。なお、リクエスト情報とは、メソッド、URL、要求するデータ等を含んだ情報である。
【0005】
webサーバは、動的にwebページを生成し、レスポンス情報をwebブラウザに送信する。なお、レスポンス情報とは、ステータス・コードやレスポンス・フレーズ、応答するデータ等を含む情報である。なお、webページは、表示を担当するHTMLの部分と、実行可能なJava(登録商標)script等のwebブラウザ上で稼動するスクリプトの部分から構成されてもよい。なお、スクリプトは、他のwebページの情報にアクセスできる。但し、アクセスできる範囲は、同じドメインから配信されたwebページに限定される。この限定は、Same Origin Policyと呼ばれる。つまり、ドメイン「www.test01.example02.com」のwebページは、同一ドメイン内のwebページにはアクセスできるが、異なるドメイン「www.test02.example02.com」内のwebページにアクセスすることはできない。
【0006】
利用者のwebページ間の挙動を追跡し、webページが異なるドメイン間でもアクセスすることを可能にする方法として、セッションIDを利用する方法がある。なお、セッションとは、一連の通信のことを意味し、例えば、接続を確立してから切断するまでが一つのセッションとすることもできる。セッションIDとは、このセッションを一意に特定する識別子のことを意味する。また、セッションIDは、利用者とサービス提供者以外の第三者が推測できない情報を利用する。セッションIDの発行手順は以下の通りである。webサーバがリクエスト情報を送信した利用者の正当性を検証する。正当性が認められれば(認証)、webサーバは、利用者に対してセッションIDを生成し、割り当てる。さらに、webサーバは、利用者とセッションIDを記憶部に記憶する。webサーバは、webブラウザに対して、「ドメイン・URLのパス・プロトコルが指定と一致するページを有効期限内に訪れる際には、必ずこのセッションIDをリクエスト情報に含めよ」という指示をレスポンス情報に含める。以降、webサーバは、リクエスト情報に含まれるセッションIDを用いて一連の通信を識別することができる。
【0007】
ここで、主モジュールと複数のサービスモジュールから構成され、情報を提供するポータルについて考える。なお、サービスモジュールは、webサーバが提供する情報の少なくとも一部を提供する。ポータルは、サービスモジュールを追加、削除することで機能を容易に変更することができる。例えば、利用者の要望に応じてサービスモジュールを追加することなどが考えられる。このような場合には、複数のサービスモジュールは、一つのセッションIDを共有する。この場合には、Same Origin Policyにかかわらず、webページは異なるドメインに存在する他のwebページにもアクセスが可能となる。
【0008】
しかし、一般的に、開発費の大小や開発者の技術レベルの差異によりサービスモジュールは主モジュールに比べて、セキュリティホールが存在する可能性が高い。一つのセッションIDを共有する場合には、複数のサービスモジュールの内の一つのサービスモジュールに欠陥があれば、攻撃者にセッションIDを盗難され、利用者になりすまされ、ポータル全体に被害が及ぶ可能性がある。
【0009】
非特許文献1記載の技術は、1ドメインに1サービスモジュールが対応するという構成である。なお、以下、サービスモジュールが対応する個別のドメインのことをサービスドメインという。セッションIDは、サービスモジュール毎に個別のIDを利用する。このような構成とすることで、上記、ポータル全体に被害が及ばないようにしている。各サービスモジュールは、Same Origin Policyにより、ドメインが異なる他のサービスモジュールにアクセスできない。なお、Same Origin Policyを用いず、セッションIDが異なっても、他のドメインに対しアクセスできる構成とすることは、従来技術同様、ポータル全体に被害が及ぶ可能性がある。そこで非特許文献1記載の技術では、サービスモジュール間のデータの通信は利用者のwebブラウザ上で実行されるスクリプトを利用し、利用者装置を経由して行う。
【非特許文献1】Collin Jackson, Helen J. Wang," Subspace: Secure Cross-Domain Communication for Web Mashups", [on line], May 8-12 2007, the International World Wide Web Conference Committee (IW3C2), Banff, Alberta, Canada,[平成2008年12月9日検索], インターネット< http://www2007.org/papers/paper801.pdf >
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかし、非特許文献1記載の技術では、データが利用者の利用者装置(例えば、「webブラウザ」等)を経由するため、利用者によるデータの改竄の可能性があるという問題がある。また、各サービスモジュールは、他のサービスモジュールからデータを取得したい場合には、他のサービスモジュールを起動し、スクリプトによって情報を共有しなければならないため、webサーバ及びwebブラウザに対する処理上の負荷が増大するという問題がある。また、通信量が増大するという問題がある。
【0011】
本発明は、セキュリティを高めたまま、スクリプトを利用せずにサービスモジュール間のデータ通信を行い、利用者によるデータの改竄を防ぎ、利用者装置及び情報提供装置に対する処理上の負荷を軽減する情報提供装置、情報提供方法及び情報提供プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の情報提供技術は、サービスモジュールに対する利用者装置のリクエストに返答し、情報提供装置のドメインとサービスモジュールの少なくとも一部のドメインとが異なり、サービスモジュール名とサービスモジュールの識別情報を記憶し、各サービスモジュール名とそのサービスモジュールの権限をポリシー情報として記憶し、利用者装置と情報提供装置間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者装置と各サービスモジュールとの接続を一意に識別するサービスセッションIDを生成し、主セッションIDから得ることができる値、サービスセッションIDから得ることができる値及び対応するポリシー情報をセッション情報として記憶し、利用者装置からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証し、リクエスト情報に含まれるサービスモジュール名を用いて、識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、サービスセッションIDに対応付けられるセッション情報と識別情報を用いて、サービスモジュールを呼び出し、実行し、ポリシーに従って情報提供装置が提供する情報の少なくとも一部を提供する。
【発明の効果】
【0013】
本発明の情報提供装置及び情報提供方法によれば、スクリプトを利用せずにサービスモジュール間のデータ通信を行うことができるため、利用者による改竄を防止できる。また、利用者装置及び情報提供装置の処理上の負荷を軽減できる。また、通信量を軽減することができる。
【発明を実施するための最良の形態】
【0014】
ここで、本発明の実施例について説明する。
【実施例1】
【0015】
[情報提供ポータルシステム10]
図1は、利用者装置3と情報提供ポータルシステム10の関係を示す。図2は、情報提供ポータルシステム10の構成例を示す。情報提供ポータルシステム10は、主モジュール100と、一つ以上のサービスモジュール200n(1≦n≦N)から構成され、利用者装置3(例えば、webブラウザ等)の求めに応じて、ネットワーク5(例えば、LANやインターネット等)を介して、情報を提供するシステムである。なお、利用者装置3は、webブラウザ等を意味してもよいし、それを実装するコンピュータ等を意味してもよい。主モジュール100は、情報提供ポータルシステムが情報を提供するために必要となるモジュールである。詳細は後述する。
【0016】
<サービスモジュール200n>
サービスモジュール200nは、情報提供装置1が提供する情報の少なくとも一部を提供する。例えば、主モジュール100の実行部160に呼び出され、実行部160において実行され、情報提供装置の提供するwebページの一部を作成する。
【0017】
主モジュール100は、情報提供ポータルシステム10を構成する情報提供装置1上に実装される。なお、主モジュールが実装される情報提供装置100も、情報提供ポータルシステム10の一部を構成する。サービスモジュール200nは、主モジュール100と同じドメイン上に実装されてもよいし(例えば、サービスモジュール2001及び2002)、主モジュール100と異なるドメイン上に実装されてもよい(例えば、サービスモジュール2005)。なお、全てのサービスモジュールが、主モジュールと異なるドメインに実装されてもよい。以下、主モジュールが実装されるドメインを「主ドメイン」、サービスモジュールが実装されるドメインを「サービスドメイン」という。よって、主ドメインと各サービスドメインは同一ドメインの場合もあれば、異なるドメインの場合もある。但し、主ドメインとサービスドメインの少なくとも一部は異なる。このとき、Same Origin Policyにより、異なるドメイン内のモジュールは、スクリプトを利用して、互いにアクセスすることはできない。例えば、各サービスモジュール200nは図示しない記憶部208n等を有してもよく、利用者の個人情報等を各記憶部208nに記憶してもよい。異なるドメイン内のモジュールは、スクリプトを利用して、他の記憶部にアクセスすることはできないため、個人情報等を安全に管理することができる。サービスドメインを管理するDNS(Domain Name System)サーバには、サービスドメインに対応するIPアドレスとして情報提供装置1のIPアドレスが登録されている。このような構成とすることで、サービスドメインにアクセスしようとした利用者装置3は、情報提供装置1にアクセスする。
【0018】
[情報提供装置1]
図3は、情報提供装置1の処理フロー例を示す。情報提供装置1は、通信部7、記憶部8、制御部9、主モジュール100及びサービスモジュール200nを有する。主モジュール100は、識別情報記憶部105、認証部110、ポリシー記憶部120、生成部130、セッション情報記憶部140、検証部150、実行部160を備える。
なお、本実施例は発明の内容を限定するものではない。例えば、サービスモジュール200nを設けなくともよく、外部のサービスモジュールのみを用いてもよい。
【0019】
<通信部7、記憶部8及び制御部9>
情報提供装置1は、利用者装置3からリクエスト情報が送信されるのを待つ(s1)。利用者装置3からリクエスト情報が送信されると、情報提供装置1は、ネットワーク5及び通信部7を介して、利用者装置3からのリクエスト情報を受信する(s7)。以下、特に記述しなくとも、情報提供装置1及び利用者装置3と通信する際には、通信部7を介して行われるものとする。通信部7は、例えば、LANアダプタ等により構成され、LANやインターネット等からなるネットワーク5と接続される。
【0020】
記憶部8は、受信したリクエスト情報を一時的に記憶してもよい。以下、特に示さない限り、入出力される各データや演算過程の各データは、逐一、記憶部8に格納・読み出され、各演算処理が進められる。但し、必ずしも記憶部8に記憶しなければならないわけではなく、各部間で直接データを受け渡してもよい。なお、後述するポリシー記憶部120及びセッション情報記憶部140は、記憶部9の一部として設けてもよいし、別に設けてもよい。
【0021】
制御部9は、情報提供装置1において、各処理を制御、実行する。例えば、通信部7を介して、リクエスト情報を受信した際に、制御部9は、主モジュール100を起動させてもよい。
【0022】
検証部150は、利用者装置3からのリクエスト情報にサービスセッションIDが含まれるか否か検証する。初めてのアクセスの際には、サービスセッションIDはリクエスト情報に含まれないため、情報を提供する前に処理を認証部110に移す。サービスセッションIDがリクエスト情報に含まれる場合の処理については、後述する。
【0023】
<識別情報記憶部105>
識別情報記憶部105は、予め各サービスモジュールの識別子(例えば、各サービスモジュールのURL等。以下、「サービスモジュール名」という)とサービスモジュールの識別情報を記憶しておく。図4は、識別情報記憶部105に記憶されるデータ例を示す。例えば、識別情報としては、IPアドレス等が考えられる。他にMACアドレス等、サービスモジュールが実装される機器(サーバ等)を識別できる情報であればよい。例えば、図4の2行目、3行目のドメインは「module2.portal.com」であり、同一である。このように一つのサービスドメインに複数のサービスモジュールや識別情報が対応してもよい。また、3行目、4行目の識別情報は、「192.168.200.△△△」であり、同一である。このように一つ識別情報に複数のサービスドメインやサービスモジュールが対応してもよい。
【0024】
<認証部110>
図5は、認証部110の処理フロー例を示す。認証部110は、利用者を認証する(s110)。例えば、リクエスト情報を送信した利用者装置3に対し、認証情報を要求する(s112)。認証情報としては、例えば、利用者IDとパスワード、指紋情報等の生体認証に用いる認証情報が考えられる。利用者装置3は、認証情報を情報提供装置1へ送信する。認証部110は、認証情報を受信し(s114)、図示していない認証情報データベース等を参照し、利用者装置3の正当性を確認する(s116)。正当性が確認できない場合には、エラーを出力する(s117)。また、利用者装置3の要求を拒否してもよいし、再度認証情報を要求してもよい。正当性が確認できる場合には、生成部130に処理を移す(s118)。
【0025】
なお、非特許文献1記載の技術を用いて、利用者を認証する場合には、各サービスモジュールに利用者装置がアクセスする際に、各サービスモジュールにより認証を行う必要があり、処理量及び通信量が増大する。また、前述の通り、サービスモジュールは主モジュールに比べて、セキュリティホールが存在する可能性が高く、攻撃者に狙われやすい。主モジュールに認証部110を有することによって、集中管理することによりセキュリティを高めることができる。また、認証を一括することにより処理量及び通信量を軽減することができる。
【0026】
なお、本実施例は発明の内容を限定するものではない。必ずしも認証部110は、認証情報を要求せずともよい。例えば、リクエスト情報を受信した際に得られる送信元IPアドレス等によって認証してもよい。この場合、上記「利用者」とは、必ずしも「利用者自身」を意味せずともよく、例えば、「利用者装置」を意味してもよい。また、例えば、利用者装置の正当性を確認する必要がない場合には、認証部110を設けなくともよい。
【0027】
<ポリシー記憶部120>
ポリシー記憶部120は、サービスモジュール名とそのサービスモジュールの権限をポリシー情報として予め記憶しておく。図6は、ポリシー記憶部120に記憶されるデータ例を示す。権限としては、アクセスできる範囲や処理内容等がある。例えば、図6に沿って説明すると、サービスモジュール「module1.portal.com」は、サービスモジュール「module2.portal.com」に対して、書込みをする権限を有していることを意味する。また、例えば、アクセスできる範囲には、サービスモジュールだけではなく、サービスモジュールの有するデータ項目まで、範囲を限定することも可能である。例えば、主モジュールは、あるサービスモジュール200nからデータ項目「年齢」だけを「読込み」をすることができるといった構成とすることも可能である。
【0028】
<生成部130>
図7は、生成部130の処理フロー例を示す。生成部130は、利用者装置3と情報提供装置1間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者装置3と各サービスモジュール200nとの接続を一意に識別するサービスセッションIDを生成する(s130)。例えば、生成部130は、リクエスト情報から用いるサービスモジュール名を特定し(s131)、対応する主セッションID及びサービスセッションIDを生成し(s133)、さらに、ポリシー記憶部120を参照し、特定したサービスモジュール名に対応するポリシー情報を取得し(s135)、主セッションIDから得ることができる値、サービスセッションIDから得ることができる値及びポリシー情報をセッション情報記憶部140に出力する(s137)。なお、以下、主セッションIDから得ることができる値、サービスセッションIDから得ることができる値及びこれに対応するポリシー情報を併せてセッション情報という。なお、主セッションIDから得ることができる値、サービスセッションIDから得ることができる値とは、主セッションID、サービスセッションID自体であってもよいし、そこから得ることができる値であってもよい。例えば、主セッションID、サービスセッションIDから得ることができるハッシュ値や暗号処理した値等が考えられる。サービスセッションIDは、サービスモジュール間で、共有させないため、非特許文献同様、ポータル全体に被害が及ぶことはない。
【0029】
情報提供装置1は、サービスセッションIDとともに、「ドメイン・URLのパス・プロトコルが指定と一致するページを有効期限内に訪れる際には、必ずこのサービスセッションIDをリクエスト情報に含めよ」という指示をレスポンス情報に加える。
例えば、クッキー(Cookie)等を用いて、以降のリクエスト情報にはサービスセッションIDを付加する。なお、主セッションIDもリクエスト情報に含めるよう指示してもよい。
【0030】
<セッション情報記憶部140>
セッション情報記憶部140は、セッション情報を記憶する(s140)。図8は、セッション情報記憶部140に記憶されるデータ例を示す。例えば、主セッションIDが「osdkmasgaso」であり、かつ、サービスセッションIDが「agq3qvw4tq24」である接続は、サービスモジュール「module1.portal.com」は、サービスモジュール「module2.portal.com」に対して、書込みをすることができる。主セッションIDは、主モジュール(または、情報提供装置1)と利用者装置3とのセッションを管理し、サービスセッションIDは、サービスモジュール200nと利用者装置3とのセッションを管理する。よって、複数のサービスモジュール200nを呼び出す場合には、一つの主セッションIDに複数のサービスセッションIDが対応することとなる。また、情報提供装置1は、リクエスト情報にサービスセッションIDのみ含まれる場合であっても、セッション情報記憶部140のデータから、主セッションIDを特定することができる。なお、ポリシー情報として主セッションID、サービスセッションIDから得ることができるハッシュ値や暗号処理した値等を用いた場合には、セッション情報記憶部140が覗き見られた場合であっても、攻撃者は主セッションID、サービスセッションIDが分からない。よって、攻撃者が利用者になりすますことを防止できる。また、ハッシュ値等を用いて記憶する情報量を軽減してもよい。
【0031】
<検証部150>
図9は、検証部150の処理フロー例を示す。検証部150は、利用者装置3からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証する(s150)。例えば、検証部150は、利用者装置3からのリクエスト情報に含まれるサービスセッションIDがセッション情報記憶部に存在するか否か確認することにより有効性を検証する。検証部150は、リクエスト情報を入力され、前述の通り利用者装置3からのリクエスト情報にサービスセッションIDが含まれるか否か検証する(s151)。前述の通り含まれない場合には、処理を認証部110に移す(s153)。サービスセッションIDがリクエスト情報に含まれる場合には、セッション情報記憶部140を参照し、このサービスセッションIDが存在するか否か確認し(s155)、存在する場合には処理を実行部160に移し(s157)、存在しない場合には処理を認証部に移す(s153)。なお、認証部に処理を移す前に、「セッションの有効期限が切れた」旨のメッセージを利用者装置3に送信してもよい。なお、セッション情報記憶部140にサービスセッションIDのハッシュ値等が記憶されている場合には、同じハッシュ関数等を用いて、リクエスト情報に含まれるサービスセッションIDからハッシュ値を求め、同様に有効性を検証する。
【0032】
<実行部160>
図10は、実行部160の処理フロー例を示す。実行部160は、リクエスト情報に含まれるサービスモジュール名を用いて、識別情報記憶部105を参照して対応するサービスモジュールの識別情報を取得する。また、サービスセッションIDに対応付けられるセッション情報と識別情報を用いて、サービスモジュールを呼び出し、実行する。ポリシーに従って情報提供装置が提供する情報の少なくとも一部を提供する(s160)。例えば、実行部160は、リクエスト情報が入力され、リクエスト情報に含まれるURLからサービスモジュール名を抽出し、識別情報記憶部105を参照し、サービスモジュールの識別情報を取得する(s161)。さらに、リクエスト情報に含まれるサービスセッションIDから、セッション情報記憶部140を参照し、ポリシー情報を取得する(s162)。但し、セッション情報記憶部140を参照せずに、生成部130から直接セッション情報を受け取る構成としてもよい。リクエスト情報がポリシー情報に従っているか確認し(s163)、リクエスト情報がポリシー情報に従っている場合には、サービスモジュールを呼び出し、実行する(s165)。処理結果をレスポンス情報の少なくとも一部として出力する(s166)。従っていない場合には、エラーを出力する(s167)。
【0033】
情報提供装置1は、レスポンス情報を利用者装置3に送信し、情報を提供する。なお、一つのセッションの間に、複数のサービスモジュールにアクセスしてもよい。その際は、生成部130において、対応する複数のサービスセッションIDを生成する。
【0034】
このような構成とすることで、各サービスモジュールに対し、サービスセッションIDを設け、非特許文献1記載の従来技術と同等のセキュリティを有することができる。さらに、スクリプトを利用せずにサービスモジュール間のデータ通信を行うことができるため、利用者による改竄を防止できる。また、利用者装置及び情報提供装置の処理上の負荷を軽減できる。また、通信量を軽減することができる。
【0035】
<ハードウェア構成>
図11は、本実施例における情報提供装置1のハードウェア構成を例示したブロック図である。
図11に例示するように、この例の情報提供装置1は、CPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16及びバス17を有している。
【0036】
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部12は、データが入力される入力インターフェース、キーボード、マウス等であり、出力部13は、データが出力される出力インターフェース等である。補助記憶装置14は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、情報提供装置1としてコンピュータを機能させるためのプログラムが格納されるプログラム領域14a及び各種データが格納されるデータ領域14bを有している。また、RAM16は、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、上記のプログラムが格納されるプログラム領域16a及び各種データが格納されるデータ領域16bを有している。また、バス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15及びRAM16を通信可能に接続する。
【0037】
なお、このようなハードウェアの具体例としては、例えば、パーソナルコンピュータの他、サーバ装置やワークステーション等を例示できる。
【0038】
<プログラム構成>
上述のように、プログラム領域14a,16aには、本実施例の情報提供装置1の各処理を実行するための各プログラムが格納される。情報提供名プログラムを構成する各プログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。また、各プログラムが単体でそれぞれの機能を実現してもよいし、各プログラムがさらに他のライブラリを読み出して各機能を実現するものでもよい。
【0039】
<ハードウェアとプログラムとの協働>
CPU11(図11)は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置14のプログラム領域14aに格納されている上述のプログラムをRAM16のプログラム領域16aに書き込む。同様にCPU11は、補助記憶装置14のデータ領域14bに格納されている各種データを、RAM16のデータ領域16bに書き込む。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11aは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。
【0040】
図1は、このようにCPU11に上述のプログラムが読み込まれて実行されることにより構成される情報提供装置1の機能構成を例示したブロック図である。
【0041】
ここで、記憶部8、ポリシー記憶部120及びセッション情報記憶部140は、補助記憶装置14、RAM16、レジスタ11c、その他のバッファメモリやキャッシュメモリ等の何れか、あるいはこれらを併用した記憶領域に相当する。また、通信部7と、記憶部8と、制御部9と、認証部110と、生成部130と、検証部150と、実行部160は、CPU11に情報提供プログラムを実行させることにより構成されるものである。
また、本形態の情報提供装置1は、各制御部9の制御のもと各処理を実行する。
【0042】
[変形例1]認証用サービスモジュール
実施例1と異なる部分についてのみ説明する。変形例1の情報提供装置1は、認証部110を有さない。情報提供ポータルシステム10は、認証用サービスモジュール2003を有する。さらに、認証処理を分散するために認証用サービスモジュール2004等を有してもよい。
【0043】
認証用サービスモジュール2003等は、利用者を認証する。例えば、このような構成とした場合、検証部150は、リクエスト情報を入力され、利用者装置3からのリクエスト情報にサービスセッションIDが含まれるか否か検証する。含まれない場合、または、含まれるが、セッション情報記憶部140に存在しない場合には、認証用サービスモジュール2003を呼び出す。認証用サービスモジュールの呼び出し方法は、実施例1と同様であってもよいし、他の方法であってもよい。他の方法としては、認証用サービスモジュールの識別情報は、別途記憶部8に記憶しておき、識別情報記憶部105を参照せずに、呼び出してもよい。次に、実行部160において、認証用サービスモジュールを実行する。認証処理は、認証部130と同様である。
【0044】
このような構成とすることで複数の認証処理を行うことが可能となり、処理を分散することができる。また、モジュール毎に認証の強度を容易に変更することができる。例えば、一つの認証用サービスモジュールでは、利用者ID、パスワードのみで認証可能だが、他の認証用サービスモジュールでは、利用者ID、パスワードに加え、バイオメトリクス認証情報等を必要としてもよい。なお、認証用サービスモジュールは、主ドメイン内であっても、主ドメイン外であってもよい。
【0045】
[変形例2]ユーザIDによるアクセス制限
実施例1と異なる部分についてのみ説明する。変形例2の情報提供装置1は、ポリシー記憶部120に記憶されるデータが実施例1とは異なる。図12は、変形例2のポリシー情報記憶部120に記憶されるデータ例を示す。ポリシー記憶部120は、利用者名とサービスモジュール名の組合せとその組合せに対する権限を表すポリシー情報を記憶する。図12を用いて説明する。例えば、図12に沿って説明すると、利用者「user_A」の場合には、サービスモジュール「module1.portal.com」は、サービスモジュール「module2.portal.com」に対して、読込みをする権限は有さず、書込みをする権限を有している。一方、利用者「user_B」の場合には、サービスモジュール「module1.portal.com」は、サービスモジュール「module2.portal.com」に対して、書込みをする権限は有さず、読込みをする権限を有していることを意味する。
【0046】
例えば、生成部130は、主セッションID及びサービスセッションIDを生成する際に、リクエスト情報から用いるサービスモジュール名と利用者を特定し、対応する主セッションID及びサービスセッションIDを生成する。さらに、ポリシー記憶部120を参照し、特定したサービスモジュール名と利用者の組合せに対応するポリシー情報を取得し、主セッションID及びサービスセッションID、及びポリシー情報をセッション情報記憶部140に出力する。
【0047】
このような構成とすることで利用者毎に柔軟にポリシーを設定することができる。ポリシー情報の設定変更は、利用者側が行ってもよいし、情報提供装置の管理者が行ってもよい。利用者が行う構成とする場合には、例えば、保護者が未成年者の有害なサイトへのアクセスを制限することができる。また、管理者側が行う構成とする場合には、特定のサービスに申し込みをしている利用者のみに、そのサービスを受けることができるように設定することができる。また、サービスモジュール毎にポリシーを設定することで、ポータルが提供できるサービスの組合せのバリエーションを多数用意することができる。用意したサービスの組合せを選択する構成としてもよい。
【図面の簡単な説明】
【0048】
【図1】利用者装置3と情報提供ポータルシステム10の関係を示す図。
【図2】情報提供ポータルシステム10の構成例を示す図。
【図3】情報提供装置1の処理フロー例を示す図。
【図4】識別情報記憶部105に記憶されるデータ例を示す図。
【図5】認証部110の処理フロー例を示す図。
【図6】ポリシー記憶部120に記憶されるデータ例を示す図。
【図7】生成部130の処理フロー例を示す図。
【図8】セッション情報記憶部140に記憶されるデータ例を示す図。
【図9】検証部150の処理フロー例を示す図。
【図10】実行部160の処理フロー例を示す図。
【図11】本実施例における情報提供装置1のハードウェア構成を例示したブロック図。
【図12】変形例2のポリシー情報記憶部120に記憶されるデータ例を示す図。
【符号の説明】
【0049】
1 情報提供装置 10 情報提供ポータルシステム
7 通信部 8 記憶部
9 制御部 105 識別情報記憶部
110 認証部 120 ポリシー記憶部
130 生成部 140 セッション情報記憶部
150 検証部 160 実行部
【特許請求の範囲】
【請求項1】
サービスモジュールに対する利用者装置のリクエストに返答する情報提供装置であって、
当該情報提供装置のドメインとサービスモジュールの少なくとも一部のドメインとが異なり、
各サービスモジュール名とサービスモジュールの識別情報を記憶する識別情報記憶部と、
各サービスモジュール名とそのサービスモジュールの権限をポリシー情報として記憶するポリシー記憶部と、
利用者装置と情報提供装置間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者装置と各サービスモジュールとの接続を一意に識別するサービスセッションIDを生成する生成部と、
前記主セッションIDから得ることができる値、前記サービスセッションIDから得ることができる値及び対応するポリシー情報をセッション情報として記憶するセッション情報記憶部と、
前記利用者装置からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証する検証部と、
前記リクエスト情報に含まれるサービスモジュール名を用いて、前記識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、前記サービスセッションIDに対応付けられるセッション情報と前記識別情報を用いて、サービスモジュールを呼び出し、実行し、ポリシーに従って情報提供装置が提供する情報の少なくとも一部を提供する実行部と、を有する
ことを特徴とする情報提供装置。
【請求項2】
請求項1記載の情報提供装置であって、
利用者認証用サービスモジュールを有し、
前記実行部は、前記リクエスト情報にサービスセッションIDが含まれないか、または、サービスセッションIDが含まれるが有効ではない場合には、予め定められた識別情報から利用者認証用サービスモジュールを呼び出し、実行し、利用者を認証する
ことを特徴とする情報提供装置。
【請求項3】
請求項1または2記載の情報提供装置であって、
前記ポリシー記憶部は、利用者名とサービスモジュール名の組合せとその組合せに対する権限を表すポリシー情報を記憶する、
ことを特徴とする情報提供装置。
【請求項4】
サービスモジュールに対する利用者装置のリクエストに返答する情報提供ポータルシステムであって、
情報提供ポータルシステムが提供する情報の少なくとも一部を提供する1以上のサービスモジュールと、情報提供装置を有し、当該情報提供装置のドメインとサービスモジュールの少なくとも一部のドメインとが異なり、
前記情報提供装置は、
サービスモジュール名とサービスモジュールの識別情報を記憶する識別情報記憶部と、
各サービスモジュール名とそのサービスモジュールの権限をポリシー情報として記憶するポリシー記憶部と、
利用者装置と情報提供ポータルシステム間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者装置と各サービスモジュールとの接続を一意に識別するサービスセッションIDを生成する生成部と、
前記主セッションIDから得ることができる値、前記サービスセッションIDから得ることができる値及び対応するポリシー情報をセッション情報として記憶するセッション情報記憶部と、
前記利用者装置からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証する検証部と、
前記リクエスト情報に含まれるサービスモジュール名を用いて、前記識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、前記サービスセッションIDに対応付けられるセッション情報と前記識別情報を用いて、サービスモジュールを呼び出し、実行し、ポリシーに従って情報提供ポータルシステムが提供する情報の少なくとも一部を提供する実行部を備える、
ことを特徴とする情報提供ポータルシステム。
【請求項5】
サービスモジュールに対する利用者方法のリクエストに返答する情報提供方法であって、
当該情報提供方法を実現する情報提供装置のドメインとサービスモジュールの少なくとも一部のドメインとが異なり、
識別情報記憶部はサービスモジュール名とサービスモジュールの識別情報を記憶し、
ポリシー記憶部は各サービスモジュール名とそのサービスモジュールの権限をポリシー情報として記憶し、
利用者方法と情報提供方法を実現する装置間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者方法と各サービスモジュールとの接続を一意に識別するサービスセッションIDを生成する生成ステップと、
前記主セッションIDから得ることができる値、前記サービスセッションIDから得ることができる値及び対応するポリシー情報をセッション情報として記憶するセッション情報記憶ステップと、
前記利用者方法からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証する検証ステップと、
前記リクエスト情報に含まれるサービスモジュール名を用いて、前記識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、前記サービスセッションIDに対応付けられるセッション情報と前記識別情報を用いて、サービスモジュールを呼び出し、実行し、ポリシーに従って情報提供方法が提供する情報の少なくとも一部を提供する実行ステップと、を有する
ことを特徴とする情報提供方法。
【請求項6】
請求項5記載の情報提供方法であって、
当該情報提供方法を実現する情報提供ポータルシステムは利用者認証用サービスモジュールを有し、
前記リクエスト情報にサービスセッションIDが含まれないか、または、サービスセッションIDが含まれるが有効ではない場合には、予め定められた識別情報を用いて利用者認証用サービスモジュールを呼び出し、実行し、利用者を認証する認証ステップを有する
ことを特徴とする情報提供方法。
【請求項7】
請求項5または6記載の情報提供方法であって、
前記ポリシー記憶部は、利用者名とサービスモジュール名の組合せとその組合せに対する権限を表すポリシー情報を記憶する、
ことを特徴とする情報提供方法。
【請求項8】
請求項1から3記載の何れかの情報提供装置としてコンピュータを機能させるための情報提供プログラム。
【請求項1】
サービスモジュールに対する利用者装置のリクエストに返答する情報提供装置であって、
当該情報提供装置のドメインとサービスモジュールの少なくとも一部のドメインとが異なり、
各サービスモジュール名とサービスモジュールの識別情報を記憶する識別情報記憶部と、
各サービスモジュール名とそのサービスモジュールの権限をポリシー情報として記憶するポリシー記憶部と、
利用者装置と情報提供装置間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者装置と各サービスモジュールとの接続を一意に識別するサービスセッションIDを生成する生成部と、
前記主セッションIDから得ることができる値、前記サービスセッションIDから得ることができる値及び対応するポリシー情報をセッション情報として記憶するセッション情報記憶部と、
前記利用者装置からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証する検証部と、
前記リクエスト情報に含まれるサービスモジュール名を用いて、前記識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、前記サービスセッションIDに対応付けられるセッション情報と前記識別情報を用いて、サービスモジュールを呼び出し、実行し、ポリシーに従って情報提供装置が提供する情報の少なくとも一部を提供する実行部と、を有する
ことを特徴とする情報提供装置。
【請求項2】
請求項1記載の情報提供装置であって、
利用者認証用サービスモジュールを有し、
前記実行部は、前記リクエスト情報にサービスセッションIDが含まれないか、または、サービスセッションIDが含まれるが有効ではない場合には、予め定められた識別情報から利用者認証用サービスモジュールを呼び出し、実行し、利用者を認証する
ことを特徴とする情報提供装置。
【請求項3】
請求項1または2記載の情報提供装置であって、
前記ポリシー記憶部は、利用者名とサービスモジュール名の組合せとその組合せに対する権限を表すポリシー情報を記憶する、
ことを特徴とする情報提供装置。
【請求項4】
サービスモジュールに対する利用者装置のリクエストに返答する情報提供ポータルシステムであって、
情報提供ポータルシステムが提供する情報の少なくとも一部を提供する1以上のサービスモジュールと、情報提供装置を有し、当該情報提供装置のドメインとサービスモジュールの少なくとも一部のドメインとが異なり、
前記情報提供装置は、
サービスモジュール名とサービスモジュールの識別情報を記憶する識別情報記憶部と、
各サービスモジュール名とそのサービスモジュールの権限をポリシー情報として記憶するポリシー記憶部と、
利用者装置と情報提供ポータルシステム間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者装置と各サービスモジュールとの接続を一意に識別するサービスセッションIDを生成する生成部と、
前記主セッションIDから得ることができる値、前記サービスセッションIDから得ることができる値及び対応するポリシー情報をセッション情報として記憶するセッション情報記憶部と、
前記利用者装置からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証する検証部と、
前記リクエスト情報に含まれるサービスモジュール名を用いて、前記識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、前記サービスセッションIDに対応付けられるセッション情報と前記識別情報を用いて、サービスモジュールを呼び出し、実行し、ポリシーに従って情報提供ポータルシステムが提供する情報の少なくとも一部を提供する実行部を備える、
ことを特徴とする情報提供ポータルシステム。
【請求項5】
サービスモジュールに対する利用者方法のリクエストに返答する情報提供方法であって、
当該情報提供方法を実現する情報提供装置のドメインとサービスモジュールの少なくとも一部のドメインとが異なり、
識別情報記憶部はサービスモジュール名とサービスモジュールの識別情報を記憶し、
ポリシー記憶部は各サービスモジュール名とそのサービスモジュールの権限をポリシー情報として記憶し、
利用者方法と情報提供方法を実現する装置間において接続を確立する際に、その接続を一意に識別する主セッションID、及び、利用者方法と各サービスモジュールとの接続を一意に識別するサービスセッションIDを生成する生成ステップと、
前記主セッションIDから得ることができる値、前記サービスセッションIDから得ることができる値及び対応するポリシー情報をセッション情報として記憶するセッション情報記憶ステップと、
前記利用者方法からのリクエスト情報に含まれるサービスセッションIDの有効性をセッション情報記憶部の情報を用いて検証する検証ステップと、
前記リクエスト情報に含まれるサービスモジュール名を用いて、前記識別情報記憶部を参照して対応するサービスモジュールの識別情報を取得し、前記サービスセッションIDに対応付けられるセッション情報と前記識別情報を用いて、サービスモジュールを呼び出し、実行し、ポリシーに従って情報提供方法が提供する情報の少なくとも一部を提供する実行ステップと、を有する
ことを特徴とする情報提供方法。
【請求項6】
請求項5記載の情報提供方法であって、
当該情報提供方法を実現する情報提供ポータルシステムは利用者認証用サービスモジュールを有し、
前記リクエスト情報にサービスセッションIDが含まれないか、または、サービスセッションIDが含まれるが有効ではない場合には、予め定められた識別情報を用いて利用者認証用サービスモジュールを呼び出し、実行し、利用者を認証する認証ステップを有する
ことを特徴とする情報提供方法。
【請求項7】
請求項5または6記載の情報提供方法であって、
前記ポリシー記憶部は、利用者名とサービスモジュール名の組合せとその組合せに対する権限を表すポリシー情報を記憶する、
ことを特徴とする情報提供方法。
【請求項8】
請求項1から3記載の何れかの情報提供装置としてコンピュータを機能させるための情報提供プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−152690(P2010−152690A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−330742(P2008−330742)
【出願日】平成20年12月25日(2008.12.25)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願日】平成20年12月25日(2008.12.25)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]