説明

非HTTP通信プロトコルを用いてウエブアプリケーションの状態非依存型安全性管理を提供するシステム及び方法

ゲートウェイサーバーが、クライアント及びリモートサーバーシステムと相互に動作して、分散化されたウエブアプリケーションのための状態非依存型管理を提供する。クライアントアプリケーションに対応するローカル記憶部内に安全なトークンが存在していない場合には、ウエブブラウザクライアントのユーザへ向けられた認証チャレンジを実行することによって、クライアントシステム上のウエブクライアントアプリケーションが、リモートウエブサービスへ向けられたウエブソケット接続を開始する。認証チャレンジは、ユーザ信用証明を取得し、ユーザ信用証明を安全なトークン用のゲートウェイサーバーと交換する。次いで、この安全なトークンはプロトコル専用接続メッセージの形でゲートウェイサーバーへ送信される。ゲートウェイサーバーは、接続メッセージの受信に応答して、この接続メッセージを検査することにより、リモートウエブサービスへ向けられたウエブソケット接続を開始して、安全なトークンを回復し、この安全なトークンを評価して、ユーザ信用証明を取得し、このユーザ信用証明を安全なトークンに挿入し、上記接続メッセージをリモートウエブサービスへ送信する。

【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願との相互参照〕
本出願は、2009年5月28日出願の米国仮出願第61/181,924号の利益を主張するものである。
【0002】
本発明は一般に、非HTTPプロトコルを用いて通信を行うウエブアプリケーションクライアントとサーバーとの間で安全性の保証された接続を確立することに関し、特に、非HTTP通信プロトコルを用いるリモートサーバーベースのウエブサービスと接続するウエブブラウザベースのウエブアプリケーションクライアントに対してサポートを行う、ゲートウェイサーバー介在安全性認証及び信用証明管理システムに関する。
【背景技術】
【0003】
ウエブベース技術の現在進行中の開発の実質的な態様は、分散化され、ネットワーク化されたアプリケーションに対するサポートを増加させることに向けられている。この努力が、ウエブブラウザベースのクライアントアプリケーションと、このウエブブラウザベースのクライアントアプリケーションに対して遠隔地に配置されているサーバーシステム上で提供されるウエブサービスとの間で双方向データ送信を行うための、接続用のベースとして、WebSockets(ウエブソケット)の開発をもたらした。
【0004】
分散化されたネットワークアプリケーションは、通常、対応するサービスアプリケーションを実行するサーバーシステムとの永続的な双方向接続を通じて理想的に通信を行う専用アプリケーションを、クライアントが実行するようになった、クライアントサーバーモデルを用いるものとして構成される。接続の初期化中に認証のための信用証明がクライアントから供給される。この認証は、クライアントアプリケーションが、接続を解除するか又は他の方法で遮断するまで持続する。接続が作動可能な状態にある間は、クライアントとサーバーは、提供するサービス及び交換されるデータの性質にとって最も適切なプロトコルを用いて通信を行う。
【0005】
しかし、従来のウエブブラウザクライアントは、ページ及びHTTPプロトコル向けのものである。設計上、従来のウエブブラウザは、クライアントが1つのページから別のページへ移行するときは常に、既存のローカル状態を破棄する。何らかの関連を有する認証データを含む接続が、文書又はページ向けのローカル状態として保持される。したがって、ページ移行の自然の結果として、現行の接続が終了することになる。従来のウエブブラウザのクライアントにより、非ページ状態データをクッキーとして記憶することもできる。これらのクッキーは、サーバーシステムにより割り当てられ、これらのクッキーを操作して、サーバー定義セッションの持続のために必要となる認証済み接続の自律的復元を可能にする情報を記憶することが可能である。このようにしてセッションクッキーにアクセスし、操作することは、従来のウエブブラウザクライアントによって本来的にサポートされているHTTPプロトコルの使用に、事実上限定される。ウエブソケットのプロトコルは、ウエブソケット接続が確立される最初の接続段階中に通常のHTTPクッキーの送信を可能にするものではあるが、ウエブソケットの接続上でホストされるさらに高レベルのプロトコルは、これらのクッキーにアクセスしたり、該クッキーを使用したりすることはできない。
【0006】
したがって、ウエブブラウザクライアントの通常の動作上の性質に適応する状態を安全確実な形で機能的に維持しながら、ウエブブラウザクライアントとサーバーアプリケーションの間でウエブソケット接続及び他の非HTTPプロトコル接続を利用できるようにするシステム及び方法に対する必要性が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、本発明の一般的目的は、ウエブブラウザクライアントが、ウエブソケット接続及びその他の非HTTPプロトコル接続に関係する状態情報を安全確実に確立し、管理することを可能にするシステム及び方法を提供することである。
【0008】
本発明においては、上記目的は、クライアントシステム及びリモートサーバーシステムと相互に動作して、分散化されたウエブアプリケーションに対する状態非依存型安全性管理を行うゲートウェイサーバーを提供することによって達成される。クライアントシステム上のウエブクライアントアプリケーションは、該クライアントアプリケーションに対応するローカル記憶個所内に安全管理されたトークンが存在しないウエブブラウザクライアントのユーザに向けて、認証問合せを行って、安全管理されたトークンを取得し、次いで、ゲートウエイサーバーとの間でユーザ信用証明を交換する。次いで、この安全管理されたトークンは、プロトコル専用接続メッセージの中に含めてゲートウェイサーバーへ送信される。該ゲートウェイサーバーは、この接続メッセージの受信に応答して、該接続メッセージを検査することにより、リモートウエブサービスに向けられたウエブソケット接続を開始して、安全管理されたトークンを回復し、この安全管理されたトークンを評価して、ユーザ信用証明を取得し、このユーザ信用証明を安全管理されたトークンに導入し、該接続メッセージをリモートウエブサービスへ送信する。
【課題を解決するための手段】
【0009】
本発明の利点は、種々のプロトコルを用いて、特に、ウエブソケットの接続上でホストされる非HTTPプロトコルを含む意味での種々のプロトコルを用いて、リモートウエブサービスとの認証済みの接続を維持するために、ユーザ信用証明の管理及び利用を効率的に行うことが可能になるという点である。
【0010】
本発明の別の利点は、多くのエラー及び失敗のシナリオの下で管理が困難になる状態依存性のユーザ情報が、本発明と関連して利用されるゲートウェイサーバーにとって負担にならないという点である。クライアントシステムとゲートウェイシステムとの間での連携関係を通じての状態依存性の情報の管理は、有効かつ安全であり、ゲートウェイサーバーにおけるメモリ及びCPUの必要性を減らし、そのため、性能及び規模特性を高めることになる。さらに、ゲートウェイサーバーとの連携関係によって、種々の標準認証システムに対する単一のインタフェースとして、クライアントシステムがゲートウェイサーバーを利用できるようになり、これによってクライアントシステムの管理が単純化される。
【0011】
本発明の更なる利点は、クライアントシステムが、ウエブブラウザベースのクライアントアプリケーションを実行すると共に、通常のウエブブラウザの安全管理モデル内の状態情報を保持するという点である。クライアントシステム上での状態情報の格納を、格段に安全管理されたものとする一方で、ゲートウェイサーバーと連携する認証関係が、本質的な認証情報を、通常のクライアントシステムに記憶されるとき及び通常のウエブブラウザの安全管理モデル内に記憶されるときでさえも、安全確実な状態のままとすることを保証する。ゲートウェイサーバーとの間で連携したこの認証関係を実現するのに必要な通信は、最低限のものとなる。認証状態を確立する基礎として使用される安全認証証明は、ウエブブラウザの再開及びセッションの終了にかかわらず存続できるように、ローカルにかつ永続的に記憶される。
【0012】
本発明のさらに別の利点は、ゲートウェイサーバーと連携する認証関係がウエブソケットプロトコルレベルで有効に確立され、固有のドメイン制約を伴うことなく認証接続の確立が可能になるという点である。認証がウエブクライアントアプリケーションのサイトに関係して制約を受ける一方で、ゲートウェイサーバーのドメイン及び接続されたウエブサービスのドメインに関係するいかなる制約も、ゲートウェイサーバーが実行するサービスアクセス制御により決定されることになる。このサービスアクセス制御は、管理された形で構成される。
【図面の簡単な説明】
【0013】
【図1】本発明の好ましい実施形態のための好ましい動作環境を概略的に示す図である。
【図2】分散化されたクライアント/サーバーウエブアプリケーションの実行時における本発明の好ましい実施形態を実現するのに適した好ましいクライアント/サーバーシステムを示すブロック図である。
【図3】本発明の好ましい実施形態に従って、分散されたクライアント/サーバーウエブアプリケーションと連携してクライアント側アプリケーションを実行するために構成されたウエブブラウザクライアントを示す詳細なブロック図を提示する。
【図4】本発明の好ましい実施形態において実装された状態におけるゲートウェイサーバーの好ましい実装構成を示すブロック図を提示する。
【図5】本発明の好ましい実施形態によるウエブサービスネットワーク接続を確立する際のウエブブラウザクライアントアプリケーションの初期化及び実行を示すシーケンス図である。
【図6】本発明の好ましい実施形態によるウエブサービスネットワーク接続を確立する際のウエブブラウザクライアントアプリケーションの初期化及び実行をさらに詳述するシーケンス図である。
【図7】本発明の好ましい実施形態で使用するための認証トークンを作成する好ましい処理を示すフローチャートである。
【発明を実施するための形態】
【0014】
本発明は、ウエブブラウザクライアントと遠隔ウエブサービスとの間でリアルタイムにデータを交換しながら、安全な通信チャネルを効率的に認証し、このチャネルを維持するための、分散化されたウエブアプリケーションに対するサポートを提供するものである。本発明の好ましい実施形態は、中間安全管理マネジャとしてゲートウェイサーバーを利用する。また、このゲートウェイサーバーは、好適には、本願の譲受人に譲受されている2010年4月30日出願の、同時継続中の出願「ウエブソケット通信の分散化されたエミュレーションを通じてウエブアプリケーションのサポートを提供するエンタープライズクライアントサーバーシステム及び方法」に記載されている機能も実装することが望ましい。上記出願は、引用により本願に組み込まれる。要約すると、この組み込まれた出願に記載のゲートウェイサーバーは、リモートサーバーシステムによりホストされる、ウエブブラウザベースのクライアントアプリケーションとデータサービスとの間において、ソケット指向の双方向リアルタイム通信を可能にするものである。本発明についての以下の詳細な説明において、1又はそれ以上の図に描かれている同様の部分を示すために同じ参照番号を用いるものとする。
【0015】
分散化されたウエブアプリケーションの実行を表す本発明10の好ましい動作環境が、図1に全体的に示されている。従来のクライアントシステム12、14は、公衆インターネット、民間イントラネット、その他の通信ネットワーク16を介して1又はそれ以上のリモートサーバーシステム18、20、22へのアクセスを動作的に行うウエブブラウザベースのクライアントアプリケーションを実行して、双方向でのリアルタイム情報の要求及び受信を行う。典型的な事例では、クライアントシステム12により実行され、ウエブブラウザクライアントを通じて行われる情報要求は、最初は一次サーバーすなわちソースサーバー18へ向けられ、次いで、必要に応じて、他の二次サーバー20、22との間で、リアルタイムの双方向情報送信接続が確立される。例えば、ソースサーバー18からウエブページを要求してもよく、このソースサーバー18は、配信ページを示すユーザインタフェース表示内の適正な指定ウインドウエリア内において、ニュースソースサーバー20から得られるリアルタイムのニュース記事と、株情報サーバー22から得られる株価情報とを提示する。本発明の実施及び利用を通じて、クライアントアプリケーションの実行時にウエブブラウザクライアントのコンテキスト内において生じ得るページ移行の間、上記のような情報送信接続を効果的に継続することが可能となる。すなわち、HTTP接続の基礎をなす切断の結果として、能動的ウエブソケット接続が突然終了するが、本発明は、ウエブブラウザクライアントのエンドユーザに対する明らかな中断を伴うことなく、接続の選択的復元を可能にするのに十分なウエブソケット接続レベルで、接続情報の保持及び管理を提供する。
【0016】
本発明によれば、ウエブブラウザクライアントアプリケーションとリモートウエブサービス間で最終的に確立されるウエブソケット接続の管理に参加するためのゲートウェイサービスが提供される。図2に示されているように、本発明のこの好ましいシステムアーキテクチャ30は、クライアントコンピュータシステム32が双方向のウエブソケット接続34、36を介してゲートウェイサーバー38と通信することを可能にする。別個の双方向のウエブソケット接続部40、42及び44、46が、それぞれをホストしているウエブサービスにアクセスするのに適切なように、ゲートウェイサーバー38をリモートサーバー48、50に接続する。ゲートウェイサーバー38は、複数のクライアントシステム32が複数のリモートウエブサービスにアクセスするのを同時にサポートすることができ、リモートサーバー48、50の各々は、複数のウエブサービスを提供することができる。代替的な実施形態では、ゲートウェイサーバー38は、クライアントシステム32にアクセス可能なウエブサービスを、ローカルに実現することも可能である。ゲートウェイサーバーは、LDAP、Kerberos、Java(登録商標)認証及び認可サービス(JAAS)、或いは、別の標準に基づく信用証明サービスを実行して、直接的に又は外部認証サーバー52のサポートを得るか、のいずれかにより、認証サービスを実行することが好ましい。
【0017】
ゲートウェイサーバー38は、ウエブソケット接続を管理する際に、システム32のために多数の機能を実行する。これらの機能には、認証トークンの鍵リングをウエブブラウザクライアントアプリケーションと協調して管理することと、ゲートウェイサーバー38を通される選択プロトコル専用データパケットに対して安全性強化プロキシ処理を行うことと、単一のプロトコル及び1又はそれ以上のリモートサービスにより提供される複数の選択的サービスに適用可能な複数のプロトコルのためのクライアントユーザ認証サービスを行うこととが含まれる。これらの機能を実現するに際して、ゲートウェイサーバー38は、ゲートウェイサーバー38内を通過するプロトコルデータパケットの選択的変更に対して責任を負う。これらの好ましい実施形態において、ゲートウェイサーバー38は、リモートサーバー48、50へ送信されるプロトコルデータパケット内に安全性証明を選択的に挿入するように動作する。選択的に返信されるプロトコルデータパケット内に安全性証明トークンが挿入される。現在のところ好ましい実施形態において実現されているように、クライアントシステム32により記憶されている信用証明トークンは、改竄及び悪用に対して安全性を確保するのに効果的なものとなる。安全性証明がゲートウェイサーバー38上に存在しているのに対して、これらの信用証明は単に一時的に存在しているにすぎず、そのため、改竄及び悪用に対して同様に安全確実なものとなる。クライアントシステム32及びゲートウェイサーバー38は、一緒になって相互に動作し、クライアント32とリモートサーバーシステム48、50との間でのリアルタイム通信における安全確実なユーザ特定と認証を効率的にサポートするものとなる。
【0018】
さらに詳細なシステムについての実施形態60が図3に示されている。この好ましい実施形態では、エンドユーザの行為に応答して、ウエブブラウザクライアントアプリケーション62がクライアントシステム32上で実行される。典型的には、エンドユーザの入力に基づいて、ウエブクライアントアプリケーション64を含むウエブページがリモートアプリケーションソースサーバー66からロードされる。本発明の好ましい実施形態では、ウエブクライアントアプリケーション64は、ウエブソケットライブラリ68をロードすることを含むか、あるいは、このロードに対して責任を負う。前述の組み込まれた同時継続中の出願にさらに詳述されているように、ウエブソケットライブラリ68は、preHTML5対応ウエブブラウザクライアントアプリケーション62用としてエミュレートされたウエブソケットサービスを提供し、必要に応じて、preHTML5に対応すると共に、HTML5に完全に対応するウエブブラウザクライアント62の双方のためのプロトコル専用クライアントライブラリも同様に提供する。
【0019】
ウエブソケットクライアントライブラリ68のいずれかの特定の配信に含まれている特定セットのクライアントプロトコルライブラリは、典型的には、ウエブクライアントアプリケーション64の開発者による設計時の選択、あるいは、ウエブクライアントアプリケーション64の開発者のために行われる設計時の選択に依存する。ウエブクライアントアプリケーション64が採用される場合には、該ウエブクライアントアプリケーション64は、ウエブブラウザクライアント62のインスタンスによりロードを行うために、ウエブソケットライブラリ68の特定の事例を指定することが好ましい。ウエブクライアントアプリケーション64を実行する際に、ウエブソケットライブラリ68を利用して、ゲートウェイサーバー38用のウエブソケット接続が確立される。例えば遠隔サーバー48上でホストされているもののような、遠隔的にホストされているリモートサービス70に対して、ウエブクライアントアプリケーション64対応する接続が行われる。
【0020】
鍵リングライブラリが、ウエブソケットライブラリ68内に含まれるか、或いは、ウエブソケットライブラリ68と組み合わされて交互に検索されることが好ましい。該鍵リングライブラリは、ウエブクライアントアプリケーション64により利用され、ローカルストア72の1又はそれ以上の事例が確立される。この鍵リングライブラリは、ローカルストア72事例内において鍵リングのデータ構造を確立するための、及び、鍵リングのデータ構造にアクセスするための、鍵を発見し、鍵を追加し、鍵リングのデータ構造から鍵を除去することを含む機能を提供することによって、ウエブクライアントアプリケーション64をさらにサポートする。ウエブソケットライブラリ68が、HTTP5対応ウエブブラウザクライアントアプリケーション62の固有のウエブソケット能力を用いるものであるか、或いは、プレHTTP5対応ウエブブラウザクライアントアプリケーション62用としてエミュレートされたウエブソケット能力を提供するものであるかどうかに関わらず、上記鍵リングライブラリは、ウエブソケットライブラリ68と組み合わされてウエブクライアントアプリケーション64により利用され、安全確実な鍵管理機能を提供することが好ましい。
【0021】
本発明の好ましい実施形態では、チャットセッションをサポートしたり、リアルタイムのデータフィードを表示したりする特定用途のために、ウエブクライアントアプリケーション64が設計され、開発される。ウエブクライアントアプリケーション64の意図された用途に個々に適合するように、個々のウエブクライアントアプリケーション64は、通信プロトコルの種類を示す識別子、鍵リングデータ構造名、ゲートウェイサーバー識別子、及びリモートウエブサービス識別子によって最初にコード化される。本発明の現在のところ好ましい実施形態では、ゲートウェイ識別子とリモートウエブサービス識別子とは、URL及びポート値として一体にコード化される。この情報は、ウエブクライアントアプリケーション64が、特定されたウエブサービスに達するのに適合したゲートウェイサーバー38へ送信を行うための適切で安全なトークンの選択を行うのに十分な情報である。本発明の別の実施形態では、負荷バランスのような目的のために、ゲートウェイサーバー38によってウエブサービス識別子をさらに分析して、同等のウエブサービス70を提供する複数のウエブサーバーの中からリモートサーバー48及びウエブサービス70を選択できるようにしてもよい。
【0022】
図4を参照すると、ゲートウェイサーバー38の実装のための好ましい構成80が示されている。これらの好ましい実施形態では、クライアントシステム32とリモートサーバー48、50との間でネットワーク接続をサポートするように構成された従来のウエブサーバーシステム上に、ゲートウェイサーバー38が実装される。機能的には、クライアントネットワークインタフェース82が、ウエブブラウザクライアントアプリケーション64を用いてネットワーク接続84をサポートする。サーバーネットワークインタフェース86が、リモートサーバー48、50及び認証サーバー52を用いてネットワーク接続をサポートする。同じ又は別の物理的ネットワークインタフェースコントローラを用いて、クライアント及びサーバーのネットワークインタフェース82、86を実装してもよい。
【0023】
認証制御プロセッサ90及び関連するパケットプロセッサ92、94、96、98は、ゲートウェイサーバー38により実行されるアプリケーションサーバー内でホストされたイベント駆動モジュールとして実現されることが好ましい。この好ましい実施形態の実現にあたって、Apache Minaネットワークアプリケーションのフレームワークが用いられる。クライアントの認可及びプロトコルデータパケットの処理動作を管理する際に、認証制御プロセッサ90が中央制御装置として機能するようにすることが好ましい。クライアントパケット検査プロセッサ92は、管理対象プロトコルに関連する着信データパケットを監視し、次いで、検査済みデータパケットと関連するプロトコルの状態及び接続状態を、認証制御プロセッサ90へ選択的に報告する。プロトコルにより定義されたデータパケット構造に適合した信用証明を含むようにするために、信用証明挿入プロセッサ94は選択したデータパケットの挿入又は書き換えに対して責任を負う。ゲートウェイサーバー38へローカルに記憶された管理上確立されたサービスアクセス制御構成の評価に好適には基づいて、挿入された信用証明が認証制御プロセッサ90により提供されることが望ましい。トークンストアサービスアクセス制御構成を示す例が表1に提示されている。
【0024】
表1サービスアクセス制御構成(トークン)

<!-- Information about the session service itself -->
<session>
<!-- Configure HTTP authentication -->
<authentication-scheme>Basic</authentication-scheme>

<!-- Server realm against which credentials are authenticated-->
<realm-name>stompRealm</realm-name>
</session>

<!-- Security configuration -->
<security>
<realm>
<name>stompRealm</name>
<!-- This realm checks against an LDAP-based login-module element -->
<login-module>
<type>ldap</type>
<success>required</success>
<options>
<userProvider>
ldap://ldap-svr/ou=people,dc=example,dc=com
</userProvider>
<userFilter>
(&amp;(uid={USERNAME})(objectClass=inetOrgPerson))
</userFilter>
<authzIdentity>{EMPLOYEENUMBER}</authzIdentity>
</options>
</login-module>
</realm>
</security>

<!-- Declaration of the actual keyring service, ie where the keyring connects to -->
<service>
<accept>https://localhost:9000/keyring</accept>
<type>keyring</type>
<auth-constraint>
<require-role>AUTHORIZED</require-role>
</auth-constraint>
</service>

<!-- Declaration of the STOMP service -->
<service>
<!-- Protocol identifier is type "stomp"; service identifier is 9000 -->
<accept>wss://example.com:9000/stomp</accept>
<connect>tcp://stompserver.com:61613</connect>
<type>stomp.proxy</type>
【0025】
セッションストアサービスアクセス制御構成を示す例が表2に提示されている。
【0026】
表2サービスアクセス制御構成(セッション)

<!-- Information about the session service itself -->
<session>
<!-- Domains to which the cookie will be attached -->
<service-domain>.example.com</service-domain>

<!-- Configure HTTP authentication -->
<authentication-scheme>Basic</authentication-scheme>

<!-- Server realm against which credentials are authenticated-->
<realm-name>stompRealm</realm-name>

<!-- Configure the session cookie -->
<!-- Name of the key used to encrypt the session cookie -->
<encryption-key-alias>session</encryption-key-alias>
<!-- How often should the cookie auto-refresh -->
<inactivity-timeout>1800</inactivity-timeout>
</session>

<!-- Security configuration -->
<security>
<realm>
<name>stompRealm</name>
<!-- This realm checks against an LDAP-based login-module element -->
<login-module>
<type>ldap</type>
<success>required</success>
<options>
<userProvider>
ldap://ldap-svr/ou=people,dc=example,dc=com
</userProvider>
<userFilter>
(&amp;(uid={USERNAME})(objectClass=inetOrgPerson))
</userFilter>
<authzIdentity>{EMPLOYEENUMBER}</authzIdentity>
</options>
</login-module>
</realm>
</security>

<!-- Defines where the session service is located. The keyring connects to this location. -->
<service>
<accept>https://www.example.com/session</accept>
<type>session</type>
<!-- Users role constraint -->
<auth-constraint>
<require-role>AUTHENTICATED</require-role>
</auth-constraint>
</service>

<!-- Finally, declaration of the STOMP service -->
<service>
<!-- Protocol identifier is type "stomp"; service identifier is 9000 -->
<accept>wss://example.com:9000/stomp</accept>
<connect>tcp://stompserver.com:61613</connect>
<type>stomp.proxy</type>
</service>
【0027】
必要に応じて、認証制御プロセッサ90は、クライアントシステム32のユーザへログインチャレンジを提示するようにウエブクライアントアプリケーション64に命令して、クライアント信用証明を取得すると共に、認証サーバー52と相互に動作して、返信されたクライアント信用証明を有効化し、対応するサービス関連信用証明並びに暗号化証明書を取得する。管理対象プロトコルパケットの書き変えは、リアルタイムで行われることが好ましい。書き換えられたプロトコルパケットは、ネットワーク内の認証制御プロセッサ90が決定した位置にあるリモートサーバー48、50へ、ネットワークインタフェース86を通じて送信される。
【0028】
サーバーパケット検査プロセッサ96は、管理対象プロトコルに関連する着信データパケットを同様に監視し、次いで、検査済みデータパケットと関連するプロトコルの状態及び接続状態を認証制御プロセッサ90へ選択的に報告する。プロトコルにより定義されたデータパケット構造に適合し安全なトークンを含むように、トークン挿入プロセッサ98は選択したデータパケットの挿入又は書き換えに対して責任を負う。挿入されたトークンは、認証制御プロセッサ90より提供される。基本設定上は、この挿入済みの安全なトークンは、パケット検査プロセッサ92に取り込まれたトランザクション対応の、同一で安全なトークンである。トークン挿入プロセッサ98による挿入に先立って、安全管理されたトークン内に埋め込まれたタイムスタンプ値が、認証制御プロセッサ90の動作により追加又は更新されるようにすることが好ましい。書き換えられたプロトコルパケットは、クライアントネットワークインタフェース82を介して、対応するクライアントシステム32へ送信される。
【0029】
本発明の好ましい実施形態の好ましい処理フロー110が、図5に全体的に示されている。ウエブクライアントアプリケーション116の実行を直接的又は間接的に要求する114ことによって、クライアントシステム32のエンドユーザは、一般に、ウエブブラウザクライアント112を使用する処理110を開始する。一般に実行されているように、エンドユーザは、ウエブクライアントアプリケーション116に対する参照を含むウエブページのロードを命令する。ウエブブラウザクライアント112がこの参照を評価することにより、ウエブクライアントアプリケーション116のロード及び実行が結果としてもたらされる。ウエブクライアントアプリケーション116の最初の実行の暗黙の結果として、或いは、ウエブブラウザクライアント112によりエンドユーザに提示されるグラフィカルユーザインタフェース要素の起動に対する明白な応答として、ログイン要求114イベントが行われる。
【0030】
トークンを記憶する第1の実施形態では、最初のログイン要求114がクライアントアプリケーション116へ向けられる。ウエブブラウザクライアント112を介して認証チャレンジ118を提示することによってクライアントアプリケーション116はエンドユーザに応答する。認証チャレンジ118は、ユーザ識別子とパスワードのタプルとして一般に表される対応するユーザ認証信用証明の入力を要求するログインダイアログとして実現されることが好ましい。これらの信用証明は、エンドユーザにより提供され120、次いで、ウエブクライアントアプリケーション116へ渡される122。ゲートウェイサーバー38により実行されるとき、安全で、好適にはHTTPであるによる接続124が、ゲートウェイアプリケーションサーバー126との間で確立されて、認証用のユーザ信用証明が提示される。この接続124は、認証制御プロセッサ90によって有効に受信され、処理される。この信用証明認証要求メッセージには、ユーザ信用証明が、好適な形態では、認証要求を受けるユーザ役割の特定が含まれることが好ましい。このユーザ役割は、認可の対象となるアクセスの範囲及び性質についての、クライアントアクセス制御の分類付けを定義するものであることが好ましく、典型的には、ウエブクライアントアプリケーション116のコード化に際して提供される役割識別子として表される。
【0031】
セッションを記憶する第2の実施形態では、ログイン要求114’がゲートウェイアプリケーション126へ向けられる。応答は、ゲートウェイアプリケーション126との安全な、好適にはHTTPである接続122’を通じて行われるユーザ認証信用証明の収集及び返信を行うためのログインダイアログ120を提示する従来のHTTP認証チャレンジ118’である。
【0032】
最初のユーザ信用証明を受信したとき、認証制御プロセッサ90は、特定されたユーザ役割に関する既知のユーザ識別子及びパスワードのタプルとしての有効性の評価128をユーザ信用証明に対して行う。外部のLDAPサーバー52又は同等のサーバーと協議することも可能である。次いで、結果メッセージがウエブブラウザクライアント112及びウエブクライアントアプリケーション116へ有効に返信される130、130’。認証が失敗した場合には、認証チャレンジ118、118’が反復される。
【0033】
トークンを記憶する実施形態において認証が成功すると、ゲートウェイアプリケーション126は、ユーザ信用証明を含む安全なトークンをさらに生成し128、次いで、記憶132するために、この安全なトークンをクライアントアプリケーション116へ返信する130。トークンを記憶する本発明の好ましい実施形態では、秘密鍵がゲートウェイサーバーアプリケーション126により安全確実に保持されている通常の秘密鍵暗号化アルゴリズムを用いて、ユーザ信用証明を暗号化することにより、安全なトークンが生成される。
【0034】
セッションを記憶する実施形態において認証が成功すると、ユーザ信用証明を含む安全なセッションクッキーも又、生成される128。安全なトークンは、信用証明を直接含むのではなく、安全なセッションクッキーに対する参照が含む形で、前述したものと同様に生成される128。安全なトークンはクライアントアプリケーション116により記憶される132が、この安全なセッションクッキーは、ウエブブラウザクライアント112へ返信130され、該ウエブブラウザクライアント112の、ローカル記憶部72とは通常は区別される通常のローカルなクッキー記憶部に記憶される。
【0035】
クライアントアプリケーション116は、該クライアントアプリケーション116に関連付けられたローカルな記憶部に、受信された安全なトークンを記憶する132。本発明によれば、安全なトークンの記憶を行う鍵リングデータ構造を含むローカルな記憶部72の場所が、ウエブクライアントアプリケーション116により割り当てられる。ローカルな記憶部72の場所は、ウエブブラウザクライアント112に固有に備えられているか、或いは、ウエブソケットライブラリ68の実行によるエミュレーションを通じてもたらされるHTML5対応アプリケーションプログラミングインタフェース(API)を用いる鍵リングライブラリを通じて、割り当てられ、管理されることが好ましい。これらのAPIによって、セッション又はローカルデータのいずれかと見なされるストリングデータの記憶が可能となる。或いは、鍵リングライブラリにより、利用可能な別の技術を使用して、ローカル記憶部72の場所を実装するようにしてもよい。アドビフラッシュ又はグーグルギアーズ、インターネットエクスプローラにおける「userData」の性質、或いは別のウエブブラウザにおけるローカルデータベースAPI、といったウエブブラウザプラグインを使用してもよい。特に、ローカル記憶部72の場所へのアクセスは、必ずしも安全が保障されたものではない。ローカル記憶部72の場所へのアクセスは、一般に、ローカル記憶部72のこの場所の作成に対して責任を負うクライアントアプリケーション116の発信元の範囲のみに制約される。同じ発信元からサービスを受ける別のウエブクライアントアプリケーションが、対応するローカル記憶部72のこの場所にあるコンテンツにアクセスし、このコンテンツを読み出すことがあり得る。
【0036】
セッション範囲は、ウエブブラウザクライアント112における事象、特に、ウエブブラウザウインドウに表される事象の実行ライフスパンに対応し、さらに、ウエブクライアントアプリケーション116のロードに対して責任を負うウエブページドキュメントの発信元サイトに対応する。ウエブブラウザウインドウは、ページ変更が行われたとき、及び、ウエブブラウザクライアントが遮断されたときに終了する。ウエブブラウザの遮断は、一般に、ウエブブラウザクライアント112のユーザが指示した実行終了の結果として行われる。ローカル記憶部72の場所内に割り当てられたセッションの記憶は、対応するウエブブラウザウインドウの終了時にクリアされる。
【0037】
ローカルな記憶部は、同様に、ウエブクライアントアプリケーション116のロードに対して責任を負うウエブページドキュメントの発信元サイトに限定されるが、その他の点では、変わりはない。したがって、ローカルな範囲は不変であり、記憶されたデータを、ウエブブラウザクライアント112の複数の実行ライフスパンにわたって使用することが可能となる。ウエブクライアントアプリケーション116により明白に消去されるまで、或いは、ローカルな記憶部がウエブブラウザクライアント112の機能としてクリアされるまで、鍵値はローカルな記憶部内に保持される。
【0038】
安全なトークンが記憶される132と、次に、接続メッセージ又は同等のメッセージが、クライアントアプリケーション116により、リモートサーバー44上で実行される所望のウエブサービス70に、ゲートウェイアプリケーション126を介して送信134される。例としてシンプルテキスト指向メッセージプロトコル(STOMP)について考えると、ログイン要求114は、クライアントアプリケーション116のローカルな実行を介して行われる、ウエブソケットライブラリ68に含まれているSTOMPプロトコル専用のクライアントライブラリによりサポートされたSTOMP対話の開始を求めるユーザ要求を表すものとなる。STOMPプロトコル専用クライアントライブラリは、ウエブクライアントアプリケーション116が、ゲートウェイアプリケーション126を介して、適切にフォーマットされたSTOMPメッセージを、遠隔STOMPウエブサービス70と交換することを可能にする。本発明に適合させることができる他の非HTTPプロトコルとしては、拡張可能メッセージング及びプレゼンスプロトコル(XMPP)、インターネット中継チャット(IRC)、AOLインスタントメッセージング(AIM)、及びスカイプチャットのようなチャットプロトコルや、アドバンストメッセージキュープロトコル(AMQP)、シンプルテキスト向けメッセージングプロトコル(STOMP)、及びTibco Rendezvousのようなメッセージングプロトコル、オープンゲームプロトコル(OGP)及びバーチャルネットワークコンピューティング(VNC)のようなゲーミング用及びメディア用プロトコルが挙げられるが、これらに限定されるものではない。
【0039】
本発明の好ましい実施形態においては、安全なトークンがゲートウェイアプリケーション126に送信されるように、接続メッセージ134が修正される。この接続メッセージは、典型的にはプロトコル専用データパケットとして実現され、本来的にはクリアテキスト内にユーザ信用証明を記憶するものとされている、定義済みユーザ名フィールドとパスワードフィールドとを含む。接続メッセージは、ユーザ信用証明の代わりに、トークンマーカー及び安全なトークンを記憶するように、修正することが好ましい。STOMP接続メッセージの場合には、このトークンマーカー及び安全なトークンは、接続データパケットのパスワードフィールド内に記憶される。トークンマーカーは、認証制御プロセッサ90に知られており、修正されたプロトコルパケットの特定に用いられる「マジックナンバー」であることが好ましい。トークンの記憶とセッションの記憶のための安全なトークンの種類を区別するためには、異なるトークンマーカーが利用される。
【0040】
セッションを記憶する実施形態では、接続134は、HTTP接続として開始され、これによって、適用可能なセッションクッキーの、ゲートウェイサーバー38への自動転送がもたらされる。次いで、HTTP接続は、ウエブソケット接続へグレードアップされる。接続メッセージは、ウエブソケット接続が確立されたときに転送される。従って、トークンを記憶する実施形態の場合には、安全なトークン内に埋め込まれ、次いで暗号化されることになるユーザ信用証明が、接続メッセージに直接含まれることになる。セッションを記憶する実施形態では、接続メッセージ内に埋め込まれた安全なトークンは、認証制御プロセッサ90が、HTTPプロトコルから配信されたセッションクッキーをウエブソケット接続メッセージに一意に関連付けることを可能にする、セッションクッキーへの安全な参照を含む。
【0041】
ゲートウェイサーバーアプリケーション126による受信があったとき、データパケットが、パケット検査プロセッサ92による検査のためのプロトコルに基づいてフィルタされる。管理された状態で確立されたネットワークパケットフィルタ構成により定義された管理対象プロトコルに対して、接続データパケットを特定するための検査が行われ、トークンマーカーが発見された場合には、安全なトークンをさらに探索して抽出し、パケットプロトコルの識別子と安全なトークンのコピーとを認証制御プロセッサ90に提供する。安全なトークンの有効性は、この安全なトークンを復号することと、回復されたユーザ信用証明を認証することによってチェックされる。
【0042】
この安全なトークンから直接的又は間接的に回復されたユーザ信用証明は、信用証明挿入プロセッサ94に提供される。接続データパケットが、ユーザ信用証明により書き換えられて136、プロトコルに準拠する、修正された接続メッセージが生成される。STOMP接続メッセージの場合には、ユーザ信用証明は、ユーザ名フィールド及びパスワードフィールドに書き込まれる。次いで、この修正された接続メッセージは、リモートウエブサービス70へ送信される138。安全なトークンのコピーが、クライアントアプリケーション116に返信された接続確認応答メッセージ140内に挿入される。さらなるトランザクションメッセージと、STOMPプロトコルの場合の対話の伝達とが送受信される142。
【0043】
好ましいことであるが、安全なトークンが、ローカル記憶部72のうちの局所的な範囲内に記憶される場合には、認証チャレンジ118の反復なしに、後続するログイン要求144を終了させることができる。ログイン要求144は、接続の意図的終了又はクライアントアプリケーション116の意図的終了の後に行われるようにしてもよい。ログイン要求144は又、双方向送信トランザクションメッセージ142のために使用されるウエブソケット接続に基づくHTTPセッションの解除に起因して暗黙のうちに行われてもよい。HTTPセッションの解除は、ユーザが命令したページ変更のような、ウエブブラウザクライアントにより実行される明白な行為の結果として生じる場合もあるし、クライアントアプリケーション116の進行中の実行の結果として間接的に生じる場合もある。いずれの場合にも、HTTPセッションの解除事象がクライアントアプリケーション116により認識され、クライアントアプリケーション116のプログラムされた実行に依存して、ウエブソケット接続を自動的に再確立するためにログイン要求114が行われるようにしてもよい。
【0044】
ログイン要求144が受信されたとき、ウエブクライアントアプリケーション116は、対応する安全なトークンの有無について、ローカル記憶部72のチェックを行う146。このトークンの検査は、ログイン要求144により必然的に参照される同じサイトに対応するローカル記憶部72の場所において実行される。トークンの検査は、さらに、ウエブクライアントアプリケーション116により提供される鍵リング識別子に対して実行される。有効な安全トークンが発見されなかった場合には、ウエブクライアントアプリケーション116は、認証チャレンジ118、118’の実行に進む。安全トークンが発見され、有効なものであれば、特に期限切れ或いは無効とマークされていなければ、この安全トークンは、接続メッセージ148の一部として提供される。前述したように、ゲートウェイサーバーアプリケーション126によって安全なトークンが特定され、遠隔ウエブサービス70への送信152が行われる前に、プロトコル適合信用証明が接続データパケット内に挿入される150。返信接続確認応答メッセージが、好適には、トランザクション対応の安全トークンを挿入された形で、クライアントアプリケーション116に返される154。ウエブサービス接続が確立されていることを条件として、トランザクションメッセージの送受信156が行われる。
【0045】
本発明の好ましい実施形態では、安全なトークンは、改竄及び悪用に曝されるのを減少させるため、タイムスタンプ及びシーリングの双方を行う。シールされたタイムスタンプ付きトークンの使用及び管理について説明する処理フロー170が、図6に示されている。上記のように、最初のログイン要求172に応答して、認証チャレンジ174が、ユーザ信用証明をウエブクライアントアプリケーション116に提供する。鍵リングが現在のユーザ及びドキュメントのサイトに対応する現在の安全なトークンを含んでいない場合には、認証チャレンジ174は適切なものとされる。ユーザ信用証明及びユーザ役割をユーザに関連付けられたものとして提示するために、トークン要求176が、クライアントアプリケーション116によってゲートウェイサーバーアプリケーション126に送出される。認証が成功すると、認証制御プロセッサ90によりセキュアトークンが生成され178、このトークンが返信される180。前述したように、クライアントアプリケーション116は、クライアントアプリケーション116に関連付けられたローカルな記憶部内に、受信した安全なトークンを記憶する。
【0046】
図7を参照すると、タイムスタンプを含む安全なトークンを生成する好ましい処理240が示されている。トークンを記憶する実施形態においては、ユーザ信用証明により提供されるユーザ名242とパスワード244が、データオブジェクト内に一緒に記憶され、暗号化され246、シールされた安全な信用証明トークン248が生成される。使用される暗号化方式は、秘密鍵がゲートウェイサーバーアプリケーション126により安全確実に保持されている、秘密鍵対称暗号化であることが好ましい。クライアントの安全性に対する侵害が、クライアントの記憶するシールされたトークン248の安全性についての妥協を強いるものとなることを防止するために、この秘密鍵は、クライアントシステム32に記憶したり、該クライアントシステム32からアクセスできる状態にすることはない。基本的には、現在時刻に関連する生成済みのタイムスタンプのデータ値250が、その後信用証明トークン248に添付され、暗号化されて252、タイムスタンプ付きのトークン254が生成される。秘密鍵がゲートウェイサーバーアプリケーション126により再度安全に保持されている場合には、別の秘密鍵の評価した対称暗号化が、タイムスタンプの暗号化252のために使用されるようにすることが好ましい。
【0047】
次いで、マーカー256を好ましくは先頭に追加して258、安全なトークン260を最終的に作成し、マーカー256をクライアントアプリケーション116に返信し180、ローカル記憶部72内に存在する対応する鍵リング記憶部262に記憶する。マーカー256がユーザ名又はパスワードの一部として現れることがありそうにない文字列その他の値であれば、マーカー256の構成は重要ではない。マーカー256の値はパケット検査プロセッサ92により保持され、通常のユーザ信用証明と認可トークンとの区別が可能となる。最初に生成された178安全なトークンと、後で更新された該安全なトークンのコピーとを区別するために、マーカー256の値が用いられる。認証チャレンジと関連して生成された178最初の安全なトークンが、空のタイムスタンプ250フィールドを用いて生成されることが好ましい。
【0048】
セッションを記憶する実施形態については、安全なトークンの生成は実質的に同様である。こ場合の生成は、秘密鍵で暗号化されたユーザ信用証明データオブジェクトを含むセッションクッキー264が暗号化246により生成される、という点で異なる。関連付けられた従来のクッキーストア266に記憶するために、セッションクッキー264は、HTTPヘッダの形でウエブブラウザクライアント112へ返信される。暗号化246によって、信用証明トークン248として使用されるセッションクッキー参照が、さらに生成される。このクッキー参照は、最近受信され、かつ、バッファされたHTTPヘッダの検査にあたって、対応するセッションクッキー264の一意の特定及び回復を可能にするのに十分に一意の数値化された識別子である。このセッションクッキーの参照は、タイムスタンプ250を用いて暗号化される252と共に、その後、安全なトークン260の作成のために用いられる。
【0049】
次いで、プロトコル専用接続要求メッセージが、ゲートウェイサーバーアプリケーション126へ送信される182。接続メッセージを作成する際に、安全なトークンがクライアントアプリケーション116により選択され、接続メッセージ内に埋め込まれる。マーカー256の値に基づいて、選択に対する優先順位が、他の点では同等である最初の安全なトークン260に優先してタイムスタンプ済みのセキュアトークン260に与えられる。サービスアクセス制御の評価に基づいて、クライアントアプリケーション116による接続要求が、認証制御プロセッサ90によって条件付きで受け付けられる。安全なトークンの二重復号化を介して接続メッセージからタイムスタンプ値及びユーザ信用証明が回復され、トークンを記憶する形態の場合には直接的に、セッションを記憶する形態の場合には間接的に、ユーザ信用証明が獲得される。次いで、これらのユーザ信用証明は、接続要求に特定された役割のために認証サーバー52に対して認証される。
【0050】
また、接続認証は、安全なトークン260内に埋め込まれたタイムスタンプ値により定義された時間内に、パケット検査プロセッサ92が接続要求を受信することを必要とするものであることが好ましい。生成されたタイムスタンプデータ値250は、典型的には、30秒〜30分のオーダーの持続時間(time-to-live)値を表すものであることが好ましい。一般に、この持続時間値は、エンドユーザとウエブサービスとの間の或る程度の最小相互作用期間をカバーするように経験的に選択される。マーカー256値が安全なトークン260を初期の安全なトークン260として特定した場合には、接続要求は適時のものであると推定される。そうでない場合には、タイムスタンプ値は、パケット検査プロセッサ92による接続メッセージの受信時刻に応じて直接的又は間接的に有効と見なされる。
【0051】
次いで、回復したユーザ信用証明は、リモートウエブサービス70への移行184に先立って、プロトコル専用接続データパケット内に挿入される。リモートウエブサービスから接続確認応答メッセージが受信されたとき、安全なトークンの更新済みコピーが接続確認応答メッセージに挿入され、クライアントアプリケーション116に返信されるようにすることが好ましい。安全なトークンは、該安全なトークン内に埋め込まれたタイムスタンプ値を更新し、又は追加することによって更新される。安全なトークンの挿入は、クライアントアプリケーション116への送信に先立って、トークン挿入プロセッサ98により実行される。更新済みの安全なトークンは、受信されると、ローカル記憶部72内に存在している対応する鍵リング記憶部262内に記憶される。その後、トランザクションメッセージが送信され、受信される186ことになる。
【0052】
その後の当然に予定されているか、明白なログイン要求190に応答して、クライアントアプリケーション116は、ローカルな鍵リング記憶部262にアクセスし、対応する安全なトークンを検索する260。初期の安全なトークンとタイムスタンプ済みの安全なトークンとの双方が存在している場合には、タイムスタンプの期間が期限切れでない限り、タイムスタンプ済みの安全なトークンの方が選択される。タイムスタンプの満了期間は、管理された状態で確立されていることが望ましいが、そうでない場合には、タイムスタンプは定まった時間値であってもよい。その場合には、タイムスタンプ済みの安全なトークンが鍵リング記憶部262に最後に追加されるか、又は更新が行われた時刻に基づいて、タイムスタンプ済み安全なトークンの有効性を決定することができる。タイムスタンプ済みの安全なトークン260が存在していないか、有効でなければ、最初の安全なトークン260が選択される。接続メッセージ192が、選択された安全なトークン260と共にゲートウェイサーバーアプリケーション126へ送出される。
【0053】
パケット検査プロセッサ92及び認証制御プロセッサ90の動作によって、更新された194タイムスタンプ値を含む安全なトークン260のコピーが作成される。挿入済みユーザ信用証明を含むゲートウェイアプリケーション126によって、変更済み接続メッセージ196が送出される。更新された認証トークン260は、次いで接続確認応答メッセージの形でクライアントアプリケーション116に返信され196、次いで、ローカルな鍵リング記憶部262において記憶される。接続が確立されていることを条件として、トランザクションメッセージの交換200が行われるようにしてもよい。
【0054】
好適には、タイムスタンプ済みの安全なトークン260がクライアントアプリケーション116により定期的に更新されながら、クライアントアプリケーション116が実行を継続するようにする。ローカルな鍵リング記憶部262に記憶された認証トークン260の満了期間を継続して監視するために、期間満了タイマーが稼働する220。個々の認証トークン260がローカルな鍵リング記憶部262に最後に追加され、又は更新された時刻に基づいて、期間満了タイマー220が満了期間を監視することが望ましい。タイムスタンプされた安全なトークン260が満了期限に近づいている場合には、期間満了タイマー220は、ゲートウェイサーバーアプリケーション126への、対応するトークン更新メッセージ222の送出を開始する。このトークン更新メッセージ222は、タイムスタンプされた安全なトークン260を埋め込んだものである。認証トークン260が抽出され、更新され224、トークン更新応答メッセージ内に挿入され、返信される226。トークン更新応答メッセージが受信されると、更新済みの安全なトークン260がローカルな鍵リング記憶部262に記憶される。
【0055】
別の実施形態では、認証制御プロセッサ90は、クロスドメインの単一のサインオン認証システムをサポートするように動作するものとしてもよい。認証トークン260の管理及び使用がウエブソケットプロトコルサポートレベルで機能的に生じるので、ネイティブなウエブブラウザクライアントアプリケーション62により強制される、HTTPベースの接続の或る種のドメイン制限による制約は回避される。ゲートウェイサーバー38とウエブサービス70とは、互いに異なるドメイン内に存在するようにしてもよく、特にソースサーバー66のドメインとは異なるドメイン内に存在するようにしてもよい。
【0056】
単一のサインオンをサポートするために、複数のウエブクライアントアプリケーション116がコード化されて、安全なトークンが同じ名称の鍵リング内に記憶される。参照される同じ発信元の範囲内でウエブクライアントアプリケーション116が実行されることを条件として、同じ名称の鍵リングは同じローカル記憶部72内の場所で共有されることになる。複数のウエブクライアントアプリケーション116のうちのいずれか1つのアプリケーションのために最初に作成された安全なトークンは、同様の目的をもった他のログイン要求114、114’によっても自動的に使用されることになる。単一のサインオンユーザ信用証明が個々のプロトコル専用ウエブサービスに対して有効であれば、複数のウエブサービスへのアクセスを可能にするために単一の認可チャレンジが必要とされるだけである。セッションを記憶する実施形態の場合には、セッションクッキーの宣言された範囲内のいずれの参加ゲートウェイサーバー38に対しても、単一のサインオンが暗黙のうちにサポートされる。セッションクッキーは、クッキーの定義された範囲の通信時に送信されるHTTPヘッダの一部として自動的に送信される。
【0057】
別の実施形態では、認証制御プロセッサ90の指示の下で挿入されたユーザ信用証明は、ウエブクライアントアプリケーション116により提供される認証トークン260内に含まれているユーザ信用証明である必要はない。むしろ、提供されるユーザ信用証明及び役割の特定に基づいて、認証制御プロセッサ90は、接続メッセージ内へ挿入するための異なるセットのユーザ信用証明を選択してもよい。管理された状態で行われるクライアントアクセス制御の一部として、1又はそれ以上の、代替的なユーザ信用証明が、ゲートウェイサーバー38に直接的あるいは間接的に記憶されたり、アクセスされたりして、認証制御プロセッサ90により評価され、使用されるようにしてもよい。特に、ゲートウェイサーバー38は、ケルベロス(Kerberos)認証システム52と相互に動作して、ユーザ信用証明がウエブサービス70に提示される度に、単一使用チケットベースのサービス要求が与えられるようにするために、使用される回数を生成するようにしてもよい。
【0058】
以上、状態関連情報の管理を通じてウエブクライアントとウエブサービスとの間でのリアルタイムのデータ交換を可能にするシステム及び方法について説明した。本発明の好ましい実施形態についての上述の説明に照らして、上記開示された実施形態の多くの変更及び変形は当業者により容易に理解されるものである。したがって、添付の請求項の範囲内において、特に、上記に記載した以外の違った形で本発明の実施が可能であることが理解されるべきである。
【符号の説明】
【0059】
82 ネットワークインタフェース
86 ネットワークインタフェース
90 認証制御プロセッサ
92 パケット検査プロセッサ
94 信用証明挿入プロセッサ
96 パケット検査プロセッサ
98 トークン挿入プロセッサ

【特許請求の範囲】
【請求項1】
非HTTP通信プロトコルを用いるウエブアプリケーションのために状態に依存しない安全性管理を提供するコンピュータで実行される方法であって、
a)クライアントシステム上でウエブブラウザクライアント内において実行されるクライアントアプリケーションから、通信プロトコル識別子により特定され、リモートウエブサービスへ向けられるウエブソケット接続を開始する第1の開始ステップを含み、前記第1の開始ステップは、
i)前記通信プロトコル識別子に対応する安全なトークンが前記クライアントアプリケーションに対応するローカル記憶部内に存在していない場合、前記ウエブブラウザクライアントのユーザへ向けて認証チャレンジを実行するステップであって、第1のユーザ信用証明を取得し、前記第1のユーザ信用証明をゲートウェイサーバーへ送信し、前記安全なトークンを前記ゲートウェイサーバーから受信し、前記安全なトークンを前記ローカルストアインスタンス内に記憶する前記認証チャレンジを実行するステップと、
ii)前記安全なトークンを前記ローカル記憶部から取得するステップと、
iii)前記通信プロトコルの識別子専用プロトコルであり、且つ、前記安全なトークンを含む第1の接続メッセージを前記ゲートウェイサーバーへ送信する送信ステップと、を含み、
b)前記第1の接続メッセージの受信に応答して、前記リモートウエブサービスへ向けられるウエブソケット接続を前記ゲートウェイサーバーから開始する第2の開始ステップをさらに含み、前記第2の開始ステップは、
i)前記安全なトークンを特定するために前記第1の接続メッセージを検査するステップと、
ii)第2のユーザ信用証明を取得するために前記安全なトークンを評価するステップと、
iii)前記安全なトークンを置き換える時に、前記第1の接続メッセージに対応する第2の接続メッセージ内へ前記第2のユーザ信用証明を挿入するステップと、
iv)前記第2の接続メッセージを前記リモートウエブサービスへ送信するステップと、
を含むことを特徴とするコンピュータで実行される方法。
【請求項2】
前記通信プロトコル識別子は、前記ウエブソケット接続上でホストされる非HTTPプロトコルに対応する、請求項1に記載のコンピュータ実行方法。
【請求項3】
前記安全なトークンは、前記第1のユーザ信用証明の暗号化されたコピーを含む、請求項2に記載のコンピュータ実行方法。
【請求項4】
前記第2のユーザ信用証明は、前記第1のユーザ信用証明において前記安全なトークンを復号化により取得されるものである、請求項3に記載のコンピュータ実行方法。
【請求項5】
前記安全なトークンはタイムスタンプを含み、前記タイムスタンプは前記安全なトークンが無効であるかどうか判断できるものであり、前記安全なトークンが無効である場合には、ローカル記憶部内に前記安全なトークンが存在していないと決定する、請求項2に記載のコンピュータ実行方法。
【請求項6】
前記決定するステップは、i)前記ローカル記憶部内に記憶されている前記安全なトークンを前記タイムスタンプの期限の間、監視するステップと、ii)前記タイムスタンプの更新のために前記安全なトークンを前記ゲートウェイサーバーへ送信するステップと、iii)前記ゲートウェイサーバーによって更新された前記安全なトークンを前記ローカル記憶部内に記憶するステップとを含む、請求項5に記載のコンピュータ実行方法。
【請求項7】
シールされたオブジェクトを生成するための、前記第1のユーザ信用証明の秘密鍵の暗号化と、前記シールされたオブジェクト及び前記タイムスタンプから成る公開鍵の暗号化とによって、前記安全なトークンを前記ゲートウェイサーバーにより生成するステップをさらに含む、請求項6に記載のコンピュータ実行方法。
【請求項8】
前記第2のユーザ信用証明は、前記第1のユーザ信用証明において前記安全なトークンを復号化することにより取得されるものである、請求項7に記載のコンピュータ実行方法。
【請求項9】
前記安全なトークンは複数の通信プロトコル識別子に対応する、請求項8に記載のコンピュータ実行方法。
【請求項10】
クライアントシステム及びリモートサーバーシステムにより連携して実行される分散化されたウエブアプリケーションに対して状態に依存せずに安全性についての認可を提供するゲートウェイサーバーであって、
前記ゲートウェイサーバーは、
a)通信ネットワークを介して、クライアントシステム上のウエブブラウザクライアントにおいてクライアントアプリケーションを実行するように構成されたクライアントシステムと、ウエブサービスを実行するように構成されたリモートサーバーに結合可能なコンピュータサーバーシステムと、
b)認証制御プロセッサ、パケット検査プロセッサ、及び、信用証明挿入プロセッサを含み、前記コンピュータサーバーシステムによって実行されるウエブサーバーと、
を備え、
前記認証制御プロセッサは、前記クライアントアプリケーションにより提供される第1のユーザ信用証明を受信し、該第1のユーザ信用証明を有効化したとき、安全なトークンを生成するように動作し、
前記認証制御プロセッサは、前記クライアントアプリケーションに関連付けられた範囲内にある前記クライアントシステム上のローカル記憶部内に前記安全なトークンを記憶するように前記クライアントアプリケーションと相互に動作し、
前記パケット検査プロセッサは、前記クライアントアプリケーションにより提供され前記安全なトークンを埋め込んだ接続メッセージに応答して、前記接続メッセージを検出すると共に、前記安全なトークンを前記認証制御プロセッサへ提供するように動作し、
前記認証制御プロセッサは前記安全なトークンに対応する第2のユーザ信用証明を回復するように動作し、
前記信用証明挿入プロセッサは、前記認証制御プロセッサに応答して、前記第2のユーザ信用証明を前記接続メッセージ内へ挿入するように動作し、
前記ウエブサーバーは前記接続メッセージを前記リモートサーバーへ送信するように動作することを特徴とするゲートウェイサーバー。
【請求項11】
前記認証制御プロセッサは、前記安全なトークンを生成する際に前記第1のユーザ信用証明を暗号化し、前記第2のユーザ信用証明は前記第1のユーザ信用証明である、請求項10に記載のゲートウェイサーバー。
【請求項12】
前記認証制御プロセッサは、前記安全なトークンを生成する際に前記第1のユーザ信用証明を暗号化し、前記第2のユーザ信用証明は、前記第1のユーザ信用証明との所定の対応関係に基づいて回復される、請求項10に記載のゲートウェイサーバー。
【請求項13】
前記認証制御プロセッサは、前記第1のユーザ信用証明を暗号化して、前記安全なトークンの生成と連携してセッションクッキーを提供し、さらに、前記認証制御プロセッサは、前記クライアントシステム上の前記ウエブブラウザクライアントを介して前記セッションクッキーを記憶し、
前記安全なトークンは、前記セッションクッキーと前記安全なトークンとの間の所定の対応関係を確立するセッションクッキー識別子を含み、
前記第2のユーザ信用証明は、前記所定の対応関係に基づいて前記認証制御プロセッサにより回復される、請求項10に記載のゲートウェイサーバー。
【請求項14】
前記ウエブサーバーは、前記ウエブサービスから提供される接続確認応答メッセージを前記クライアントアプリケーションへ返信し、さらに前記ウエブサーバーは前記認証制御プロセッサに応答するトークン挿入プロセッサをさらに備え、
前記認証制御プロセッサは前記クライアントアプリケーションへ戻る前に、前記安全なトークンのコピーを前記接続確認応答メッセージ内へ挿入し、
前記クライアントアプリケーションは、前記クライアントアプリケーションに関連付けられた前記範囲内にある前記クライアントシステム上の前記ローカル記憶部内の前記安全なトークンの前記コピーの記憶を行う、請求項10に記載のゲートウェイサーバー。
【請求項15】
前記認証制御プロセッサは、限定された有効期間を表すタイムスタンプを前記安全なトークンのコピーの中に含ませ、さらに、前記認証制御プロセッサは、前記タイムスタンプに基づいて前記接続メッセージを条件付きで受け付ける、請求項14に記載のゲートウェイサーバー。
【請求項16】
前記認証制御プロセッサは、前記安全なトークン内の第1のマーカー値と、前記安全なトークンのコピー内の第2のマーカー値とを提供し、
前記第1及び第2のマーカー値は、前記安全なトークンが前記タイムスタンプを含むかどうかを特定し、
前記安全なトークンのコピーは、前記接続メッセージ内の前記安全なトークンに対する優先順位で前記クライアントアプリケーションにより提供される、請求項15に記載のゲートウェイサーバー。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2012−528411(P2012−528411A)
【公表日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2012−513318(P2012−513318)
【出願日】平成22年5月28日(2010.5.28)
【国際出願番号】PCT/US2010/036675
【国際公開番号】WO2010/138883
【国際公開日】平成22年12月2日(2010.12.2)
【出願人】(511265844)カージング コーポレーション (2)
【Fターム(参考)】