サーバアクセスプログラム,サーバアクセス装置およびサーバアクセス方法
【課題】プロキシでの認証後にクライアント装置からサーバに送信する,サーバからプロキシ経由でクライアント装置に返されたファイル内部のリンクのURLを指定したリクエストを,プロキシによって遮断されないようにする技術を提供する。
【解決手段】クライアント装置1のサーバアクセス処理部10において,URL指定受付部11は,認証を行うプロキシを経由してサーバから取得したファイルに含まれるリンクのURLの指定を受け付ける。差分抽出部13は,プロキシによる認証前にサーバへのリクエストで指定した認証キーの情報を含まないURLと,プロキシによる認証後にプロキシから取得した認証キーの情報を含むURLとの差分を抽出する。差分付加部15は,指定されたリンクのURLに,抽出された差分を付加する。リクエスト出力部16は,差分を付加したURLを指定したリクエストを,プロキシに送信する。
【解決手段】クライアント装置1のサーバアクセス処理部10において,URL指定受付部11は,認証を行うプロキシを経由してサーバから取得したファイルに含まれるリンクのURLの指定を受け付ける。差分抽出部13は,プロキシによる認証前にサーバへのリクエストで指定した認証キーの情報を含まないURLと,プロキシによる認証後にプロキシから取得した認証キーの情報を含むURLとの差分を抽出する。差分付加部15は,指定されたリンクのURLに,抽出された差分を付加する。リクエスト出力部16は,差分を付加したURLを指定したリクエストを,プロキシに送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,認証を行うプロキシを経由して,目的とするサーバへのアクセスを行うサーバアクセスプログラム,サーバアクセス装置およびサーバアクセス方法に関するものである。
【背景技術】
【0002】
クライアント装置が,URL(Uniform Resource Locator)を指定してサーバにアクセスし,サーバが提供する情報サービスを受ける際に,クライアント装置とサーバとの間に存在するプロキシで認証が行われる場合がある。ここで,URLは,情報資源の所在を示す情報である。また,プロキシは,アクセスの高速化や,セキュリティ,フィルタリング,情報の書き換えなどを目的として,クライアント装置とサーバとの間に設けられたコンピュータである。クライアント−サーバ間で,アクセス管理や情報編集を行うプロキシの技術などが知られている。
【0003】
例えば,特許文献1には,クライアント装置からWEBサーバへのアクセスをプロキシで制限する技術が開示されている。WEBサーバにアクセスしたいクライアント装置は,ユーザ認証時にプロキシで発行された,認証済みを示す認証キーの情報を含むURLを指定したリクエストを送信する。そして,プロキシは,認証キーの情報を含むURLを指定したリクエストのみを,WEBサーバに送る。認証キーの情報を含まないURLを指定したリクエストは,WEBサーバに送られない。クライアント装置からのリクエストを受けたWEBサーバは,そのレスポンスとして,クライアント装置にサービスを提供するためのファイルを,プロキシ経由で返す。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−242639号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
WEBサーバからクライアント装置に対して返されるファイルの内部に,リンクが含まれている場合がある。クライアント装置を操作するユーザが,WEBサーバから取得されたファイルにより提示される情報の画面において,リンクを指定する。続いて,クライアント装置は,そのリンクに関連付けられたURLを指定したリクエストをプロキシ経由でWEBサーバへ送信する。このとき,指定されたURLに認証キーの情報がない場合には,プロキシによって,WEBサーバへのアクセスが遮断されてしまう。
【0006】
ここで,例えば,WEBサーバからクライアント装置に対して返されるファイルがプロキシを経由するときに,プロキシが,ファイル内部のURLを認証キーの情報を含むURLに書き換える方法も考えられる。よって,クライアント装置において,ファイル内部のリンクが指定された場合には,すでにファイル内部のリンクに関連付けられた,認証キーの情報を含むURLを指定したリクエストがプロキシへ送信されるので,プロキシによってWEBサーバへのアクセスが遮断されない。
【0007】
しかし,プロキシが,すべてのファイル内部のURLを書き換えることができるわけではない。例えば,WEBサーバからクライアント装置に返されるファイルがバイナリファイルなどであるような場合には,プロキシがファイル内部のURLを検出して書き換えることは,非常に困難である。
【0008】
本発明は,上記の問題点の解決を図り,プロキシでの認証後に,サーバからクライアント装置に返されたファイル内部のリンクを指定したリクエストが,プロキシによって遮断されないようにすることが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
開示するプログラムは,ユーザの認証を行うとともに,該認証が終了したことを示す認証情報を発行するプロキシを経由して,情報資源所在情報で指定したサーバにアクセスする処理を行うコンピュータを,次のように機能させる。
【0010】
すなわち,前記プログラムは,前記プログラムがインストールされて実行されるコンピュータに,認証情報を含まない第一の情報資源所在情報を指定したサーバへのリクエストをプロキシに送信するステップと,プロキシから第一の情報資源所在情報と認証情報とを含む第二の情報資源所在情報を取得するステップと,第一の情報資源所在情報と第二の情報資源所在情報との差分を抽出するステップと,第二の情報資源所在情報に基づいてサーバが提供するファイルをプロキシ経由で取得するステップと,取得したファイルに基づいて画面を出力するステップと,ユーザからファイルに含まれる第三の情報資源所在情報に対する選択を受け付けるステップと,第三の情報資源所在情報に対して抽出した差分を付加した第四の情報資源所在情報を生成するステップと,第四の情報資源所在情報を指定した他のリクエストをプロキシに送信するステップとを実行させる。
【発明の効果】
【0011】
上記の技術によって,プロキシでの認証後にクライアント装置からサーバに送信されたリクエストが,サーバからクライアント装置に返されたファイル内部のリンクが指定されたリクエストであっても,プロキシによって遮断されないようになる。
【図面の簡単な説明】
【0012】
【図1】システム構成例を示す図である。
【図2】WEBサーバからクライアント装置に返されるファイルがHTMLファイルである場合の流れの例を示すシーケンス図である。
【図3】WEBサーバからクライアント装置に返されるファイルがHTMLファイルである場合の流れの例を示すシーケンス図である。
【図4】WEBサーバからクライアント装置に返されるファイルがプロキシによる,リンク先となるURLの書き換えが不能なファイルである場合の流れの例を示すシーケンス図である。
【図5】認証情報テーブルの例を示す図である。
【図6】本実施の形態によるクライアント装置が備えるサーバアクセス処理部の機能図である。
【図7】本実施の形態によるURL情報記憶部に格納されているデータテーブルの例を示す図である。
【図8】本実施の形態による差分情報記憶部に格納されているデータの例を示す図である。
【図9】本実施の形態のサーバアクセス処理部によるサーバアクセス処理フローチャートである。
【図10】本実施の形態によるWEBサーバからクライアント装置に返されるファイルがSWFファイルである場合の流れの例を示すシーケンス図である。
【図11】本実施の形態によるWEBサーバからクライアント装置に返されるファイルがSWFファイルである場合の流れの例を示すシーケンス図である。
【図12】本実施の形態によるクライアント装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0013】
以下,本実施の形態について,図を用いて説明する。
【0014】
図1は,システム構成例を示す図である。
【0015】
図1に示すシステムにおいて,クライアント装置1,プロキシ2,WEBサーバ3は,それぞれ,CPU(Central Processing Unit ),メモリ等のハードウェアを備えるコンピュータである。クライアント装置1−プロキシ2間,プロキシ2−WEBサーバ3間は,それぞれネットワークで接続されている。
【0016】
クライアント装置1は,URLを指定してWEBサーバ3にアクセスをすることが可能なコンピュータである。ここでは,クライアント装置1は,例えば,携帯電話やPDA(Personal Digital Assistante )やPHS(Personal Handy-phone System )等である。WEBサーバ3は,アクセスしてきたクライアント装置1に対して,WEBページによる情報提供などのサービスを行うコンピュータである。クライアント装置1を使用するユーザは,URLを指定したWEBサーバ3へのアクセスによって,クライアント装置1がWEBサーバ3から取得したファイルが提供する情報を,ブラウザを用いて閲覧する。
【0017】
プロキシ2は,WEBサーバ3に対するアクセスを制限するために,WEBサーバ3の前段に設けられたコンピュータである。プロキシ2は,WEBサーバ3へのアクセスを要求するクライアント装置1に対してユーザ認証を行い,認証に成功したクライアント装置1に対してのみ,WEBサーバ3へのアクセスを許可する。
【0018】
ここで,図2〜図4に示すシーケンス図を用いて,WEBサーバ3からクライアント装置1に返されるファイル内部のURLを,プロキシ2が検出して書き換える例を説明する。ファイル内部のURLとは,クライアント装置1の表示画面に出力されるWEBページにおけるリンク先のURLである。WEBページは,プロキシ経由で返却されたファイルに基づいてブラウザによって生成される。なお,ここでは,WEBサーバ3からクライアント装置1に返されるファイルがテキストファイルである場合にのみ,プロキシ2がそのファイル内部に記述されたURLを検出して書き換えることが可能であるものとする。
【0019】
図2,図3は,WEBサーバからクライアント装置に返されるファイルがHTMLファイルである場合の流れの例を示すシーケンス図である。
【0020】
ユーザは,クライアント装置1のブラウザで,URLを指定する。例えば,ユーザはWEBサーバ3が提供するサービスのメニュー画面を表示するためのURLなどを指定するとして,以下説明を行う。クライアント装置1は,ユーザによるURLの指定を受け付ける(ステップS200)。ここでは,URLとして,“http://test.example.com/menu”が指定されたものとする。このURL“http://test.example.com/menu”は,プロキシ2によるユーザ認証前の,認証キーの情報を含まないURLである。認証キーは,プロキシ2によるユーザ認証に成功した場合に発行される,認証済みを示す情報である。クライアント装置1は,プロキシ2に対して,URL“http://test.example.com/menu”を指定したリクエストを送信する(ステップS201)。
【0021】
プロキシ2は,URL“http://test.example.com/menu”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS202)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS203)。URL“http://test.example.com/menu”は,ユーザ認証前のクライアント装置1から送信されたリクエストのURLであるので,認証キーの情報は含まれていない。
【0022】
なお,ここでは,プロキシ2は,認証キーの情報を含まない,特定のURLが指定されたリクエストがクライアント装置1から受信された場合に,クライアント装置1に対するユーザ認証を行うものとする。認証キーの情報を含まない,特定のURL以外のURLが指定されたリクエストがクライアント装置1から受信された場合には,プロキシ2は,エラー画面を提示するためのファイルを,クライアント装置1に対して返却するものとする。
【0023】
ここでは,URL“http://test.example.com/menu”のみが,ユーザ認証を行う特定のURLであるものとする。プロキシ2は,ユーザ認証画面を提示するためのファイルを,クライアント装置1に返却する(ステップS204)。なお,プロキシ2は,クライアント装置1のIPアドレスに基づいて,クライアント装置1へファイルの送信を行う。
【0024】
クライアント装置1ではユーザ認証画面が表示され,ユーザは,ユーザ認証画面の入力欄にユーザ情報を入力する。ここでは,ユーザ情報は,ユーザ名とパスワードとの組合せである。クライアント装置1は,ユーザによるユーザ情報の入力を受け付けると(ステップS205),そのユーザ情報をプロキシ2に送信する(ステップS206)。
【0025】
プロキシ2は,クライアント装置1から受けたユーザ情報で,クライアント装置1に対するユーザ認証を実行する(ステップS207)。より具体的には,プロキシ2は,クライアント装置1から受けたユーザ情報に含まれるユーザ名とパスワードとの組合せが,プロキシ2にあらかじめ登録されたユーザ名とパスワードとに一致するかを判定する。つまり,プロキシ2を経由した特定のWEBサーバ3へのアクセスが,あらかじめ許可されたユーザであるかを判定する。ユーザ名とパスワードとの組合せが一致すれば,ユーザ認証は成功となる。
【0026】
プロキシ2は,クライアント装置1に対するユーザ認証が成功した場合に,認証キーを発行する。認証キーは,クライアント装置1に対するユーザ認証が成功したことを示す情報である。ここでは,クライアント装置1に対する認証キー(ukey)として,“xxxx”が発行されたものとする。プロキシ2は,発行された認証キーを含む,ユーザ認証の結果の情報であるユーザ認証情報を,プロキシ2が備える記憶装置に記憶される認証情報テーブルに記録する(ステップS208)。
【0027】
プロキシ2は,クライアント装置1から受けたリクエストのURL“http://test.example.com/menu”に認証キーの情報“ukey=xxxx ”を付加し,その認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”をクライアント装置1に返却する(ステップS209)。
【0028】
クライアント装置1は,プロキシ2から取得した,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”の指定を受け付ける(ステップS210)。このURLの指定の受け付けは,画面上に表示したアクセス指示ボタンの選択などのユーザ入力による指定の受け付けであってもよいし,リダイレクトによるプロキシ2から取得したURLの自動的指定の受け付けであってもよい。クライアント装置1は,プロキシ2に対して,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”を指定したリクエストを送信する(ステップS211)。そして,クライアント装置1は,端子Aを介して図3のS218へ進む。
【0029】
プロキシ2は,URL“http://test.example.com/menu?ukey=xxxx”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS212)。そして,プロキシ2は,端子Bを介して図3のS213へ進む。そして,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS213)。
【0030】
具体的には,プロキシ2は,認証情報テーブルに記録された認証キーが,クライアント装置1からのリクエストのURLに含まれているかを確認する。URL“http://test.example.com/menu?ukey=xxxx”には,認証情報テーブルに記録された認証キー“xxxx”の情報“ukey=xxxx ”が含まれているので,クライアント装置1からWEBサーバ3へのアクセスが,許可される。
【0031】
プロキシ2は,クライアント装置1からのリクエストを,WEBサーバ3に送信する(ステップS214)。このとき,プロキシ2は,リクエストのURLから認証キーの情報を削除した後のURLをリクエストとしてWEBサーバ3へ送信する。すなわち,プロキシ2からWEBサーバ3に送信されるリクエストのURLは,“http://test.example.com/menu”となる。
【0032】
WEBサーバ3は,クライアント装置1からの,URL“http://test.example.com/menu”が指定されたリクエストに対して,自身が提供するサービスのメニュー画面を表示するためのファイルを,プロキシ2に返却する(ステップS215)。ここで返却されるファイルは,テキストファイルのHTMLファイルであり,そのHTMLファイルには,リンクを示すURLを含む部分の記述として,
<html>
<A Href="http://test.example.com/menuA">menuA</A><BR>
<A Href="http://test.example.com/menuB">menuB</A><BR>
</html>
が含まれているものとする。
【0033】
プロキシ2は,クライアント装置1が認証済みであるので,WEBサーバ3からクライアント装置1へのファイル内のリンクを示すURLに,認証キーの情報“ukey=xxxx ”を設定する(ステップS216)。このとき,ファイル内の上記のリンクを示すURLを含む部分の記述は,
<html>
<A Href="http://test.example.com/menuA?ukey=xxxx">menuA</A><BR>
<A Href="http://test.example.com/menuB?ukey=xxxx">menuB</A><BR>
</html>
と書き換えられる。プロキシ2は,リンクを示すURLに認証キーの情報“ukey=xxxx ”が設定されたファイルを,クライアント装置1に返却する(ステップS217)。
【0034】
ユーザは,クライアント装置1のブラウザで,WEBサーバ3からプロキシ2経由で取得したファイルにより提供されるメニュー画面の情報を閲覧する。
【0035】
ここで,ユーザがメニュー画面上のメニューAのリンクを選択したものとする。クライアント装置1は,ユーザによるリンクの選択を受け付ける(ステップS218)。クライアント装置1は,プロキシ2に対して,選択されたリンクに関連付けられたURLを指定したリクエストを送信する(ステップS219)。ここでは,選択されたメニューAのリンクに関連付けられたURLは,WEBサーバ3からプロキシ2経由で取得されたファイル内の“http://test.example.com/menuA?ukey=xxxx ”であるものとする。すなわち,クライアント装置1からプロキシ2には,URL“http://test.example.com/menuA?ukey=xxxx ”を指定したリクエストが送信される。
【0036】
プロキシ2は,URL“http://test.example.com/menuA?ukey=xxxx ”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS220)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS221)。URL“http://test.example.com/menuA?ukey=xxxx ”には,認証情報テーブルに記録された認証キー“xxxx”の情報“ukey=xxxx ”が含まれているので,クライアント装置1からWEBサーバ3へのアクセスが,許可される。
【0037】
プロキシ2は,クライアント装置1からのリクエストを,WEBサーバ3に送信する(ステップS222)。このとき,プロキシ2は,リクエストのURLから認証キーの情報を削除する。すなわち,プロキシ2からWEBサーバ3に送信されるリクエストのURLは,“http://test.example.com/menuA ”となる。
【0038】
以下,ステップS215〜と同様に,WEBサーバ3からプロキシ2を経由したファイルの返却等が行われる。
【0039】
このように,WEBサーバ3からプロキシ2を経由して返却されるファイルが,HTMLファイル等の書き換えが可能なファイルである場合には,プロキシ2で,ファイルに含まれるリンクを示すURLに認証キーの情報を設定することができる。
【0040】
図4は,WEBサーバからクライアント装置に返されるファイルがプロキシによる,リンク先となるURLの書き換えが不能なファイルである場合の流れの例を示すシーケンス図である。書き換えが不能なファイルの一例として,バイナリファイルであるSWFファイルを用いて,以下説明を行う。
【0041】
SWFファイルは,Adobe Flash (登録商標)で作成された再生用のムービーファイルである。以下では,図4を用いて,WEBサーバ3からクライアント装置1に返却されるファイルがSWFファイルである場合の流れの例を説明する。なお,WEBサーバ3からプロキシ2へのファイルの返却(ステップS215)までの流れは,図2,図3に示すS200からS215までの上述のHTMLファイルの場合と同様であるので,説明を省略する。
【0042】
WEBサーバ3は,クライアント装置1からの,URL“http://test.example.com/menu”が指定されたリクエストに対して,自身が提供するサービスのメニュー画面を表示するためのファイルを,プロキシ2に返却する(ステップS215)。ここで返却されるファイルは,バイナリファイルのSWFファイルであり,そのSWFファイルには,リンクを示すURLの内容として,
on(press) {getURL("http://test.example.com/menuA");}
on(press) {getURL("http://test.example.com/menuB");}
が含まれているものとする。
【0043】
ここで,クライアント装置1が認証済みであるが,WEBサーバ3からクライアント装置1へのファイルがSWFファイルであるので,プロキシ2は,ファイル内のリンクを示すURLの内容に,認証キーの情報“ukey=xxxx ”を設定することができない。プロキシ2は,WEBサーバ3から受けたファイルを,そのままクライアント装置1に返却する(ステップS230)。
【0044】
ユーザは,クライアント装置1のブラウザで,WEBサーバ3からプロキシ2経由で取得したファイルにより提供されるメニュー画面の情報を閲覧する。
【0045】
ここで,ユーザがメニュー画面上のメニューAのリンクを選択したものとする。クライアント装置1は,ユーザによるリンクの選択を受け付ける(ステップS231)。クライアント装置1は,プロキシ2に対して,選択されたリンクに関連付けられたURLを指定したリクエストを送信する(ステップS232)。ここでは,選択されたメニューAのリンクに関連付けられたURLは,WEBサーバ3からプロキシ2経由で取得されたファイル内の“http://test.example.com/menuA ”であるものとする。すなわち,クライアント装置1からプロキシ2には,URL“http://test.example.com/menuA ”を指定したリクエストが送信される。
【0046】
プロキシ2は,URL“http://test.example.com/menuA ”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS233)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS234)。URL“http://test.example.com/menuA ”には,認証情報テーブルに記録された認証キーの情報が含まれていないので,クライアント装置1からWEBサーバ3へのアクセスは許可されない。
【0047】
ここでは,クライアント装置1からのリクエストに含まれるURL“http://test.example.com/menuA ”は,ユーザ認証を行う特定のURLではないので,プロキシ2は,エラー画面を提示するためのファイルを,クライアント装置1に返却する(ステップS235)。なお,ユーザ認証を行う特定のURLを設定せずに,認証キーの情報を含まないURLが指定されたリクエストがクライアント装置1から受信されたすべての場合に,プロキシ2がクライアント装置1に対するユーザ認証を行うようにしてもよい。
【0048】
このように,WEBサーバ3からプロキシ2を経由して返却されるファイルが,SWFファイル等の書き換えが困難なバイナリファイルである場合には,プロキシ2で,ファイルに含まれるリンクを示すURLに認証キーの情報を設定することができない。このとき,ユーザによりファイルに含まれるリンクが指定されると,一度ユーザ認証を実行しているにも関らず,クライアント装置1からWEBサーバ3へのアクセスが遮断されたり,煩わしいユーザ認証を再実行しなければならないといった問題が発生する。
【0049】
なお,プロキシ2での書き換えが困難なバイナリファイルとしては,SWFファイル以外にも,PDFファイル,DOCファイル,XLSファイル,PPTファイル等,様々なファイルが考えられる。
【0050】
ここで,プロキシ2が有する認証情報テーブルの例を説明する。
【0051】
図5は,認証情報テーブルの例を示す図である。
【0052】
図5に示す認証情報テーブル20は,ユーザ名,認証キー(ukey),アクセス時間等の情報を持つ。さらには,認証キーを発行した際に,ユーザが使用しているクライアント装置1に割り当てられたIPアドレスを有していても良い。ユーザ名は,ユーザ認証時のユーザ情報に含まれるユーザ名である。認証キー(ukey)は,ユーザ認証の成功によって発行された認証済みを示す認証キー(ukey)である。アクセス時間は,ユーザ認証が行われた時間である。
【0053】
以下では,WEBサーバ3から取得した,プロキシ2で書き換えができないファイルに含まれるリンクのURLが指定された場合に,指定されたURLに認証キーの情報を自動的に付加する機能を有する,本実施の形態のクライアント装置1について説明する。
【0054】
図6は,本実施の形態によるクライアント装置が備えるサーバアクセス処理部の機能図である。
【0055】
本実施の形態によるクライアント装置1は,URLで指定されたWEBサーバ3へのアクセス処理を行うサーバアクセス処理部10を備える。本実施の形態のサーバアクセス処理部10は,認証を行うプロキシ2を経由してWEBサーバ3から取得した,プロキシ2で書き換えができないファイルに含まれるリンクのURLが指定された場合に,指定されたURLに認証キーの情報を自動的に付加する機能を有する。
【0056】
サーバアクセス処理部10は,URL指定受付部11,URL情報記憶部12,差分抽出部13,差分情報記憶部14,差分付加部15,リクエスト出力部16,ファイル取得部17を備える。サーバアクセス処理部10およびサーバアクセス処理部10の各機能部は,クライアント装置1のコンピュータが備えるCPU,メモリ等のハードウェアとソフトウェアプログラムとにより実現される。
【0057】
URL指定受付部11は,アクセス先のWEBサーバ3を特定するURLの指定を受け付ける。URLの指定は,例えば,ユーザによるショートカットやリンクの選択,URLの文字入力などである。URL指定受付部11は,URLを指定したWEBサーバ3へのアクセスがあった場合に,その指定されたURLをURL情報記憶部12に記憶する。URL情報記憶部12は,WEBサーバ3へのアクセスで指定されたURLの履歴情報を記憶する,コンピュータがアクセス可能な記憶装置である。
【0058】
差分抽出部13は,プロキシ2によるユーザ認証が行われた場合に,URL情報記憶部12に記憶された,ユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分を抽出する。
【0059】
ユーザ認証前のリクエストで指定されたURLは,認証キーの情報を含まないURLである。ユーザ認証後にプロキシ2から取得されたURLは,ユーザ認証後に,プロキシ2がユーザ認証前のリクエストのURLに認証キーの情報を付加した,認証キーの情報を含むURLである。すなわち,ユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分は,認証キーの情報である。なお,ここでは,ユーザ認証後にプロキシ2から取得されたURLは,リダイレクトで指定され,URL指定受付部11により,URL情報記憶部12に記憶されるものとする。
【0060】
差分抽出部13は,抽出された差分を,差分情報記憶部14に記憶する。差分情報記憶部14は,ユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分の情報を記憶する,コンピュータがアクセス可能な記憶装置である。
【0061】
差分付加部15は,認証を行うプロキシ2を経由してWEBサーバ3から取得したファイルに含まれるURLに関連付けられたリンクが指定された場合に,そのリンクに関係付けられたURLに対して,差分情報記憶部14に記憶された差分を付加する。ここでは,WEBサーバ3から取得したファイルは,プロキシ2での書き換えができないバイナリファイルなどのファイルであり,そのファイル内部に含まれるURLは,認証キーの情報を含まないURLである。すなわち,差分付加部15は,認証キーの情報を含まないURLに,認証キーの情報を付加する。
【0062】
リクエスト出力部16は,URLを指定したリクエストを送信する。URL指定受付部11で受け付けたURLに対して差分付加部15で差分が付加された場合には,リクエスト出力部16は,差分が付加されたURLを指定したリクエストをプロキシ2に送信する。すなわち,認証を行うプロキシ2を経由してWEBサーバ3から取得した,プロキシ2で書き換えができないファイルに含まれるURLが指定された場合には,リクエスト出力部16は,差分が付加されたURLを指定したリクエストをプロキシ2に送信する。また,URL指定受付部11で受け付けたURLに対して差分付加部15で差分が付加されない場合には,リクエスト出力部16は,URL指定受付部11で受け付けたURLを指定したリクエストを出力する。
【0063】
ファイル取得部17は,URLを指定されたリクエストに対して,WEBサーバ3から返されたファイルを取得する。
【0064】
図7は,本実施の形態によるURL情報記憶部に格納されているデータテーブルの例を示す図である。
【0065】
図7に示すURL情報テーブル120は,URL情報記憶部12に記憶された,WEBサーバ3へのアクセスで指定されたURLの履歴情報が記録されたデータの例である。図7に示すURL情報テーブル120は,指定URL,日時,認証チェック等の情報を持つ。指定URLは,WEBサーバ3へのアクセスで指定されたURLを示す。日時は,指定URLを含むリクエストが送信された日時を示す。認証チェックは,指定URLが,プロキシ2によるユーザ認証後にプロキシ2から返却されたURLであるかを示す。例えば,図7に示すURL情報テーブル120において,認証チェックが“認証”となっているレコードが,ユーザ認証後に返却されたURLを指定したリクエストが行われたことを示している。
【0066】
図8は,本実施の形態による差分情報記憶部に格納されているデータの例を示す図である。
【0067】
図8に示す差分データ140は,差分情報記憶部14に記憶された,ユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分データの例である。図8に示す差分データ140は,図7に示すURL情報テーブル120において,ユーザ認証前のリクエストで指定されたURL“http://test.example.com/menu”と,ユーザ認証後にプロキシ2から取得されたURL“http://test.example.com/menu?ukey=xxxx”との差分である。
【0068】
図9は,本実施の形態のサーバアクセス処理部によるサーバアクセス処理フローチャートである。
【0069】
図9に示すフローチャートの例は,ユーザが,WEBサーバ3から取得したファイルにより提示されるブラウザの画面上でリンクを選択した場合の,サーバアクセス処理部10による処理の一例である。なお,ここでWEBサーバ3から取得したファイルは,WEBサーバ3から認証を行うプロキシ2を経由してクライアント装置1に返されたファイルであり,プロキシ2で書き換えができないバイナリファイルであるものとする。
【0070】
ユーザがファイルにより提示されるブラウザの画面上でリンクを選択すると,URL指定受付部11は,そのファイル内部にある,該当リンクに関連付けられたURLの指定を受け付ける(ステップS10)。
【0071】
URL指定受付部11は,指定されたURLのホスト部が,URL情報記憶部12に記憶された,ユーザ認証後にプロキシ2から取得されたURLのホスト部と一致するかを判定する(ステップS11)。
【0072】
双方のホスト部が一致しなければ(ステップS11のNO),URL指定受付部11は,指定されたURLを含むリクエストは,ユーザ認証を行ったプロキシ2を経由したWEBサーバ3に対するリクエストではないと判断する。このとき,リクエスト出力部16は,指定されたURLを含むリクエストの送信を行う(ステップS14)。
【0073】
双方のホスト部が一致すれば(ステップS11のYES),URL指定受付部11は,指定されたURLを含むリクエストは,ユーザ認証を行ったプロキシ2を経由したWEBサーバ3に対するリクエストである判断する。このとき,差分抽出部13は,URL情報記憶部12に記憶された,プロキシ2によるユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分を抽出する(ステップS12)。抽出された差分は,差分情報記憶部14に記憶される。差分付加部15は,該当リンクに関連付けられたURLに,差分情報記憶部14に記憶された差分を付加する(ステップS13)。リクエスト出力部16は,差分が付加されたURLを指定したリクエストを,プロキシ2に送信する(ステップS14)。
【0074】
図10,図11は,本実施の形態によるWEBサーバからクライアント装置に返されるファイルがSWFファイルである場合の流れの例を示すシーケンス図である。
【0075】
ユーザは,クライアント装置1のブラウザで,WEBサーバ3が提供するサービスのメニュー画面を表示するためのURLを指定する。クライアント装置1のURL指定受付部11は,ユーザによるURLの指定を受け付ける(ステップS100)。ここでは,URLとして,“http://test.example.com/menu”が指定されたものとする。このURL“http://test.example.com/menu”は,プロキシ2によるユーザ認証前の,認証キーの情報を含まないURLである。
【0076】
クライアント装置1のURL指定受付部11は,指定された,認証キーの情報を含まないURL“http://test.example.com/menu”を,URL情報記憶部12に記憶する(ステップ101)。例えば,このとき記憶されたURLが,図7に示すURL情報テーブル120における指定URL“http://test.example.com/menu”である。クライアント装置1のリクエスト出力部16は,プロキシ2に対して,URL“http://test.example.com/menu”を指定したリクエストを送信する(ステップS102)。
【0077】
プロキシ2は,URL“http://test.example.com/menu”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS103)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS104)。URL“http://test.example.com/menu”は,ユーザ認証前のクライアント装置1から送信されたリクエストのURLであるので,認証キーの情報は含まれていない。プロキシ2は,ユーザ認証画面を提示するためのファイルを,クライアント装置1に返却する(ステップS105)。
【0078】
クライアント装置1ではユーザ認証画面が表示され,ユーザは,ユーザ認証画面の入力欄にユーザ情報を入力する。クライアント装置1は,ユーザによるユーザ情報の入力を受け付けると(ステップS106),そのユーザ情報をプロキシ2に送信する(ステップS107)。
【0079】
プロキシ2は,クライアント装置1から受けたユーザ情報で,クライアント装置1に対するユーザ認証を実行する(ステップS108)。プロキシ2は,クライアント装置1に対するユーザ認証が成功した場合に,認証キーを発行する。ここでは,クライアント装置1に対する認証キー(ukey)として,“xxxx”が発行されたものとする。プロキシ2は,発行された認証キーを含む,ユーザ認証の結果の情報であるユーザ認証情報を,プロキシ2が備える記憶装置に記憶される認証情報テーブル20に記録する(ステップS109)。
【0080】
プロキシ2は,クライアント装置1から受けたリクエストのURL“http://test.example.com/menu”に認証キーの情報“ukey=xxxx ”を付加し,その認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”をクライアント装置1に返却する(ステップS110)。そして,プロキシ2は,端子Eを介して図11のS114へ処理を進める。なお,プロキシ2の処理S103,S104,S105,S108,S109は,図2におけるS202,S203,S204,S207,S208に各々対応する。プロキシ2は従来の処理と同様の処理を行う。つまり,従来どおり,リクエストのURLはプロキシ2にて書き換えられる。
【0081】
クライアント装置1のURL指定受付部11は,プロキシ2から返却された,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”の指定を受け付ける(ステップS111)。このURLの指定の受け付けは,画面上に表示したアクセス指示ボタンの選択などのユーザ入力による指定の受け付けであってもよいし,リダイレクトによるプロキシ2から取得したURLの自動的指定の受け付けであってもよい。
【0082】
クライアント装置1のURL指定受付部11は,指定された,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”を,URL情報記憶部12に記憶する(ステップ112)。例えば,このとき記憶されたURLが,図7に示すURL情報テーブル120における,ユーザ認証後の指定URL“http://test.example.com/menu?ukey=xxxx”である。そして,クライアント装置1は,端子Dを介して図11のS113へ処理を進める。クライアント装置1のリクエスト出力部16は,プロキシ2に対して,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”を指定したリクエストを送信する(ステップS113)。
【0083】
プロキシ2は,URL“http://test.example.com/menu?ukey=xxxx”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS114)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS115)。具体的には,プロキシ2は,認証情報テーブル20に記録された認証キーが,クライアント装置1からのリクエストのURLに含まれているかを確認する。URL“http://test.example.com/menu?ukey=xxxx”には,認証情報テーブル20に記録された認証キー“xxxx”の情報“ukey=xxxx ”が含まれているので,クライアント装置1からWEBサーバ3へのアクセスが,許可される。
【0084】
プロキシ2は,クライアント装置1からのリクエストを,WEBサーバ3に送信する(ステップS116)。このとき,プロキシ2は,リクエストのURLから認証キーの情報を削除する。すなわち,プロキシ2からWEBサーバ3に送信されるリクエストのURLは,“http://test.example.com/menu”となる。
【0085】
WEBサーバ3は,クライアント装置1からの,URL“http://test.example.com/menu”が指定されたリクエストに対して,自身が提供するサービスのメニュー画面を表示するためのファイルを,プロキシ2に返却する(ステップS117)。ここで返却されるファイルは,バイナリファイルのSWFファイルであり,そのSWFファイルには,リンクを示すURLの内容として,
on(press) {getURL("http://test.example.com/menuA");}
on(press) {getURL("http://test.example.com/menuB");}
が含まれているものとする。
【0086】
ここで,クライアント装置1が認証済みであるが,WEBサーバ3からクライアント装置1へのファイルがSWFファイルであるので,プロキシ2は,ファイル内のリンクを示すURLの内容に,認証キーの情報“ukey=xxxx ”を設定することができない。プロキシ2は,WEBサーバ3から受けたファイルを,そのままクライアント装置1に返却する(ステップS118)。
【0087】
クライアント装置1のファイル取得部17は,WEBサーバ3からプロキシ2経由で返されたファイルを取得する。ユーザは,クライアント装置1のブラウザで,WEBサーバ3からプロキシ2経由で取得したファイルにより提供されるメニュー画面の情報を閲覧する。
【0088】
ここで,ユーザがメニュー画面上のメニューAのリンクを選択したものとする。クライアント装置1は,ユーザによるリンクの選択を受け付ける(ステップS119)。このとき,クライアント装置1のURL指定受付部11は,選択されたリンクに関連付けられた,WEBサーバ3から取得されたファイル内部のURLの指定を受け付ける。ここでは,選択されたメニューAのリンクに関連付けられた,WEBサーバ3から取得されたファイル内部のURLは,“http://test.example.com/menuA ”であるものとする。
【0089】
クライアント装置1の差分抽出部13は,リンク先として選択されたURLが,ファイル内部のURLであって,さらに過去にプロキシ2にてユーザ認証を行ったWEBサーバ3に対するアクセスであるかを判定する。例えば,差分抽出部13は,URL情報記憶部12を参照し,S119で選択されたURLが,過去にユーザ認証を行なった際のリクエストに含まれるURLとホスト部が同一であるかを判定する。同一であれば,過去にユーザ認証を行ったプロキシ2を経由したWEBサーバ3に対するアクセスであることが判定できる。
【0090】
このとき,クライアント装置1の差分抽出部13は,URL情報記憶部12に記憶された,認証キーの情報を含まないURL“http://test.example.com/menu”と,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”との差分“?ukey=xxxx”を抽出する(ステップS120)。クライアント装置1の差分抽出部13は,抽出された差分“?ukey=xxxx”を差分情報記憶部14に記憶する。
【0091】
クライアント装置1の差分付加部15は,選択されたリンクに関連付けられたURL“http://test.example.com/menuA ”に対して,差分情報記憶部14に記憶された差分“?ukey=xxxx”を付加する(ステップS121)。差分を付加したURLは,“http://test.example.com/menuA?ukey=xxxx ”となる。
【0092】
クライアント装置1のリクエスト出力部16は,プロキシ2に対して,差分を付加したURL“http://test.example.com/menuA?ukey=xxxx ”を指定したリクエストを送信する(ステップS122)。
【0093】
プロキシ2は,URL“http://test.example.com/menuA?ukey=xxxx ”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS123)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS124)。URL“http://test.example.com/menuA?ukey=xxxx ”には,認証情報テーブル20に記録された認証キー“xxxx”の情報“ukey=xxxx ”が含まれているので,クライアント装置1からWEBサーバ3へのアクセスが,許可される。
【0094】
以下,ステップS117〜と同様に,WEBサーバ3からプロキシ2を経由したファイルの返却等が行われる。
【0095】
このように,本実施の形態のサーバアクセス処理部10は,プロキシ2での認証後に,プロキシ2で書き換えができないファイル内部のリンクのURLが指定された場合に,自動的に認証キーの情報を付加してリクエストを出力する。これにより,プロキシ2によるユーザ認証後であれば,プロキシ2で書き換えができないファイル内部のリンクのURLが指定されたリクエストでも,プロキシ2によって遮断されなくなる。
【0096】
以上説明した本実施の形態のサーバアクセス処理部10による処理は,コンピュータが備えるCPU,メモリ等のハードウェアとソフトウェアプログラムとにより実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
【0097】
図12は,本実施の形態によるクライアント装置のハードウェア構成例を示す図である。
【0098】
クライアント装置1は,CPU1001,ROM(Read Only Memory)1002,RAM(Random Access Memory)1003,通信部1004,HDD(Hard Disk Drive )1005,入力部1006,媒体読取部1007,表示部1008を有しており,各部はバス1009を介して相互に接続されている。各部は,CPU1001による管理下で,相互にデータの送受を行うことができる。
【0099】
CPU1001は,クライアント装置1全体の動作制御を司る中央処理装置である。通信部1004は,他のコンピュータからの信号を受信し,その信号の内容をCPU1001に渡す。さらに,通信部1004は,CPU1001からの指示に応じて,他のコンピュータに信号を送信する。
【0100】
HDD1005には,上述の本実施の形態に示したサーバアクセス処理部10と同様の機能をコンピュータに発揮させるプログラムとして,例えば図9のフローチャートに示す各処理をコンピュータに実行させるプログラムが記憶されている。CPU1001がこのプログラムをHDD1005から読み出して実行することで,図6に示すURL指定受付部11,差分抽出部13,差分付加部15,リクエスト出力部16,ファイル取得部17として,コンピュータが機能するようになる。このプログラムは,CPU1001がアクセス可能なROM1002またはRAM1003に格納されていても良い。
【0101】
さらに,HDD1005は,CPU1001の管理下で,例えば図6に示すURL情報記憶部12や差分情報記憶部14などの記憶部として,指定されたURLの情報やユーザ認証前後に指定されたURL間の差分情報などを記憶する。プログラムと同様に,各情報は,CPU1001がアクセス可能なROM1002またはRAM1003に格納されても良い。入力部1006は,CPU1001の管理下で,データの入力を受付ける。
【0102】
例えば図9のフローチャートに示した処理内容を記述したプログラムは,コンピュータが読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体には,磁気記録装置,光ディスク,光磁気記録媒体,半導体メモリなどがある。磁気記録装置には,HDD,フレキシブルディスク(FD(Flexible Disk )),磁気テープ(MT(Magnetic Tape ))などがある。光ディスクには,DVD(Digital Versatile Disc),DVD−RAM,CD(Compact Disc)−ROM,CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には,MO(Magneto-Optical disk)などがある。このプログラムを流通させる場合には,例えば,そのプログラムが記録されたDVD,CD−ROMなどの可搬型記録媒体が販売されることが考えられる。
【0103】
プログラムを実行するコンピュータでは,媒体読取部1007が,例えば図9のフローチャートに示した処理内容を記述したプログラムを記録した記録媒体から,該プログラムを読み出す。CPU1001は,読み出されたプログラムを,HDD1005,ROM1002またはRAM1003に格納する。コンピュータは,自己の記憶装置であるHDD1005,ROM1002またはRAM1003からプログラムを読み取り,プログラムに従った処理を実行する。
【0104】
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【0105】
例えば,本実施の形態のサーバアクセス処理部10では,SWFファイルなどのプロキシ2で書き換えできないファイル内部のリンクのURLが指定された場合にのみ,URLの差分から得られた認証キーの情報を付加する処理を行っている。プロキシ2がテキストファイルを含めたすべてのファイルの書き換えを行わないことが前提であれば,サーバアクセス処理部10が,ファイル内部のリンクのURLが指定されたすべてのケースで,URLの差分から得られた認証キーの情報を付加する処理を行ってもよい。
【0106】
また,本実施の形態では,サーバアクセス処理部10は,ファイル内部のリンクのURLが指定されたタイミングで,ユーザ認証前後のURLの差分抽出を行っているが,必ずしもそのタイミングでURLの差分抽出を行う必要はない。例えば,サーバアクセス処理部10が,プロキシ2によるユーザ認証後に,プロキシ2から認証キーの情報を含むURLを受け取ったタイミングで,ユーザ認証前後のURLの差分抽出を行うようにしても良い。
【符号の説明】
【0107】
1 クライアント装置
10 サーバアクセス処理部
11 URL指定受付部
12 URL情報記憶部
13 差分抽出部
14 差分情報記憶部
15 差分付加部
16 リクエスト出力部
17 ファイル取得部
2 プロキシ
3 WEBサーバ
【技術分野】
【0001】
本発明は,認証を行うプロキシを経由して,目的とするサーバへのアクセスを行うサーバアクセスプログラム,サーバアクセス装置およびサーバアクセス方法に関するものである。
【背景技術】
【0002】
クライアント装置が,URL(Uniform Resource Locator)を指定してサーバにアクセスし,サーバが提供する情報サービスを受ける際に,クライアント装置とサーバとの間に存在するプロキシで認証が行われる場合がある。ここで,URLは,情報資源の所在を示す情報である。また,プロキシは,アクセスの高速化や,セキュリティ,フィルタリング,情報の書き換えなどを目的として,クライアント装置とサーバとの間に設けられたコンピュータである。クライアント−サーバ間で,アクセス管理や情報編集を行うプロキシの技術などが知られている。
【0003】
例えば,特許文献1には,クライアント装置からWEBサーバへのアクセスをプロキシで制限する技術が開示されている。WEBサーバにアクセスしたいクライアント装置は,ユーザ認証時にプロキシで発行された,認証済みを示す認証キーの情報を含むURLを指定したリクエストを送信する。そして,プロキシは,認証キーの情報を含むURLを指定したリクエストのみを,WEBサーバに送る。認証キーの情報を含まないURLを指定したリクエストは,WEBサーバに送られない。クライアント装置からのリクエストを受けたWEBサーバは,そのレスポンスとして,クライアント装置にサービスを提供するためのファイルを,プロキシ経由で返す。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−242639号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
WEBサーバからクライアント装置に対して返されるファイルの内部に,リンクが含まれている場合がある。クライアント装置を操作するユーザが,WEBサーバから取得されたファイルにより提示される情報の画面において,リンクを指定する。続いて,クライアント装置は,そのリンクに関連付けられたURLを指定したリクエストをプロキシ経由でWEBサーバへ送信する。このとき,指定されたURLに認証キーの情報がない場合には,プロキシによって,WEBサーバへのアクセスが遮断されてしまう。
【0006】
ここで,例えば,WEBサーバからクライアント装置に対して返されるファイルがプロキシを経由するときに,プロキシが,ファイル内部のURLを認証キーの情報を含むURLに書き換える方法も考えられる。よって,クライアント装置において,ファイル内部のリンクが指定された場合には,すでにファイル内部のリンクに関連付けられた,認証キーの情報を含むURLを指定したリクエストがプロキシへ送信されるので,プロキシによってWEBサーバへのアクセスが遮断されない。
【0007】
しかし,プロキシが,すべてのファイル内部のURLを書き換えることができるわけではない。例えば,WEBサーバからクライアント装置に返されるファイルがバイナリファイルなどであるような場合には,プロキシがファイル内部のURLを検出して書き換えることは,非常に困難である。
【0008】
本発明は,上記の問題点の解決を図り,プロキシでの認証後に,サーバからクライアント装置に返されたファイル内部のリンクを指定したリクエストが,プロキシによって遮断されないようにすることが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
開示するプログラムは,ユーザの認証を行うとともに,該認証が終了したことを示す認証情報を発行するプロキシを経由して,情報資源所在情報で指定したサーバにアクセスする処理を行うコンピュータを,次のように機能させる。
【0010】
すなわち,前記プログラムは,前記プログラムがインストールされて実行されるコンピュータに,認証情報を含まない第一の情報資源所在情報を指定したサーバへのリクエストをプロキシに送信するステップと,プロキシから第一の情報資源所在情報と認証情報とを含む第二の情報資源所在情報を取得するステップと,第一の情報資源所在情報と第二の情報資源所在情報との差分を抽出するステップと,第二の情報資源所在情報に基づいてサーバが提供するファイルをプロキシ経由で取得するステップと,取得したファイルに基づいて画面を出力するステップと,ユーザからファイルに含まれる第三の情報資源所在情報に対する選択を受け付けるステップと,第三の情報資源所在情報に対して抽出した差分を付加した第四の情報資源所在情報を生成するステップと,第四の情報資源所在情報を指定した他のリクエストをプロキシに送信するステップとを実行させる。
【発明の効果】
【0011】
上記の技術によって,プロキシでの認証後にクライアント装置からサーバに送信されたリクエストが,サーバからクライアント装置に返されたファイル内部のリンクが指定されたリクエストであっても,プロキシによって遮断されないようになる。
【図面の簡単な説明】
【0012】
【図1】システム構成例を示す図である。
【図2】WEBサーバからクライアント装置に返されるファイルがHTMLファイルである場合の流れの例を示すシーケンス図である。
【図3】WEBサーバからクライアント装置に返されるファイルがHTMLファイルである場合の流れの例を示すシーケンス図である。
【図4】WEBサーバからクライアント装置に返されるファイルがプロキシによる,リンク先となるURLの書き換えが不能なファイルである場合の流れの例を示すシーケンス図である。
【図5】認証情報テーブルの例を示す図である。
【図6】本実施の形態によるクライアント装置が備えるサーバアクセス処理部の機能図である。
【図7】本実施の形態によるURL情報記憶部に格納されているデータテーブルの例を示す図である。
【図8】本実施の形態による差分情報記憶部に格納されているデータの例を示す図である。
【図9】本実施の形態のサーバアクセス処理部によるサーバアクセス処理フローチャートである。
【図10】本実施の形態によるWEBサーバからクライアント装置に返されるファイルがSWFファイルである場合の流れの例を示すシーケンス図である。
【図11】本実施の形態によるWEBサーバからクライアント装置に返されるファイルがSWFファイルである場合の流れの例を示すシーケンス図である。
【図12】本実施の形態によるクライアント装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0013】
以下,本実施の形態について,図を用いて説明する。
【0014】
図1は,システム構成例を示す図である。
【0015】
図1に示すシステムにおいて,クライアント装置1,プロキシ2,WEBサーバ3は,それぞれ,CPU(Central Processing Unit ),メモリ等のハードウェアを備えるコンピュータである。クライアント装置1−プロキシ2間,プロキシ2−WEBサーバ3間は,それぞれネットワークで接続されている。
【0016】
クライアント装置1は,URLを指定してWEBサーバ3にアクセスをすることが可能なコンピュータである。ここでは,クライアント装置1は,例えば,携帯電話やPDA(Personal Digital Assistante )やPHS(Personal Handy-phone System )等である。WEBサーバ3は,アクセスしてきたクライアント装置1に対して,WEBページによる情報提供などのサービスを行うコンピュータである。クライアント装置1を使用するユーザは,URLを指定したWEBサーバ3へのアクセスによって,クライアント装置1がWEBサーバ3から取得したファイルが提供する情報を,ブラウザを用いて閲覧する。
【0017】
プロキシ2は,WEBサーバ3に対するアクセスを制限するために,WEBサーバ3の前段に設けられたコンピュータである。プロキシ2は,WEBサーバ3へのアクセスを要求するクライアント装置1に対してユーザ認証を行い,認証に成功したクライアント装置1に対してのみ,WEBサーバ3へのアクセスを許可する。
【0018】
ここで,図2〜図4に示すシーケンス図を用いて,WEBサーバ3からクライアント装置1に返されるファイル内部のURLを,プロキシ2が検出して書き換える例を説明する。ファイル内部のURLとは,クライアント装置1の表示画面に出力されるWEBページにおけるリンク先のURLである。WEBページは,プロキシ経由で返却されたファイルに基づいてブラウザによって生成される。なお,ここでは,WEBサーバ3からクライアント装置1に返されるファイルがテキストファイルである場合にのみ,プロキシ2がそのファイル内部に記述されたURLを検出して書き換えることが可能であるものとする。
【0019】
図2,図3は,WEBサーバからクライアント装置に返されるファイルがHTMLファイルである場合の流れの例を示すシーケンス図である。
【0020】
ユーザは,クライアント装置1のブラウザで,URLを指定する。例えば,ユーザはWEBサーバ3が提供するサービスのメニュー画面を表示するためのURLなどを指定するとして,以下説明を行う。クライアント装置1は,ユーザによるURLの指定を受け付ける(ステップS200)。ここでは,URLとして,“http://test.example.com/menu”が指定されたものとする。このURL“http://test.example.com/menu”は,プロキシ2によるユーザ認証前の,認証キーの情報を含まないURLである。認証キーは,プロキシ2によるユーザ認証に成功した場合に発行される,認証済みを示す情報である。クライアント装置1は,プロキシ2に対して,URL“http://test.example.com/menu”を指定したリクエストを送信する(ステップS201)。
【0021】
プロキシ2は,URL“http://test.example.com/menu”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS202)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS203)。URL“http://test.example.com/menu”は,ユーザ認証前のクライアント装置1から送信されたリクエストのURLであるので,認証キーの情報は含まれていない。
【0022】
なお,ここでは,プロキシ2は,認証キーの情報を含まない,特定のURLが指定されたリクエストがクライアント装置1から受信された場合に,クライアント装置1に対するユーザ認証を行うものとする。認証キーの情報を含まない,特定のURL以外のURLが指定されたリクエストがクライアント装置1から受信された場合には,プロキシ2は,エラー画面を提示するためのファイルを,クライアント装置1に対して返却するものとする。
【0023】
ここでは,URL“http://test.example.com/menu”のみが,ユーザ認証を行う特定のURLであるものとする。プロキシ2は,ユーザ認証画面を提示するためのファイルを,クライアント装置1に返却する(ステップS204)。なお,プロキシ2は,クライアント装置1のIPアドレスに基づいて,クライアント装置1へファイルの送信を行う。
【0024】
クライアント装置1ではユーザ認証画面が表示され,ユーザは,ユーザ認証画面の入力欄にユーザ情報を入力する。ここでは,ユーザ情報は,ユーザ名とパスワードとの組合せである。クライアント装置1は,ユーザによるユーザ情報の入力を受け付けると(ステップS205),そのユーザ情報をプロキシ2に送信する(ステップS206)。
【0025】
プロキシ2は,クライアント装置1から受けたユーザ情報で,クライアント装置1に対するユーザ認証を実行する(ステップS207)。より具体的には,プロキシ2は,クライアント装置1から受けたユーザ情報に含まれるユーザ名とパスワードとの組合せが,プロキシ2にあらかじめ登録されたユーザ名とパスワードとに一致するかを判定する。つまり,プロキシ2を経由した特定のWEBサーバ3へのアクセスが,あらかじめ許可されたユーザであるかを判定する。ユーザ名とパスワードとの組合せが一致すれば,ユーザ認証は成功となる。
【0026】
プロキシ2は,クライアント装置1に対するユーザ認証が成功した場合に,認証キーを発行する。認証キーは,クライアント装置1に対するユーザ認証が成功したことを示す情報である。ここでは,クライアント装置1に対する認証キー(ukey)として,“xxxx”が発行されたものとする。プロキシ2は,発行された認証キーを含む,ユーザ認証の結果の情報であるユーザ認証情報を,プロキシ2が備える記憶装置に記憶される認証情報テーブルに記録する(ステップS208)。
【0027】
プロキシ2は,クライアント装置1から受けたリクエストのURL“http://test.example.com/menu”に認証キーの情報“ukey=xxxx ”を付加し,その認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”をクライアント装置1に返却する(ステップS209)。
【0028】
クライアント装置1は,プロキシ2から取得した,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”の指定を受け付ける(ステップS210)。このURLの指定の受け付けは,画面上に表示したアクセス指示ボタンの選択などのユーザ入力による指定の受け付けであってもよいし,リダイレクトによるプロキシ2から取得したURLの自動的指定の受け付けであってもよい。クライアント装置1は,プロキシ2に対して,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”を指定したリクエストを送信する(ステップS211)。そして,クライアント装置1は,端子Aを介して図3のS218へ進む。
【0029】
プロキシ2は,URL“http://test.example.com/menu?ukey=xxxx”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS212)。そして,プロキシ2は,端子Bを介して図3のS213へ進む。そして,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS213)。
【0030】
具体的には,プロキシ2は,認証情報テーブルに記録された認証キーが,クライアント装置1からのリクエストのURLに含まれているかを確認する。URL“http://test.example.com/menu?ukey=xxxx”には,認証情報テーブルに記録された認証キー“xxxx”の情報“ukey=xxxx ”が含まれているので,クライアント装置1からWEBサーバ3へのアクセスが,許可される。
【0031】
プロキシ2は,クライアント装置1からのリクエストを,WEBサーバ3に送信する(ステップS214)。このとき,プロキシ2は,リクエストのURLから認証キーの情報を削除した後のURLをリクエストとしてWEBサーバ3へ送信する。すなわち,プロキシ2からWEBサーバ3に送信されるリクエストのURLは,“http://test.example.com/menu”となる。
【0032】
WEBサーバ3は,クライアント装置1からの,URL“http://test.example.com/menu”が指定されたリクエストに対して,自身が提供するサービスのメニュー画面を表示するためのファイルを,プロキシ2に返却する(ステップS215)。ここで返却されるファイルは,テキストファイルのHTMLファイルであり,そのHTMLファイルには,リンクを示すURLを含む部分の記述として,
<html>
<A Href="http://test.example.com/menuA">menuA</A><BR>
<A Href="http://test.example.com/menuB">menuB</A><BR>
</html>
が含まれているものとする。
【0033】
プロキシ2は,クライアント装置1が認証済みであるので,WEBサーバ3からクライアント装置1へのファイル内のリンクを示すURLに,認証キーの情報“ukey=xxxx ”を設定する(ステップS216)。このとき,ファイル内の上記のリンクを示すURLを含む部分の記述は,
<html>
<A Href="http://test.example.com/menuA?ukey=xxxx">menuA</A><BR>
<A Href="http://test.example.com/menuB?ukey=xxxx">menuB</A><BR>
</html>
と書き換えられる。プロキシ2は,リンクを示すURLに認証キーの情報“ukey=xxxx ”が設定されたファイルを,クライアント装置1に返却する(ステップS217)。
【0034】
ユーザは,クライアント装置1のブラウザで,WEBサーバ3からプロキシ2経由で取得したファイルにより提供されるメニュー画面の情報を閲覧する。
【0035】
ここで,ユーザがメニュー画面上のメニューAのリンクを選択したものとする。クライアント装置1は,ユーザによるリンクの選択を受け付ける(ステップS218)。クライアント装置1は,プロキシ2に対して,選択されたリンクに関連付けられたURLを指定したリクエストを送信する(ステップS219)。ここでは,選択されたメニューAのリンクに関連付けられたURLは,WEBサーバ3からプロキシ2経由で取得されたファイル内の“http://test.example.com/menuA?ukey=xxxx ”であるものとする。すなわち,クライアント装置1からプロキシ2には,URL“http://test.example.com/menuA?ukey=xxxx ”を指定したリクエストが送信される。
【0036】
プロキシ2は,URL“http://test.example.com/menuA?ukey=xxxx ”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS220)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS221)。URL“http://test.example.com/menuA?ukey=xxxx ”には,認証情報テーブルに記録された認証キー“xxxx”の情報“ukey=xxxx ”が含まれているので,クライアント装置1からWEBサーバ3へのアクセスが,許可される。
【0037】
プロキシ2は,クライアント装置1からのリクエストを,WEBサーバ3に送信する(ステップS222)。このとき,プロキシ2は,リクエストのURLから認証キーの情報を削除する。すなわち,プロキシ2からWEBサーバ3に送信されるリクエストのURLは,“http://test.example.com/menuA ”となる。
【0038】
以下,ステップS215〜と同様に,WEBサーバ3からプロキシ2を経由したファイルの返却等が行われる。
【0039】
このように,WEBサーバ3からプロキシ2を経由して返却されるファイルが,HTMLファイル等の書き換えが可能なファイルである場合には,プロキシ2で,ファイルに含まれるリンクを示すURLに認証キーの情報を設定することができる。
【0040】
図4は,WEBサーバからクライアント装置に返されるファイルがプロキシによる,リンク先となるURLの書き換えが不能なファイルである場合の流れの例を示すシーケンス図である。書き換えが不能なファイルの一例として,バイナリファイルであるSWFファイルを用いて,以下説明を行う。
【0041】
SWFファイルは,Adobe Flash (登録商標)で作成された再生用のムービーファイルである。以下では,図4を用いて,WEBサーバ3からクライアント装置1に返却されるファイルがSWFファイルである場合の流れの例を説明する。なお,WEBサーバ3からプロキシ2へのファイルの返却(ステップS215)までの流れは,図2,図3に示すS200からS215までの上述のHTMLファイルの場合と同様であるので,説明を省略する。
【0042】
WEBサーバ3は,クライアント装置1からの,URL“http://test.example.com/menu”が指定されたリクエストに対して,自身が提供するサービスのメニュー画面を表示するためのファイルを,プロキシ2に返却する(ステップS215)。ここで返却されるファイルは,バイナリファイルのSWFファイルであり,そのSWFファイルには,リンクを示すURLの内容として,
on(press) {getURL("http://test.example.com/menuA");}
on(press) {getURL("http://test.example.com/menuB");}
が含まれているものとする。
【0043】
ここで,クライアント装置1が認証済みであるが,WEBサーバ3からクライアント装置1へのファイルがSWFファイルであるので,プロキシ2は,ファイル内のリンクを示すURLの内容に,認証キーの情報“ukey=xxxx ”を設定することができない。プロキシ2は,WEBサーバ3から受けたファイルを,そのままクライアント装置1に返却する(ステップS230)。
【0044】
ユーザは,クライアント装置1のブラウザで,WEBサーバ3からプロキシ2経由で取得したファイルにより提供されるメニュー画面の情報を閲覧する。
【0045】
ここで,ユーザがメニュー画面上のメニューAのリンクを選択したものとする。クライアント装置1は,ユーザによるリンクの選択を受け付ける(ステップS231)。クライアント装置1は,プロキシ2に対して,選択されたリンクに関連付けられたURLを指定したリクエストを送信する(ステップS232)。ここでは,選択されたメニューAのリンクに関連付けられたURLは,WEBサーバ3からプロキシ2経由で取得されたファイル内の“http://test.example.com/menuA ”であるものとする。すなわち,クライアント装置1からプロキシ2には,URL“http://test.example.com/menuA ”を指定したリクエストが送信される。
【0046】
プロキシ2は,URL“http://test.example.com/menuA ”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS233)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS234)。URL“http://test.example.com/menuA ”には,認証情報テーブルに記録された認証キーの情報が含まれていないので,クライアント装置1からWEBサーバ3へのアクセスは許可されない。
【0047】
ここでは,クライアント装置1からのリクエストに含まれるURL“http://test.example.com/menuA ”は,ユーザ認証を行う特定のURLではないので,プロキシ2は,エラー画面を提示するためのファイルを,クライアント装置1に返却する(ステップS235)。なお,ユーザ認証を行う特定のURLを設定せずに,認証キーの情報を含まないURLが指定されたリクエストがクライアント装置1から受信されたすべての場合に,プロキシ2がクライアント装置1に対するユーザ認証を行うようにしてもよい。
【0048】
このように,WEBサーバ3からプロキシ2を経由して返却されるファイルが,SWFファイル等の書き換えが困難なバイナリファイルである場合には,プロキシ2で,ファイルに含まれるリンクを示すURLに認証キーの情報を設定することができない。このとき,ユーザによりファイルに含まれるリンクが指定されると,一度ユーザ認証を実行しているにも関らず,クライアント装置1からWEBサーバ3へのアクセスが遮断されたり,煩わしいユーザ認証を再実行しなければならないといった問題が発生する。
【0049】
なお,プロキシ2での書き換えが困難なバイナリファイルとしては,SWFファイル以外にも,PDFファイル,DOCファイル,XLSファイル,PPTファイル等,様々なファイルが考えられる。
【0050】
ここで,プロキシ2が有する認証情報テーブルの例を説明する。
【0051】
図5は,認証情報テーブルの例を示す図である。
【0052】
図5に示す認証情報テーブル20は,ユーザ名,認証キー(ukey),アクセス時間等の情報を持つ。さらには,認証キーを発行した際に,ユーザが使用しているクライアント装置1に割り当てられたIPアドレスを有していても良い。ユーザ名は,ユーザ認証時のユーザ情報に含まれるユーザ名である。認証キー(ukey)は,ユーザ認証の成功によって発行された認証済みを示す認証キー(ukey)である。アクセス時間は,ユーザ認証が行われた時間である。
【0053】
以下では,WEBサーバ3から取得した,プロキシ2で書き換えができないファイルに含まれるリンクのURLが指定された場合に,指定されたURLに認証キーの情報を自動的に付加する機能を有する,本実施の形態のクライアント装置1について説明する。
【0054】
図6は,本実施の形態によるクライアント装置が備えるサーバアクセス処理部の機能図である。
【0055】
本実施の形態によるクライアント装置1は,URLで指定されたWEBサーバ3へのアクセス処理を行うサーバアクセス処理部10を備える。本実施の形態のサーバアクセス処理部10は,認証を行うプロキシ2を経由してWEBサーバ3から取得した,プロキシ2で書き換えができないファイルに含まれるリンクのURLが指定された場合に,指定されたURLに認証キーの情報を自動的に付加する機能を有する。
【0056】
サーバアクセス処理部10は,URL指定受付部11,URL情報記憶部12,差分抽出部13,差分情報記憶部14,差分付加部15,リクエスト出力部16,ファイル取得部17を備える。サーバアクセス処理部10およびサーバアクセス処理部10の各機能部は,クライアント装置1のコンピュータが備えるCPU,メモリ等のハードウェアとソフトウェアプログラムとにより実現される。
【0057】
URL指定受付部11は,アクセス先のWEBサーバ3を特定するURLの指定を受け付ける。URLの指定は,例えば,ユーザによるショートカットやリンクの選択,URLの文字入力などである。URL指定受付部11は,URLを指定したWEBサーバ3へのアクセスがあった場合に,その指定されたURLをURL情報記憶部12に記憶する。URL情報記憶部12は,WEBサーバ3へのアクセスで指定されたURLの履歴情報を記憶する,コンピュータがアクセス可能な記憶装置である。
【0058】
差分抽出部13は,プロキシ2によるユーザ認証が行われた場合に,URL情報記憶部12に記憶された,ユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分を抽出する。
【0059】
ユーザ認証前のリクエストで指定されたURLは,認証キーの情報を含まないURLである。ユーザ認証後にプロキシ2から取得されたURLは,ユーザ認証後に,プロキシ2がユーザ認証前のリクエストのURLに認証キーの情報を付加した,認証キーの情報を含むURLである。すなわち,ユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分は,認証キーの情報である。なお,ここでは,ユーザ認証後にプロキシ2から取得されたURLは,リダイレクトで指定され,URL指定受付部11により,URL情報記憶部12に記憶されるものとする。
【0060】
差分抽出部13は,抽出された差分を,差分情報記憶部14に記憶する。差分情報記憶部14は,ユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分の情報を記憶する,コンピュータがアクセス可能な記憶装置である。
【0061】
差分付加部15は,認証を行うプロキシ2を経由してWEBサーバ3から取得したファイルに含まれるURLに関連付けられたリンクが指定された場合に,そのリンクに関係付けられたURLに対して,差分情報記憶部14に記憶された差分を付加する。ここでは,WEBサーバ3から取得したファイルは,プロキシ2での書き換えができないバイナリファイルなどのファイルであり,そのファイル内部に含まれるURLは,認証キーの情報を含まないURLである。すなわち,差分付加部15は,認証キーの情報を含まないURLに,認証キーの情報を付加する。
【0062】
リクエスト出力部16は,URLを指定したリクエストを送信する。URL指定受付部11で受け付けたURLに対して差分付加部15で差分が付加された場合には,リクエスト出力部16は,差分が付加されたURLを指定したリクエストをプロキシ2に送信する。すなわち,認証を行うプロキシ2を経由してWEBサーバ3から取得した,プロキシ2で書き換えができないファイルに含まれるURLが指定された場合には,リクエスト出力部16は,差分が付加されたURLを指定したリクエストをプロキシ2に送信する。また,URL指定受付部11で受け付けたURLに対して差分付加部15で差分が付加されない場合には,リクエスト出力部16は,URL指定受付部11で受け付けたURLを指定したリクエストを出力する。
【0063】
ファイル取得部17は,URLを指定されたリクエストに対して,WEBサーバ3から返されたファイルを取得する。
【0064】
図7は,本実施の形態によるURL情報記憶部に格納されているデータテーブルの例を示す図である。
【0065】
図7に示すURL情報テーブル120は,URL情報記憶部12に記憶された,WEBサーバ3へのアクセスで指定されたURLの履歴情報が記録されたデータの例である。図7に示すURL情報テーブル120は,指定URL,日時,認証チェック等の情報を持つ。指定URLは,WEBサーバ3へのアクセスで指定されたURLを示す。日時は,指定URLを含むリクエストが送信された日時を示す。認証チェックは,指定URLが,プロキシ2によるユーザ認証後にプロキシ2から返却されたURLであるかを示す。例えば,図7に示すURL情報テーブル120において,認証チェックが“認証”となっているレコードが,ユーザ認証後に返却されたURLを指定したリクエストが行われたことを示している。
【0066】
図8は,本実施の形態による差分情報記憶部に格納されているデータの例を示す図である。
【0067】
図8に示す差分データ140は,差分情報記憶部14に記憶された,ユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分データの例である。図8に示す差分データ140は,図7に示すURL情報テーブル120において,ユーザ認証前のリクエストで指定されたURL“http://test.example.com/menu”と,ユーザ認証後にプロキシ2から取得されたURL“http://test.example.com/menu?ukey=xxxx”との差分である。
【0068】
図9は,本実施の形態のサーバアクセス処理部によるサーバアクセス処理フローチャートである。
【0069】
図9に示すフローチャートの例は,ユーザが,WEBサーバ3から取得したファイルにより提示されるブラウザの画面上でリンクを選択した場合の,サーバアクセス処理部10による処理の一例である。なお,ここでWEBサーバ3から取得したファイルは,WEBサーバ3から認証を行うプロキシ2を経由してクライアント装置1に返されたファイルであり,プロキシ2で書き換えができないバイナリファイルであるものとする。
【0070】
ユーザがファイルにより提示されるブラウザの画面上でリンクを選択すると,URL指定受付部11は,そのファイル内部にある,該当リンクに関連付けられたURLの指定を受け付ける(ステップS10)。
【0071】
URL指定受付部11は,指定されたURLのホスト部が,URL情報記憶部12に記憶された,ユーザ認証後にプロキシ2から取得されたURLのホスト部と一致するかを判定する(ステップS11)。
【0072】
双方のホスト部が一致しなければ(ステップS11のNO),URL指定受付部11は,指定されたURLを含むリクエストは,ユーザ認証を行ったプロキシ2を経由したWEBサーバ3に対するリクエストではないと判断する。このとき,リクエスト出力部16は,指定されたURLを含むリクエストの送信を行う(ステップS14)。
【0073】
双方のホスト部が一致すれば(ステップS11のYES),URL指定受付部11は,指定されたURLを含むリクエストは,ユーザ認証を行ったプロキシ2を経由したWEBサーバ3に対するリクエストである判断する。このとき,差分抽出部13は,URL情報記憶部12に記憶された,プロキシ2によるユーザ認証前のリクエストで指定されたURLと,ユーザ認証後にプロキシ2から取得されたURLとの差分を抽出する(ステップS12)。抽出された差分は,差分情報記憶部14に記憶される。差分付加部15は,該当リンクに関連付けられたURLに,差分情報記憶部14に記憶された差分を付加する(ステップS13)。リクエスト出力部16は,差分が付加されたURLを指定したリクエストを,プロキシ2に送信する(ステップS14)。
【0074】
図10,図11は,本実施の形態によるWEBサーバからクライアント装置に返されるファイルがSWFファイルである場合の流れの例を示すシーケンス図である。
【0075】
ユーザは,クライアント装置1のブラウザで,WEBサーバ3が提供するサービスのメニュー画面を表示するためのURLを指定する。クライアント装置1のURL指定受付部11は,ユーザによるURLの指定を受け付ける(ステップS100)。ここでは,URLとして,“http://test.example.com/menu”が指定されたものとする。このURL“http://test.example.com/menu”は,プロキシ2によるユーザ認証前の,認証キーの情報を含まないURLである。
【0076】
クライアント装置1のURL指定受付部11は,指定された,認証キーの情報を含まないURL“http://test.example.com/menu”を,URL情報記憶部12に記憶する(ステップ101)。例えば,このとき記憶されたURLが,図7に示すURL情報テーブル120における指定URL“http://test.example.com/menu”である。クライアント装置1のリクエスト出力部16は,プロキシ2に対して,URL“http://test.example.com/menu”を指定したリクエストを送信する(ステップS102)。
【0077】
プロキシ2は,URL“http://test.example.com/menu”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS103)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS104)。URL“http://test.example.com/menu”は,ユーザ認証前のクライアント装置1から送信されたリクエストのURLであるので,認証キーの情報は含まれていない。プロキシ2は,ユーザ認証画面を提示するためのファイルを,クライアント装置1に返却する(ステップS105)。
【0078】
クライアント装置1ではユーザ認証画面が表示され,ユーザは,ユーザ認証画面の入力欄にユーザ情報を入力する。クライアント装置1は,ユーザによるユーザ情報の入力を受け付けると(ステップS106),そのユーザ情報をプロキシ2に送信する(ステップS107)。
【0079】
プロキシ2は,クライアント装置1から受けたユーザ情報で,クライアント装置1に対するユーザ認証を実行する(ステップS108)。プロキシ2は,クライアント装置1に対するユーザ認証が成功した場合に,認証キーを発行する。ここでは,クライアント装置1に対する認証キー(ukey)として,“xxxx”が発行されたものとする。プロキシ2は,発行された認証キーを含む,ユーザ認証の結果の情報であるユーザ認証情報を,プロキシ2が備える記憶装置に記憶される認証情報テーブル20に記録する(ステップS109)。
【0080】
プロキシ2は,クライアント装置1から受けたリクエストのURL“http://test.example.com/menu”に認証キーの情報“ukey=xxxx ”を付加し,その認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”をクライアント装置1に返却する(ステップS110)。そして,プロキシ2は,端子Eを介して図11のS114へ処理を進める。なお,プロキシ2の処理S103,S104,S105,S108,S109は,図2におけるS202,S203,S204,S207,S208に各々対応する。プロキシ2は従来の処理と同様の処理を行う。つまり,従来どおり,リクエストのURLはプロキシ2にて書き換えられる。
【0081】
クライアント装置1のURL指定受付部11は,プロキシ2から返却された,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”の指定を受け付ける(ステップS111)。このURLの指定の受け付けは,画面上に表示したアクセス指示ボタンの選択などのユーザ入力による指定の受け付けであってもよいし,リダイレクトによるプロキシ2から取得したURLの自動的指定の受け付けであってもよい。
【0082】
クライアント装置1のURL指定受付部11は,指定された,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”を,URL情報記憶部12に記憶する(ステップ112)。例えば,このとき記憶されたURLが,図7に示すURL情報テーブル120における,ユーザ認証後の指定URL“http://test.example.com/menu?ukey=xxxx”である。そして,クライアント装置1は,端子Dを介して図11のS113へ処理を進める。クライアント装置1のリクエスト出力部16は,プロキシ2に対して,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”を指定したリクエストを送信する(ステップS113)。
【0083】
プロキシ2は,URL“http://test.example.com/menu?ukey=xxxx”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS114)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS115)。具体的には,プロキシ2は,認証情報テーブル20に記録された認証キーが,クライアント装置1からのリクエストのURLに含まれているかを確認する。URL“http://test.example.com/menu?ukey=xxxx”には,認証情報テーブル20に記録された認証キー“xxxx”の情報“ukey=xxxx ”が含まれているので,クライアント装置1からWEBサーバ3へのアクセスが,許可される。
【0084】
プロキシ2は,クライアント装置1からのリクエストを,WEBサーバ3に送信する(ステップS116)。このとき,プロキシ2は,リクエストのURLから認証キーの情報を削除する。すなわち,プロキシ2からWEBサーバ3に送信されるリクエストのURLは,“http://test.example.com/menu”となる。
【0085】
WEBサーバ3は,クライアント装置1からの,URL“http://test.example.com/menu”が指定されたリクエストに対して,自身が提供するサービスのメニュー画面を表示するためのファイルを,プロキシ2に返却する(ステップS117)。ここで返却されるファイルは,バイナリファイルのSWFファイルであり,そのSWFファイルには,リンクを示すURLの内容として,
on(press) {getURL("http://test.example.com/menuA");}
on(press) {getURL("http://test.example.com/menuB");}
が含まれているものとする。
【0086】
ここで,クライアント装置1が認証済みであるが,WEBサーバ3からクライアント装置1へのファイルがSWFファイルであるので,プロキシ2は,ファイル内のリンクを示すURLの内容に,認証キーの情報“ukey=xxxx ”を設定することができない。プロキシ2は,WEBサーバ3から受けたファイルを,そのままクライアント装置1に返却する(ステップS118)。
【0087】
クライアント装置1のファイル取得部17は,WEBサーバ3からプロキシ2経由で返されたファイルを取得する。ユーザは,クライアント装置1のブラウザで,WEBサーバ3からプロキシ2経由で取得したファイルにより提供されるメニュー画面の情報を閲覧する。
【0088】
ここで,ユーザがメニュー画面上のメニューAのリンクを選択したものとする。クライアント装置1は,ユーザによるリンクの選択を受け付ける(ステップS119)。このとき,クライアント装置1のURL指定受付部11は,選択されたリンクに関連付けられた,WEBサーバ3から取得されたファイル内部のURLの指定を受け付ける。ここでは,選択されたメニューAのリンクに関連付けられた,WEBサーバ3から取得されたファイル内部のURLは,“http://test.example.com/menuA ”であるものとする。
【0089】
クライアント装置1の差分抽出部13は,リンク先として選択されたURLが,ファイル内部のURLであって,さらに過去にプロキシ2にてユーザ認証を行ったWEBサーバ3に対するアクセスであるかを判定する。例えば,差分抽出部13は,URL情報記憶部12を参照し,S119で選択されたURLが,過去にユーザ認証を行なった際のリクエストに含まれるURLとホスト部が同一であるかを判定する。同一であれば,過去にユーザ認証を行ったプロキシ2を経由したWEBサーバ3に対するアクセスであることが判定できる。
【0090】
このとき,クライアント装置1の差分抽出部13は,URL情報記憶部12に記憶された,認証キーの情報を含まないURL“http://test.example.com/menu”と,認証キーの情報を含むURL“http://test.example.com/menu?ukey=xxxx”との差分“?ukey=xxxx”を抽出する(ステップS120)。クライアント装置1の差分抽出部13は,抽出された差分“?ukey=xxxx”を差分情報記憶部14に記憶する。
【0091】
クライアント装置1の差分付加部15は,選択されたリンクに関連付けられたURL“http://test.example.com/menuA ”に対して,差分情報記憶部14に記憶された差分“?ukey=xxxx”を付加する(ステップS121)。差分を付加したURLは,“http://test.example.com/menuA?ukey=xxxx ”となる。
【0092】
クライアント装置1のリクエスト出力部16は,プロキシ2に対して,差分を付加したURL“http://test.example.com/menuA?ukey=xxxx ”を指定したリクエストを送信する(ステップS122)。
【0093】
プロキシ2は,URL“http://test.example.com/menuA?ukey=xxxx ”を指定したリクエストを受けることで,クライアント装置1によるWEBサーバ3へのアクセスを検知する(ステップS123)。このとき,プロキシ2は,クライアント装置1からのリクエストのURLに認証キーの情報が含まれているかを確認する(ステップS124)。URL“http://test.example.com/menuA?ukey=xxxx ”には,認証情報テーブル20に記録された認証キー“xxxx”の情報“ukey=xxxx ”が含まれているので,クライアント装置1からWEBサーバ3へのアクセスが,許可される。
【0094】
以下,ステップS117〜と同様に,WEBサーバ3からプロキシ2を経由したファイルの返却等が行われる。
【0095】
このように,本実施の形態のサーバアクセス処理部10は,プロキシ2での認証後に,プロキシ2で書き換えができないファイル内部のリンクのURLが指定された場合に,自動的に認証キーの情報を付加してリクエストを出力する。これにより,プロキシ2によるユーザ認証後であれば,プロキシ2で書き換えができないファイル内部のリンクのURLが指定されたリクエストでも,プロキシ2によって遮断されなくなる。
【0096】
以上説明した本実施の形態のサーバアクセス処理部10による処理は,コンピュータが備えるCPU,メモリ等のハードウェアとソフトウェアプログラムとにより実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
【0097】
図12は,本実施の形態によるクライアント装置のハードウェア構成例を示す図である。
【0098】
クライアント装置1は,CPU1001,ROM(Read Only Memory)1002,RAM(Random Access Memory)1003,通信部1004,HDD(Hard Disk Drive )1005,入力部1006,媒体読取部1007,表示部1008を有しており,各部はバス1009を介して相互に接続されている。各部は,CPU1001による管理下で,相互にデータの送受を行うことができる。
【0099】
CPU1001は,クライアント装置1全体の動作制御を司る中央処理装置である。通信部1004は,他のコンピュータからの信号を受信し,その信号の内容をCPU1001に渡す。さらに,通信部1004は,CPU1001からの指示に応じて,他のコンピュータに信号を送信する。
【0100】
HDD1005には,上述の本実施の形態に示したサーバアクセス処理部10と同様の機能をコンピュータに発揮させるプログラムとして,例えば図9のフローチャートに示す各処理をコンピュータに実行させるプログラムが記憶されている。CPU1001がこのプログラムをHDD1005から読み出して実行することで,図6に示すURL指定受付部11,差分抽出部13,差分付加部15,リクエスト出力部16,ファイル取得部17として,コンピュータが機能するようになる。このプログラムは,CPU1001がアクセス可能なROM1002またはRAM1003に格納されていても良い。
【0101】
さらに,HDD1005は,CPU1001の管理下で,例えば図6に示すURL情報記憶部12や差分情報記憶部14などの記憶部として,指定されたURLの情報やユーザ認証前後に指定されたURL間の差分情報などを記憶する。プログラムと同様に,各情報は,CPU1001がアクセス可能なROM1002またはRAM1003に格納されても良い。入力部1006は,CPU1001の管理下で,データの入力を受付ける。
【0102】
例えば図9のフローチャートに示した処理内容を記述したプログラムは,コンピュータが読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体には,磁気記録装置,光ディスク,光磁気記録媒体,半導体メモリなどがある。磁気記録装置には,HDD,フレキシブルディスク(FD(Flexible Disk )),磁気テープ(MT(Magnetic Tape ))などがある。光ディスクには,DVD(Digital Versatile Disc),DVD−RAM,CD(Compact Disc)−ROM,CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には,MO(Magneto-Optical disk)などがある。このプログラムを流通させる場合には,例えば,そのプログラムが記録されたDVD,CD−ROMなどの可搬型記録媒体が販売されることが考えられる。
【0103】
プログラムを実行するコンピュータでは,媒体読取部1007が,例えば図9のフローチャートに示した処理内容を記述したプログラムを記録した記録媒体から,該プログラムを読み出す。CPU1001は,読み出されたプログラムを,HDD1005,ROM1002またはRAM1003に格納する。コンピュータは,自己の記憶装置であるHDD1005,ROM1002またはRAM1003からプログラムを読み取り,プログラムに従った処理を実行する。
【0104】
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【0105】
例えば,本実施の形態のサーバアクセス処理部10では,SWFファイルなどのプロキシ2で書き換えできないファイル内部のリンクのURLが指定された場合にのみ,URLの差分から得られた認証キーの情報を付加する処理を行っている。プロキシ2がテキストファイルを含めたすべてのファイルの書き換えを行わないことが前提であれば,サーバアクセス処理部10が,ファイル内部のリンクのURLが指定されたすべてのケースで,URLの差分から得られた認証キーの情報を付加する処理を行ってもよい。
【0106】
また,本実施の形態では,サーバアクセス処理部10は,ファイル内部のリンクのURLが指定されたタイミングで,ユーザ認証前後のURLの差分抽出を行っているが,必ずしもそのタイミングでURLの差分抽出を行う必要はない。例えば,サーバアクセス処理部10が,プロキシ2によるユーザ認証後に,プロキシ2から認証キーの情報を含むURLを受け取ったタイミングで,ユーザ認証前後のURLの差分抽出を行うようにしても良い。
【符号の説明】
【0107】
1 クライアント装置
10 サーバアクセス処理部
11 URL指定受付部
12 URL情報記憶部
13 差分抽出部
14 差分情報記憶部
15 差分付加部
16 リクエスト出力部
17 ファイル取得部
2 プロキシ
3 WEBサーバ
【特許請求の範囲】
【請求項1】
ユーザの認証を行うとともに,該認証が終了したことを示す認証情報を発行するプロキシを経由して,情報資源所在情報で指定したサーバにアクセスする処理を,コンピュータに実行させるためのプログラムであって,
前記コンピュータに,
前記認証情報を含まない第一の情報資源所在情報を指定した前記サーバへのリクエストを前記プロキシに送信するステップと,
前記プロキシから,前記第一の情報資源所在情報と前記認証情報とを含む第二の情報資源所在情報を取得するステップと,
前記第一の情報資源所在情報と,前記第二の情報資源所在情報との差分を抽出するステップと,
前記第二の情報資源所在情報に基づいて,前記サーバが提供するファイルを前記プロキシ経由で取得するステップと,
前記取得したファイルに基づいて,画面を出力するステップと,
前記ユーザから,前記ファイルに含まれる第三の情報資源所在情報に対する選択を受け付けるステップと,
前記第三の情報資源所在情報に対して,前記抽出した差分を付加した第四の情報資源所在情報を生成するステップと,
前記第四の情報資源所在情報を指定した他のリクエストを,前記プロキシに送信するステップとを
実行させることを特徴とするサーバアクセスプログラム。
【請求項2】
前記ファイルは,バイナリファイルである
ことを特徴とする請求項1に記載のサーバアクセスプログラム。
【請求項3】
ユーザの認証を行うとともに,該認証が終了したことを示す認証情報を発行するプロキシを経由して,情報資源所在情報で指定したサーバにアクセスする処理を行うサーバアクセス装置であって,
前記プロキシに送信した前記サーバへのリクエストで指定した,前記認証情報を含まない第一の情報資源所在情報と,前記プロキシから取得した,前記第一の情報資源所在情報と前記認証情報とを含む第二の情報資源所在情報との差分を抽出する差分抽出部と,
前記プロキシ経由で取得された,前記第二の情報資源所在情報に基づいて前記サーバが提供するファイルに含まれる第三の情報資源所在情報に対する,前記ユーザからの選択を受け付ける受付部と,
前記第三の情報資源所在情報に対して,前記抽出した差分を付加した第四の情報資源所在情報を生成する差分付加部と,
前記第四の情報資源所在情報を指定した他のリクエストを,前記プロキシに送信する出力部とを備える
ことを特徴とするサーバアクセス装置。
【請求項4】
ユーザの認証を行うとともに,該認証が終了したことを示す認証情報を発行するプロキシを経由して,情報資源所在情報で指定したサーバにアクセスする処理を,コンピュータが実行するサーバアクセス方法であって,
前記コンピュータが,
前記認証情報を含まない第一の情報資源所在情報を指定した前記サーバへのリクエストを前記プロキシに送信する過程と,
前記プロキシから,前記第一の情報資源所在情報と前記認証情報とを含む第二の情報資源所在情報を取得する過程と,
前記第一の情報資源所在情報と,前記第二の情報資源所在情報との差分を抽出する過程と,
前記第二の情報資源所在情報に基づいて,前記サーバが提供するファイルを前記プロキシ経由で取得する過程と,
前記取得したファイルに基づいて,画面を出力する過程と,
前記ユーザから,前記ファイルに含まれる第三の情報資源所在情報に対する選択を受け付ける過程と,
前記第三の情報資源所在情報に対して,前記抽出した差分を付加した第四の情報資源所在情報を生成する過程と,
前記第四の情報資源所在情報を指定した他のリクエストを,前記プロキシに送信する過程とを実行する
ことを特徴とするサーバアクセス方法。
【請求項1】
ユーザの認証を行うとともに,該認証が終了したことを示す認証情報を発行するプロキシを経由して,情報資源所在情報で指定したサーバにアクセスする処理を,コンピュータに実行させるためのプログラムであって,
前記コンピュータに,
前記認証情報を含まない第一の情報資源所在情報を指定した前記サーバへのリクエストを前記プロキシに送信するステップと,
前記プロキシから,前記第一の情報資源所在情報と前記認証情報とを含む第二の情報資源所在情報を取得するステップと,
前記第一の情報資源所在情報と,前記第二の情報資源所在情報との差分を抽出するステップと,
前記第二の情報資源所在情報に基づいて,前記サーバが提供するファイルを前記プロキシ経由で取得するステップと,
前記取得したファイルに基づいて,画面を出力するステップと,
前記ユーザから,前記ファイルに含まれる第三の情報資源所在情報に対する選択を受け付けるステップと,
前記第三の情報資源所在情報に対して,前記抽出した差分を付加した第四の情報資源所在情報を生成するステップと,
前記第四の情報資源所在情報を指定した他のリクエストを,前記プロキシに送信するステップとを
実行させることを特徴とするサーバアクセスプログラム。
【請求項2】
前記ファイルは,バイナリファイルである
ことを特徴とする請求項1に記載のサーバアクセスプログラム。
【請求項3】
ユーザの認証を行うとともに,該認証が終了したことを示す認証情報を発行するプロキシを経由して,情報資源所在情報で指定したサーバにアクセスする処理を行うサーバアクセス装置であって,
前記プロキシに送信した前記サーバへのリクエストで指定した,前記認証情報を含まない第一の情報資源所在情報と,前記プロキシから取得した,前記第一の情報資源所在情報と前記認証情報とを含む第二の情報資源所在情報との差分を抽出する差分抽出部と,
前記プロキシ経由で取得された,前記第二の情報資源所在情報に基づいて前記サーバが提供するファイルに含まれる第三の情報資源所在情報に対する,前記ユーザからの選択を受け付ける受付部と,
前記第三の情報資源所在情報に対して,前記抽出した差分を付加した第四の情報資源所在情報を生成する差分付加部と,
前記第四の情報資源所在情報を指定した他のリクエストを,前記プロキシに送信する出力部とを備える
ことを特徴とするサーバアクセス装置。
【請求項4】
ユーザの認証を行うとともに,該認証が終了したことを示す認証情報を発行するプロキシを経由して,情報資源所在情報で指定したサーバにアクセスする処理を,コンピュータが実行するサーバアクセス方法であって,
前記コンピュータが,
前記認証情報を含まない第一の情報資源所在情報を指定した前記サーバへのリクエストを前記プロキシに送信する過程と,
前記プロキシから,前記第一の情報資源所在情報と前記認証情報とを含む第二の情報資源所在情報を取得する過程と,
前記第一の情報資源所在情報と,前記第二の情報資源所在情報との差分を抽出する過程と,
前記第二の情報資源所在情報に基づいて,前記サーバが提供するファイルを前記プロキシ経由で取得する過程と,
前記取得したファイルに基づいて,画面を出力する過程と,
前記ユーザから,前記ファイルに含まれる第三の情報資源所在情報に対する選択を受け付ける過程と,
前記第三の情報資源所在情報に対して,前記抽出した差分を付加した第四の情報資源所在情報を生成する過程と,
前記第四の情報資源所在情報を指定した他のリクエストを,前記プロキシに送信する過程とを実行する
ことを特徴とするサーバアクセス方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−150446(P2011−150446A)
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願番号】特願2010−9660(P2010−9660)
【出願日】平成22年1月20日(2010.1.20)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願日】平成22年1月20日(2010.1.20)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]