(57)【要約】サーバとクライアントとの間に認証コンポーネントが駐在し、サーバとクライアントとの間に通信される一つまたはそれ以上のトランザクションをモニタする。認証コンポーネントが、終了指示を含むトランザクションを検出すると、認証セッションが終了して、次回、サーバとのトランザクションが望まれる時、クライアントに再認証されることを強制する。終了指示は、サーバで走っているアプリケーションによって与えられてよく、あるいは、別法として、終了指示は、認証コンポーネントによって与えられてよい。
2004534996.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの指示に従って認証セッションを終了する方法であって、該ユーザの指示は、該ユーザが、アプリケーションとの、該アプリケーションとは無関係な、ユーザのインタラクションを終了することを意図したものである方法において、
ユーザとアプリケーションとの間の、一つまたはそれ以上のトランザクションにて、ユーザからの終了指示のリクエストをモニタする処理と、
該終了指示を受信する処理に対するレスポンスで認証セッションを終了する処理と、
を含むことを特徴とする方法。
【請求項２】
該終了指示は、予め定義されたＵＲＬを含むこととする請求項１に記載の方法。
【請求項３】
さらに、認証セッションが始まる時に、認証セッションテーブルにセッションエントリを入力する処理を含むこととする請求項１に記載の方法。
【請求項４】
該終了する処理は、認証セッションテーブルからセッションエントリを削除する処理を含むこととする請求項１に記載の方法。
【請求項５】
該終了する処理は、認証セッションテーブルにて、セッションエントリを期限切れとしてマークする処理を含むこととする請求項１に記載の方法。
【請求項６】
該終了する処理は、該認証セッションに関連した暗号化トークンを無効なものとして表す処理を含むこととする請求項１に記載の方法。
【請求項７】
該終了する処理は、該認証セッションに関連したセッションクッキーを、禁止クッキーのテーブルに入力する処理を含むこととする請求項１に記載の方法。
【請求項８】
該終了する処理は、該リクエストに付加された予め決定されたパラメータを検出する処理を含むこととする請求項１に記載の方法。
【請求項９】
さらに、認証セッションが始まる時に、認証セッションテーブルに、ＵＲＬパラメータに対応するセッションエントリを入力する処理を含むこととする請求項１に記載の方法。
【請求項１０】
該終了指示は、該アプリケーションにおける既存のファンクションを有することとする請求項１に記載の方法。
【請求項１１】
該終了指示は、該アプリケーションによって与えられる一つまたはそれ以上の既存のログオフＵＲＬを含むこととする請求項１に記載の方法。
【請求項１２】
該終了する処理は、該ユーザと該アプリケーションとの間の一つまたはそれ以上のトランザクションを通信する処理の後で、該認証セッションを終了する処理を含むこととする請求項１に記載の方法。
【請求項１３】
該終了する処理は、セッションテーブルにて、認証セッションを終了ペンディングとしてマークする処理と、
該終了指示を有する該トランザクションを該アプリケーションに通信する処理と、
該アプリケーションが、該終了指示に対するレスポンスで返答するまで、該トランザクションをモニタし続ける処理と、
該認証セッションを終了する処理と、
を含むこととする請求項１に記載の方法。
【請求項１４】
該終了する処理の間は、予め決定されたトランザクションのみが、許されることとする請求項１３に記載の方法。
【請求項１５】
該終了する処理は、該セッションテーブルから、該認証セッションに関連したエントリを削除する処理を含むこととする請求項１３に記載の方法。
【請求項１６】
該終了する処理は、認証セッションテーブルにて、セッションエントリを期限切れとしてマークする処理を含むこととする請求項１３に記載の方法。
【請求項１７】
該終了する処理は、該認証セッションに関連した暗号化トークンを無効なものとして表す処理を含むこととする請求項１３に記載の方法。
【請求項１８】
該終了する処理は、該認証セッションに関連したセッションクッキーを、禁止クッキーのテーブルに入力する処理を含むこととする請求項１３に記載の方法。
【請求項１９】
該終了する処理は、該終了指示を受信する処理の後、予め決定された時間期間が経過した後で、該認証セッションを終了する処理を含むこととする請求項１に記載の方法。
【請求項２０】
該終了する処理は、該予め決定された時間期間の間、該ユーザと該アプリケーションとの間で、予め決定されたトランザクションのセットのみが、通信されることを可能にする処理を含むこととする請求項１９に記載の方法。
【請求項２１】
該終了する処理は、該終了指示を受信する処理の後で、該予め決定された時間期間の期限切れの時点、あるいは、無効リクエストが、該ユーザから受信された時点のうちのより早い時点で、該認証セッションを終了する処理を含むこととする請求項１９に記載の方法。
【請求項２２】
該終了する処理は、予め定義された許されたリクエストのセットの中にない、あるいは、予め定義された禁止されたリクエストのセットの一つである最初のリクエストが、該ユーザから受信された後で、該認証セッションを終了する処理を含むこととする請求項１に記載の方法。
【請求項２３】
さらに、
該終了指示を受信する処理の後で、該認証セッションを終了ペンディングとして表す処理と、
該認証セッションを終了する処理の前に、該ユーザと該アプリケーションとの間で、一つまたはそれ以上の予め定義されたトランザクションを可能にする処理と、
該認証セッションを終了する処理と、
を含むこととする請求項１に記載の方法。
【請求項２４】
該終了する処理は、
該認証セッションを終了ペンディングとして表す処理と、
該ユーザおよび該アプリケーションへの若しくはこれらからの一つまたはそれ以上の予め定義されたＵＲＬリクエストおよびレスポンスを可能にする処理と、
を含むこととする請求項１に記載の方法。
【請求項２５】
該一つまたはそれ以上の予め定義されたＵＲＬリクエストおよびレスポンスは、アプリケーションのログオフシーケンスに使用された一つまたはそれ以上のリクエストおよびレスポンスを含むこととする請求項２４に記載の方法。
【請求項２６】
さらに、該終了指示を受信する処理へのレスポンスで、該ユーザにログオフ指示を提供する処理を含むこととする請求項１に記載の方法。
【請求項２７】
さらに、
該終了指示を受信する処理へのレスポンスで、該ユーザに、該ユーザに対する追加のオプションを含むログオフページを提供する処理と、
前記ログオフページを提供する処理の後で、該ユーザから、一つまたはそれ以上のトランザクションをインタセプトする処理と、
該認証セッションを終了する処理の前に、一つまたはそれ以上のトランザクションに応答する処理と、
を含むこととする請求項１に記載の方法。
【請求項２８】
さらに、該終了指示を受信する処理へのレスポンスで、該ユーザへの、一つまたはそれ以上のアプリケーションで生成されたレスポンスを棄却する処理を含むこととする請求項２６に記載の方法。
【請求項２９】
さらに、該提供する処理の後で、かつ、終了する処理の前に、該アプリケーションに対する該ユーザからの選択され、予め定義されたリクエストのみを可能にする処理を含むこととする請求項２７に記載の方法。
【請求項３０】
さらに、該終了指示を受信する処理の後で、該アプリケーションに対する該ユーザからのリクエストを禁止する処理を含むこととする請求項１に記載の方法。
【請求項３１】
さらに、
該アプリケーションからの一つまたはそれ以上のトランザクションをモニタする処理と、
予め定義されたデータセグメントを、該アプリケーションから受信された該一つまたはそれ以上のトランザクションに追加する処理と、
該追加され予め定義されたデータセグメントを有する該一つまたはそれ以上のトランザクションを該ユーザに送信して、該終了指示を送信するオプションを該ユーザに提供する処理と、
を含むこととする請求項１に記載の方法。
【請求項３２】
該データセグメントは、該ユーザが、該セッションを終了することを意図した時、該ユーザが選択できるＨＴＭＬログオフイメージへの参照を含むこととする請求項３１に記載の方法。
【請求項３３】
ＨＴＭＬログオフイメージは、該セッションの間中、該ブラウザディスプレイエリアに留まっているＨＴＭＬフレーム内に提供されることとする請求項３２に記載の方法。
【請求項３４】
さらに、認証セッションの後で、該アプリケーションに該終了指示を通信する処理を含むこととする請求項１に記載の方法。
【請求項３５】
さらに、
該終了指示を受信する処理の後で、該ユーザから該アプリケーションへの一つまたはそれ以上の後続のリクエストをインタセプトして該アプリケーションに送信しない処理と、該後続のリクエストの一つまたはそれ以上に返答する処理と、
を含むこととする請求項１に記載の方法。
【請求項３６】
さらに、
該終了指示を受信する処理の後で、該アプリケーションから該ユーザへの一つまたはそれ以上の後続のトランザクションをインタセプトして該ユーザに送信しない処理と、
一つまたはそれ以上の後続のトランザクションを該アプリケーションに送信して、該ユーザをエミュレートする処理と、
を含むこととする請求項１に記載の方法。
【請求項３７】
さらに、
該終了指示を受信する処理の後で、一つまたはそれ以上の後続のユーザリクエストをインタセプトする処理と、
該ユーザをエミュレートするために、一つまたはそれ以上の予め定義された後続のリクエストを該アプリケーションに送信する処理であって、該リクエストは、該一つまたはそれ以上の後続のユーザリクエストによって決定されるが、必ずしも該一つまたはそれ以上の後続のユーザリクエストと同一ではない処理と、
該一つまたはそれ以上の後続のリクエストのうちの一つまたはそれ以上に返答する処理と、
を含むこととする請求項１に記載の方法。
【請求項３８】
認証セッションを終了するシステムにおいて、
有効セッションの一つまたはそれ以上のエントリを有するセッションエントリテーブルと、
クライアントとアプリケーションを走らせるサーバとの間に駐在する認証コンポーネントであって、前記認証コンポーネントは、該クライアントと該サーバとの間のトランザクションをモニタし、かつ、セッションの終了指示を受信する処理に対するレスポンスで、終了シーケンスを開始する認証コンポーネントと、
を含むことを特徴とするシステム。
【請求項３９】
該終了シーケンスは、該セッションエントリテーブル内の該セッションと関連したエントリを削除する処理を含むこととする請求項３８に記載のシステム。
【請求項４０】
該認証モジュールは、プロキシであることとする請求項３８に記載のシステム。
【請求項４１】
該認証モジュールは、フィルタであることとする請求項３８に記載のシステム。
【請求項４２】
該一つまたはそれ以上のエントリは、一つまたはそれ以上のクッキーを含むこととする請求項３８に記載のシステム。
【請求項４３】
該一つまたはそれ以上のエントリは、一つまたはそれ以上の暗号化トークンを含むこととする請求項３８に記載のシステム。
【請求項４４】
該一つまたはそれ以上のエントリは、一つまたはそれ以上のＵＲＬパラメータを含むこととする請求項３８に記載のシステム。
【請求項４５】
該終了指示は、ログオフＵＲＬを含むこととする請求項３８に記載のシステム。
【請求項４６】
認証セッションを終了する方法において、
クライアントトランザクションを有効化して、クライアントとアプリケーションとの間のセッションを開始する処理と、
セッションテーブルに有効なセッションエントリを入力する処理と、
該セッション中、該クライアントと該アプリケーションとの間の一つまたはそれ以上のトランザクションをモニタする処理と、
該一つまたはそれ以上のトランザクションにおいて、予め定義された終了指示を検出する処理と、
該セッションテーブル内の該有効なセッションエントリを削除する処理と、
を含むことを特徴とする方法。
【請求項４７】
さらに、
該削除する処理の前に、予め決定された時間期間が経過するのを待つ処理を含むこととする請求項４６に記載の方法。
【請求項４８】
該セッションエントリを該削除する処理は、該セッションエントリを無効なものとしてマークする処理を含むこととする請求項４６に記載の方法。
【請求項４９】
機械によって読み取り可能なプログラム記憶装置であって、該機械によって、認証セッションを終了する処理の方法ステップを行うのに実行可能な命令のプログラムを有形に具体化しているプログラム記憶装置において、
クライアントトランザクションを有効化して、クライアントとアプリケーションとの間のセッションを開始する処理と、
セッションテーブルに有効なセッションエントリを入力する処理と、
該セッション中、該クライアントと該アプリケーションとの間の一つまたはそれ以上のトランザクションをモニタする処理と、
該一つまたはそれ以上のトランザクションにおいて、予め定義された終了指示を検出する処理と、
該セッションテーブル内の該有効なセッションエントリを削除する処理と、
を含むことを特徴とするプログラム記憶装置。
【請求項５０】
機械によって読み取り可能なプログラム記憶装置であって、該機械によって、認証セッションを終了する処理の方法ステップを行うのに実行可能な命令のプログラムを有形に具体化しているプログラム記憶装置において、
ユーザとアプリケーションとの間の一つまたはそれ以上のトランザクションにおいて、ユーザからの終了指示に対するリクエストをモニタする処理と、
該終了指示を受信する処理に対するレスポンスで、認証セッションを終了する処理と、を含むことを特徴とするプログラム記憶装置。
【請求項５１】
該終了する処理は、
セッションテーブル内に、認証セッションを終了ペンディングとしてマークする処理と、
該終了指示を有する該トランザクションを該アプリケーションに通信する処理と、
該アプリケーションが、該終了指示に対するレスポンスで返答するまで、該トランザクションをモニタし続ける処理と、
該認証セッションを終了する処理と、
を含むこととする請求項５０に記載のプログラム記憶装置。
【発明の詳細な説明】
【関連出願のクロスレファレンス】
【０００１】
本出願は、２００１年５月４日に出願された米国仮出願Ｎｏ．６０/２８８，７７０の利益を主張し、その開示全体を、引用により、本明細書に取り込むものである。
【技術分野】
【０００２】
本開示は、ユーザセッションの保全性を保証するシステムおよび方法に関し、より詳しくは、認証されたユーザの、アプリケーションとのインタラクションからの該ユーザのサインオフあるいはアプリケーションとのインタラクションの終了の意図の表明で、直ちに認証セッションを終了するシステムおよび方法に関する。
【発明の背景】
【０００３】
現代のウェブベースのアプリケーションは、一般に「セッション」を維持することが必要である。「セッション」とは、ウェブベースのアプリケーションまたはウェブサーバとユーザとの間で送受信される一連のトランザクション、すなわち、リクエストとレスポンスを意味する言葉である。このセッションを維持する必要性は、ウェブベースのアプリケーションが、ＨＴＴＰプロトコルを使用するためであり、ＨＴＴＰプロトコルは、それ自体、国籍のないプロトコルであって、これは、各リクエスト・レスポンスのペアは、以前のそれらとは無関係であることを意味する。このセッションは、本明細書では、「アプリケーションセッション」と呼ぶことが多い。
【０００４】
アプリケーションセッションを維持するためには、リクエストが、アプリケーションに送信されて、アプリケーションが、このリクエストを特定のアプリケーションセッションに関連させるごとに、何らかの種類の「トークン」または「チケット」が、ウェブブラウザによって渡されねばならない。トークンは、全ての後続のクライアントリクエストで、同じ状態に留まるため、アプリケーションは、全てのこのようなリクエストを、同じアプリケーションセッションの一部として識別する。「クッキー」は、この目的のために最も普通に使用されるタイプのトークンであるが、特定のＵＲＬパラメータをトークンとして使用するなど、他の代替手段も存在する。このトークンは、アプリケーションセッション識別子として役立つばかりでなく、何らかの追加のアプリケーションセッション情報を含む場合もある。
【０００５】
ユーザを認証するためには、ユーザとウェブサーバとの間に駐在し、各セッションの開始点で、ユーザを認証するソフトウェアコンポーネントをインプリメントしてよい。認証は、他のユーザには未知の、何らかのクレデンシャルを与えるよう、ユーザに要求することによって達成されることが多い。これらクレデンシャルは、パスワード、クライアント証明書、あるいはユーザが携行し、かつ、サーバサイドで確認できる何らかの物理的装置からのリードアウトの形を取ることができよう。この認証コンポーネントは、プロキシ、フィルタ、あるいは、この技術に長けた人には周知の他のエージェントとして、インプリメント可能である。例えば、ウェブサーバの前に駐在し、サーバに代わってリクエストを受信し、最後にサーバにリクエストを渡し、かつ、サーバからのレスポンスをクライアントに返信するソフトウェアコンポーネントをインプリメントしてよい。追加の例としては、ウェブサーバに駐在して、ウェブサーバとインタラクトし、リクエスト/レスポンスのデータフローを修正し、かつ（あるいは）管理するソフトウェアコンポーネントをインプリメントしてよい。
【０００６】
認証コンポーネントは、上述のアプリケーションと同様、ユーザのセッションに付き従って、リクエストが送信されるごとにユーザを再認証する必要性を排除しなければならない。認証コンポーネントは、ユーザとアプリケーションとの間のデータ経路の中間に在るため、理論的には、アプリケーションセッション追跡処理を辿ることによって、例えば、上述のクッキーが、アプリケーションに渡され続けることを確認することによって、これを達成することができよう。しかしながら、実際には、一般に、同様のメカニズムを用いて、独立のセッション追跡により、これを達成している。例えば、認証コンポーネントによって、異なるクッキーが発行され、これは、セッション識別子として、あるいは、暗号化された認証承認チケットとして用いられている（すなわち、このチケットをリクエストと一緒に提供すると、リクエストが承認される）。これは、以下のパラグラフでより詳細に説明する。結果として、再認証は、この認証コンポーネントで新しいセッションが開始される場合にのみ、必要となる。明瞭さのため、このセッションは、「認証セッション」と呼ぶことにする。
【０００７】
セッション識別子として使用されたクッキーまたはトークンにより維持される認証セッションの場合は、認証コンポーネントは、ユーザの最初のリクエストで、ウェブブラウザなどのクライアントにクッキーまたはトークンを発行する。ユーザの最初のリクエストは、一般に、有効なクッキー/トークンを含んでいない。認証コンポーネントによって発行されたクッキーまたはトークンは、乱数を含んでいる。乱数は、「ブルートフォース」アタック（これは、妥当な時間内での継続から、推定により値を見つけ出そうとするものである）を防ぐため、十分に大きくしなければならない。乱数は、ハッシングアルゴリズムを使用するセッションテーブル内で、エントリを識別するため、認証コンポーネントで、内部的に使用される。このセッションテーブルは、現在、認証コンポーネントによって維持されている全てのアクティブなセッションを含んでいる。暗号化された認証承認チケット、または、暗号化されたトークン/クッキーにより維持されている認証コンポーネントの場合は、上記のセッションテーブルに記憶されるであろうどんな情報でも、ブラウザと認証コンポーネントとの間を送受信されるクッキー内で、各リクエストおよびレスポンスと共に、代わりに暗号化される。認証コンポーネントは、暗号キー（これは、認証コンポーネントの範囲外では未知である）を使用し、暗号化された情報に何らかの固定された「ソルト」値を加え、これは、暗号解読の際、正当なクッキーを確認するのに使用される。
【０００８】
認証セッションの終了に関しては、問題が存在する。ユーザが、ひとたび端末で認証されると、その端末が発行する全ての後続のリクエストは、その認証されたユーザから来る、と仮定される。したがって、重要なことは、ユーザが、アプリケーションとの彼のインタラクションを終了する場合、認証セッションが終了し、したがって、その端末における新しいユーザは、既に認証されたと間違って仮定されることはないことである。これは、ユーザが、インターネットカフェ、空港など、公共の空間からログインしつつある場合に、特に重要である。ウェブベースのアプリケーションからログオフする標準的な方法はないため、大部分の認証メカニズムは、ある種の「タイムアウト」メカニズムを使用し、それにより、ユーザが、ある時間、例えば、１０分間、アプリケーションとインタラクトしない場合は、認証セッションは、期限切れとなる。別法として、認証メカニズムによっては、固定されたタイムアウトをインプリメントしているものもあり、これは、セッションが、ユーザの活動とは無関係に、ある時間、生きた状態に留まることを可能にする。しかしながら、このようなメカニズムは、正当なユーザが、見掛け上サインオフした瞬間に第三者がブラウザの制御を取る公共の空間では不十分である。この問題は、公共インターネットアクセス施設が、それらのブラウザを「ロックダウン」する（すなわち、ブラウザを閉じられなくなる）場合には、一層ひどくなる。なぜなら、その場合、ユーザは、ブラウザを閉じることによってセッションを終了することすらできなくなる（閉じれば、そのクッキーは一般に棄却されることになろう）。
【０００９】
さらに、アプリケーションは、何らかのタイプのログオフボタンまたはアプリケーションセッション（認証セッションと混同しないこと）を終了することを意図したＵＲＬを含んでいてよいという事実にもかかわらず、このような終了は、一般に、認証メカニズムに如何なる影響も及ぼさないであろう。なぜなら、既存の認証メカニズムは、アプリケーションのログオフメカニズムを認識せず、したがって、該認証メカニズムは、認証セッションを終了しないであろうからである。結果として、同じブラウザを使用する次の人は、認証コンポーネントによって、暗に認証されることになろう。なぜなら、正当なクッキーが、認証コンポーネントに送信されるであろうからである。これは、悪意のユーザが、認証コンポーネントの認証メカニズムで、彼のアイデンティティーを最初に認証してもらわなくても、仮定上は保護されたアプリケーションとインタラクトすることを（たとえ恐らく、新しいアプリケーションセッションに従事する場合でも）可能にするであろう。したがって、アプリケーションが、この悪意のユーザに対して、あるレベルの保護を与えるであろうそれ自体の認証特徴（例えば、ユーザ名およびパスワード）を有していても、認証コンポーネントの認証メカニズムによって与えられる優れた認証は、バイパスされるであろう。ＨＴＴＰベーシックオーセンティケーション（Basic Authentication）を与えるアプリケーションの場合は、認証コンポーネントの認証メカニズムをバイパスする可能性は、アプリケーションを特に脆弱にするであろう。なぜなら、ＨＴＴＰベーシックオーセンティケーション（Basic Authentication）には、ブラウザが、サイトにアクセスした前のユーザのユーザ名およびパスワードをセーブするという事実から来る固有の脆弱性が有るからである。
【００１０】
したがって、正当なユーザがサインオフした場合は、即時の認証セッション終了を可能にするシステムおよび方法を有することが非常に望ましい。さらに、このシステムおよび方法は、アプリケーションそれ自体が、サインオフ特徴を本来サポートしていなくても、即時のセッション終了を可能にすることが望ましい。
【発明の要約】
【００１１】
ユーザの、アプリケーションとのインタラクションを終了する意図の表明に続いて、認証セッションを直ちに終了するシステムおよび方法、および（または）プログラム記憶装置が、提供されている。一様態では、ユーザのリクエストは、予め定義されたＵＲＬが、ユーザによってリクエストされるまで、モニタされる。認証セッションは、このようなＵＲＬがリクエストされた後で、終了する。このＵＲＬは、アプリケーション内の既存のＵＲＬでも、あるいは、この目的のために認証コンポーネントによって提供されるＵＲＬでもよい。
【好適な実施形態】
【００１２】
以下、本発明の好適な実施形態を、例のみにより、添付図面を参照して説明する。同様の引用番号は、同一のあるいは機能的に同様な要素を示す。
【００１３】
一般に、認証コンポーネントで維持されているセッションテーブルは、認証コンポーネントによって現在維持されている全てのアクティブなセッションを含んでいる。セッションテーブル内のエントリが削除、あるいは「期限切れ」をマークされると、該セッションは、効果的に破壊されるが、これは、クライアントによる新しいリクエストに、有効なクッキー（または他のトークン）がないためである。すなわち、クッキーの内容は、セッションテーブル内のアクティブなエントリにもはやマップせず、したがって、新しいリクエストは、ユーザの再認証を強制しないであろう。認証処理それ自体は、ユーザから何らかのクレデンシャルを得る処理、および何らかの予想される値に対してそれらを確認してからセッションテーブル内に対応するエントリを作成する処理を含んでいる。ユーザのクレデンシャルを確認するこの処理は、米国特許Ｎｏ．５，０９７，５０５、米国特許Ｎｏ．５，１６８，５２０、および米国特許Ｎｏ．５，６５７，３８８で記述されている。
【００１４】
認証コンポーネントは、一般に、クライアントから全てのＨＴＴＰリクエストを受信し、それらをウェブサーバに渡すため、認証コンポーネントは、これらリクエストの内容に基づく判定を行い得る。一実施形態では、認証コンポーネントは、これらリクエストをモニタし、それが、ユーザの意図の、ユーザによる表明を検出して、彼の、アプリケーションとのインタラクションを終了すると（「終了指示」）、認証コンポーネントは、セッション終了シーケンスを開始し、その結果、セッションテーブルから当該エントリが削除されることになり、それにより、認証コンポーネントは、期限切れとなる。終了指示は、例えば、認証コンポーネント構成で予め定義された特定のＵＲＬに対するリクエストの形を取ってよい。このようなＵＲＬは、「認証セッション終了ＵＲＬ」と呼ぶものとする。アプリケーションそれ自体が、ユーザに、何らかのタイプのログオフボタンまたはアプリケーションセッション（認証セッションと混同しないこと）を終了することを意図したＵＲＬをたまたま供給する場合は、この同じＵＲＬは、認証セッション終了ＵＲＬとして役立つ場合もある。このシナリオ、並びに、アプリケーションが、このようなログオフメカニズムを有しない場合のシナリオを以下のパラグラフで、さらに詳しく述べてみよう。
【００１５】
一態様では、ユーザとアプリケーションとの間に駐在する認証コンポーネントは、プロキシインプリメンテーション、フィルタインプリメンテーション、あるいはこの技術に長けた人には周知の別のエージェントの形を取ってよい。以下の説明では、方法およびシステムを、プロキシインプリメンテーションの状況で説明することが多いが、これは、単に説明のためだけである。しかしながら、コンピュータプログラミングの技術に長けた人には、インプリメンテーションは、プロキシの形でのみ存在しなくてよいことが分かるであろう。プロキシは、一般に、アプリケーションに達したいというユーザの最初の企図でユーザを認証し、その点から、プロキシは、認証セッションを維持する。与えられたシステムおよびセッションは、ユーザが、アプリケーションとのインタラクションを終了すると、直ちにこのセッションを終了する。与えられたシステムおよびセッションは、不活動または計画されたタイムアウトに基づく上記の従来の方法に対する別法あるいは補足としてのみ用いてよい。
【００１６】
図１は、一実施形態において、代表的な認証セッションを開始する処理の例を説明するフローチャートである。１０２において、ユーザは、アプリケーションにリクエストを送信することによって、セッションを開始しようとする。１０３では、認証コンポーネント、例えば、プロキシは、このリクエストを検査して、それが、有効なクッキーまたはトークンを含んでいるかどうかを判定する。含んでいない場合は、認証コンポーネントは、ユーザに、１０４で認証クレデンシャルを与えるよう要求する。１０６では、クレデンシャルが有効でない場合、認証コンポーネントは、ユーザ用の新しいクッキーあるいは他のトークンを、このセッション用に、作成する。認証コンポーネントは、別法として、セッションテーブル内に対応するエントリを作成してもよい。１０７では、認証コンポーネントは、ユーザリクエストをアプリケーションに転送し、１０８では、アプリケーションがレスポンスするまで、アプリケーションセッションをモニタする。１０９では、アプリケーションがレスポンスすると、認証コンポーネントは、レスポンスにクッキーを付け、これをユーザに渡す。後続のリクエストも同様に検査されて、それらが有効なトークンを含んでいることが確認される。このようにして、認証コンポーネントは、有効なクッキー/トークンを含む如何なる後続のユーザリクエストでもアプリケーションに転送する。
【００１７】
図２は、一実施形態において、認証終了リクエストについてモニタする処理の例を説明するフローチャートである。２０２で、セッションが、ひとたび確認されると、例えば、図１を参照して説明したように、認証コンポーネントは、２０３で示したように、各ユーザリクエストを検査して、リクエストが、２０４で示した認証セッション終了ＵＲＬ用であるかどうかを判定する。そうでない場合は、認証コンポーネントは、リクエストをアプリケーションに渡し続ける。しかしながら、ひとたび認証セッション終了ＵＲＬがリクエストされると、認証コンポーネントは、セッション終了シーケンスを開始する。
【００１８】
このシーケンスは、なかんずく、アプリケーションそれ自体が、ログオフボタンまたはアプリケーションセッションを終了することを意図した、あるいはさもなければ、アプリケーションセッション終了ＵＲＬとして識別される他のＵＲＬを供給するかどうかにより、異なっていてよい。したがって、２０７では、認証コンポーネントが、既存のアプリケーションＵＲＬを、終了トリガとして使用するよう構成されているかどうかにより、処理は、図３および４を参照して説明するように継続する。
【００１９】
一実施形態では、アプリケーションそれ自体が、ログオフＵＲＬなどの終了手続きを供給する場合は、アプリケーションにより与えられたＵＲＬは、プロキシとして構成し、かつ、認証セッション終了ＵＲＬとして使用してよい。したがって、２０８では、処理は、図３に継続する。図３は、一実施形態において、アプリケーションが、セッション終了手続きを行う場合の認証セッションを終了する処理の例を説明するフローチャートである。一実施形態においては、アプリケーションが、埋め込まれた「ログオフ」または他のＵＲＬを有する場合は、認証コンポーネントは、このＵＲＬを予め認証セッション終了ＵＲＬとして決定している。認証コンポーネントは、次いで、この予め決定されたＵＲＬに対するユーザリクエストをモニタする。認証コンポーネントが、認証セッション終了ＵＲＬに対するリクエストを検出すると、認証コンポーネントは、３０１で示すように、認証セッションを「終了ペンディング」としてセッションテーブル内にマークする。３０２では、認証コンポーネントは、ＵＲＬのリクエストをモニタし、アプリケーションが、このようなリクエストに対応するページ、例えば、そのログオフページと共にレスポンスするまで、モニタする。３０４では、認証コンポーネントは、ログオフページ（アプリケーションから受信したログオフページ、または、その認証コンポーネントがアプリケーションのログオフページを捨てる認証コンポーネントによって生成されたログオフページのいずれか）をユーザに渡し、次いで直ちに、３０５でセッションテーブルから対応するセッションエントリを削除することによって、認証セッションを終了する。今や、新しいユーザリクエストが、例えば、図１のように、強制的に再認証される。
【００２０】
一実施形態においては、返答（例えば、アプリケーションのログオフページ）が、イメージなどの追加のリクエストおよびレスポンスを考慮している場合は、セッションは、（i）直ちに、（ii）リクエストおよび（または）レスポンスの予め定義されたセットが作成された後で（このセットは、ＵＲＬのリスト、正規の式、ＭＩＭＥタイプ、ファイル拡張子、または任意の他の内容ベースのルールを用いて定義してよい）、（iii）予め定義された数のリクエストおよび（または）レスポンスが作成された後で、あるいは、（iv）予め定義されたリクエストのセット（「無効リクエスト」）内にフィットしない最初のリクエストが作成された後で直ちに、終了してよい。
【００２１】
別法として、認証セッション終了ＵＲＬが、ユーザによってリクエストされるやいなや、認証コンポーネント、例えば、プロキシは、最初にこのＵＲＬリクエストをアプリケーションに渡すことなしに、セッションテーブルからそのエントリを削除することによって、セッションを終了してよい。一様態では、プロキシは、ＵＲＬリクエストをアプリケーションに渡して後、アプリケーションがそのレスポンスと共に返答するのを待つことなしに、直ちにセッションを終了してよい。
【００２２】
この方法に対する追加の改良には、以下に述べる特徴のうちのいずれか一つあるいは組み合わせが含まれていてよい。例えば、タイムアウト制限特徴が含まれていてよい。この特徴は、認証セッション終了ＵＲＬに対するリクエストが、ユーザによって提供された後、予め定義された時間期間の後で、認証セッションを自動的に破壊するであろう。このタイムアウト制限は、例えば、アプリケーションレスポンス、例えば、ログオフページが、来ない、あるいは、追加の許されたリクエスト/レスポンスの全てが到着する場合でも、生じるであろう。このタイムアウト制限は、一実施形態では、「終了ペンディング」のセッションエントリが入力されると、タイムスタンプ値を格納することによってインプリメントされてよい。その後、タイムスタンプ値は、定期的に、あるいは、続くユーザリクエスト毎に、モニタされてよい。予め定義された時間期間が経過した場合、プロキシは、セッションエントリを削除してよい。タイムアウト制限はまた、起動された場合、エントリがまだアクティブであっても、セッションエントリを削除する計画されたインタラプトをトリガすることによってインプリメントされてよい。
【００２３】
追加の特徴は、データトラフィック制限を含んでいてよい。例えば、プロキシは、「終了ペンディング」モード中は、イメージなどの、認証セッション終了ＵＲＬに対するアプリケーションのレスポンスの一部であるリクエストおよび対応するレスポンスを除き、如何なる新しいユーザリクエストの移動も禁止してよい。これは、後続のリクエストをモニタし、予め定義されたリクエストのセット以外の如何なるリクエストも棄却する（すなわち、アプリケーションに転送しない）ことによって成し遂げられてよい。このセットは、ＵＲＬのリスト、正規の式、ＭＩＭＥタイプ、ファイル拡張子、または任意の他の内容ベースのルールを用いて定義してよい。アプリケーションのログオフページが、如何なる後続のリクエストまたはレスポンスも行わない場合は、プロキシは、ひとたびログオフリクエストが行われたら、如何なるユーザリクエストの移動も、禁止するだけでよい。
【００２４】
さらに別の特徴は、プロキシで生成されたレスポンスを有するデータトラフィック制限を含んでいてよい。この特徴では、ユーザが、認証セッション終了ＵＲＬをリクエストしたことを、プロキシが検出すると、プロキシは、それ自体のログオフページまたは同様のレスポンスを生成して、ユーザにサーブし、如何なるアプリケーションで生成されたレスポンスもユーザに渡さない（正確に言えば棄却する）。プロキシは、依然として、認証セッション終了ＵＲＬをアプリケーションに渡してよい。プロキシで生成されたログオフページは、追加のイメージおよびオプションを含んでいてよい。プロキシは、次いで、このログオフページ、それに関連したリクエストおよびレスポンスに対してサーバとして働く。したがって、ひとたびログオフリクエストが、ユーザによって行われると、プロキシは、ユーザからアプリケーションへの如何なる新しいリクエストの移動も禁止してよいが、それは、イメージなどのプロキシで生成されたログオフページの一部であるリクエストに、それらリクエストに対応するページをサーブすることによって、レスポンスし続ける。
【００２５】
別法、あるいは追加として、ひとたびログオフリクエストが、ユーザによって行われると、プロキシは、ある種のリクエスト及びレスポンスでは、アプリケーションとかみ合って（ユーザに対して如何なるレスポンスも必然的に渡すことなしに）、アプリケーションに対して、クライアントとして働き、ユーザをエミュレートするよう予め構成することができる。同時にあるいは別法として、プロキシは、ユーザに対してサーバとして働き、アプリケーションによって与えられたレスポンスと同一であってよい、あるいは、同一でなくてよいレスポンスをユーザに供給する。
【００２６】
上述のように、クッキーまたは他のトークンを使用して、セッションテーブル内のエントリを識別する処理に対する別法として、この方法は、暗号化されたトークン/クッキーの使用により維持される認証セッションのケースで、同様にインプリメントできる。その場合、認証セッション終了は、セッションテーブルからエントリを削除するのではなくて、次の方法のうちの一つによって成し遂げられるであろう。すなわち、（i）プロキシが、ブラウザに命令して、クッキーの送信を停止する方法；あるいは、（ii）プロキシが、クッキーの内容を、全ての禁止されたクッキーを含むテーブル内に入れ、したがって、その内容が、このようなテーブルにマップするいかなるクッキーも、無効なクッキーとして識別され、それにより、そのリクエストが、そのクッキーを含んでいたユーザの再認証を強制する方法。
【００２７】
図４は、一実施形態において、アプリケーションが、セッション終了手続きを与えない場合の、認証セッションを終了する処理の例を示すフロー図である。アプリケーションが、如何なる埋め込まれた「ログオフ」または同様のＵＲＬをも有さない場合は、認証コンポーネントは、認証セッション終了ＵＲＬに対するリクエストを検出しても、このリクエストをアプリケーションに渡さず、その代わり、４０１で示すように、それ自体の予め構成されたログオフページをユーザにサーブする。４０２では、認証コンポーネントは、次いで、直ちに、例えば、セッションテーブルから対応するセッションエントリを削除することによって、認証セッションを終了する。新しいユーザリクエストは、今や、例えば、図１および２のように、強制的に再認証される。
【００２８】
一実施形態では、プロキシは、アプリケーションセッション中、ウェブサーバからブラウザに到来するレスポンスの全てをモニタしてよい。プロキシは、各ＨＴＴＰレスポンスをブラウザに渡す前に、例えば、「ボタン」をレスポンスのＨＴＭＬ部分に加えてよい。ボタン（これは、ユーザには、「ログオフ」または同様のボタンとして表れるであろう）は、予め定義された特定のページにのみ、あるいは、全てのＨＴＭＬページに、加えてよい。別法として、プロキシは、「フレーム」を利用してよく、例えば、フレームを、ユーザによりリクエストされた最初のＨＴＭＬに付加し、このボタンあるいはそのようなフレーム内の同様のメカニズムを含んでいてよい。このボタンは、例えば、認証セッション終了ＵＲＬに対するレファレンス、またはリンクを含んでいる。ひとたびユーザが、このリンクをクリックすると、そのＵＲＬを有するリクエストが、終了する。プロキシは、それが、サーバに到達する前に、ＵＲＬを受信する。
【００２９】
別法として、プロキシは、サーバのレスポンスに如何なるボタンも加えることはできないが、プロキシは、特定の予め定義されたＵＲＬに対するユーザのリクエストを依然としてモニタできる。ユーザは、例えば、セッションを終了するのに使用すべき予め定義されたＵＲＬを与えられる。ユーザは、例えば、ＵＲＬを手動でタイプできる。ユーザが、この認証セッション終了ＵＲＬをどのようにリクエストするか、すなわち、リンクをクリックするか、あるいは、それをタイプするか、あるいは何らか他のやり方で行うかを問わず、プロキシは、このＵＲＬを検出し、次いで、リクエストがサーバに達して、予め定義されたレスポンスページを、ログオフページの形で、ユーザに送り返す。それは、次いで、認証セッションを直ちに破壊する。プロキシは、このＵＲＬリクエストを、前の場合のように、アプリケーションに渡さないが、これは、アプリケーションが、このＵＲＬを認識しないからである。上述のように、アプリケーションは、このＵＲＬを認識しないが、それは、このようなＵＲＬが、プロキシによってレスポンスに加えられる前に、レスポンスが、アプリケーションを離れたか、あるいは、このようなＵＲＬが、ユーザによって手動でリクエストされたからである。
【００３０】
追加的には、データトラフィック制限は、プロキシで生成されたレスポンスと共に、上述のように、インプリメントしてよい。プロキシで生成されたログオフページが、追加のイメージおよびオプションを含む場合は、セッションは、（i）ログオフページが、ユーザにサーブされた直後に、（ii）認証セッション終了ＵＲＬに対するリクエストが、ユーザによって提供された後、予め定義された時間期間の後で、（iii）予め定義されたリクエストおよび（または）レスポンスのセットが、作成された後で（該セットは、プロキシで生成されたログオフページによって意図された有り得るリクエストおよびレスポンスのセット全体に等価か、あるいは、そのサブセットであってよい）、あるいは、（iv）予め定義された数のリクエストおよび（または）レスポンスが作成された後で（該数は、プロキシで生成されたログオフページによって意図された有り得るリクエストおよびレスポンスの全数に等しいか、あるいは、それ以下であってよい）、終了してよい。
【００３１】
図５は、一実施形態における認証セッション終了システムのコンポーネントを示す図である。認証コンポーネント、例えば、プロキシまたはフィルタ、は、クライアント５０４とサーバ５０６との間に駐在している。認証コンポーネントは、各クライアントに対して進行中のセッションを格納するためのセッションテーブルを含んでいる。セッションテーブルはまた、あるセッションが終了すべきことを示す予め定義されたＵＲＬ５１０を含んでいてよい。セッションテーブルはまた、タイムスタンプ５１２を含んでいてよい。コンピュータプログラミングの技術に長けた人には理解されるように、セッションテーブル内のデータ、予め定義されたＵＲＬ、およびタイムスタンプは、テーブルの行および列として、互いに他へのリンクを有する別個のテーブルとして、データストラクチャまたはリンクリストフォーマットとして、あるいは任意の他の既知のデータ格納方法で、組織化してよい。認証コンポーネント５０２は、サーバ５０６と共に、あるいは、クライアントシステム５０４の一部として駐在するか、あるいは、サーバ５０６とクライアント５０４との間を走ってよい。認証コンポーネント５０２は、クライアント５０４とサーバ５０６との間で通信されるリクエストとレスポンスをモニタし、予め定義されたＵＲＬが、検出されると、認証コンポーネント５０２は、例えば、図１〜４を参照して説明した実施形態に従って、セッションを終了する手続きを取る。
【００３２】
本明細書におけるシステムおよび方法の説明は、単に説明のためだけのプロキシインプリメンテーションの状況で行われたが、フィルタなどの他のコンポーネントを使用して、クレームされた改良、別法およびそれらに対する修正を含む開示されたシステムおよび方法をインプリメントしてよい。加えて、本明細書では、認証セッションを終了するためのシステムおよび方法は、ワールドワイドウェブおよびＨＴＴＰトランザクションに対して説明したが、この技術に長けた人には、本システムおよび方法が、セッションの始めと終わりが、クライアントまたはサーバシステムによって維持されない如何なる他のトランザクションおよびプロトコルでも、使用できることは、理解できよう。さらに、本発明は、そのいくつかの実施形態を引用して説明したが、この技術に長けた人には、クレームされた発明の趣旨および範囲から逸脱することなしに作成できる各種の変更が認識できよう。したがって、本発明は、図面で示したこと、および、明細書で説明したことに限定されず、従属請求項で示したようにしか限定されない。
【図面の簡単な説明】
【００３３】
【図１】一実施形態における代表的な認証セッションを開始する処理の例を示すフロー図である。
【図２】一実施形態における認証終了をモニタする処理の例を示すフロー図である。
【図３】アプリケーションが、セッションの終了手続きを行う場合の一実施形態における認証セッションを終了する処理の例を示すフロー図である。
【図４】アプリケーションが、セッションの終了手続きを行わない場合の一実施形態における認証セッションを終了する処理の例を示すフロー図である。
【図５】認証セッションを終了する処理のためのシステムにおける各種のコンポーネントを示す図である。
【図１】
2004534996.tif 000003
【図２】
2004534996.tif 000004
【図３】
2004534996.tif 000005
【図４】
2004534996.tif 000006
【図５】
2004534996.tif 000007
【国際公開パンフレット】
2004534996.tif 000008
2004534996.tif 000009
2004534996.tif 000010
2004534996.tif 000011
2004534996.tif 000012
2004534996.tif 000013
2004534996.tif 000014
2004534996.tif 000015
2004534996.tif 000016
2004534996.tif 000017
2004534996.tif 000018
2004534996.tif 000019
2004534996.tif 000020
2004534996.tif 000021
2004534996.tif 000022
2004534996.tif 000023
2004534996.tif 000024
2004534996.tif 000025
2004534996.tif 000026
2004534996.tif 000027
2004534996.tif 000028
2004534996.tif 000029
2004534996.tif 000030
2004534996.tif 000031
2004534996.tif 000032
2004534996.tif 000033
2004534996.tif 000034
2004534996.tif 000035
2004534996.tif 000036
【国際調査報告】
2004534996.tif 000037
2004534996.tif 000038
2004534996.tif 000039