説明

セッション権限管理方法

【課題】認証機構を別途設けなくともウェブサイトとのセッションを他のコンピュータに委譲できるようにすること。
【解決手段】UI提供装置30は、ウェブクライアント装置10とウェブサーバ装置20とのセッションに係るセッション識別情報及び秘密情報、並びに、そのウェブサーバ装置内のウェブページデータを特定するURLを、ウェブクライアント装置10から受け取った後、そのURL宛に、セッション識別情報と秘密情報とを含んだリクエストメッセージを送信する。ウェブサーバ装置30は、受信したリクエストメッセージ内のセッション識別情報に対応する秘密情報をセッション情報管理テーブル24から取得し、リクエストメッセージ内の秘密情報と比較する。比較の結果、秘密情報同士が一致していれば、ウェブサーバ装置20は、UI提供装置30にウェブページデータ21を送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ウェブサーバ装置からウェブページデータを受け取るセッション権限を管理するための方法に、関する。
【背景技術】
【0002】
周知のように、利用者に認証を求めるウェブサイトが多く存在する。各ウエブサイトが要求する認証は、一般に、互いに独立しているため、利用者は、ウェブクライアントから複数のウェブサイトにアクセスする際、各ウェブサイトで別個の認証手続を行わねばならない。但し、例えば、航空会社とレンタカー会社と宿泊施設の予約サイトのように、互いに関連した複数のウェブサイトにアクセスする際には、一度の認証手続で全てのウェブサイトに対するセッション(アクセス認可)が得られるようになっていると便利である。このように一度の認証手続で複数のウェブサイトに対するセッションが得られるようにする技術として、SAML[Security Assertion Markup Language]認証及びケルベロス認証がある(非特許文献1及び2参照)。
【0003】
SAML認証もケルベロス認証も、認証機構が別途用意される。利用者は、ウェブクライアントから何れかのウェブサイトへアクセスする前に、この認証機構に対して認証手続を行い、各ウェブサイトに提示してセッションを得るための認可情報を取得する。利用者は、この認可情報をウェブクライアントからウェブサイトに提示すれば、認証手続きを経なくても、そのウェブサイトに対するアクセス認可を取得でき、セッションを開始することができる。
【0004】
ところで、この認可情報は、本来、その認可を受けた利用者だけが利用できるものであるが、SAML認証及びケルベロス認証では、その認可情報を第三者に引き渡すことによってセッション(アクセス権限)を委譲する技術も、開発されている。このセッション委譲技術によると、第三者は、正規利用者から受け取った認可情報を、ウェブサイトに提示するだけで、その正規利用者が有していたセッションを引き継ぐことができる。
【0005】
このように、セッション委譲を実現するためには、認証手続きを行って認可情報を発行する認証機構を別途用意する必要があった。また、認可情報の提示を受けてセッションを開始する機能が各ウェブサイトに導入されている必要もあったため、セッションを委譲できる範囲も、このような機能が導入されたウェブサイト群に限られていた。
このため、このような認証機構を別途設けなくとも、し、尚且つ、認可情報の提示を受けてセッションを開始する機能が各ウェブサイトに導入されている必要があった。
が技術によると、そのセッションが継続中か解除されているかに拘わらず、認可情報が第三者に引き渡され得る。このため、セッションが無効となっている場合にセッション委譲を制限したいという要望があった。
【0006】
【非特許文献1】鈴木優一、“ウェブサービスのセキュリティ、第4回強力なSSOを実現するXML認証、認可サービス(SAML)”、[online]、平成14年10月2日、アイティメディア株式会社、[平成19年2月27日検索]、インターネット<URL:http://www.atmarkit.co.jp/fsecurity/rensai/webserv04/webserv01.html>
【非特許文献2】“セキュリティの概要”、42〜46頁、[online]、平成16年4月29日、アップルコンピュータ社、[平成19年2月27日検索]、インターネット<URL:http://developer.apple.com/jp/documentation/pdf/security_overview_j.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、前述したような従来の事情に鑑みてなされたものであり、その課題は、認証機構を別途設けなくともウェブサイトとのセッションを他のコンピュータに委譲できるようにすることにある。
【課題を解決するための手段】
【0008】
上記の課題を解決するために案出されたセッション権限管理方法は、ウェブページデータを複数有するウェブサーバ装置と、そのウェブサーバ装置からネットワークを介してウェブページデータを取得するためのウェブクライアント装置とからなるコンピュータネットワークシステムにおいて、前記ウェブサーバ装置から前記ウェブページデータを受け取るセッション権限を管理するための方法であって、前記ウェブクライアント装置が、何れかのウェブサーバ装置からセッション権限が付与されたときに、そのセッションを特定するためのセッション識別情報と、ウェブページデータの要求時にウェブサーバ装置に提示するための秘密情報とを、記憶装置に記憶する記憶手順、前記ウェブクライアント装置が、操作者から入力装置を通じて所定の指示を受け付けると、前記記憶装置内のセッション識別情報及び秘密情報、並びに、セッション中のウェブサーバ装置を特定するサーバ特定情報を、通信装置を通じて受譲コンピュータに送信する第1の送信手順、前記受譲コンピュータが、前記第1の送信手順で前記ウェブクライアント装置から送信されたセッション識別情報と秘密情報とサーバ特定情報とを、通信装置を通じて受信する第1の受信手順、前記受譲コンピュータが、前記第1の受信手順で受信したセッション識別情報と秘密情報とを組み込んだリクエストメッセージを、前記第1の受信手順で受信したサーバ特定情報にて特定されるウェブサーバ装置へ、通信装置を通じて送信する第2の送信手順、前記ウェブサーバ装置が、前記第2の送信手順で前記受譲コンピュータから送信されたリクエストメッセージを、通信装置を通じて受信する第2の受信手順、前記ウェブサーバ装置が、セッション識別情報と秘密情報とを含むレコードを複数記憶したセッション情報管理テーブルから、前記第2の受信手順で受信したリクエストメッセージに組み込まれているセッション識別情報に一致するセッション識別情報を持つレコードを、検出する検出手順、前記ウェブサーバ装置が、前記検出手順で検出されたレコードに含まれる秘密情報と、前記第2の受信手順で受信した秘密情報とが一致するか否かを、判定する判定手順、前記ウェブサーバ装置が、前記判定手順で秘密情報同士が一致すると判定した場合に、前記ウェブクライアント装置に与えていたセッション権限を、前記受譲コンピュータに付与する権限付与手順からなることを、特徴としている。
【0009】
このように構成されると、受譲コンピュータは、ウェブクライアント装置とウェブサーバ装置とのセッションに係るセッション識別情報及び秘密情報、並びに、そのウェブサーバ装置を特定するサーバ特定情報を、ウェブクライアント装置から受け取った後、サーバ特定情報にて特定されるウェブサーバ装置に、セッション識別情報と秘密情報とを含んだリクエストメッセージを送信するよう、動作する。また、ウェブサーバ装置は、受信したリクエストメッセージ内のセッション識別情報に対応する秘密情報をセッション情報管理テーブルから取得し、リクエストメッセージ内の秘密情報と比較するよう、動作する。さらに、ウェブサーバ装置は、比較の結果、秘密情報同士が一致していれば、受譲コンピュータにセッション権限を付与するよう、動作する。このため、ウェブクライアント装置の利用者は、ウェブクライアント装置を通じてセッション識別情報と秘密情報とを委譲コンピュータに引き渡すだけで、セッション権限を受譲コンピュータに委譲することができる。
【0010】
なお、本発明によるセッション権限管理方法においては、ウェブクライアント装置が、受譲コンピュータに秘密情報を送信する前に、その秘密情報に不可逆的な加工を施していても良い。この場合、ウェブサーバ装置は、検出手順で検出されたレコードに含まれる秘密情報に対し、同じ不可逆的な加工を施せば、第2の受信手順で受信した秘密情報との比較を行うことができる。このように、秘密情報に不可逆的な加工を施しておくことにより、加工済みの秘密情報が不正な手段で第三者の手に渡ったとしても、その第三者は、秘密情報を復元できない。従って、第三者は、その秘密情報を使って正当権限を有する利用者になりすまして自分のコンピュータからウェブサーバ装置にアクセスしようにも、アクセスできないこととなる。
【発明の効果】
【0011】
以上に説明したように、本発明によれば、認証機構を別途設けなくともウェブサイトとのセッションを他のコンピュータに委譲できるようになる。
【発明を実施するための最良の形態】
【0012】
以下、添付図面を参照しながら、本発明を実施するための一つの形態について、説明する。
【0013】
まず、本実施形態のコンピュータネットワークシステムの構成について、説明する。
【0014】
図1は、本実施形態のコンピュータネットワークシステムの構成図である。
【0015】
本実施形態のコンピュータネットワークシステムは、一台以上のウェブクライアント装置10と、一台以上のウェブサーバ装置20と、ユーザインターフェース提供装置(UI提供装置)30とからなる。各装置10〜30は、ネットワークNを介して相互に通信自在に接続されている。
【0016】
図2は、ウェブクライアント装置10の構成図である。
【0017】
ウェブクライアント装置10は、ウェブクライアントとしての機能が付加された一般的なパーソナルコンピュータである。従って、このウェブクライアント装置10は、液晶ディスプレイ等の表示装置10aと、キーボードやマウス等の入力装置10bと、これら装置10a、10bが接続された本体とからなる。また、その本体は、通信アダプタ10c、ストレージユニット10d、CPU10e、及び、メモリユニット10fを、内蔵している。このうち、通信アダプタ10cは、ネットワークN上の他のコンピュータとデータの遣り取りを行うための通信装置である。ストレージユニット10dは、各種のプログラムやデータを記憶する記憶装置である。CPU10eは、ストレージユニット10d内のプログラムに従って処理を行う演算処理装置である。メモリユニット10fは、CPU10eが処理を行う際にプログラムがキャッシュされたり作業領域が展開されたりする揮発性記憶装置である。
【0018】
このウェブクライアント装置10のストレージユニット10dには、ウェブブラウザ11が導入されている。ウェブブラウザ11は、操作者に指定されたウェブページデータをウェブサーバ装置20から取得してウェブページを表示装置10aに表示するためのソフトウエアである。このウェブブラウザ11は、HTTP[HyperText Transfer Protocol]クライアント11a、クッキーモジュール11b、及び、セッション委譲モジュール11cの各プログラムを、少なくとも含んでいる。
【0019】
HTTPクライアント11aは、ネットワークN上のウェブサーバ装置20とHTTPメッセージを遣り取りするためのモジュールプログラムである。具体的には、このHTTPクライアント11aは、ウェブブラウザ11から受け取ったリクエストメッセージを、指定されたURL[Uniform Resource Locator]内のドメインにて特定されるウェブサーバ装置20へ送信する。また、HTTPクライアント11aは、ウェブページデータをボディに含むレスポンスメッセージをウェブサーバ装置20から受信して、ウェブブラウザ11に引き渡す。
【0020】
クッキーモジュール11bは、クッキー情報の送受信及び保存を管理するためのモジュールプログラムである。具体的には、クッキーモジュール11bは、ウェブサーバ装置20からHTTPクライアント11aが受信したレスポンスメッセージにクッキー情報が含まれていた場合に、そのクッキー情報を保存する。また、クッキーモジュール11bは、保存しているクッキー情報に含まれる生存期限を監視し、生存期限が経過したクッキー情報を破棄する。さらに、クッキーモジュール11bは、ウェブブラウザ11がウェブサーバ装置20にリクエストメッセージを送信する際、それより前にウェブサーバ装置20から取得したクッキー情報を保存していた場合に、そのクッキー情報を、リクエストメッセージに組み込むための情報として、ウェブブラウザ11に引き渡す。
【0021】
セッション委譲モジュール11cは、ウェブブラウザ11がウェブサーバ装置20とセッション中であるときに、そのセッションの権限を他のコンピュータに委譲するためのモジュールプログラムである。このセッション委譲モジュール11cに従ってCPU10eが実行する処理の内容については、後述する。
【0022】
図3は、ウェブサーバ装置20の構成図である。
【0023】
ウェブサーバ装置20は、ウェブサーバとしての機能が付加された汎用コンピュータである。従って、このウェブサーバ装置20は、少なくとも、通信アダプタ20a、ストレージユニット20b、CPU20c、及び、メモリユニット20dを、内蔵している。
【0024】
ウェブサーバ装置20のストレージユニット20bには、ウェブページデータ21、HTTPサーバ22、利用者情報管理テーブル23、セッション情報管理テーブル24、及び、セッション制御プログラム25が、導入されている。
【0025】
ウェブページデータ21は、ネットワークを通じて他のコンピュータに提供されるHTML[HyperText Markup Language]データや画像データなどのデータである。ウェブページデータ21には、それぞれ、一意なURLが割り当てられている。
【0026】
HTTPサーバ22は、他のコンピュータ上のHTTPクライアント11aとHTTPメッセージを遣り取りするためのプログラムである。より具体的には、HTTPサーバ22は、HTTPクライアント11aからリクエストメッセージを受け取ると、そのリクエストメッセージにおいて指定されているURLにあるウェブページデータ21をストレージユニット20bから取得し、その取得したウェブページデータ21をボディに含んだレスポンスメッセージを要求元のHTTPクライアント11aへ送信する。なお、図示してないが、CGI[Common Gateway Interface]及びJSP[Java Server Pages]等のウェブアプリケーションが存在する場合、HTTPサーバ22は、このウェブアプリケーションの処理結果を取得するものであってもよい。具体的には、HTTPサーバ22は、図示せぬウェブアプリケーションの起動コマンドがURLなどに含まれていた場合、又は、図示せぬウェブアプリケーションが実行すべきスクリプトプログラムがウェブページデータ21に含まれていた場合、その図示せぬウェブアプリケーションを起動し、そのウェブアプリケーションから処理結果を取得し、取得した処理結果をレスポンスメッセージに組み込んで、要求元のHTTPクライアント11aへ送信する。
【0027】
利用者情報管理テーブル23は、このウェブサーバ装置20のウェブページデータ21へのアクセスが許可された利用者に関する情報を管理するためのテーブルである。この利用者情報管理テーブル23の各レコードは、少なくとも、利用者名及び暗証情報を記録するためのフィールドを、有している。利用者名は、ウェブクライアント装置10の利用者を特定する名称である。暗証情報は、その利用者の正当性を証明するための情報である。従って、本実施形態におけるウェブサーバ装置20は、ウェブページデータ21へのアクセス前にウェブクライアント装置10を通じて利用者に対し認証を要求する装置となっている。なお、認証処理の結果、利用者のアクセスが許可されると、ウェブサーバ装置20は、その利用者のウェブクライアント装置10とセッションを開始する。
【0028】
図4は、セッション情報管理テーブル24のデータ構造の一例を示す図である。
【0029】
セッション情報管理テーブル24は、セッションに関する情報を管理するためのテーブルである。図4に示すように、このセッション情報管理テーブル24の各レコードは、セッション識別情報、秘密情報、及び、有効期限を記録するためのフィールドを、有している。セッション識別情報は、セッションを一意に特定するための識別情報である。なお、本実施形態では、セッション識別情報は、8文字の数字からなる。秘密情報は、その利用者のウェブクライアント装置10がセッション状態にあることを証明するための情報である。なお、本実施形態では、秘密情報は、アルファベットの大文字及び小文字、並びに、数字のうちから選択された14文字からなっている。有効期限は、秘密情報が有効である期間が終了する期限である。
【0030】
なお、ウェブサーバ装置20がこのセッション情報管理テーブル24にセッション識別情報及び秘密情報を記憶することは、前述した記憶手順に相当している。
【0031】
図3のセッション制御プログラム25は、ウェブブラウザ11とのセッションを制御するためのプログラムであり、クッキー機能を含んでいる。このセッション制御プログラム25は、所定のクッキー名(本実施形態では、「MYSESSION」又は「DELEGATED_MYSESSION」)を含んだクッキー情報が組み込まれていないリクエストメッセージをHTTPサーバ22が受信した場合に、そのリクエストメッセージを送信してきたウェブブラウザ11に対し、HTTPサーバ22を通じて、利用者名と暗証情報とを要求して取得する。そして、そのウェブブラウザ11から取得した利用者名と暗証情報とにともに一致するレコードが、利用者情報管理テーブル23から検出できれば、セッション制御プログラム25は、セッション識別情報と秘密情報とを発行する。そして、セッション制御プログラム25は、クッキー名として「MYSESSION」を含むとともに秘密情報をクッキー値として含むクッキー情報を生成し、そのクッキー情報に所定の生存期限を持たせて、クッキー機能を利用してウェブブラウザ11へ送信する。また、セッション制御プログラム25は、セッション情報管理テーブル24にセッション識別情報と秘密情報と有効期限(クッキー情報の生存期限)とを登録する。また、セッション制御プログラム25は、セッション情報管理テーブル24を常時監視し、有効期限の過ぎたレコードがあった場合に、そのレコードを削除する。また、セッション制御プログラム25は、HTTPサーバ22が受信したリクエストメッセージにクッキー情報が組み込まれている場合において、そのクッキー情報内に秘密情報が含まれていたときには、その秘密情報でセッション情報管理テーブル24を検索する。そして、レコードが検出できれば、セッション制御プログラム25は、セッション中であると判断し、同一の秘密情報と新たな有効期限とを含むクッキー情報を、レスポンスメッセージに組み込むための情報として、HTTPサーバ22に引き渡し、セッション情報管理テーブル24内の該当レコードの有効期限を更新する。さらに、このセッション制御プログラム25は、トークン検証モジュール25aを含んでいる。このトークン検証モジュール25aは、クッキー名として「DELEGATED_MYSESSION」を含んだクッキー情報が組み込まれたリクエストメッセージをHTTPサーバ22が受信した場合に、起動される。このトークン検証モジュール25aに従ってCPU20cが実行する処理の内容については、後述する。
【0032】
図5は、UI提供装置30の構成図である。
【0033】
UI提供装置30は、Yahoo![ヤフー社商標]やGoogle[グーグル社商標]やAmazon[アマゾンドットコム社商標]といった有名サイトのウェブページのUIを強化して利用者に提供する機能を有する装置であり、このようなUI提供機能が付加された汎用コンピュータである。従って、このUI提供装置30は、少なくとも、通信アダプタ30a、ストレージユニット30b、CPU30c、及び、メモリユニット30dを、内蔵している。
【0034】
UI提供装置30のストレージユニット30bには、ユーザインターフェース加工データ(UI加工データ)31、HTTPサーバ32、HTTPクライアント33、及び、UI提供プログラム34が、導入されている。
【0035】
UI加工データ31は、UIパーツの配置変換、追加、及び、削除がウェブページに施されるようウェブページデータを加工するためのデータである。このUI加工データ31は、有名ウェブページのそれぞれについて、少なくとも1種類ずつ用意されている。なお、UI加工データ31は、有名ウェブページのそれぞれについて、数種類ずつ用意されていてもよい。この場合、利用者が、一つのウェブページについて数種類の中から任意のUI加工データ31を選択することができる。
【0036】
HTTPサーバ32及びHTTPクライアント33は、それぞれ、ウェブサーバ装置20のHTTPサーバ22及びウェブクライアント装置10のHTTPクライアント11aと同等の機能を発揮するモジュールプログラムである。
【0037】
UI提供プログラム34は、ウェブページのUIを強化して利用者に提供するUI提供機能をコンピュータ上で実現するためのプログラムである。このUI提供プログラム34は、ウェブクライアント装置10のウェブブラウザ11からの要求を受けて、ウェブサーバ装置20からウェブページデータを取得し、そのウェブページデータを加工してウェブブラウザ11に送信するというものである。このUI提供プログラム34に従ってCPU30cが実行する処理の内容については、後述する。
【0038】
次に、以上のように構成されるコンピュータネットワークシステムにおいて行われる処理のうち、本発明に係る部分について、説明する。
【0039】
セッション委譲モジュール11cは、ウェブブラウザ11とウェブサーバ装置20とがセッション中にあるときに、実行される。そのセッションは、前述したように、利用者がウェブブラウザ11を通じてウェブサーバ装置10にアクセスするとともに認証手続を行ってアクセス認可を受けることにより、開始される。利用者が、ウェブサーバ装置20とセッション中に(何れかのウェブページを表示中に)、ウェブページのUIを強化して表示させるため、ウェブブラウザ11のウインドウ内に示されている所定のボタン(図示略)をクリックすると、CPU10eが、ストレージユニット10dからセッション委譲モジュール11cを読み込み、セッション委譲処理を開始する。
【0040】
図6は、セッション委譲モジュール11cによる処理の流れを示す図である。
【0041】
セッション委譲処理の開始後、最初のステップS101では、CPU10eは、セッションの受譲側のURLを入力するための入力欄を含む画面を表示装置10aに表示し、その入力欄を通じて利用者からURLを受け付ける。本実施形態では、便宜上、UI提供装置30のUI提供プログラム34に割り当てられているURLが、受け付けられるものとするが、実際には、セッション受譲モジュール34aを含むプログラムのURLであれば、なんでもよい。
【0042】
次のステップS102では、CPU10eは、セッション中のウェブサーバ装置20内の何れかのウェブページデータ21のURLを入力するための入力欄を含む画面を表示装置10aに表示し、その入力欄を通じて利用者からURLを受け付ける。
【0043】
次のステップS103では、CPU10eは、当該セッションのセッション識別情報に対応する秘密情報を、図4のセッション情報管理テーブル24から読み出す。
【0044】
次のステップS104では、CPU10eは、ステップS103で読み出した秘密情報を、周知のUTF−8にて符号化して(ユニコード変換処理)、バイト列を生成する。
【0045】
次のステップS105では、CPU10eは、ステップS104で生成したバイト列を、周知のSHA−1にて暗号化して(ハッシュ処理)、ハッシュ値を生成する。
【0046】
次のステップS106では、CPU10eは、ステップS105で生成したハッシュ値を、周知のBase64にて符号化して、文字列を生成する。
【0047】
次のステップS107では、CPU10eは、当該セッションのセッション識別情報とステップS105で生成した文字列とを「&」を挟んで繋げた文字列を、委譲トークンとして生成する。
【0048】
次のステップS108では、CPU10eは、ステップS107で生成した委譲トークンに対し、URLエンコードを施す。
【0049】
次のステップS109では、CPU10eは、ステップS101で受け付けたURLを宛先情報としてヘッダに含むリクエストメッセージを、生成する。また、CPU10eは、ステップS102で受け付けたURLをリクエストメッセージのボディに組み込む。また、CPU10eは、ステップS107でURLエンコードが施された委譲トークンをクッキー値として含むとともに、クッキー名として「delegated」を含むクッキー情報を、リクエストメッセージのヘッダに、組み込む。
【0050】
次のステップS110では、CPU10eは、ステップS109で生成したリクエストメッセージを、HTTPクライアント11aに引き渡す。その後、CPU10eは、図6に係るセッション委譲処理を終了する。
【0051】
なお、ウェブクライアント装置10がこの図6に係るセッション委譲処理を実行することは、前述した第1の送信手順に相当している。
【0052】
ここで、HTTPクライアント11aは、この図6に係るセッション委譲処理によりリクエストメッセージを受け取ると、受け取ったリクエストメッセージを通信アダプタ10cを通じて送信し、レスポンスメッセージを受信するまで待機した状態になる。
【0053】
一方、UI提供装置30では、HTTPサーバ32(を実行したCPU30c)が、何れかのコンピュータからリクエストメッセージが送られてくるのを、待機している。そして、ウェブクライアント装置10から、委譲トークンを含むリクエストメッセージを、通信アダプタ30aを通じて受信すると、HTTPサーバ32は、リクエストメッセージのボディ内のURLに従って、UI提供プログラム34を起動する。
【0054】
なお、UI提供装置30がリクエストメッセージを受信することは、前述した第1の受信手順に相当している。
【0055】
図7は、UI提供プログラム34による処理の流れを示す図である。
【0056】
UI提供処理の開始後、最初のステップS201では、CPU30dは、受信したリクエストメッセージのヘッダからクッキー情報を読み出し、このクッキー情報の中から、「delegated」というクッキー名に対応付けられている値を、委譲トークンとして取得する。
【0057】
次のステップS202では、CPU30dは、受信したリクエストメッセージのボディからURLを読み出す。
【0058】
次のステップS203では、CPU30dは、ステップS202で読み出したURLを宛先情報としてヘッダに含むリクエストメッセージを、生成する。また、CPU30dは、ステップS201で取得した(URLエンコード済の)委譲トークンをクッキー値として含むとともに、クッキー名として「DELEGATED_MYSESSION」を含むクッキー情報を、リクエストメッセージのヘッダに、組み込む。
【0059】
次のステップS204では、CPU30dは、ステップS203で生成したリクエストメッセージを、HTTPクライアント33を通じて送信する。
【0060】
なお、ステップS201乃至S204は、前述した第2の送信手順に相当している。
【0061】
次のステップS205では、CPU30dは、HTTPクライアント33を通じてレスポンスメッセージを受信するまで待機する。そして、HTTPクライアント33を通じてレスポンスメッセージを受信すると、CPU30dは、ステップS206へ処理を進める。
【0062】
ステップS206では、CPU30dは、受信したレスポンスメッセージがウェブページデータを含むものであるか否かを、判別する。そして、受信したレスポンスメッセージがウェブページデータを含むものであった場合、CPU30dは、ステップS208へ処理を進める。一方、受信したレスポンスメッセージがウェブページデータを含むものではなくアクセス拒否を示すものであった場合、CPU30dは、ステップS206からステップS207へ処理を分岐させる。
【0063】
ステップS207では、CPU30dは、アクセス不可を示すレスポンスメッセージを生成し、ステップS211へ処理を進める。
【0064】
ステップS208では、CPU30dは、受信したレスポンスメッセージのボディからウェブページデータを読み出す。
【0065】
次のステップS209では、CPU30dは、ステップS208で読み出したウェブページデータに対し、UI加工データに基づいて加工を施す。
【0066】
次のステップS210では、CPU30dは、ステップS209で生成したウェブページデータをボディに含むレスポンスメッセージを生成する。その後、CPU30dは、ステップS211へ処理を進める。
【0067】
ステップS211では、CPU30dは、ステップS207又はステップS210で生成したレスポンスメッセージを、要求元のウェブクライアント装置10へ、HTTPサーバ32を通じて送信する。その後、CPU30dは、図7に係るUI提供処理を終了する。
【0068】
ここで、レスポンスメッセージを受け取ったHTTPクライアント11aは、そのレスポンスメッセージをウェブブラウザ11に引き渡す。ウェブブラウザ11は、そのレスポンスメッセージがアクセス不可を示すものであれば、その旨を表示装置10aに表示する。一方、そのレスポンスメッセージがウェブページデータを含むものであれば、ウェブブラウザ11は、そのレスポンスメッセージのボディからウェブページデータを読み出し、そのウェブページデータに基づいてウェブページを表示装置10aに表示する。
【0069】
また、上記ステップS204の処理により、クッキー名として「DELEGATED_MYSESSION」を含むクッキー情報が組み込まれたリクエストメッセージが、ウェブサーバ装置20に送信されると、HTTPサーバ22がこれを受信する。すると、セッション制御プログラム25が、クッキー情報を確認し、このクッキー情報がクッキー名として「DELEGATED_MYSESSION」を含んでいると、判断する。この結果、前述したように、このトークン検証モジュール25aが起動される。
【0070】
なお、ウェブサーバ装置20がリクエストメッセージを受信することは、前述した第2の受信手順に相当している。
【0071】
図8は、トークン検証モジュール25aによる処理の流れを示す図である。
【0072】
トークン検証処理の開始後、最初のステップS301では、CPU20cは、クッキー情報内のクッキー値を、委譲トークンとして取り出す。
【0073】
次のステップS302では、CPU20cは、ステップS301で取り出した委譲トークンに対し、URLデコードを施す。
【0074】
次のステップS303では、CPU20cは、ステップS302でURLデコードを施した委譲トークン(セッション識別情報、「&」、文字列)から、セッション識別情報を読み出す。
【0075】
次のステップS304では、CPU20cは、ステップS303で読み出したセッション識別情報を検索条件として、図4のセッション情報管理テーブル24を検索する。
【0076】
なお、ステップS301乃至S304は、前述した検出手順に相当している。
【0077】
次のステップS305では、CPU20cは、セッション情報管理テーブル24からレコードが検出できたか否かを、判別する。そして、セッション情報管理テーブル24からレコードが検出できていなかった場合、CPU20cは、ステップS305からステップS312へ処理を分岐させる。一方、セッション情報管理テーブル24からレコードが検出できていた場合、CPU20cは、ステップS306へ処理を進める。
【0078】
ステップS306では、CPU20cは、ステップS304での検索の結果検出されたレコードの秘密情報を、周知のUTF−8にて符号化して(ユニコード変換処理)、バイト列を生成する。
【0079】
次のステップS307では、CPU20cは、ステップS306で生成したバイト列を、周知のSHA−1にて暗号化して(ハッシュ処理)、ハッシュ値を生成する。
【0080】
次のステップS308では、CPU20cは、ステップS307で生成したハッシュ値を、周知のBase64にて符号化して、文字列を生成する。
【0081】
次のステップS309では、CPU20cは、ステップS302でURLデコードを施した委譲トークン(セッション識別情報、「&」、文字列)から文字列を読み出し、この文字列と、ステップS308で生成した文字列とを比較する。
【0082】
なお、ステップS305乃至S309は、前述した判定手順に相当している。
【0083】
次のステップS310では、CPU20cは、文字列同士が一致しているか否かを、判別する。そして、文字列同士が一致していなかった場合、CPU20cは、ステップS310からステップS312へ処理を分岐させる。一方、文字列同士が一致していた場合、CPU20cは、ステップS311へ処理を進める。
【0084】
ステップS311では、CPU20cは、HTTPサーバ22に対し、受信したリクエストメッセージに対するレスポンスを許可する。その後、CPU20cは、図8に係るトークン検証処理を終了する。
【0085】
なお、ステップS311は、前述した権限付与手順に相当している。
【0086】
ステップS312では、CPU20cは、HTTPサーバ22に対し、リクエストメッセージの送信元にアクセス拒否を通知するよう指示する。その後、CPU20cは、図8に係るトークン検証処理を終了する。
【0087】
次に、本実施形態のコンピュータネットワークシステムの作用及び効果について、説明する。
【0088】
ウェブクライアント装置10の利用者は、ウェブサーバ装置20にアクセスし、認証手続きを経て、このウェブサーバ装置20とセッションを開始する。その後、このウェブサーバ装置20のウェブページのUIを強化する必要がある場合に、ウェブブラウザ11のウインドウ内に示されている所定のボタン(図示略)をクリックして、UI提供装置30のUI提供プログラム34のURLと、ウェブサーバ装置20内の何れかウェブページデータのURLとを、入力する(ステップS101、S102)。
【0089】
すると、まず、そのセッションで使用されていた秘密情報に、偽造防止のための不可逆的な加工が施される(ステップS103〜S106)。例えば、秘密情報が、「8ghquyZhgakf99」であれば、UTF−8による符号化と、SHA−1の暗号化と、Base64の符号化とにより、秘密情報は、「1dmXZ80xYNdSM43U6vgenwRoidQ=」に変換される。続いて、セッション識別情報と加工済みの秘密情報とに基づいて、委譲トークンが生成される(ステップS107)。上記の例を用いれば、セッション識別情報が、「00001」である場合、委譲トークンは、「00001&1dmXZ80xYNdSM43U6vgenwRoidQ=」となる。その後、その委譲トークンとセッション先に関する情報(URL)とを含んだリクエストメッセージが、UI提供装置30に送信される(ステップS108〜S110)。なお、本実施形態では、委譲トークンは、前述したとおり、クッキー値としてそのリクエストメッセージに組み込まれることとなる。その委譲トークンを含むクッキー情報のURLエンコード後の値は、上記の例を用いれば、「delegated=00001%261dmXZ80xYNdSM43U6vgenwRoidQ%3d」となる。
【0090】
UI提供装置30は、受信したリクエストメッセージに基づき、委譲トークンを含んだリクエストメッセージをウェブサーバ装置20へ送信する(ステップS201〜S204)。なお、上記の例を用いれば、リクエストメッセージに組み込まれるクッキー情報は、「DELEGATED_MYSESSION=00001%261dmXZ80xYNdSM43U6vgenwRoidQ%3d」となる。ウェブサーバ装置20は、そのリクエストメッセージ内の委譲トークンに含まれているセッション識別情報に対応付けられている秘密情報を、セッション情報管理テーブル24から取得し(ステップS301〜S305)、ウェブクライアント装置10で秘密情報に施された加工と同じ不可逆的な加工を、この秘密情報に施して(ステップS306〜S308)、UI提供装置30から送られてきた委譲トークン内の秘密情報と比較する(ステップS309)。
【0091】
比較の結果、秘密情報が互いに同一であれば、ウェブサーバ装置20は、UI提供装置30がウェブクライアント装置10からセッション権限を正当に委譲されていると、判断し、本来、ウェブクライアント装置10にのみ配信されるべきウェブページデータ21を、このUI提供装置30へ、レスポンスメッセージに組み込んで送信する(ステップS310、S311)。
【0092】
UI提供装置30は、ウェブクライアント装置10の代わりに、ウェブサーバ装置20から、ウェブページデータ21が組み込まれたレスポンスメッセージを受信し、ウェブページデータ21に所定の加工を施して、ウェブクライアント装置10へ、レスポンスメッセージに組み込んで送信する(ステップS205、S206、S208〜S211)。
【0093】
ウェブクライアント装置10は、このウェブページデータ21が組み込まれたレスポンスメッセージを受信し、ウェブページデータ21に基づいてウェブページを表示装置10aに表示する。ここで表示装置10aに表示されるウェブページは、ウェブサーバ装置20からウェブページデータ21を直接取得したものより、幾らかUIが変更されたものとなっている。
【0094】
ここで、ウェブクライアント装置10の利用者が、ウェブサーバ装置20とセッション中でなかった場合、そのセッションの権限は、UI提供装置30に委譲されない。ウェブサーバ装置20とのセッションが解除されている状態は、セッション識別情報と秘密情報とがウェブクライアント装置10から削除されていた場合、又は、ウェブサーバ装置20のセッション情報管理テーブル24からセッション識別情報と秘密情報とが削除されていた場合に生ずる。
【0095】
前者のように、セッション識別情報と秘密情報とがウェブクライアント装置10から削除されていた場合、ウェブクライアント装置10は、委譲トークンを生成することができないので、UI提供装置30にセッション権限が委譲されることはない。また、後者のように、ウェブサーバ装置20のセッション情報管理テーブル24からセッション識別情報と秘密情報とが削除されていた場合、UI提供装置30が、ウェブクライアント装置10から受け取った委譲トークンを使って、ウェブサーバ装置20にアクセスしても、委譲トークンの正当性が認められないため、実質的には、UI提供装置30にセッション権限が委譲されないこととなる。
【0096】
このように、本実施形態によれば、ウェブクライアント装置10は、ウェブサーバ装置20とのセッションの権限を、そのセッションが有効な場合に限り、UI提供装置に委譲できるようになる。
【0097】
(付記1)
ウェブページデータを複数有するウェブサーバ装置と、そのウェブサーバ装置からネットワークを介してウェブページデータを取得するためのウェブクライアント装置とからなるコンピュータネットワークシステムにおいて、前記ウェブサーバ装置から前記ウェブページデータを受け取るセッション権限を管理するための方法であって、
前記ウェブクライアント装置が、何れかのウェブサーバ装置からセッション権限が付与されたときに、そのセッションを特定するためのセッション識別情報と、ウェブページデータの要求時にウェブサーバ装置に提示するための秘密情報とを、記憶装置に記憶する記憶手順、
前記ウェブクライアント装置が、操作者から入力装置を通じて所定の指示を受け付けると、前記記憶装置内のセッション識別情報及び秘密情報、並びに、セッション中のウェブサーバ装置を特定するサーバ特定情報を、通信装置を通じて受譲コンピュータに送信する第1の送信手順、
前記受譲コンピュータが、前記第1の送信手順で前記ウェブクライアント装置から送信されたセッション識別情報と秘密情報とサーバ特定情報とを、通信装置を通じて受信する第1の受信手順、
前記受譲コンピュータが、前記第1の受信手順で受信したセッション識別情報と秘密情報とを組み込んだリクエストメッセージを、前記第1の受信手順で受信したサーバ特定情報にて特定されるウェブサーバ装置へ、通信装置を通じて送信する第2の送信手順、
前記ウェブサーバ装置が、前記第2の送信手順で前記受譲コンピュータから送信されたリクエストメッセージを、通信装置を通じて受信する第2の受信手順、
前記ウェブサーバ装置が、セッション識別情報と秘密情報とを含むレコードを複数記憶したセッション情報管理テーブルから、前記第2の受信手順で受信したリクエストメッセージに組み込まれているセッション識別情報に一致するセッション識別情報を持つレコードを、検出する検出手順、
前記ウェブサーバ装置が、前記検出手順で検出されたレコードに含まれる秘密情報と、前記第2の受信手順で受信した秘密情報とが一致するか否かを、判定する判定手順、
前記ウェブサーバ装置が、前記判定手順で秘密情報同士が一致すると判定した場合に、前記ウェブクライアント装置に与えていたセッション権限を、前記受譲コンピュータに付与する権限付与手順
からなることを特徴とするセッション権限管理方法。
【0098】
(付記2)
前記第1の送信手順において、前記ウェブクライアント装置は、前記記憶装置内の秘密情報については、不可逆的な加工を施してから、受譲コンピュータに送信するとともに、
前記判定手順において、前記ウェブサーバ装置は、前記検出手順で検出されたレコードに含まれる秘密情報に対し、前記加工と同じ不可逆的な加工を施してから、前記第2の受信手順で受信した秘密情報と一致するか否かを、判定する
ことを特徴とする付記1記載のセッション権限管理方法。
【0099】
(付記3)
前記加工は、ハッシュ処理を含む
ことを特徴とする付記2記載のセッション権限管理方法。
【0100】
(付記4)
前記加工は、ユニコード変換処理を含む
ことを特徴とする付記2又は3記載のセッション権限管理方法。
【0101】
(付記5)
ウェブページデータを複数有するウェブサーバ装置と、そのウェブサーバ装置からネットワークを介してウェブページデータを取得するためのウェブクライアント装置とを含むコンピュータネットワークシステムであって、
前記ウェブクライアント装置が、
何れかのウェブサーバ装置からセッション権限が付与されたときに、そのセッションを特定するためのセッション識別情報と、ウェブページデータの要求時にウェブサーバ装置に提示するための秘密情報とを、記憶する記憶部、及び、
操作者から入力装置を通じて所定の指示を受け付けると、前記記憶部内のセッション識別情報及び秘密情報、並びに、セッション中のウェブサーバ装置を特定するサーバ特定情報を、通信装置を通じて受譲コンピュータに送信する送信部
を備え、
前記受譲コンピュータが、
前記ウェブクライアント装置の前記送信部から送信されたセッション識別情報と秘密情報とサーバ特定情報とを、通信装置を通じて受信する受信部、及び、
前記受信部が受信したセッション識別情報と秘密情報とを組み込んだリクエストメッセージを、前記受信部が受信したサーバ特定情報にて特定されるウェブサーバ装置へ、通信装置を通じて送信する送信部
を備え、
前記ウェブサーバ装置が、
前記受譲コンピュータの前記送信部から送信されたリクエストメッセージを、通信装置を通じて受信する受信部、
セッション識別情報と秘密情報とを含むレコードを複数記憶したセッション情報管理テーブルから、前記受信部が受信したリクエストメッセージに組み込まれているセッション識別情報に一致するセッション識別情報を持つレコードを、検出する検出部、
前記検出部が検出したレコードに含まれる秘密情報と、前記受信部が受信した秘密情報とが一致するか否かを、判定する判定部、及び、
前記判定部が秘密情報同士が一致すると判定した場合に、前記ウェブクライアント装置に与えていたセッション権限を、前記受譲コンピュータに付与する権限付与部
を備える
ことを特徴とするコンピュータネットワークシステム。
【0102】
(付記6)
コンピュータを、
ウェブページデータを複数有する何れかのウェブサーバ装置からセッション権限が付与されたときに、そのセッションを特定するためのセッション識別情報と、ウェブページデータの要求時にウェブサーバ装置に提示するための秘密情報とを、記憶装置に記憶する記憶手段、及び、
操作者から入力装置を通じて所定の指示を受け付けると、前記記憶装置内のセッション識別情報及び秘密情報、並びに、セッション中のウェブサーバ装置を特定するサーバ特定情報を、通信装置を通じて受譲コンピュータに送信する送信手段
として機能させる
ことを特徴とするセッション委譲プログラム。
【0103】
(付記7)
コンピュータを、
ネットワーク上のウェブクライアント装置から、セッションを特定するためのセッション識別情報と、ウェブページデータの要求時にウェブサーバ装置に提示するための秘密情報と、セッション中のウェブサーバ装置を特定するサーバ特定情報とを、通信装置を通じて受信する受信手段、及び、
前記受信手段が受信したセッション識別情報と秘密情報とを組み込んだリクエストメッセージを、前記受信手段が受信したサーバ特定情報にて特定されるウェブサーバ装置へ、通信装置を通じて送信する送信手段
として機能させる
ことを特徴とするセッション受譲プログラム。
【0104】
(付記8)
コンピュータを、
ネットワーク上の受譲装置から、セッションを特定するためのセッション識別情報と、ウェブページデータの要求時にウェブサーバ装置に提示するための秘密情報とを組み込んだリクエストメッセージを、通信装置を通じて受信する受信手段、
セッション識別情報と秘密情報とを含むレコードを複数記憶したセッション情報管理テーブルから、前記受信手段が受信したリクエストメッセージに組み込まれているセッション識別情報に一致するセッション識別情報を持つレコードを、検出する検出手段、
前記検出手段が検出したレコードに含まれる秘密情報と、前記受信手段が受信した秘密情報とが一致するか否かを、判定する判定手段、及び、
前記判定手段が秘密情報同士が一致すると判定した場合に、セッション識別情報にて特定されるセッションの権限を、前記受譲装置に付与する権限付与手段
として機能させる
ことを特徴とするセッション権限付与プログラム。
【図面の簡単な説明】
【0105】
【図1】本実施形態のコンピュータネットワークシステムの構成図
【図2】ウェブクライアント装置の構成図
【図3】ウェブサーバ装置の構成図
【図4】セッション情報管理テーブルのデータ構造の一例を示す図
【図5】UI提供装置の構成図
【図6】セッション委譲モジュールによる処理の流れを示す図
【図7】UI提供プログラムによる処理の流れを示す図
【図8】トークン検証モジュールによる処理の流れを示す図
【符号の説明】
【0106】
10 ウェブクライアント装置
10a 表示装置
10b 入力装置
10d ストレージユニット
10e CPU
11 ウェブブラウザ
11a HTTPクライアント
11b クッキーモジュール
11c セッション委譲モジュール
20 ウェブサーバ装置
20b ストレージユニット
20c CPU
21 ウェブページデータ
22 HTTPサーバ
24 セッション情報管理テーブル
25 セッション制御プログラム
25a トークン検証モジュール
30 UI提供装置
30b ストレージユニット
30c CPU
31 UI加工データ
32 HTTPサーバ
33 HTTPクライアント
34 提供プログラム

【特許請求の範囲】
【請求項1】
ウェブページデータを複数有するウェブサーバ装置と、そのウェブサーバ装置からネットワークを介してウェブページデータを取得するためのウェブクライアント装置とからなるコンピュータネットワークシステムにおいて、前記ウェブサーバ装置から前記ウェブページデータを受け取るセッション権限を管理するための方法であって、
前記ウェブクライアント装置が、何れかのウェブサーバ装置からセッション権限が付与されたときに、そのセッションを特定するためのセッション識別情報と、ウェブページデータの要求時にウェブサーバ装置に提示するための秘密情報とを、記憶装置に記憶する記憶手順、
前記ウェブクライアント装置が、操作者から入力装置を通じて所定の指示を受け付けると、前記記憶装置内のセッション識別情報及び秘密情報、並びに、セッション中のウェブサーバ装置を特定するサーバ特定情報を、通信装置を通じて受譲コンピュータに送信する第1の送信手順、
前記受譲コンピュータが、前記第1の送信手順で前記ウェブクライアント装置から送信されたセッション識別情報と秘密情報とサーバ特定情報とを、通信装置を通じて受信する第1の受信手順、
前記受譲コンピュータが、前記第1の受信手順で受信したセッション識別情報と秘密情報とを組み込んだリクエストメッセージを、前記第1の受信手順で受信したサーバ特定情報にて特定されるウェブサーバ装置へ、通信装置を通じて送信する第2の送信手順、
前記ウェブサーバ装置が、前記第2の送信手順で前記受譲コンピュータから送信されたリクエストメッセージを、通信装置を通じて受信する第2の受信手順、
前記ウェブサーバ装置が、セッション識別情報と秘密情報とを含むレコードを複数記憶したセッション情報管理テーブルから、前記第2の受信手順で受信したリクエストメッセージに組み込まれているセッション識別情報に一致するセッション識別情報を持つレコードを、検出する検出手順、
前記ウェブサーバ装置が、前記検出手順で検出されたレコードに含まれる秘密情報と、前記第2の受信手順で受信した秘密情報とが一致するか否かを、判定する判定手順、
前記ウェブサーバ装置が、前記判定手順で秘密情報同士が一致すると判定した場合に、前記ウェブクライアント装置に与えていたセッション権限を、前記受譲コンピュータに付与する権限付与手順
からなることを特徴とするセッション権限管理方法。
【請求項2】
前記第1の送信手順において、前記ウェブクライアント装置は、前記記憶装置内の秘密情報については、不可逆的な加工を施してから、受譲コンピュータに送信するとともに、
前記判定手順において、前記ウェブサーバ装置は、前記検出手順で検出されたレコードに含まれる秘密情報に対し、前記加工と同じ不可逆的な加工を施してから、前記第2の受信手順で受信した秘密情報と一致するか否かを、判定する
ことを特徴とする請求項1記載のセッション権限管理方法。
【請求項3】
前記加工は、ハッシュ処理を含む
ことを特徴とする請求項2記載のセッション権限管理方法。
【請求項4】
前記加工は、ユニコード変換処理を含む
ことを特徴とする請求項2又は3記載のセッション権限管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2008−226015(P2008−226015A)
【公開日】平成20年9月25日(2008.9.25)
【国際特許分類】
【出願番号】特願2007−65362(P2007−65362)
【出願日】平成19年3月14日(2007.3.14)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】