本ソリューションの特徴および利点は、同様の参照文字が全体を通して対応する要素を識別する図面と関連して検討されるとき、下で記載される発明を実施するための形態からより明白となるであろう。図面において、同様の参照番号は、概して、同じ、機能的に類似する、および/または構造的に類似する要素を示す。
下記の種々の実施形態の説明を熟読する目的のために、本明細書の節の以下の説明およびそれらのそれぞれの内容が、有用であり得る。
第A節は、本明細書に説明される実施形態を実践するために有用であり得るコンピューティング環境を説明する。
第B節は、内蔵ブラウザのためのシステムおよび方法を説明する。
第C節は、ネットワークアプリケーションを配信するためのシステムおよび方法を説明する。
(A.コンピューティング環境)
第B節において本明細書に詳述されるシステムおよび方法の実施形態の詳細について議論することに先立って、そのような実施形態が展開され得るコンピューティング環境について議論することが有用であり得る。
図1に示されるように、コンピュータ101は、1つ以上のプロセッサ103と、揮発性メモリ122(例えば、ランダムアクセスメモリ(RAM))と、不揮発性メモリ128(例えば、1つ以上のハードディスクドライブ(HDD)、または、他の磁気または光学記憶媒体;フラッシュドライブまたは他の固体記憶媒体等の1つ以上の固体ドライブ(SSD);1つ以上のハイブリッド磁気および固体ドライブ;および/または、クラウドストレージ等の1つ以上の仮想ストレージボリューム;または、そのような物理的ストレージボリュームと仮想ストレージボリュームまたはそのアレイとの組み合わせ)と、ユーザインターフェース(UI)123と、1つ以上の通信インターフェース118と、通信バス150とを含み得る。ユーザインターフェース123は、グラフィカルユーザインターフェース(GUI)124(例えば、タッチスクリーン、ディスプレイ等)と、1つ以上の入力/出力(I/O)デバイス126(例えば、マウス、キーボード、マイクロホン、1つ以上のスピーカ、1つ以上のカメラ、1つ以上のバイオメトリックスキャナ、1つ以上の環境センサ、1つ以上の加速度計等)とを含み得る。不揮発性メモリ128は、オペレーティングシステム115と、1つ以上のアプリケーション116と、データ117とを記憶し、それによって、例えば、オペレーティングシステム115および/またはアプリケーション116のコンピュータ命令は、プロセッサ103によって揮発性メモリ122の外で実行される。いくつかの実施形態において、揮発性メモリ122は、メインメモリより高速の応答時間をもたらし得るRAMおよび/またはキャッシュメモリのうちの1つ以上のタイプを含み得る。データは、GUI124の入力デバイスを使用して入力されるか、または、I/Oデバイス126から受信され得る。コンピュータ101の種々の要素は、通信バス150として示される1つ以上の通信バスを介して、通信し得る。
図1に示されるようなコンピュータ101は、単なる例として、クライアント、サーバ、中間体、および他のネットワーキングデバイスとして示され、任意のコンピューティングまたは処理環境によって、本明細書に説明されるように動作することが可能な好適なハードウェアおよび/またはソフトウェアを有し得る任意のタイプの機械または機械の組を用いて実装され得る。プロセッサ103は、1つ以上のプログラマブルプロセッサによって実装され、コンピュータプログラム等の1つ以上の実行可能命令を実行し、システムの機能を実施し得る。本明細書で使用されるように、用語「プロセッサ」は、機能、動作、または動作の一続きを実施する回路網を説明する。機能、動作、または動作の一続きは、回路網の中にハードコーディングされるか、または、メモリデバイス内に保持され、回路網によって実行される命令を用いて、ソフトコーディングされ得る。「プロセッサ」は、デジタル値を使用して、および/または、アナログ信号を使用して、機能、動作、または動作の一続きを実施し得る。いくつかの実施形態において、「プロセッサ」は、1つ以上の特定用途向け集積回路(ASIC)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、グラフィック処理ユニット(GPU)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)、マルチコアプロセッサ、または関連付けられたメモリを伴う汎用コンピュータ内に具現化されることができる。「プロセッサ」は、アナログ、デジタル、または複合信号であり得る。いくつかの実施形態において、「プロセッサ」は、1つ以上の物理的プロセッサまたは1つ以上の「仮想」(例えば、遠隔に位置するまたは「クラウド」)プロセッサであり得る。複数のプロセッサコアを含むプロセッサおよび/または複数のプロセッサは、命令の並列同時実行または2つ以上のデータ上での1つの命令の並列同時実行のための機能性を提供し得る。
通信インターフェース118は、1つ以上のインターフェースを含み、コンピュータ101が、種々の有線および/または無線またはセルラー接続を通して、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)等のコンピュータネットワーク、またはインターネットにアクセスすることを可能にし得る。
説明される実施形態において、コンピューティングデバイス101は、クライアントコンピューティングデバイスのユーザの代わりに、アプリケーションを実行し得る。例えば、コンピューティングデバイス101は、仮想機械を実行し得、仮想機械は、実行セッション(ホストされたデスクトップセッション等)を提供し、実行セッション内で、アプリケーションが、ユーザまたはクライアントコンピューティングデバイスの代わりに実行する。コンピューティングデバイス101は、ホストされたデスクトップ環境を提供するための端末サービスセッションも実行し得る。コンピューティングデバイス101は、コンピューティング環境へのアクセスを提供し得、アクセスは、以下のうちの1つ以上を含む:1つ以上のアプリケーション、1つ以上のデスクトップアプリケーション、および1つ以上のアプリケーションが実行され得る1つ以上のデスクトップセッション。
ネットワーク環境、コンピュータ101、および、クライアントおよびサーバコンピュータの実装および動作の追加の詳細は、2017年1月3日にCitrix Systems,Inc.(Fort Lauderdale,FL)に発行された米国特許第9,538,345号(その教示は、参照することによって本明細書に組み込まれる)に説明されるようなものであり得る。
(B.内蔵ブラウザのためのシステムおよび方法)
本開示は、内蔵ブラウザのシステムおよび方法を対象とする。クライアントデバイス上で実行されるクライアントアプリケーションは、ユーザが、1つ以上のサーバからサービス提供される、および/または、1つ以上のサーバ上にホストされるアプリケーション(アプリ)(ウェブアプリケーションおよびサービスとしてのソフトウェア(SaaS)アプリケーション(以降、時として、概して、ネットワークアプリケーションと称される)等)にアクセスすることを可能にすることができる。クライアントアプリケーションに内蔵または統合されたブラウザは、クライアントアプリケーションを介してアクセスまたは要求されるネットワークアプリケーションをユーザにレンダリングすることができ、ブラウザは、ユーザとネットワークアプリケーションとの間の相互作用を有効にすることができる。ブラウザは、時として、内蔵ブラウザとも称され、内蔵ブラウザを伴うクライアントアプリケーション(CEB)は、時として、作業空間アプリケーションとも称される。クライアントアプリケーションは、1つ以上のサーバとのセキュア接続を確立し、ユーザがクライアントデバイスおよび内蔵ブラウザを使用してネットワークアプリケーションにアクセスするためのアプリケーションセッションを提供することができる。内蔵ブラウザは、クライアントアプリケーションと統合され、ネットワークアプリケーションに関連するトラフィックが、クライアントアプリケーションを通してルーティングされ、および/または、クライアントアプリケーションにおいて処理されることを確実にすることができ、それは、クライアントアプリケーションにトラフィックに対するリアルタイム可視性(例えば、クライアントアプリケーションを通して解読されるとき)、およびユーザ相互作用および挙動を提供することができる。内蔵ブラウザは、ネットワークアプリケーションがユーザインターフェース(クライアントアプリケーションおよび内蔵ブラウザによって共有される)を介して要求され、同一ユーザインターフェース内の内蔵ブラウザを通してレンダリングされるので、シームレスな体験をユーザに提供することができる。
クライアントアプリケーションは、ネットワークアプリケーションのサーバと確立されたセキュア化された接続(セキュアソケット層(SSL)仮想プライベートネットワーク(VPN)接続等)の一端で終端し得る。クライアントアプリケーションは、暗号化されたトラフィックをネットワークアプリケーションから受信することができ、さらなる処理(例えば、内蔵ブラウザによるレンダリング)の前、トラフィックを解読することができる。クライアントアプリケーションは、(例えば、暗号化されたパケット形態における)受信されるトラフィックを監視し、クライアントアプリケーションは、解読されたデータストリームおよび/またはSSLスタックの中への完全可視性も有することができる。この可視性は、クライアントアプリケーションが、ポリシベースの管理(例えば、データ損失防止(DLP)能力を含む)、アプリケーション制御(例えば、性能、サービス水準を改良するため)、および分析の収集および生成を実施または促進することを可能にすることができる。例えば、ローカルCEBは、情報技術(IT)管理者に、CEBを通してウェブおよびSaaSアプリケーションを展開するための制御されたシステムを提供し、IT管理者が、CEBを介して、前述のアクティビティのいずれかを実施するためのポリシまたは構成を設定することを可能にすることができる。
多くのウェブおよびSaaS配信アプリケーションが、ウェブサーバからユーザの汎用ブラウザ(例えば、Internet Explorer、Firefox等)に接続する。認証されると、そのようなネットワークアプリケーションのセッション全体は、暗号化される。しかしながら、このシナリオにおいて、管理者は、ユーザのデジタル作業空間からネットワークアプリケーションに入るコンテンツ、またはネットワークアプリケーションから離れ、ユーザのデジタル作業空間に入るコンテンツの可視性、分析、または制御を有しないこともある。さらに、汎用ブラウザ内で閲覧されるネットワークアプリケーションのコンテンツは、潜在的に任意の恣意的アプリケーションまたはデバイスにコピーまたはダウンロードされ(例えば、ユーザまたはプログラムによって)、可能な侵害をデータセキュリティにもたらし得る。
本システムおよび方法は、ネットワークアプリケーションに関連付けられたトラフィックがCEBを通してチャネリングされることを確実にすることができる。例証として、ユーザが、例えば、有効にされたセキュリティアサーションマークアップ言語(SAML)を用いてSaaSウェブサービスにアクセスすると、対応するアクセス要求が、指定されるゲートウェイサービスに転送され得、ゲートウェイサービスは、CEBがアクセス要求を行うために使用されたかどうかを決定、チェック、または確認する。CEBがアクセス要求を行うために使用されたことの決定に応答して、ゲートウェイサービスは、認証およびシングルサインオン(SSO)を実施または提供することができ、CEBが、直接、SaaSウェブサービスに接続することを可能にすることができる。暗号化(例えば、標準的暗号化)が、CEBとSaaSウェブサービスとの間のアプリケーションセッションのために使用されることができる。ウェブサービスからのコンテンツが、内蔵ブラウザを介して閲覧されるためにCEB内で暗号化解除されると、および/または、入力がCEBを介して入力されると、CEBは、例えば、制御および分析のために、追加されるサービスを選択的アプリケーション関連情報上に提供することができる。例えば、分析エージェントまたはアプリケーションプログラミングインターフェース(API)が、CEBに埋め込まれ、追加されるサービスを提供または実施することができる。
CEB(時として、作業空間アプリケーションまたは受信機とも称される)は、アクセスをネットワークアプリケーションに提供するために、1つ以上のゲートウェイサービス、中間体、および/またはネットワークサーバ(時として、クラウドサービスまたはCitrix Cloudと集合的に称される)と相互運用性があることができる。クラウドサービスの実施形態の動作に関連する環境の特徴および要素は、下で説明される。
図2は、ネットワークアプリケーションを含むリソースにアクセスすることにおける使用のためのクラウドサービスの実施形態を図示する。クラウドサービスは、企業モビリティ技術アーキテクチャ200を含むことができ、それは、1つの例証的実施形態において、アクセスゲートウェイ260を含むことができる。アーキテクチャは、例えば、ブリング・ユア・オウン・デバイス(BYOD)環境内で使用されることができる。アーキテクチャは、クライアントデバイス202(例えば、モバイルまたは他のデバイス)のユーザが、クライアントデバイス202から企業またはパーソナルリソースの両方にアクセスすることと、パーソナル使用のためにクライアントデバイス202を使用することとの両方を行うことを有効にすることができる。ユーザは、クライアントデバイス202上で実行されるクライアントアプリケーションを介して、そのような企業リソース204または企業サービス208にアクセスし得る。ユーザは、ユーザによって購入されたクライアントデバイス202または企業によってユーザに提供されたクライアントデバイス202を使用して、そのような企業リソース204または企業サービス208にアクセスし得る。ユーザは、業務使用のみのために、または業務およびパーソナル使用のために、クライアントデバイス202を利用し得る。クライアントデバイスは、iOSオペレーティングシステムおよびAndroidオペレーティングシステム等を起動させ得る。企業は、クライアントデバイス202を管理するためのポリシを実装することを選定し得る。ポリシは、クライアントデバイスが、識別、セキュア化、またはセキュリティ確認され、企業リソースに対する選択的または完全アクセスを提供され得るように、ファイアウォールまたはゲートウェイを通して埋め込まれ得る。ポリシは、クライアントデバイス管理ポリシ、モバイルアプリケーション管理ポリシ、モバイルデータ管理ポリシ、またはクライアントデバイス、アプリケーション、およびデータ管理ポリシのある組み合わせであり得る。クライアントデバイス管理ポリシの適用を通して管理されるクライアントデバイス202は、登録されたデバイスと称され得る。クライアントデバイス管理ポリシは、例えば、クライアントアプリケーションを介して適用されることができる。
いくつかの実施形態において、クライアントデバイスのオペレーティングシステムは、管理されたパーティション210および管理されていないパーティション212に分離され得る。管理されたパーティション210は、それに適用されたポリシを有し、管理されたパーティション上で起動するアプリケーションおよび管理されたパーティションに記憶されたデータをセキュア化し得る。管理されたパーティション上で起動するアプリケーションは、セキュアアプリケーションであり得る。他の実施形態において、全てのアプリケーションは、アプリケーションと別個に受信される1つ以上のポリシファイルの組に従って実行され得、1つ以上のポリシファイルの組は、そのアプリケーションがデバイス上で実行されているとき、クライアントデバイス管理システムによって施行される1つ以上のセキュリティパラメータ、特徴、リソース制限、および/または他のアクセス制御を定義する。それらのそれぞれのポリシファイルに従って動作することによって、各アプリケーションは、1つ以上の他のアプリケーションおよび/またはリソースとの通信を可能にされ、または、それを制限され、それによって、仮想パーティションを作成し得る。したがって、本明細書で使用されるように、パーティションは、メモリの物理的に区画化された部分(物理的パーティション)、メモリの論理的に区画化された部分(論理的パーティション)、および/または本明細書に説明されるような複数のアプリにわたる1つ以上のポリシおよび/またはポリシファイルの施行の結果として作成される仮想パーティション(仮想パーティション)を指し得る。換言すると、管理されたアプリ上でポリシを施行することによって、それらのアプリは、他の管理されたアプリおよび信頼された企業リソースと通信することのみが可能であるように制限され、それによって、管理されていないアプリおよびデバイスによってアクセス可能ではない仮想パーティションを作成し得る。
セキュアアプリケーションは、電子メールアプリケーション、ウェブブラウジングアプリケーション、サービスとしてのソフトウェア(SaaS)アクセスアプリケーション、Windows(登録商標)アプリケーションアクセスアプリケーション等であり得る。クライアントアプリケーションは、セキュアアプリケーションランチャ218を含むことができる。セキュアアプリケーションは、セキュアネイティブアプリケーション214、セキュアアプリケーションランチャ218によって実行されるセキュア遠隔アプリケーション222、セキュアアプリケーションランチャ218によって実行される仮想化アプリケーション226等であり得る。セキュアネイティブアプリケーション214は、セキュアアプリケーションラッパ220によってラッピングされ得る。セキュアアプリケーションラッパ220は、セキュアネイティブアプリケーションがデバイス上で実行されるとき、クライアントデバイス202上で実行される統合されたポリシを含み得る。セキュアアプリケーションラッパ220は、メタデータを含み得、メタデータは、セキュアネイティブアプリケーション214がセキュアネイティブアプリケーション214の実行時に要求されるタスクを完了するように要求し得る企業にホストされたリソースにクライアントデバイス202上で起動するセキュアネイティブアプリケーション214を向ける。セキュアアプリケーションランチャ218によって実行されるセキュア遠隔アプリケーション222は、セキュアアプリケーションランチャアプリケーション218内で実行され得る。セキュアアプリケーションランチャ218によって実行される仮想化アプリケーション226は、クライアントデバイス202上のリソース、企業リソース204におけるリソース等を利用し得る。セキュアアプリケーションランチャ218によって実行される仮想化アプリケーション226によってクライアントデバイス202上で使用されるリソースは、ユーザ相互作用リソース、処理リソース等を含み得る。ユーザ相互作用リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、オーディオ入力、視覚的入力、ジェスチャ入力等を収集および伝送するために使用され得る。処理リソースは、ユーザインターフェース、企業リソース204から受信されたプロセスデータ等を提示するために使用され得る。セキュアアプリケーションランチャ218によって実行される仮想化アプリケーション226によって企業リソース204において使用されるリソースは、ユーザインターフェース発生リソース、処理リソース等を含み得る。ユーザインターフェース発生リソースは、ユーザインターフェースを組み立てること、ユーザインターフェースを修正すること、ユーザインターフェースをリフレッシュすること等を行うために使用され得る。処理リソースは、情報を作成すること、情報を読みとること、情報を更新すること、情報を削除すること等を行うために使用され得る。例えば、仮想化アプリケーションは、サーバアプリケーションがサーバ上で動作するアプリケーションへの入力としてユーザ相互作用データを使用し得る場合、グラフィカルユーザインターフェース(GUI)に関連付けられたユーザ相互作用を記録し、それらをサーバアプリケーションに通信し得る。この配置において、企業は、アプリケーションと、アプリケーションに関連付けられたデータ、ファイル等とをサーバ側に維持することを選び得る。企業は、本明細書の原理に従って、いくつかのアプリケーションを(例えば、クライアントアプリケーションを介して)クライアントデバイス上での展開のためにそれらをセキュア化することによって「動態化」することを選び得るが、この配置も、あるアプリケーションのために選ばれ得る。例えば、いくつかのアプリケーションは、クライアントデバイス上での使用のためにセキュア化され得るが、他は、クライアントデバイス上での展開のために準備されないか、または適切ではないこともあり、したがって、企業は、仮想化技法を通して、準備されていないアプリケーションへのモバイルユーザアクセスを提供することを選び得る。別の例として、企業は、クライアントデバイスのためにアプリケーションをカスタマイズすることが非常に困難である、または別様に望ましくないであろう、大規模で複合的データセットを伴う、大規模で複合的アプリケーション(例えば、材料リソース計画アプリケーション)を有し得、したがって、企業は、仮想化技法を通して、アプリケーションへのアクセスを提供することを選び得る。さらに別の例として、企業は、セキュア化されたモバイル環境に関してさえ非常に取り扱いに注意を要すると企業によって見なされ得る高度にセキュア化されたデータ(例えば、人材データ、顧客データ、エンジニアリングデータ)を維持するアプリケーションを有し得、したがって、企業は、仮想化技法を使用して、そのようなアプリケーションおよびデータへのモバイルアクセスを許可することを選び得る。企業は、完全にセキュア化され、かつ完全に機能的であるアプリケーションをクライアントデバイス上で提供することを選び得る。企業は、仮想化アプリケーションを含み得るクライアントアプリケーションを使用して、サーバ側でより適切に動作させられると見なされるアプリケーションへのアクセスを可能にすることができる。ある実施形態において、仮想化アプリケーションは、一部のデータ、ファイル等をセキュアストレージ場所のうちの1つにおいて携帯電話上に記憶し得る。企業は、例えば、ある情報が電話上に記憶されることを可能にするが、他の情報を許可しないことを選び得る。
仮想化アプリケーションに関連して、本明細書に説明されるように、クライアントデバイスは、GUIを提示し、次いで、GUIとのユーザ相互作用を記録するように設計された仮想化アプリケーションを有し得る。仮想化アプリケーションは、アプリケーションとのユーザ相互作用としてサーバ側アプリケーションによって使用されるために、ユーザ相互作用をサーバ側に通信し得る。それに応答して、サーバ側のアプリケーションは、クライアントデバイスに新しいGUIを返信し得る。例えば、新しいGUIは、静的ページ、動的ページ、アニメーション等であり、それによって、遠隔で位置するリソースへのアクセスを提供し得る。
セキュアアプリケーションは、クライアントデバイスの管理されたパーティション210内のセキュアデータコンテナ228に記憶されたデータにアクセスし得る。セキュアデータコンテナにおけるセキュア化されたデータは、セキュアラッピングされたアプリケーション214、セキュアアプリケーションランチャ222によって実行されるアプリケーション、セキュアアプリケーションランチャ218によって実行される仮想化アプリケーション226等によってアクセスされ得る。セキュアデータコンテナ228に記憶されたデータは、ファイル、データベース等を含み得る。セキュアデータコンテナ228に記憶されたデータは、特定のセキュアアプリケーション230に制限されたデータ、セキュアアプリケーション232間で共有されたデータ等を含み得る。セキュアアプリケーションに制限されたデータは、セキュアな一般的データ234および高度にセキュアなデータ238を含み得る。セキュアな一般的データは、高度暗号化規格(AES)128ビット暗号化等の強固な暗号化形態を使用し得る一方、高度にセキュアなデータ238は、AES256ビット暗号化等の非常に強固な暗号化形態を使用し得る。セキュアデータコンテナ228に記憶されたデータは、デバイスマネージャ224からのコマンドの受信時、デバイスから削除され得る。セキュアアプリケーションは、デュアルモードオプション240を有し得る。デュアルモードオプション240は、セキュア化されたアプリケーションをセキュア化されていないまたは管理されていないモードにおいて動作させるためのオプションをユーザに提示し得る。セキュア化されていないまたは管理されていないモードにおいて、セキュアアプリケーションは、クライアントデバイス202の管理されていないパーティション212上のセキュア化されていないデータコンテナ242に記憶されたデータにアクセスし得る。セキュア化されていないデータコンテナに記憶されたデータは、パーソナルデータ244であり得る。セキュア化されていないデータコンテナ242に記憶されたデータは、クライアントデバイス202の管理されていないパーティション212上で起動しているセキュア化されていないアプリケーション248によってもアクセスされ得る。セキュア化されていないデータコンテナ242に記憶されたデータは、セキュアデータコンテナ228に記憶されたデータがクライアントデバイス202から削除されるとき、クライアントデバイス202上に留まり得る。企業は、クライアントデバイスから、選択された、または企業(企業データ)によって所有、ライセンス供与、または制御される全てのデータ、ファイル、および/またはアプリケーションを削除するが、ユーザによって所有、ライセンス供与、または制御されるパーソナルデータ、ファイル、および/またはアプリケーション(パーソナルデータ)を残すこと、または別様に保存することを欲し得る。この動作は、選択的消去と称され得る。本明細書に説明される側面に従って配置される企業およびパーソナルデータを用いることで、企業は、選択的消去を実施し得る。
クライアントデバイス202は、企業における企業リソース204および企業サービス208、パブリックインターネット248等に接続し得る。クライアントデバイスは、仮想プライベートネットワーク接続を通して、企業リソース204および企業サービス208に接続し得る。マイクロVPNまたは特定用途向けVPNとも称される仮想プライベートネットワーク接続は、特定のアプリケーション(例えば、マイクロVPN250によって図示されるように)、特定のデバイス、クライアントデバイス上の特定のセキュア化されたエリア(例えば、O/S VPN252によって図示されるように)等に特定であり得る。例えば、電話のセキュア化されたエリア内のラッピングされたアプリケーションの各々は、特定用途向けVPNを通して企業リソースにアクセスし得、それによって、VPNへのアクセスは、アプリケーションに関連付けられた属性(おそらく、ユーザまたはデバイス属性情報と併せて)に基づいて許可されるであろう。仮想プライベートネットワーク接続は、Microsoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、HyperText Transfer Protocol(HTTP)トラフィック、HyperText Transfer Protocol Secure(HTTPS)トラフィック、アプリケーション管理トラフィック等を搬送し得る。仮想プライベートネットワーク接続は、シングルサインオン認証プロセス254をサポートおよび可能にし得る。シングルサインオンプロセスは、ユーザが単一組の認証証明情報を提供することを可能にし得、それは、次いで、認証サービス258によって確認される。認証サービス258は、次いで、ユーザが認証証明情報を各個々の企業リソース204に提供することを要求せずに、ユーザに複数の企業リソース204へのアクセスを与え得る。
仮想プライベートネットワーク接続は、アクセスゲートウェイ260によって確立および管理され得る。アクセスゲートウェイ260は、クライアントデバイス202への企業リソース204の配信を管理、加速、および改良する性能向上特徴を含み得る。アクセスゲートウェイは、トラフィックをクライアントデバイス202からパブリックインターネット248に再ルーティングし、クライアントデバイス202が、パブリックインターネット248上で起動する公的に入手可能かつセキュア化されていないアプリケーションにアクセスすることも有効にし得る。クライアントデバイスは、トランスポートネットワーク262を介して、アクセスゲートウェイに接続し得る。トランスポートネットワーク262は、1つ以上のトランスポートプロトコルを使用し得、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、都市規模ネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であり得る。
企業リソース204は、電子メールサーバ、ファイル共有サーバ、SaaS/ウェブアプリケーション、ウェブアプリケーションサーバ、Windows(登録商標)アプリケーションサーバ等を含み得る。電子メールサーバは、Exchangeサーバ、Lotus Notesサーバ等を含み得る。ファイル共有サーバは、ShareFileサーバ等を含み得る。SaaSアプリケーションは、Salesforce等を含み得る。Windows(登録商標)アプリケーションサーバは、ローカルWindows(登録商標)オペレーティングシステム等上で起動するように意図されるアプリケーションを提供するために構築される任意のアプリケーションサーバを含み得る。企業リソース204は、敷地ベースのリソース、クラウドベースのリソース等であり得る。企業リソース204は、直接、クライアントデバイス202によって、またはアクセスゲートウェイ260を通して、アクセスされ得る。企業リソース204は、トランスポートネットワーク262を介して、クライアントデバイス202によってアクセスされ得る。トランスポートネットワーク262は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、都市規模ネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であり得る。
クラウドサービスは、アクセスゲートウェイ260および/または企業サービス208を含むことができる。企業サービス208は、認証サービス258、脅威検出サービス264、デバイスマネージャサービス224、ファイル共有サービス268、ポリシマネージャサービス270、ソーシャル統合サービス272、アプリケーションコントローラサービス274等を含み得る。認証サービス258は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービス等を含み得る。認証サービス258は、認証情報を使用し得る。認証情報は、クライアントデバイス202上に企業リソース204等によって記憶され得る。クライアントデバイス202上に記憶される認証情報は、クライアントデバイス上の暗号化された場所に記憶され得、認証情報は、認証時の使用等のためにクライアントデバイス202上に一時的に記憶され得る。脅威検出サービス264は、侵入検出サービス、認可されていないアクセス試行検出サービス等を含み得る。認可されていないアクセス試行検出サービスは、デバイス、アプリケーション、データ等にアクセスしようとする認可されていない試行を含み得る。デバイス管理サービス224は、構成、プロビジョニング、セキュリティ、サポート、監視、報告、およびデコミッショニングサービスを含み得る。ファイル共有サービス268は、ファイル管理サービス、ファイルストレージサービス、ファイルコラボレーションサービス等を含み得る。ポリシマネージャサービス270は、デバイスポリシマネージャサービス、アプリケーションポリシマネージャサービス、データポリシマネージャサービス等を含み得る。ソーシャル統合サービス272は、連絡先統合サービス、コラボレーションサービス、Facebook、Twitter、およびLinkedIn等のソーシャルネットワークとの統合等を含み得る。アプリケーションコントローラサービス274は、管理サービス、プロビジョニングサービス、展開サービス、割当サービス、取消サービス、ラッピングサービス等を含み得る。
企業モビリティ技術アーキテクチャ200は、アプリケーションストア278を含み得る。アプリケーションストア278は、非ラッピングアプリケーション280、事前にラッピングされたアプリケーション282等を含み得る。アプリケーションは、アプリケーションコントローラ274からアプリケーションストア278内に取り込まれ得る。アプリケーションストア278は、アクライアントデバイス202によって、アクセスゲートウェイ260を通して、パブリックインターネット248を通して等、アクセスされ得る。アプリケーションストアは、直感的で使用が容易なユーザインターフェースを提供され得る。
ソフトウェア開発キット284は、セキュアラッパをアプリケーションの周囲に提供することによって、ユーザに、ユーザによって選択されたアプリケーションをセキュア化する能力を提供し得る。ソフトウェア開発キット284を使用してラッピングされているアプリケーションは、次いで、アプリケーションコントローラ274を使用して、それをアプリケーションストア278内に取り込むことによって、クライアントデバイス202に利用可能にされ得る。
企業モビリティ技術アーキテクチャ200は、管理および分析能力を含み得る。管理および分析能力は、リソースが使用される方法、リソースが使用される頻度等に関連する情報を提供し得る。リソースは、デバイス、アプリケーション、データ等を含み得る。リソースが使用される方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか等を含み得る。リソースが使用される頻度は、アプリケーションがダウンロードされた頻度、データの特定の組がアプリケーションによってアクセスされた回数等を含み得る。
図3は、企業モビリティ管理システム300の例証的実施形態を描写する。図2を参照して上で説明されるモビリティ管理システム200のコンポーネントのうちのいくつかは、単純性の目的のために省略されている。図3に描写されるシステム300のアーキテクチャは、多くの点において、図2を参照して上で説明されるシステム200のアーキテクチャに類似し、上で述べられていない追加の特徴を含み得る。
この場合、左側は、クライアントエージェント304を伴う登録されたクライアントデバイス302を表し、クライアントエージェント304は、ゲートウェイサーバ306と相互作用し、上記の右側に示されるウェブまたはSasSアプリケーション、Exchange、Sharepoint、公開鍵基盤(PKI)リソース、Kerberosリソース、認証情報発行サービス等の種々の企業リソース308およびサービス309にアクセスする。ゲートウェイサーバ306は、アクセスゲートウェイ260およびアプリケーションコントローラ機能性等のクラウドサービスの特徴および機能性の実施形態を含むことができる。具体的に示されないが、クライアントエージェント304は、クライアントアプリケーションの一部であり、および/または、それと相互作用し得、クライアントアプリケーションは、ネットワークアプリケーションの選択および/またはダウンロードのために、企業アプリケーションストア(ストアフロント)として動作し得る。
クライアントエージェント304は、企業データセンタ内にホストされたWindows(登録商標)アプリ/デスクトップのためのUI(ユーザインターフェース)中間体としての機能を果たすことができ、企業データセンタ内にホストされたWindows(登録商標)アプリ/デスクトップは、高品位ユーザ体験(HDX)または独立コンピューティングアーキテクチャ(ICA)ディスプレイ遠隔プロトコルを使用してアクセスされる。クライアントエージェント304は、ネイティブiOSまたはAndroidアプリケーション等のクライアントデバイス302上のネイティブアプリケーションのインストールおよび管理をサポートすることもできる。例えば、上の図に示される管理されたアプリケーション310(メール、ブラウザ、ラッピングされたアプリケーション)は、デバイス上でローカルで実行されるネイティブアプリケーションである。このアーキテクチャのクライアントエージェント304およびアプリケーション管理フレームワークは、接続性およびSSO(シングルサインオン)等のポリシ主導型管理能力および特徴を企業リソース/サービス308に提供するように動作する。クライアントエージェント304は、他のゲートウェイサーバコンポーネントへのSSOを用いて、企業、例えば、アクセスゲートウェイ(AG)に対する一次ユーザ認証をハンドリングする。クライアントエージェント304は、ポリシをゲートウェイサーバ306から取得し、クライアントデバイス302上での管理されたアプリケーション310の挙動を制御する。
ネイティブアプリケーション310とクライアントエージェント304との間のセキュアプロセス間通信(IPC)リンク312は、管理チャネルを表し、それは、クライアントエージェントが、各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク314によって施行されるべきポリシを供給することを可能にする。IPCチャネル312は、クライアントエージェント304が、企業リソース308への接続性およびSSOを有効にする証明情報および認証情報を供給することも可能にする。最後に、IPCチャネル312は、アプリケーション管理フレームワーク314が、オンラインおよびオフライン認証等のクライアントエージェント304によって実装されるユーザインターフェース機能を呼び出すことを可能にする。
クライアントエージェント304とゲートウェイサーバ306との間の通信は、本質的に、各ネイティブの管理されたアプリケーション310をラッピングするアプリケーション管理フレームワーク314からの管理チャネルの延長である。アプリケーション管理フレームワーク314は、ポリシ情報をクライアントエージェント304から要求し、それは、順に、それをゲートウェイサーバ306から要求する。アプリケーション管理フレームワーク314は、認証を要求し、クライアントエージェント304は、ゲートウェイサーバ306(NetScalerアクセスゲートウェイとしても知られる)のゲートウェイサービス部分にログインする。
クライアントエージェント304は、ゲートウェイサーバ306上のサポートサービスもコールし得、サポートサービスは、ローカルデータボルト316のための暗号化キーを導出するための入力材料を生成するか、または、下でより完全に解説されるように、PKI保護リソースへの直接認証を有効にし得るクライアント認証情報を提供し得る。
さらに詳細に、アプリケーション管理フレームワーク314は、各管理されたアプリケーション310を「ラッピング」する。これは、明示的構築ステップを介して、または構築後処理ステップを介して、組み込まれ得る。アプリケーション管理フレームワーク314は、アプリケーション310の最初の立ち上げ時、クライアントエージェント304と「ペアリング」し、セキュアIPCチャネルを初期化し、そのアプリケーションのためのポリシを取得し得る。アプリケーション管理フレームワーク314は、クライアントエージェントログイン依存性および包含ポリシの一部等、ローカルで適用するポリシの関連部分を施行し得、包含ポリシの一部は、ローカルOSサービスが使用され得る方法、またはそれらがアプリケーション310と相互作用し得る方法を制限する。
アプリケーション管理フレームワーク314は、セキュアIPCチャネル312を経由してクライアントエージェント304によって提供されるサービスを使用して、認証および内部ネットワークアクセスを促進し得る。プライベートおよび共有データボルト316(コンテナ)のためのキー管理も、管理されたアプリケーション310とクライアントエージェント304との間の適切な相互作用によって管理され得る。ボルト316は、オンライン認証後のみ利用可能であり得るか、または、ポリシによって許可される場合、オフライン認証後に利用可能にされ得る。ボルト316の最初の使用は、オンライン認証を要求し得、オフラインアクセスは、最大でオンライン認証が再び要求される前のポリシリフレッシュ期間に限定され得る。
内部リソースへのネットワークアクセスは、アクセスゲートウェイ306を通して、直接、個々の管理されたアプリケーション310から生じ得る。アプリケーション管理フレームワーク314は、各アプリケーション310の代わりに、ネットワークアクセスを取りまとめることに関与する。クライアントエージェント304は、オンライン認証に続いて取得される好適な時限二次証明情報を提供することによって、これらのネットワーク接続を促進し得る。リバースウェブプロキシ接続およびエンドツーエンドVPN式トンネル318等のネットワーク接続の複数のモードが、使用され得る。
メールおよびブラウザ管理されたアプリケーション310は、特殊ステータスを有することができ、概して、恣意的ラッピングされたアプリケーションに利用可能にされないこともある設備を利用し得る。例えば、メールアプリケーションは、特殊バックグラウンドネットワークアクセス機構を使用し得、それは、完全AGログオンを要求せずに、長期間にわたって、Exchangeにアクセスすることを可能にする。ブラウザアプリケーションは、複数のプライベートデータボルトを使用して、異なる種類のデータを分離し得る。
このアーキテクチャは、種々の他のセキュリティ特徴の組み込みをサポートすることができる。例えば、ゲートウェイサーバ306(そのゲートウェイサービスを含む)は、ある場合、アクティブディレクトリ(AD)パスワードを検証する必要がないこともある。ADパスワードが、いくつかの状況において、一部のユーザのための認証要因として使用されるかどうかは、企業の裁量に委ねられ得る。異なる認証方法が、ユーザがオンラインまたはオフラインである(すなわち、ネットワークに接続される、または接続されない)場合に使用され得る。
ステップアップ認証は、ゲートウェイサーバ306が、管理されているネイティブアプリケーション310を識別し得る特徴であり、管理されているネイティブアプリケーションは、強認証を使用してより取り扱いに注意を要するデータへのアクセスを有することを可能にされ、これらのアプリケーションへのアクセスが、再認証が以前のより弱いレベルのログイン後にユーザから要求されることを意味する場合でも、適切な認証を実施した後にのみ許可されることを確実にする。
このソリューションの別のセキュリティ特徴は、クライアントデバイス302上のデータボルト316(コンテナ)の暗号化である。ボルト316は、クリップボード/キャッシュデータ、ファイル、データベース、および構成を含むデバイス上データの全てが保護されるように、暗号化され得る。オンラインボルトに関して、キーが、サーバ(ゲートウェイサーバ306)上に記憶され得、オフラインボルトに関して、キーのローカルコピーが、ユーザパスワードまたはバイオメトリック検証によって保護され得る。データがセキュアコンテナ316内においてこのデバイス302上にローカルで記憶されるとき、最低限のAES256暗号化アルゴリズムが利用されることが好ましい。
他のセキュアコンテナ特徴も、実装され得る。例えば、ログ付け特徴が、含まれ得、アプリケーション310の内側で起こる全てのセキュリティイベントは、ログ付けされ、バックエンドに報告される。データ消去が、アプリケーション310が不正開封を検出する場合等にサポートされ得、関連付けられた暗号化キーは、ユーザデータが破壊されたファイルシステムに関するヒントを残さないように、ランダムデータで上書きされ得る。スクリーンショット保護は、アプリケーションが任意のデータがスクリーンショットに記憶されることを防止し得る別の特徴である。例えば、キーウィンドウの隠れプロパティが、「はい」に設定され得る。これは、画面上に現在表示されているあらゆるコンテンツを隠し、ブランクスクリーンショットを任意のコンテンツが通常常駐するであろう場所にもたらし得る。
ローカルデータ転送は、任意のデータがアプリケーションコンテナの外側にローカルで転送されることを防止すること等によって(例えば、任意のデータをコピーするまたはそれを外部アプリケーションに送信することによって)、防止され得る。キーボードキャッシュ特徴は、取り扱いに注意を要するテキストフィールドのための自動補正機能性を無効にするように動作し得る。SSL認証情報検証が、動作可能であり得、したがって、アプリケーションは、それがキーチェーンに記憶される代わりに、特に、サーバSSL認証情報を検証する。暗号化キー発生特徴が、デバイスに関するデータを暗号化するために使用されるキーが、ユーザによって供給されるパスフレーズまたはバイオメトリックデータを使用して発生させられるように、使用され得る(オフラインアクセスが、要求される場合)。オフラインアクセスが要求されない場合、ランダムに発生させられ、サーバ側に記憶される別のキーとXORされ得る。キー導出関数が、ユーザパスワードから発生させられたキーが、その暗号化ハッシュを作成するのではなく、KDF(キー導出関数、とりわけ、パスワードベースのキー導出関数2(PBKDF2))を使用するように動作し得る。後者は、キーを総当たり、または辞書攻撃を被りやすくする。
さらに、1つ以上の初期化ベクトルが、暗号化方法において使用され得る。初期化ベクトルは、同一の暗号化されたデータの複数のコピーが異なる暗号テキスト出力をもたらすようにし、リプレイおよび暗号解読攻撃の両方を防止し得る。これは、攻撃者が盗まれた暗号化キーを用いてさえ任意のデータを解読することも防止し得る。さらに、認証後解読が、使用され得、アプリケーションデータは、ユーザがアプリケーション内で認証した後にのみ解読される。別の特徴は、必要とされるときのみ、(ディスク内ではなく)メモリ内に保たれ得るメモリ内の取り扱いに注意を要するデータに関連し得る。例えば、ログイン証明情報が、ログイン後、メモリから消去され得、オブジェクティブCインスタンス変数内側の暗号化キーおよび他のデータは、それらが容易に参照され得るので、記憶されない。代わりに、メモリは、これらのために手動で配分され得る。
無活動タイムアウトが、CEBを介して実装され得、無活動のポリシ-定義期間後、ユーザセッションは、終了させられる。
アプリケーション管理フレームワーク314からのデータ漏出は、他の方法において防止され得る。例えば、アプリケーション310が、バックグラウンドに置かれるとき、メモリは、事前に決定された(構成可能)期間後、クリアされ得る。バックグラウンド化されると、アプリケーションの最後に表示された画面のスナップショットが、撮影され、前景化プロセスに集中させ得る。スクリーンショットは、機密データを含み得、故に、クリアされるべきである。
別のセキュリティ特徴は、1つ以上のアプリケーションへのアクセスのために、AD(アクティブディレクトリ)322パスワードの使用を伴わない、OTP(ワンタイムパスワード)320の使用に関する。ある場合、一部のユーザは、そのADパスワードを把握しておらず(または把握するように許可されず)、したがって、これらのユーザは、SecurIDのようなハードウェアOTPシステム等を使用することによって、OTP320を使用して認証し得る(OTPは、EntrustまたはGemalto等の異なるベンダによっても提供され得る)。ある場合、ユーザが、ユーザIDを用いて認証した後、テキストがユーザにOTP320とともに送信される。ある場合、これは、単一フィールドであるプロンプトを用いて、オンライン使用のためにのみ実装され得る。
オフラインパスワードが、オフライン使用が企業ポリシを介して許可される、それらのアプリケーション310のためのオフライン認証のために実装され得る。例えば、企業は、ストアフロントがこのようにアクセスされることを欲し得る。この場合、クライアントエージェント304は、ユーザがカスタムオフラインパスワードを設定することを要求し得、ADパスワードは、使用されない。ゲートウェイサーバ306は、標準的Windows(登録商標)サーバパスワード複雑性要件によって説明されるような最小長、文字クラス構成、およびパスワードの有効期間に関するパスワード規格を制御および施行するためのポリシを提供し得るが、これらの要件は、修正され得る。
別の特徴は、二次証明情報としてのあるアプリケーション310のためのクライアント側認証情報の有効化要件に関する(アプリケーション管理フレームワークマイクロVPN特徴を介して、PKI保護ウェブリソースにアクセスする目的のために)。例えば、アプリケーションが、そのような認証情報を利用し得る。この場合、クライアントエージェント304からの認証情報が、ゲートウェイサーバ306によって読み出され、キーチェーン内で使用され得るActiveSyncプロトコルを使用した認証情報ベースの認証が、サポートされ得る。各管理されたアプリケーションは、1つの関連付けられたクライアント認証情報を有し得、それは、ゲートウェイサーバ306において定義されるラベルによって識別される。
ゲートウェイサーバ306は、企業特殊目的ウェブサービスと相互作用し、クライアント認証情報の発行をサポートし、クライアント認証情報は、関連の管理されたアプリケーションが内部PKI保護リソースに対して認証することを可能にし得る。
クライアントエージェント304およびアプリケーション管理フレームワーク314は、内部PKI保護ネットワークリソースに対する認証のためのクライアント認証情報の取得および使用をサポートするように拡張され得る。2つ以上の認証情報が、種々のレベルのセキュリティおよび/または分離要件に合致する等のために、サポートされ得る。認証情報は、メールおよびブラウザ管理されたアプリケーションによって使用され、最終的に、恣意的ラッピングされたアプリケーションによって使用され得る(それらのアプリケーションが、アプリケーション管理フレームワークがhttps要求を調停するために合理的である場合、ウェブサービススタイル通信パターンを使用することを前提として)。
iOS上のアプリケーション管理クライアント認証情報サポートは、使用の各期間のために、各管理されたアプリケーションにおけるiOSキーチェーンの中にパブリックキー暗号法規格(PKCS)12BLOB(バイナリラージオブジェクト)をインポートすることに依拠し得る。アプリケーション管理フレームワーククライアント認証情報サポートは、プライベートメモリ内キーストレージを伴うHTTPS実装を使用し得る。クライアント認証情報は、iOSキーチェーン内には決して存在しないこともあり、潜在的に、強固に保護される「オンライン専用」データ値を除き、存続しないこともある。
相互SSLまたはTLSも、クライアントデバイス302が企業に対して認証され、その逆も同様であることを要求することによって、追加のセキュリティを提供するために実装され得る。ゲートウェイサーバ306に対する認証のための仮想スマートカードも、実装され得る。
限定および完全Kerberosサポートの両方は、追加の特徴であり得る。完全サポート特徴は、ADパスワードまたは信頼されたクライアント認証情報を使用して、アクティブディレクトリ(AD)322への完全Kerberosログインを行い、Kerberosサービスチケットを取得し、HTTPネゴシエーション認証チャレンジに応答する能力に関する。限定サポート特徴は、Citrix Access Gateway Enterprise Edition(AGEE)における制約された委譲に関し、AGEEは、Kerberosプロトコル遷移の呼出をサポートし、したがって、HTTPネゴシエーション認証チャレンジに応答して、Kerberosサービスチケットを取得および使用することができる(制約された委譲に従って)。この機構は、リバースウェブプロキシ(コーポレート仮想プライベートネットワーク(CVPN)として知られる)モードにおいて、およびhttp(但し、httpsではない)接続がVPNおよびマイクロVPNモードでプロキシ化されるときに機能する。
別の特徴は、アプリケーションコンテナロックおよび消去に関し、それは、ジェイルブレイクまたはルーティング検出時、自動的に生じ、管理コンソールからプッシュされたコマンドとして生じ得、アプリケーション310が起動されていないときでも、遠隔消去機能性を含み得る。
企業アプリケーションストアおよびアプリケーションコントローラのマルチサイトアーキテクチャまたは構成が、サポートされ得、それは、失敗の場合、ユーザがいくつかの異なる場所のうちの1つからサービス提供されることを可能にする。
ある場合、管理されたアプリケーション310は、API(例えば、OpenSSL)を介して、認証情報およびプライベートキーにアクセスすることを可能にされ得る。企業の信頼された管理されたアプリケーション310は、アプリケーションのクライアント認証情報およびプライベートキーを用いて、特定のパブリックキー動作を実施することを可能にされ得る。アプリケーションがブラウザのように挙動し、認証情報アクセスが使用されないとき、アプリケーションが「who am I」に関して認証情報を読みとるとき、アプリケーションが認証情報を使用して、セキュアセッショントークンを構築するとき、および、アプリケーションが重要なデータ(例えば、トランザクションログ)のデジタル署名のために、または一時的データ暗号化のためにプライベートキーを使用するとき等、種々のユースケースが、適宜、識別および処理され得る。
ここで図4を参照すると、内蔵ブラウザのシステム400のブロック図が、描写されている。概要として、システム400は、ユーザのためのデジタル作業空間を伴うクライアントデバイス402と、クライアントアプリケーション404と、少なくとも1つのネットワークデバイス432上で動作するクラウドサービス408と、1つ以上のサーバ430からサービス提供され、および/または、その上にホストされるネットワークアプリケーション406とを含み得る。クライアントアプリケーション404は、例えば、内蔵ブラウザ410、ネットワーキングエージェント412、クラウドサービスエージェント414、遠隔セッションエージェント416、またはセキュアコンテナ418のうちの少なくとも1つを含むことができる。クラウドサービス408は、例えば、セキュアブラウザ420、アクセスゲートウェイ422(または、例えば、クライアントアプリケーションおよび/またはユーザを登録および/または認証するためのCIS)、または分析サービス424(または、例えば、分析のために、情報をクライアントアプリケーションから受信するためのCAS)のうちの少なくとも1つを含むことができる。ネットワークアプリケーション406は、認定アプリケーション426および非認定アプリケーション428を含むことができる。
上で述べられた要素またはエンティティの各々は、1つ以上の実施形態において、ハードウェア、またはハードウェアおよびソフトウェアの組み合わせ内に実装される。システム400の各コンポーネントは、図1に関連して上で詳述されるハードウェアまたはハードウェアまたはソフトウェアの組み合わせを使用して実装され得る。例えば、これらの要素またはエンティティの各々は、クライアントデバイス402、少なくとも1つのネットワークデバイス432、および/または1つ以上のサーバ430のハードウェア上で実行される任意のアプリケーション、プログラム、ライブラリ、スクリプト、タスク、サービス、プロセス、または任意のタイプおよび形態の実行可能命令を含むことができる。ハードウェアは、1つ以上の実施形態において、1つ以上のプロセッサ等の回路網を含む。例えば、少なくとも1つのネットワークデバイス432および/または1つ以上のサーバ430は、例えば、少なくとも図1に関連して上で説明されるコンピューティングデバイスの要素のいずれかを含むことができる。
クライアントデバイス402は、例えば、少なくとも図1に関連して上で説明されるコンピューティングデバイスの任意の実施形態を含むことができる。クライアントデバイス402は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットデバイス、スマートフォン、または任意の他のモバイルまたはパーソナルデバイス等の任意のユーザデバイスを含むことができる。クライアントデバイス402は、ユーザのデジタル作業空間を含むことができ、それは、クライアントデバイス402上のファイルシステム、キャッシュまたはメモリ(例えば、電子クリップボードを含む)、コンテナ、アプリケーション、および/または他のリソースを含むことができる。デジタル作業空間は、1つ以上のネットワークを介してアクセス可能なファイルシステムおよび/または他のリソースを含むイントラネットおよびインターネット等、クライアントデバイス402によってアクセス可能な1つ以上のネットワークを含むか、または、それにまで伸びることができる。デジタル作業空間の一部は、例えば、内蔵ブラウザ410を伴うクライアントアプリケーション404(CEB)の使用を介して、セキュア化されることができる。デジタル作業空間のセキュア部分は、例えば、CEBに配分され、および/または、CEBによってCEBを介してアクセスされるネットワークアプリケーション406に配分されるファイルシステム、キャッシュまたはメモリ(例えば、電子クリップボードを含む)、アプリケーション、コンテナおよび/または他のリソースを含むことができる。デジタル作業空間のセキュア部分は、デジタル作業空間のセキュア部分内への包含のために、CEBによって規定されたリソースを含むこともできる(1つ以上のポリシを介して)(例えば、特定のローカルアプリケーションは、ポリシを介して、ネットワークアプリケーションから取得されるデータを受信することを可能にされるように規定されることができる)。
クライアントアプリケーション404は、内蔵ブラウザ410、ネットワーキングエージェント412、クラウドサービスエージェント414(時として、管理エージェントとも称される)、遠隔セッションエージェント416(時として、HDXエンジンとも称される)、および/またはセキュアコンテナ418(時として、セキュアキャッシュコンテナとも称される)等の1つ以上のコンポーネントを含むことができる。コンポーネントのうちの1つ以上のものは、クライアントアプリケーション404またはCEBのソフトウェア構築または解放の一部としてインストールされるか、または、別個に入手またはダウンロードされ、例えば、クライアントアプリケーション404またはCEBの既存のインストールの中にインストール/統合されることができる。例えば、クライアントデバイスは、クライアントアプリケーション404(または任意のコンポーネント)をネットワークデバイス432からダウンロードまたは別様に受信し得る。いくつかの実施形態において、クライアントデバイスは、クライアントアプリケーション404のための要求をネットワークデバイス432に送信し得る。例えば、クライアントデバイスのユーザは、クライアントアプリケーションの要求、ダウンロード、および/またはインストールを開始することができる。ネットワークデバイス432は、順に、クライアントアプリケーションをクライアントデバイスに送信し得る。いくつかの実施形態において、ネットワークデバイス432は、クライアントアプリケーションのための設定またはインストールアプリケーションをクライアントデバイスに送信し得る。受信時、クライアントデバイスは、クライアントアプリケーションをクライアントデバイスのハードディスク上にインストールし得る。いくつかの実施形態において、クライアントデバイスは、設定アプリケーションを起動し、クライアントアプリケーションのパッケージをアンパックまたは解凍し得る。いくつかの実施形態において、クライアントアプリケーションは、クライアントデバイス上にインストールされる別のアプリケーション(例えば、ネットワーキングエージェント412)に対する拡張(例えば、アドオン、アドイン、アプレット、またはプラグイン)であり得る。クライアントデバイスは、クライアントアプリケーションをインストールすることによって、事前にインストールされたアプリケーションとインターフェースをとり得、またはそれらと相互運用性があり得る。いくつかの実施形態において、クライアントアプリケーションは、独立型アプリケーションであり得る。クライアントデバイスは、クライアントアプリケーションをインストールし、別個のプロセスとして実行し得る。
内蔵ブラウザ410は、ウェブブラウザアプリケーションまたはエンジンの要素および機能性を含むことができる。内蔵ブラウザ410は、ネットワークアプリケーションをクライアントアプリケーションのコンポーネントまたは拡張としてローカルでレンダリングすることができる。例えば、内蔵ブラウザ410は、SaaS/ウェブアプリケーションをCEBの内側にレンダリングすることができ、それは、CEBにアプリケーションセッションの完全可視性および制御を提供することができる。内蔵ブラウザは、クライアントアプリケーションの実行可能コードの中への直接統合(例えば、プログラミング言語またはスクリプト挿入)等の任意の手段を介して、またはプラグインインストールを介して、クライアントアプリケーションの中に埋め込まれること、または組み込まれることができる。例えば、内蔵ブラウザは、例えば、Chromium内蔵フレームワーク(CEF)を使用して、クライアントアプリケーションの中に埋め込まれ得るChromiumベースのブラウザエンジンまたは他のタイプのブラウザエンジンを含むことができる。内蔵ブラウザは、HTML5ベースのレイアウトグラフィカルユーザインターフェース(GUI)を含むことができる。内蔵ブラウザは、HTMLレンダリングおよびJava(登録商標)Scriptサポートを種々のプログラミング言語を組み込むクライアントアプリケーションに提供することができる。例えば、内蔵ブラウザの要素は、C、C++、Delphi、Go、Java(登録商標)、.NET/Mono、Visual Basic 6.0、および/またはPythonを組み込むクライアントアプリケーションにバインドすることができる。
いくつかの実施形態において、内蔵ブラウザは、クライアントアプリケーション上にインストールされたプラグインを備えている。例えば、プラグインは、1つ以上のコンポーネントを含むことができる。1つのそのようなコンポーネントは、クライアントアプリケーションの中にロードされ、その中で実行されることが可能なActive X制御またはJava(登録商標)制御または任意の他のタイプおよび/または形態の実行可能命令であることができる。例えば、クライアントアプリケーションは、クライアントアプリケーションのメモリ空間またはコンテキスト等内に内蔵ブラウザのAxtive X制御をロードし、起動することができる。いくつかの実施形態において、内蔵ブラウザは、クライアントアプリケーション上の拡張としてインストールされることができ、ユーザは、プラグインまたは拡張を有効または無効にするように選定することができる。内蔵ブラウザ(例えば、プラグインまたは拡張を介して)は、デジタル作業空間のセキュア化された部分内のリソースをセキュア化し、使用し、および/または、それにアクセスするために、セキュア化されたブラウザとして形成され、または動作することができる。
内蔵ブラウザは、その標準的または典型的ブラウザにおいて利用可能なまたは可能なそれ以上のコードおよび機能性を組み込むことができる。例えば、内蔵ブラウザは、セキュア化されたコンテナ418とバインドし、またはそれを割り当てられ、ユーザのデジタル作業空間のセキュア化された部分の少なくとも一部を定義することができる。内蔵ブラウザは、クライアントデバイスのキャッシュの一部とバインドし、またはそれを割り当てられ、セキュア化されたコンテナ418の少なくとも一部であり得るセキュア化されたクリップボードを形成することができる(例えば、クライアントデバイスのローカルで、または他のデバイスに拡張可能)。内蔵ブラウザは、クライアントアプリケーションと統合され、ネットワークアプリケーションに関連するトラフィックが、クライアントアプリケーションを通してルーティングされ、および/またはその中で処理されることを確実にすることができ、それは、トラフィックに対するリアルタイム可視性をクライアントアプリケーションに提供することができる(例えば、クライアントアプリケーションを通して解読されるとき)。トラフィックに対するこの可視性は、クライアントアプリケーションが、ポリシベースの管理(例えば、データ損失防止(DLP)能力を含むこと)、アプリケーション制御、および分析の収集および生成を実施または促進することを可能にすることができる。
いくつかの実施形態において、内蔵ブラウザは、クラウドサービスエージェント414、遠隔セッションエージェント416、および/またはセキュアコンテナ418等のクライアントアプリケーション404の1つ以上の他のコンポーネントを組み込む。例えば、ユーザは、アクセスゲートウェイ422(時として、CISとも称される)と相互運用性がある内蔵ブラウザのクラウドサービスエージェント414を使用して、ネットワークアプリケーションにアクセスすることができる。例えば、クラウドサービスエージェント414は、内蔵ブラウザ内で実行されることができ、ナビゲーションコマンドを内蔵ブラウザから受信し、ホストされたネットワークアプリケーションに伝送することができる。クラウドサービスエージェントは、遠隔提示プロトコルを使用して、ネットワークアプリケーションによって発生させられた出力を内蔵ブラウザに表示することができる。例えば、クラウドサービスエージェント414は、エンドユーザが内蔵ブラウザ上の遠隔デスクトップおよび/またはアプリケーションにアクセスすることを可能にするHTML5ウェブクライアントを含むことができる。
クライアントアプリケーション404およびCEBは、クライアントデバイスの動作(OSI)スタックのアプリケーション層上で動作する。クライアントアプリケーション404は、クラウドサービス408と相互運用性がある1つ以上のエージェントを含むこと、および/または、それを実行することができる。クライアントアプリケーション404は、種々のポリシ(例えば、企業のカスタム、規定、または内部ポリシまたはルール)および/またはデータ(例えば、クラウドサービス408のアクセスゲートウェイ422および/またはネットワークデバイスまたは企業によって管理され得る他のサーバから)を受信すること、取得すること、読み出すこと、または別様にそれにアクセスすることができる。クライアントアプリケーションは、ポリシおよび/またはデータにアクセスし、ネットワークアプリケーション(例えば、SaaS、ウェブ、または遠隔でホストされたアプリケーション)を制御および/または管理することができる。ネットワークアプリケーションの制御および/または管理は、アクセス制御、セッション配信、利用可能な特徴または機能、サービス水準、トラフィック管理、および監視等のネットワークアプリケーションの種々の側面の制御および/または管理を含むことができる。ネットワークアプリケーションは、企業のプロバイダまたはベンダ(例えば、salesforce.com、SAP、Microsoft Office365)から、企業自体から、または別のエンティティ(例えば、DropboxまたはGmailサービス)からのものであることができる。
例えば、クラウドサービスエージェント414は、ネットワークアプリケーションの使用および/またはアクセスに関連するポリシ主導型管理能力および特徴を提供することができる。例えば、クラウドサービスエージェント414は、ポリシエンジンを含み、ポリシエンジンは、(例えば、クラウドサービスから受信された)1つ以上のポリシを適用し、ネットワークアプリケーション等のリソースに対するアクセス制御および/または接続性を決定することができる。セッションが、クライアントアプリケーションと、例えば、SaaSアプリケーションを提供するサーバ430との間に確立されると、クラウドサービスエージェント414は、1つ以上のポリシを適用し、セッションのトラフィックレベルおよび/またはトラフィックタイプ(または他の側面)を制御し、例えば、SaaSアプリケーションのサービス水準を管理することができる。制御または管理され得るアプリケーショントラフィックの追加の側面は、トラフィックに適用される暗号化レベルおよび/または暗号化タイプ、ユーザに許可される相互作用のレベル、ネットワークアプリケーションのある特徴(例えば、プリントスクリーン、保存、編集、またはコピー機能)への限定されたアクセス、ネットワークアプリケーションから取得されるデータの使用または転送に対する制限、2つ以上のネットワークアプリケーションへの同時アクセスの限定、あるファイルリポジトリまたは他のリソースへのアクセスの限定等を含むことができる。
クラウドサービスエージェント414は、CEBに可視のSaaS相互作用イベントについての情報等の情報をクラウドサービス408の分析サービス424に伝達またはフィードすることができる。CEBを使用したそのような構成は、クライアントデバイスとサーバ430との間に位置するインラインデバイスまたはプロキシを有することなく、またはSaaSAPIゲートウェイ「帯域外」アプローチを使用することなく、分析に関する情報を監視または捕捉することができる。いくつかの実施形態において、クラウドサービスエージェント414は、内蔵ブラウザ内で実行されない。これらの実施形態において、ユーザは、アクセスゲートウェイ(またはCIS)422と相互運用があるクラウドサービスエージェント414を同様に使用して、ネットワークアプリケーションにアクセスすることができる。例えば、クラウドサービスエージェント414は、アクセスゲートウェイ(またはCIS)422に登録および/または認証されることができ、ネットワークアプリケーションのリストをアクセスゲートウェイ(またはCIS)422から取得することができる。クラウドサービスエージェント414は、ネットワークアプリケーションのユーザ選択および/またはダウンロードのためのアプリケーションストア(またはストアフロント)を含むこと、および/または、それとして動作することができる。ネットワークアプリケーションにアクセスするためにログインすると、クラウドサービスエージェント414は、ナビゲーションコマンドを内蔵ブラウザから傍受し、ネットワークアプリケーションに伝送することができる。クラウドサービスエージェントは、遠隔提示プロトコルを使用して、ネットワークアプリケーションによって発生させられた出力を内蔵ブラウザに表示することができる。例えば、クラウドサービスエージェント414は、HTML5ウェブクライアントを含むことができ、HTML5ウェブクライアントは、エンドユーザが内蔵ブラウザ上で遠隔デスクトップおよび/またはアプリケーションにアクセスすることを可能にする。
いくつかの実施形態において、クラウドサービスエージェント414は、ユーザおよび/またはクライアントデバイスが複数のネットワークアプリケーションにアクセスするためのシングルサインオン(SSO)能力を提供する。クラウドサービスエージェント414は、例えば、アクセスゲートウェイ422と通信することによって、ネットワークアプリケーション、および他のネットワークリソースおよびサービスにアクセスするために、ユーザ認証を実施しすることができる。例えば、クラウドサービスエージェント414は、クラウドサービス408および/またはネットワークアプリケーション406の他のコンポーネントにアクセスするために、アクセスゲートウェイ422に認証または登録されることができる。認証または登録に応答して、アクセスゲートウェイ422は、ユーザおよび/またはクライアントアプリケーションのために(またはその代わりに)、ネットワークアプリケーションとの認証および/またはSSOを実施することができる。
クライアントアプリケーション404は、ネットワーキングエージェント412を含むことができる。ネットワーキングエージェント412は、時として、ソフトウェア定義広域ネットワーク(SD-WAN)エージェント、mVPNエージェント、またはマイクロVPNエージェントとも称される。ネットワーキングエージェント412は、クライアントアプリケーションと1つ以上のリソース(例えば、ネットワークアプリケーションをサービス提供するサーバ430)との間のネットワーク接続を確立すること、またはその確立を促進することができる。ネットワーキングエージェント412は、ネットワークアプリケーションにアクセスするためにクライアントアプリケーションから要求される接続のためにハンドシェイクを実施することができ、要求される接続(例えば、セキュアまたは暗号化された接続)を確立することができる。ネットワーキングエージェント412は、例えば、仮想プライベートネットワーク(VPN)を介して、企業リソース(サービスを含む)に接続することができる。例えば、ネットワーキングエージェント412は、クライアントアプリケーションとネットワークアプリケーション406を提供するサーバ430との間のセキュアソケット層(SSL)VPNを確立することができる。時として、マイクロVPNまたは特定用途向けVPNとも称されるVPN接続は、例えば、図3に関連して上で議論されるように、特定のネットワークアプリケーション、特定のデバイス、クライアントデバイス上の特定のセキュア化されたエリア等に特定であり得る。そのようなVPN接続は、いくつかの例として、Microsoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、HyperText Transfer Protocol(HTTP)トラフィック、HyperText Transfer Protocol Secure(HTTPS)トラフィックを搬送することができる。
遠隔セッションエージェント416(時として、HDXエンジンとも称される)は、例えば、図2に関連して上で議論されるクライアントエージェント304の特徴を含み、遠隔プロトコル(例えば、HDXまたはICA)の表示をサポートすることができる。いくつかの実施形態において、遠隔セッションエージェント416は、Remote Desktop Protocol(RDP)、Appliance Link Protocol(ALP)、Remote Frame Buffer(RFB)プロトコル、およびICA Protocol等の任意の種々のプロトコルに従って、遠隔デスクトップセッションおよび/または遠隔アプリケーションセッションを確立することができる。例えば、遠隔セッションエージェント416は、クライアントデバイスのユーザが企業ネットワークアプリケーションにアクセスするための遠隔アプリケーションセッションを確立することができる。遠隔セッションエージェント416は、例えば、ネットワーキングエージェント412によって確立されたセキュア接続(例えば、VPN)内で、またはそれを越えて、遠隔アプリケーションセッションを確立することができる。
クライアントアプリケーションまたはCEBは、セキュアコンテナ418を含むか、または、それに関連付けられることができる。セキュアコンテナは、クライアントデバイス内でアクセス可能であるリソース、および/または、クライアントデバイスによってアクセス可能である1つ以上のタイプのリソースの論理または仮想境界を含むことができる。例えば、セキュアコンテナ418は、デジタル作業空間のセキュア化された部分の全体またはセキュア化された部分の特定の側面を指し得る。いくつかの実施形態において、セキュアコンテナ418は、セキュアキャッシュ(例えば、電子または仮想クリップボード)に対応し、保護またはセキュア化された(例えば、暗号化された)ユーザの各クライアントデバイスのローカルキャッシュ、および/または、ユーザのクラウドベースのキャッシュの一部を動的に組み込むことができる。セキュアコンテナは、ファイルシステムの一部を定義するリソース、および/または、CEBおよび/またはCEBを介してアクセスされるネットワークアプリケーションに配分されるリソースの境を限り得る。セキュアコンテナは、例えば、図2に関連して上で議論されるセキュアデータコンテナ228の要素を含むことができる。CEBは、(例えば、ポリシを介して)セキュアコンテナ内で識別されたリソースおよび/またはデータ上でのあるアクションまたはアクティビティを限定、禁止、または無効にするように構成されることができる。セキュア化されたコンテナは、セキュアコンテナ内のリソースおよび/またはデータが、不正使用、乱用、および/または搾取のために監視されるべきであることを規定するために定義されることができる。
ある実施形態において、セキュアコンテナは、種々の企業セキュリティ特徴を実装するセキュアブラウザ(例えば、内蔵ブラウザ410またはセキュアブラウザ420)の使用に関連するか、またはそれを伴う。セキュアブラウザ内で実行されるように構成されるネットワークアプリケーション(またはセキュアブラウザによってアクセスされるウェブページ)は、事実上、セキュアブラウザによって実装されるセキュリティ機構を継承することができる。これらのネットワークアプリケーションは、セキュアコンテナ内に含まれると見なされ得る。そのようなセキュアブラウザの使用は、企業が、例えば、従業員が従業員のクライアントデバイスからあるウェブサイトにアクセスすることをブロックされるコンテンツフィルタリングポリシを実装することを有効にすることができる。セキュアブラウザは、例えば、クライアントデバイスユーザが、VPNの必要なく、コーポレートイントラネットにアクセスすることを有効にするために使用されることができる。
いくつかの実施形態において、セキュアコンテナは、企業リソースを保護するために、種々のタイプの是正アクションをサポートすることができる。1つのそのような是正策は、クライアントデバイスまたはセキュアコンテナが、例えば、管理者によって提供される有効コードを用いてのみロック解除され得るように、クライアントデバイス、または保護されるべきデータを記憶する、クライアントデバイス上のセキュアコンテナをロックすることである。いくつかの実施形態において、これらおよび他のタイプの是正策は、クライアントデバイス上で検出された条件に基づいて、自動的に呼び出されること(例えば、ポリシの適用を介して)、または管理者によって遠隔で開始されることができる。
いくつかの実施形態において、セキュアコンテナは、ドキュメントのためのセキュアドキュメントコンテナを含むことができる。ドキュメントは、テキスト、オーディオ、ビデオ、および/または他のタイプの情報またはメディアを含む任意のコンピュータ読み取り可能なファイルを備えていることができる。ドキュメントは、これらのメディアタイプの任意の1つのみまたはそれらの組み合わせを備えていることができる。本明細書で解説されるように、セキュアコンテナは、クライアントデバイスの異なるアプリケーションおよびコンポーネントおよび他のデバイスへの企業情報の拡散を防止することに役立ち得る。企業システム(部分的または全体的に、クラウドネットワーク内にあり得る)は、ドキュメントを種々のデバイスに伝送することができ、それらは、セキュアコンテナに記憶されることができる。セキュアコンテナは、クライアントデバイスの認可されていないアプリケーションおよび他のコンポーネントがセキュアコンテナ内の情報にアクセスすることを防止することができる。ユーザが、企業データにアクセスし、それを記憶し、それを使用するために、ユーザ自身のクライアントデバイスを使用することを可能にする企業に関して、セキュアコンテナをクライアントデバイス上に提供することは、企業データをセキュア化することに役立つ。例えば、セキュアコンテナをクライアントデバイス上に提供することは、企業データを各クライアントデバイス上の1つの場所に一元化することができ、所望されるとき、各クライアントデバイスからの企業データの選択的または完全削除を促進することができる。
セキュアコンテナは、ドキュメントおよび/または他のタイプのファイルを記憶すること、ファイルシステムを実装すること、アプリケーションを含むことができる。ファイルシステムは、クライアントデバイスのコンピュータ読み取り可能なメモリの一部を備えていることができる。ファイルシステムは、クライアントデバイスのコンピュータ読み取り可能なメモリの他の部分から論理的に分離されることができる。このように、企業データは、セキュアコンテナに記憶されることができ、プライベートデータは、例えば、クライアントデバイスのコンピュータ読み取り可能なメモリの別個の部分に記憶されることができる。セキュアコンテナは、CEB、CEBを介してアクセスされるネットワークアプリケーション、ローカルでインストールされるアプリケーション、および/またはクライアントデバイスの他のコンポーネントが、情報をファイルシステムから読み取ること、それに書き込むこと、および/または、それを削除することを可能にすることができる(そのように行うことが認可される場合)。セキュアコンテナからのデータの削除は、セキュアコンテナに記憶される実際のデータの削除、セキュアコンテナに記憶されたデータへのポインタの削除、セキュアコンテナに記憶されたデータを解読するために使用される暗号化キーの削除等を含むことができる。セキュアコンテナは、例えば、クライアントアプリケーション、管理者、またはクライアントデバイス製造業者によって、インストールされることができる。セキュアコンテナは、ファイルシステムに記憶される企業データの一部または全てが、セキュアコンテナの外側のクライアントデバイス上に記憶されるプライベートデータを修正せずに、削除されることを有効にすることができる。ファイルシステムは、ファイルシステムからのデータの選択的または完全削除を促進することができる。例えば、企業のシステムの認可されたコンポーネントは、例えば、エンコーディングされたルールに基づいて、ファイルシステムからデータを削除することができる。いくつかの実施形態において、クライアントアプリケーションは、企業のシステムからの削除コマンドの受信に応答して、ファイルシステムからデータを削除することができる。
セキュアコンテナは、アクセスマネージャを含むことができ、アクセスマネージャは、クライアントデバイスのアプリケーションおよび他のコンポーネントによるファイルシステムへのアクセスを統制する。ファイルシステムへのアクセスは、クライアントアプリケーションによって、ドキュメント内に、および/またはファイルシステム内に維持されるドキュメントアクセスポリシ(例えば、エンコーディングされたルール)に基づいて、統制されることができる。ドキュメントアクセスポリシは、(1)クライアントデバイスのどのアプリケーションまたは他のコンポーネントが、アクセスを要求しているか、(2)どのドキュメントが要求されているか、(3)時間または日付、(4)クライアントデバイスの地理的位置、(5)要求側アプリケーションまたは他のコンポーネントが、正しい認証情報または証明情報を提供するかどうか、(6)クライアントデバイスのユーザが正しい証明情報を提供するかどうか、(7)他の条件、またはそれらの任意の組み合わせに基づいて、ファイルシステムへのアクセスを限定することができる。ユーザの証明情報は、例えば、パスワード、セキュリティ質問に対する1つ以上の回答(例えば、高校のマスコットは?)、バイオメトリック情報(例えば、指紋走査、眼走査)等を備えていることができる。故に、アクセスマネージャを使用することによって、セキュアコンテナは、セキュアコンテナにアクセスすることを認可されるアプリケーションによってのみアクセスされるように構成されることができる。一例として、アクセスマネージャは、クライアントデバイス上にインストールされる企業アプリケーションが、セキュアコンテナに記憶されたデータにアクセスし、非企業アプリケーションが、セキュアコンテナに記憶されたデータアクセスすることを防止することを有効にすることができる。
ドキュメントアクセスに関する時間的および地理的制限は、有用であり得る。例えば、管理者は、(セキュアコンテナに記憶される)ドキュメントの利用可能性を規定された時間枠および/または、クライアントデバイスがドキュメントにアクセスするために常駐しなければならない(例えば、GPSチップによって決定されるような)地理的ゾーンに制限するドキュメントアクセスポリシを展開し得る。さらに、ドキュメントアクセスポリシは、セキュアコンテナまたはクライアントアプリケーションに、規定された期間が切れると、またはクライアントデバイスが定義された地理的ゾーンの外側で捉えられた場合、ドキュメントをセキュアコンテナから削除するように、または、別様にそれらを利用不可能にするように命令することができる。
いくつかのドキュメントは、ドキュメントがセキュアコンテナ内に保存されることを禁じるアクセスポリシを有することができる。そのような実施形態において、ドキュメントは、例えば、ユーザがクラウドサービスを介してログインしているとき、または認証されているときのみ、クライアントデバイス上で閲覧するために利用可能にされることができる。
アクセスマネージャは、遠隔デバイス(例えば、企業リソースまたは他の企業サーバ)とセキュアコンテナとの間で接続性のあるモードを施行するようにも構成されることができる。例えば、アクセスマネージャは、セキュアコンテナによって遠隔デバイスから受信され、および/またはセキュアコンテナから遠隔デバイスに送信されるドキュメントが、例えば、セキュア化されたトンネル/接続を通して伝送されることを要求することができる。アクセスマネージャは、セキュアコンテナに、およびそれから伝送される全てのドキュメントが暗号化されることを要求することができる。クライアントアプリケーションまたはアクセスマネージャは、セキュアコンテナから送信されるドキュメントを暗号化し、セキュアコンテナに送信されるドキュメントを解読するように構成されることができる。セキュアコンテナ内のドキュメントは、暗号化された形態で記憶されることもできる。
セキュアコンテナは、ドキュメント内、またはドキュメントまたはセキュアコンテナ内に含まれるデータが、クライアントデバイスまたは他のデバイスの認可されていないアプリケーションまたはコンポーネントによって使用されることを防止するように構成されることができる。例えば、セキュアコンテナからのドキュメントにアクセスするための認可を有するクライアントデバイスアプリケーションは、ユーザがドキュメントのデータをコピーし、それを別のファイルまたはアプリケーションインターフェースに渡すこと、またはドキュメントまたはドキュメントデータをセキュアコンテナの外側で新しいファイルとしてローカルで保存することを防止するようにプログラムされることができる。同様に、セキュアコンテナは、そのようなコピー/ペーストおよびローカル保存動作を許可しないドキュメントビューアおよび/またはエディタを含むことができる。さらに、アクセスマネージャは、そのようなコピー/ペーストおよびローカル保存動作を防止するように構成されることができる。さらに、セキュアコンテナおよびセキュアコンテナからドキュメントにアクセスするようにプログラムおよび認可されるアプリケーションは、ユーザがそのようなドキュメントを電子メールまたは他の形態の通信に添付することを防止するように構成されることができる。
1つ以上のアプリケーション(例えば、クライアントデバイス上にインストールされるアプリケーションおよび/またはCEBを介してアクセスされるネットワークアプリケーション)は、(例えば、ポリシベースの施行を介して)企業関連データのみをセキュアコンテナの中に書き込むようにプログラムまたは制御されることができる。例えば、アプリケーションのソースコードは、セキュアコンテナのリソース名を提供されることができる。同様に、(例えば、クライアントデバイス以外のデバイス上で実行される)遠隔アプリケーションは、データまたはドキュメントのみをセキュアコンテナに送信するように構成されることができる(クライアントデバイスの他のコンポーネントまたはメモリ場所とは対照的)。データをセキュアコンテナに記憶することは、例えば、アプリケーション、クライアントアプリケーション、および/またはセキュアブラウザの制御下で自動的に生じ得る。クライアントアプリケーションは、セキュアコンテナに記憶された、または記憶されるべきドキュメントを暗号化または解読するようにプログラムされることができる。ある実施形態において、セキュアコンテナは、セキュアコンテナを識別および使用するようにプログラムされ、そのように行うための認可を有する(クライアントデバイスまたは遠隔デバイス上の)アプリケーションによってのみ使用されることができる。
ネットワークアプリケーション406は、認定ネットワークアプリケーション426と、非認定ネットワークアプリケーション428とを含むことができる。非限定的例として、認定ネットワークアプリケーション426は、Workday、Salesforce、Office365、SAP等からのネットワークアプリケーションを含むことができる一方、非認定ネットワークアプリケーション426は、Dropbox、Gmail等からのネットワークアプリケーションを含むことができる。例えば、図4は、認定アプリケーション426がCEBを介してアクセスされる場合を図示する。動作(1)時、クライアントデバイス402上にインストールされたクライアントアプリケーション404のユーザインスタンスは、クラウドサービス408のアクセスゲートウェイ422に登録または認証されることができる。例えば、ユーザは、ユーザをクライアントデバイスに認証し、クライアントデバイス402にログインすることができる。クライアントアプリケーションは、自動的に実行されるか、または、ユーザによってアクティブにされることができる。いくつかの実施形態において、ユーザは、クライアントアプリケーションにサインインすることができる(例えば、ユーザをクライアントアプリケーションに認証することによって)。ログインまたはサインインに応答して、クライアントアプリケーションは、ユーザおよび/またはクライアントアプリケーションをアクセスゲートウェイ422に登録または認証することができる。
動作(2)時、登録または認証に応答して、アクセスゲートウェイ422は、ユーザに利用可能であるかまたは事前に割り当てられた列挙されたネットワークアプリケーションのリストを識別すること、または読み出すことができ、リストをクライアントアプリケーションに提供することができる。例えば、登録または認証に応答して、アクセスゲートウェイは、ユーザを識別し、および/またはユーザのユーザプロファイルを読み出すことができる。識別および/またはユーザプロファイルに従って、アクセスゲートウェイは、リストを決定する(例えば、ユーザのユーザプロファイルおよび/または識別と合致したネットワークアプリケーションの記憶されたリストを読み出す)ことができる。リストは、ユーザのために認定されたネットワークアプリケーションのリストに対応し得る。アクセスゲートウェイは、リストをクライアントアプリケーションまたは内蔵ブラウザに送信することができ、それは、選択のために、クライアントアプリケーションまたは内蔵ブラウザを介して、ユーザに提示されることができる(例えば、ストアフロントユーザインターフェース内に)。
動作(3)時、ユーザは、ユーザに提示されるネットワークアプリケーションのリストから選択することによって、認定ネットワークアプリケーション(例えば、SaaSアプリケーション)への接続を開始することができる。例えば、ユーザは、クライアントアプリケーションまたは内蔵ブラウザを介して表示される認定ネットワークアプリケーションのアイコンまたは他の表現上をクリックすることができる。このユーザアクションは、CEBをトリガし、ネットワークアプリケーションをプロビジョニングすること、接続またはアクセス要求をサーバに伝送することができる。要求は、アクセスゲートウェイと通信し、ユーザを認証するためのサーバ(例えば、SaaSプロバイダ)への要求を含むことができる。サーバは、例えば、ユーザを認証するための要求をアクセスゲートウェイに送信することができる。
動作(4)時、アクセスゲートウェイは、サーバとのSSOを実施し、ユーザを認証することができる。例えば、ユーザを認証するためのサーバの要求に応答して、アクセスゲートウェイは、SSOのために、ユーザの証明情報をサーバ430に提供し、選択されたネットワークアプリケーションおよび/または他の認定ネットワークアプリケーションにアクセスすることができる。動作(5)時、ユーザは、SSOに基づいて(例えば、証明情報を使用して)、選択されたネットワークアプリケーションにログインすることができる。クライアントアプリケーション(例えば、ネットワーキングエージェント412および/または遠隔セッションエージェント416)は、サーバ430とセキュア接続およびセッションを確立し、選択されたネットワークアプリケーションにアクセスすることができる。CEBは、セキュア接続を介して受信されたアプリケーショントラフィックを解読することができる。CEBは、CEBを介して送信されるトラフィックおよびサーバ430へのセキュア化された接続を監視することができる。
動作(6)時、クライアントアプリケーションは、分析処理のために、情報をクラウドサービス408の分析サービス424に提供することができる。例えば、クライアントアプリケーション404のクラウドサービスエージェント414は、選択されたネットワークアプリケーションとのユーザ相互作用イベントを監視または捕捉することができる。クラウドサービスエージェント414は、分析を生成するように処理されるために、ユーザ相互作用イベントを分析サービス424に伝達することができる。
図5は、セキュアブラウザを使用するためのシステムの例示的実施形態を描写する。概要として、システムは、クラウドサービス408と、ネットワークアプリケーション406と、クライアントデバイス402とを含む。いくつかの実施形態において、システムの種々の要素は、図4に関して上で説明されるものに類似するが、クライアントアプリケーション(内蔵ブラウザを伴う)は、クライアントデバイス402内では利用可能ではない。標準的または典型的ブラウザが、クライアントデバイス上で利用可能であり得、それからユーザは、例えば、認定ネットワークアプリケーションにアクセスするための要求を開始することができる。ネットワークアプリケーションは、管理者によって、または自動的に(例えば、人工知能を介して)設定され得るポリシを介して、認定または非認定として規定されることができる。
例えば、動作(1)時、ユーザは、標準的ブラウザを使用して、ネットワークアプリケーションにログインし得る。認定ネットワークアプリケーションにアクセスするために、ユーザは、標準的ブラウザを介して、ネットワークアプリケーションをプロビジョニングするサーバの所定のURLおよび/または対応するウェブページにアクセスすることによって、ネットワークアプリケーションにアクセスするための要求を開始し得る。いくつかの実施形態において、要求は、(例えば、要求のデータ経路内の)指定されるゲートウェイサービスに転送されること、またはそれによって傍受されることができる。例えば、ゲートウェイサービスは、(例えば、実行可能プログラムとして)クライアントデバイス上に常駐することができるか、または、例えば、クラウドサービス408のネットワークデバイス432上に常駐することができる。いくつかの実施形態において、アクセスゲートウェイは、ゲートウェイサービスに対応するか、またはそれを含み得る。ゲートウェイサービスは、要求されるネットワークアプリケーションが認定ネットワークアプリケーションであるかどうかを決定することができる。ゲートウェイサービスは、CEBが要求を開始したかどうかを決定することができる。ゲートウェイサービスは、要求がCEB以外のクライアントデバイス内のソースから開始されている(例えば、標準的ブラウザによって開始されている)ことを検出または別様に決定することができる。いくつかの実施形態において、指定されるゲートウェイサービスが、要求がCEBから開始されたかどうか、例えば、要求されるネットワークアプリケーションが認定されているかどうか、ユーザが標準的ブラウザを介して要求を開始していること、および/または、所定のURLおよび/または対応するウェブページがアクセスされていることを検出または決定するための要件は、存在しない。
動作(2)時、サーバは、クラウドサービス408のアクセスゲートウェイを介して、ユーザを認証し得る。サーバは、要求に応答して、アクセスゲートウェイと通信し、ユーザを認証し得る。例えば、要求は、アクセスゲートウェイと通信し、ユーザを認証するためのサーバへの指示を含むことができる。いくつかの実施形態において、サーバは、認定ネットワークアプリケーションにアクセスするための要求のために、アクセスゲートウェイと通信し、ユーザを認証するように事前に構成される。サーバは、要求をアクセスゲートウェイに送信し、ユーザを認証し得る。ユーザを認証するためのサーバの要求に応答して、アクセスゲートウェイは、ユーザの証明情報をサーバ430に提供することができる。
動作(3)時、ゲートウェイサービスおよび/またはサーバは、セキュアブラウジングサービスを提供するセキュアブラウザ420に全てのトラフィックを向けること(または向け直すこと)ができる。これは、要求されるネットワークアプリケーションが認定ネットワークアプリケーションであることの決定、要求がCEB以外のソースから開始されることの決定、要求されるネットワークアプリケーションが認定されていることの決定、ユーザが標準的ブラウザを介して要求を開始することの決定、および/または所定のURLおよび/または対応するウェブページがアクセスされていることの決定のうちの少なくとも1つに応答したものであり得る。
ユーザのURLセッションは、セキュアブラウザに向け直されることができる。例えば、サーバ、ゲートウェイサービス、および/またはアクセスゲートウェイは、決定に応答して、URLリダイレクトメッセージを発生させ、および/または標準的ブラウザに送信することができる。標準的ブラウザのセキュアブラウザプラグインは、URLリダイレクトメッセージを受信することができ、例えば、非認定ネットワークアプリケーションにアクセスするための要求をセキュアブラウザ420に送信することができる。セキュアブラウザ420は、要求を非認定ネットワークアプリケーションのサーバに向けることができる。URLリダイレクトメッセージは、標準的ブラウザ(および/またはセキュアブラウザプラグイン)に、(例えば、ネットワークアプリケーションに向けられる)トラフィックを標準的ブラウザからネットワークデバイス上にホストされたセキュアブラウザ420に向けるように命令することができる。これは、セキュアブラウザサービスを通した動的ルーティングを介して、クライアントレスアクセスおよび制御を提供することができる。いくつかの実施形態において、セキュアブラウザ420への全てのトラフィックの向け直しは、(例えば、SSOを使用した)サーバとのユーザの認証を実施することに先立って、開始または構成される。
いくつかの実施形態において、ゲートウェイサービスは、要求されるネットワークアプリケーションのサーバに、セキュアブラウザ420と通信するように指示または要求することができる。例えば、ゲートウェイサービスは、サーバおよび/またはセキュアブラウザに、ネットワークアプリケーションのためのアプリケーションセッションを確立するために、サーバとセキュアブラウザとの間にセキュア化された接続を確立するように指示することができる。
いくつかの実施形態において、セキュア化されたブラウザ420は、クラウドサービス408のネットワークデバイス432上にホストされるブラウザを備えている。セキュア化されたブラウザ420は、例えば、少なくとも図4に関連して上で説明されるセキュア化されたブラウザ420の1つ以上の特徴を含むことができる。ホストされたブラウザは、クライアントデバイス上の代わりに、ネットワークデバイス432上にホストされるCEBの内蔵ブラウザを含むことができる。ホストされたブラウザは、ネットワークデバイス432上にホストされるCEBのホストされた仮想化バージョンの内蔵ブラウザを含むことができる。クライアントデバイス上にインストールされるCEBと同様、トラフィックは、ネットワークデバイス上にホストされたCEBを通してルーティングされ、それは、管理者が、CEBを通してトラフィックの可視性を有し、セキュリティポリシ制御、分析、および/または性能の管理のための制御を保つことを可能にする。
図6は、セキュアブラウザプラグインを使用したブラウザリダイレクトのための例示的実装を図示する。概要として、実装は、クライアントデバイス上で動作するセキュアブラウザプラグイン516を伴うウェブブラウザ512と、ネットワークデバイス上に常駐するホストされたウェブブラウザ(またはセキュアブラウザ)522とを含む。ウェブブラウザ512は、例えば、図4に関連して上で議論されるような内蔵ブラウザの代わりに、標準的ブラウザに対応し得る。セキュアブラウザプラグイン516は、第1のネットワーク510内で実行され、第2のネットワーク530内のサーバ430にアクセスすることができる。第1のネットワーク510および第2のネットワーク530は、例証目的のためのものであり、より少ないまたは追加のコンピュータネットワークと置換され得る。セキュアブラウザプラグイン516は、標準的ブラウザ512上にインストールされることができる。プラグインは、1つ以上のコンポーネントを含むことができる。1つのそのようなコンポーネントは、標準的ブラウザの中にロードし、その中で実行されることが可能なActive X制御またはJava(登録商標)制御または任意の他のタイプおよび/または形態の実行可能命令を含むことができる。例えば、標準的ブラウザは、セキュアブラウザプラグイン516のActive X制御を標準的ブラウザのメモリ空間またはコンテキスト内にロードし、起動することができる。いくつかの実施形態において、セキュアブラウザプラグインは、拡張として標準的ブラウザ上にインストールされることができ、ユーザは、プラグインまたは拡張を有効にまたは無効にするように選定することができる。セキュアブラウザプラグインは、デジタル作業空間のセキュア化された部分内のリソースをセキュア化し、それを使用し、および/またはそれにアクセスするために、セキュア化されたブラウザ420と通信および/または動作することができる。
標準的ブラウザ512内で動作するセキュアブラウザプラグイン516を使用することによって、標準的ブラウザ512を介してアクセスされるネットワークアプリケーションは、ホストされたセキュアブラウザに向け直されることができる。例えば、セキュアブラウザプラグイン516は、ネットワークアプリケーションが標準的ブラウザを介してアクセスされていることを検出するように実装および/または設計されることができ、トラフィックをネットワークアプリケーションに関連付けられたクライアントデバイスからホストされたセキュアブラウザに向けること/向け直すことができる。ホストされたセキュアブラウザは、例えば、レンダリングおよび/または表示のために、ネットワークアプリケーションから受信されたトラフィックをセキュアブラウザプラグイン516および/またはクライアントエージェント514に向けることができる。クライアントエージェント514は、ウェブブラウザ512および/またはセキュアブラウザプラグイン内で実行されることができ、例えば、少なくとも図4に関連して上で議論されるクライアントアプリケーション404のある要素または特徴を含むことができる。例えば、クライアントエージェント514は、ネットワークアプリケーションをウェブブラウザ512においてレンダリングするために、遠隔セッションエージェント416を含むことができる。いくつかの実施形態において、ネットワークアプリケーションは、ホストされたセキュアブラウザにおいてレンダリングされ、レンダリングされたデータは、処理および/または表示のために、セキュアブラウザプラグイン516および/またはクライアントエージェント514に伝達またはミラーリングされる。
例として、ユーザは、遠隔で作業していることもあり、ユーザが非セキュアネットワークに接続されるコンピューティングデバイス上で作業している間、セキュア企業ネットワークの内部のネットワークアプリケーションにアクセスすることを欲し得る。この場合、ユーザは、第1のネットワーク510内で実行される標準的ブラウザ512を利用していることもあり、第1のネットワーク510は、非セキュアネットワークを備え得る。
ユーザがアクセスすることを欲するサーバ430は、第2のネットワーク530にあり得、第2のネットワーク530は、セキュア企業ネットワークを備えている。ユーザは、セキュアウェブサイト532のための内部ユニフォームレコードロケータ(URL)をクリックすることによって、非セキュアな第1のネットワーク510からサーバ430にアクセスすることが可能でないこともある。すなわち、ユーザは、外部非セキュアネットワーク510から標準的ブラウザ512を実行している間、異なるURL(例えば、外部URL)を利用する必要があり得る。外部URLは、第2のネットワーク530(例えば、セキュアネットワーク)内のサーバ430にアクセスするように構成された1つ以上のホストされたウェブブラウザ522に向けられ得るか、または、それにアドレスし得る。セキュアアクセスを維持するために、セキュアブラウザプラグイン516は、ホストされたセキュアブラウザのために、内部URLを外部URLに向け直し得る。
セキュアブラウザプラグイン516は、内部URLを外部URLに向け直すべきかどうかを識別するために、ネットワーク検出を実装することが可能であり得る。標準的ブラウザ512は、セキュアネットワーク内で実行されるウェブサイトのための内部URLを備えている要求を受信し得る。例えば、標準的ブラウザ512は、ユーザが(例えば、セキュアウェブサイト532のための)標準的ブラウザ内のウェブアドレスを入力することに応答して、要求を受信し得る。セキュアブラウザプラグイン516は、ホストされたウェブブラウザアプリケーションのために、ユーザウェブブラウザアプリケーション512を内部URLから外部URLに向け直し得る。例えば、セキュアブラウザプラグイン516は、セキュアネットワーク530内で実行されるホストされたウェブブラウザアプリケーション522のために、内部URLと外部URLを置換し得る。
セキュアブラウザプラグイン516は、クライアントエージェント514がホストされたウェブブラウザアプリケーション522に接続されることを可能にし得る。クライアントエージェント514は、標準的ブラウザ512の中にロードし、その中で実行されることが可能なActive X制御またはJava(登録商標)制御または任意の他のタイプおよび/または形態の実行可能命令等のプラグインコンポーネントを備え得る。例えば、クライアントエージェント514は、ユーザウェブブラウザアプリケーション512のメモリ空間またはコンテキスト等内にロードされ、標準的ブラウザ512によって起動されるActive X制御を備え得る。クライアントエージェント514は、ユーザウェブブラウザアプリケーション512内のホストされたウェブブラウザアプリケーション522のコンテンツを提示するように事前に構成され得る。
クライアントエージェント514は、シンクライアントまたは遠隔ディスプレイプロトコルを使用して、サーバまたはクラウド/ホストされたウェブブラウザサービス520に接続し、サービス520上で実行されるホストされたウェブブラウザアプリケーション522によって発生させられたディスプレイ出力を提示し得る。シンクライアントまたは遠隔ディスプレイプロトコルは、プロトコルの以下の非包括的リスト、すなわち、Citrixシステム,Inc.(Ft. Lauderdale,Fla.)によって開発された独立コンピューティングアーキテクチャ(ICA)プロトコルまたはMicrosoft Corporation(Redmond,Wash)によって製造された遠隔デスクトッププロトコル(RDP)のうちの任意の1つであることができる。
ホストされたウェブブラウザアプリケーション522は、要求されるネットワークアプリケーションにフルスクリーンモードでナビゲートし得、要求されるネットワークアプリケーションをレンダリングすることができる。クライアントエージェント514は、例えば、コンテンツがフルスクリーンモードで表示されていることに基づいて、コンテンツが標準的ブラウザ512によって表示されているように現れるように、シームレスかつ透明様式において、ネットワークアプリケーションのコンテンツまたはレンディションをウェブブラウザアプリケーション512上に提示し得る。換言すると、ユーザは、ウェブサイトコンテンツが、ホストされたウェブブラウザアプリケーション522によってではなく、ユーザウェブブラウザアプリケーション512によって表示されているという印象を与えられ得る。クライアントエージェント514は、シンクライアントまたは遠隔ディスプレイプロトコルを使用して、ユーザウェブブラウザアプリケーション512によって発生させられたナビゲーションコマンドをホストされたウェブブラウザアプリケーション522に伝送し得る。ホストされたウェブブラウザアプリケーション522のディスプレイ出力の変化は、ナビゲーションコマンドに起因して、クライアントエージェント514によってユーザウェブブラウザアプリケーション512内に反映され、ナビゲーションコマンドがユーザウェブブラウザアプリケーション512によって実行されたという印象をユーザに与え得る。
再び図5を参照すると、動作(4)時、新しいブラウザタブが、標準的ブラウザ上に開かれ、セキュアブラウザセッションをレンダリングまたは表示することができる。新しいブラウザタブは、例えば、セキュアブラウザプラグインによって、確立され、または開かれることができる。セキュアブラウザプラグインおよび/またはクライアントエージェントは、例えば、図6に関連して上で議論されるように、データをセキュアブラウザセッションから受信することができ、ネットワークアプリケーションを新しいブラウザタブ内にレンダリングすることができる。
動作(5)時、セキュアブラウザは、処理するために、ネットワークアプリケーションを介した全てのユーザ相互作用イベントを分析サービスにフィードバックすることができる。セキュアブラウザプラグインは、ブラウザタブ内のネットワークアプリケーションのレンディションに向けられる任意のユーザ相互作用イベントを監視および傍受することができる。故に、ユーザは、(クライアントアプリケーションの不在下)クラウドサービスおよびセキュアブラウザの相互運用性を介して、ネットワークアプリケーションのトラフィックへの可視性を可能にしながら、ネイティブ(または標準的)ブラウザを使用して、ネットワークアプリケーションにアクセスすることができる。
図7は、セキュアブラウザを使用するシステムの別の例示的実施形態を描写する。概要として、システムは、クラウドサービス408と、ネットワークアプリケーション406と、クライアントデバイス402とを含む。いくつかの実施形態において、システムの種々の要素は、図5に関して上で説明されるものに類似する。内蔵ブラウザを伴うクライアントアプリケーションは、クライアントデバイス402内で利用可能ではない。標準的または典型的(例えば、HTML5)ブラウザが、クライアントデバイス上で利用可能であり、それから、ユーザは、非認定ネットワークアプリケーションにアクセスするための要求を開始することができる。ネットワークアプリケーションは、管理者によって、または自動的に(例えば、人工知能を介して)設定され得るポリシを介して、認定または非認定として規定されることができる。
動作(1)時、ユーザは、標準的ブラウザを使用して、非認定ネットワークアプリケーションにログインしようと試み得る。ユーザは、ネットワークアプリケーションをプロビジョニングするサーバのウェブページにアクセスし、ネットワークアプリケーションにアクセスするための要求を開始しようと試み得る。いくつかの実施形態において、要求は、(例えば、要求のデータ経路内の)指定されるゲートウェイサービスに転送されるか、または、それによって傍受されることができる。例えば、ゲートウェイサービス(時として、SWGとも称される)は、(例えば、実行可能プログラムとして)クライアントデバイス上に常駐することができるか、または、例えば、クラウドサービス408のネットワークデバイス432上に常駐することができる。ゲートウェイサービスは、要求されるネットワークアプリケーションが認定ネットワークアプリケーションであるかどうかを検出または別様に決定することができる。ゲートウェイサービスは、CEBが要求を開始したかどうかを決定することができる。ゲートウェイサービスは、要求がCEB以外のクライアントデバイス内のソースから開始された(例えば、標準的ブラウザによって開始された)ことを検出または別様に決定することができる。
動作(2)時、ゲートウェイサービスは、要求されるネットワークアプリケーションが非認定ネットワークアプリケーションであることを検出する。ゲートウェイサービスは、例えば、情報(例えば、目的地アドレス、要求されるネットワークアプリケーションの名称)を要求から抽出し、情報を認定および/または非認定ネットワークアプリケーションのデータベースからのそれと比較することができる。ゲートウェイサービスは、比較に基づいて、要求されるネットワークアプリケーションが非認定ネットワークアプリケーションであることを決定することができる。
動作(3)時、決定に応答して、ゲートウェイサービスは、例えば、要求をブロックすることによって、要求されるネットワークアプリケーションへのアクセスをブロックすることができる。ゲートウェイサービスは、決定に応答して、URLリダイレクトメッセージを発生させ、および/または、それを標準的ブラウザに送信することができる。URLリダイレクトメッセージは、動作(3)時、図5におけるサーバから標準的ブラウザに送信されるURLリダイレクトメッセージに類似することができる。標準的ブラウザのセキュアブラウザプラグインは、URLリダイレクトメッセージを受信することができ、例えば、非認定ネットワークアプリケーションにアクセスするための要求をセキュアブラウザ420に送信することができる。セキュアブラウザ420は、要求を非認定ネットワークアプリケーションのサーバに向けることができる。
非認定ネットワークアプリケーションのサーバは、例えば、セキュアブラウザからの要求の受信に応答して、クラウドサービス408のアクセスゲートウェイを介して、ユーザを認証し得る。サーバは、要求に応答して、アクセスゲートウェイと通信し、ユーザを認証し得る。サーバは、要求をアクセスゲートウェイに送信し、ユーザを認証し得る。ユーザを認証するためのサーバの要求に応答して、アクセスゲートウェイは、ユーザの証明情報をサーバ430に提供することができる。認証時、セキュアブラウザ(または対応するCEB)は、セキュア化された接続およびアプリケーションセッションをサーバと確立することができる。
動作(4)時、新しいブラウザタブが、標準的ブラウザ上に開かれ、セキュアブラウザのアプリケーションセッションをレンダリングまたは表示することができる。新しいブラウザタブは、例えば、セキュアブラウザプラグインによって、確立され、または開かれることができる。セキュアブラウザプラグインおよび/またはクライアントエージェントは、データをセキュアブラウザセッションから受信することができ、例えば、図5-6に関連して上で議論されるように、ネットワークアプリケーションを新しいブラウザタブ内にレンダリングすることができる。
動作(5)時、セキュアブラウザは、処理のために、ネットワークアプリケーションを介した全てのユーザ相互作用イベントを分析サービスにフィードバックすることができる。セキュアブラウザプラグインは、ブラウザタブ内のネットワークアプリケーションのレンディションに向けられる任意のユーザ相互作用イベントを監視および傍受することができる。故に、ユーザは、(クライアントアプリケーションの不在下)クラウドサービスおよびセキュアブラウザの相互運用性を介して、ネットワークアプリケーションのトラフィックへの可視性を可能にしながら、ネイティブ(または標準的)ブラウザを使用して、ネットワークアプリケーションにアクセスすることができる。
いくつかの実施形態において、クライアントデバイス上にCEBがない場合、またはそれが利用可能でない場合、ブラウザ向け直しは、各要求されるネットワークアプリケーションが、全てのトラフィックを単一のホストされたセキュアブラウザ(またはホストされたCEB)を通して向け直す代わりに、ハンドリングするために、対応するホストされたセキュアブラウザ(またはホストされたCEB)を介してアクセスされるように実施される。各専用セキュアブラウザは、区分けおよび改良されたセキュリティを提供することができる。
CEBの使用は、ホストされているか、クライアントデバイスにローカルであるかどうかにかかわらず、分析、サービス水準合意(SLA)、リソース利用、監査等のために、アプリケーショントラフィックのエンドツーエンド可視性を可能にすることができる。そのような可視性に加え、CEBは、これらのおよび他の側面のいずれかを管理および制御するためのポリシで構成されることができる。例えば、DLP特徴が、サポートされ、「コピーおよびペースト」アクティビティ、ファイルのダウンロード、ファイルの共有を制御し、例えば、電子透かしを実装することができる。別の例として、CEBは、周辺機器等のローカルドライブおよび/またはデバイスリソースへのアクセスを管理および制御するためのポリシで構成されることができる。
ここで図8を参照すると、ローカル内蔵ブラウザおよびホストされたセキュア化されたブラウザを使用するためのシステムの例示的実施形態が、描写される。異なるタイプのクライアントデバイス402A、402Bが使用され得る環境が(例えば、BYODコンテキストにおいて)が、示され、一方が、好適なCEBをローカルで装備し得、別のクライアントデバイスが、インストールされた好適なローカルCEBを有しないこともある。そのような環境において、図4、5、および7に説明されるシステムは、ローカルでインストールされた好適なCEBの利用可能性に基づいて、クライアントデバイスの各々をサポートするために使用されることができる。
図9は、ローカル内蔵ブラウザおよびホストされたセキュア化されたブラウザを使用するための例示的プロセスフローを描写する。プロセスフローは、ネットワークアプリケーションにアクセスするために各クライアントデバイスのために、内蔵ブラウザが使用されるべきか、ホストされたセキュア化されたブラウザが使用されるべきかを決定するために、図8において上で説明される環境内で使用されることができる。例えば、動作901において、HTTPクライアントは、ウェブサービス(例えば、ネットワークアプリケーションのサーバ)にアクセスするように試みることができる。動作903において、ウェブサービスは、認証のために、HTTPクライアントをゲートウェイサービスに向け直すことができる。動作905において、ゲートウェイサービスは、HTTPクライアントがCEBであるかどうかを決定することができる。該当する場合、動作909において、ゲートウェイサービスは、CEBが、例えば、定義されたアプリケーションポリシを施行することが可能な好適なCEBであるかどうかを決定することができる。該当する場合、動作911において、CEBは、ウェブサービスにアクセスすることを可能にされ、定義されたポリシを施行することができる。
ゲートウェイサービスが、HTTPクライアントがCEBではないことを決定する場合、ゲートウェイサービスは、動作907において、CEBの仮想化されたバージョンが初期化され、遠隔サーバ(例えば、クラウドサービス408のネットワークデバイス432)上にホストされるようにすることができる。いくつかの実施形態において、そのようなホストされたCEBは、ネットワークデバイス432上ですでに利用可能であり得、使用のために選択されることができる。例えば、動作911時、CEBは、ウェブサービスにアクセスすることを可能にされ、定義されたポリシを施行することができる。
ゲートウェイサービスが、HTTPクライアントがCEBであるが、CEBが好適なCEBではないことを決定する場合、ゲートウェイサービスは、動作907において、CEBの仮想化されたバージョンが初期化され、遠隔サーバ(例えば、クラウドサービス408のネットワークデバイス432)上にホストされるようにすることができる。いくつかの実施形態において、そのようなホストされたCEBは、ネットワークデバイス432上ですでに利用可能であり得、使用のために選択されることができる。例えば、動作911において、CEBは、ウェブサービスにアクセスすることを可能にされ、定義されたポリシを施行することができる。
いくつかの実施形態において、ユーザは、企業データセンタ内に位置するウェブアプリケーションへのアクセスを要求する場合、(クラウドサービス内または敷地上の)ゲートウェイサービスは、CEBを伴うクライアントアプリケーションが検出されると、アクセスを可能にすることができる。そうでなければ、要求は、CEBのホストされた仮想化されたバージョンを伴うサービスにルーティングされることができ、次いで、アクセスが、認証および許可される。
例えば、動作905および/または動作909において、HTTPクライアントがCEBであるかどうかおよび好適なCEBであるかどうかに関して行われる決定が、いくつかの要因によって決定され得る。例えば、HTTPクライアントがCEBであるかどうかを決定するために、ゲートウェイサービスは、例えば、ユーザ識別および認証の強度、クライアント場所、クライアントIPアドレス、ユーザ識別、クライアント場所、クライアントIPの信頼性、クライアントデバイスのジェイルブレイクステータス、マルウェア対策ソフトウェアのステータス、クライアントデバイスのコーポレートポリシへの準拠、および/またはクライアントソフトウェアの完全性の遠隔証明または他の証拠のうちの少なくとも1つを含む要因を考慮し得る。
CEBが、全ての定義されたアプリケーションポリシ(クライアントバージョン、クライアントOSプラットフォーム、および他の要因によって変動し得る)を守ること、またはサポートすることが可能であるかどうかを決定するために、クライアントデバイスのソフトウェアおよびゲートウェイサービスは、能力ネゴシエーションおよび/または交換バージョン情報を実施し得る。いくつかの実施形態において、ゲートウェイサービスは、CEBのバージョン番号または識別子をクエリまたはチェックし、CEBが使用するために好適なCEBであるかどうかを決定することができる。
全てのトラフィックをCEBを通して駆動することは、次いで、SaaSおよびウェブベースのシステムにアクセスするコンテンツの追加の制御を可能にする。SaaSおよびウェブトラフィックのデータ損失防止(DLP)が、他のCEBアクセスアプリケーションまたはIT管理されているデバイスへのコピーおよびペースト制御を含む特徴とともに、CEBアプリを通して適用されることができる。DLPは、コンテンツがIT制御下の指定されるファイルサーバまたはサービスにのみダウンロードされることを有効にすることによって、施行されることができる。
ここで図10を参照すると、ウェブページへのユーザアクセスを管理するためのシステムの例示的実施形態が、描写されている。いくつかのウェブページ(またはウェブサイト)は、安全であることが把握されているが、その他は、疑わしいこともある。ユーザは、標準的ブラウザを通して、対応するURLを介して、ウェブページにアクセスし得る。例えば、ユーザは、メールアプリケーションを使用して閲覧されている電子メール内に含まれ得るURLに対応するリンクをクリックし得る。アクセスゲートウェイ(SWG)は、リンクのクリックによって発生させられたアクセス要求を傍受し得、対応するURLが安全であるか、疑わしいかを決定することができる。URLが、安全であることが把握される場合、アクセスゲートウェイは、対応するウェブサイトまたはウェブサーバに進むための要求を可能にすることができる。URLが、疑わしい場合、アクセスゲートウェイは、ホストされたセキュアブラウザを介してハンドリングされるように要求を向け直すことができる。セキュアブラウザは、少なくとも図7および5に関連して議論されるようなブラウザリダイレクトを介したネットワークアプリケーションのハンドリングと同様、ウェブページ(標準的ブラウザの代わりに)へのアクセスを要求し、それにアクセスすることができ、ウェブページ情報が標準的ブラウザに伝達されることを可能にすることができる。
(C.ネットワークアプリケーションを配信するためのシステムおよび方法)
本開示は、ネットワークアプリケーションを配信するためのシステムおよび方法を対象とする。中間デバイス(時として、本明細書において、NetScalerデバイスまたはネットワークアプライアンスとも称される)は、HDXエンジン(本明細書において、遠隔セッションエージェントとも称される)を含み得る。遠隔セッションエージェントは、ホストされたアプリケーションまたはデスクトップをクライアントデバイスにプロビジョニングするために、システムオンチップ(または中間デバイスの他のプロセッサまたはコンピューティングデバイス)を使用して、中間デバイスにおいて、遠隔セッショントラフィックを処理し得る。この点について、受信機アプリケーション(本明細書において、クライアントアプリケーションとも称される)は、処理された遠隔セッショントラフィックを受信およびレンダリングすることができ、クライアントデバイスにおけるレンダリングに先立って、処理された遠隔セッショントラフィックをさらに処理またはデコーディングする必要がないこともある。同様に、ウェブ、遠隔でホストされた、またはSaaSアプリケーションを介して提供されるコンテンツも、中間デバイスにおいて処理またはデコーディングされ得る。例えば、処理されたコンテンツは、ビットマップデータ、未加工オーディオデータ、カスケードスタイルシート(CSS)ファイル(または類似ファイル)等に対応し得る。ビットマップデータ、未加工オーディオデータ、CSSファイル等は、レンダリングのために、中間デバイスからクライアントデバイスに伝送され得る(例えば、さらなる処理またはデコーディングを伴わずに)。
いくつかのインスタンスにおいて、クライアントデバイスは、広域ネットワーク(WAN)を介して、中間デバイスに接続され得る。中間デバイスは、ローカルエリアネットワーク(LAN)を介して、サーバにも接続され得る。トラフィックを中間デバイスからクライアントデバイスに伝達することにおけるさらなる距離および/または複雑性に起因して、ユーザによって体験されるようなクライアントデバイスに遠隔でプロビジョニングされるネットワークアプリケーションの性能を管理または改良するために、多くのトラフィック処理がクライアントデバイスにおいて実施される。例えば、クライアントデバイスは、種々の遠隔でホストされたアプリケーションセッショントラフィックおよびウェブトラフィックをデコーディングおよびレンダリングし得る。クライアントデバイスへの大きな処理負荷および手間のかかる作業に起因して、ネイティブまたはクライアントデバイス上にホストされ得るアプリケーションは、低減させられた性能を体験し得る。クライアント側処理は、異なるタイプまたは形態のクライアントデバイスの特定の処理能力に依存し、異なるクライアントデバイスにわたる一貫がないまたは変動する性能およびユーザ体験につながる(例えば、同一ネットワークアプリケーションに関して)。例として、ユーザ体験は、異なるプラットフォームおよびブラウザさえ横断して大きく変動し得る(例えば、ウェブアプリケーションに関して)。
コンピューティングシステムが、クラウドベースのコンピューティングシステムに移動させられると、前述の構成は、逆転され得る(例えば、クライアントデバイスと中間デバイスとの間のLAN接続および中間デバイスとサーバとの間のWAN接続を有するために)。いくつかのインスタンスにおいて、中間デバイスは、敷地(例えば、クライアントデバイスの近くまたはそれと同一場所)上に位置し得、仮想配信エージェント(VDA)は、クラウド内にある。これらのインスタンスにおいて、本システムおよび方法の実施形態は、最適化の必要性が中間デバイスとVDAとの間でより大きいので、処理が中間デバイスにおいて実施されることを可能にする。(遠隔でホストされたセッショントラフィックおよびウェブエンコーディングされたデータの)処理が、中間デバイスにオフロードされることで、中間デバイスは、殆どまたは全くさらなる処理を伴わずに、最終レンダリングのために、処理されたデータ/トラフィックをクライアントデバイスに通信することができる。
本明細書に説明される実施形態によると、ネットワークデバイス(例えば、ネットワークプリンタ)は、要求(例えば、印刷ジョブ)を中間デバイスから受信し得、それは、現在の設計および実装に従って容易に遂行されない。例えば、ネットワークアプリケーションデータのトラフィックを中間デバイスにおいてローカルで処理またはデコーディングした中間デバイスは、印刷のために、デコーディングされたデータを直接ネットワークプリンタに伝達することができる(例えば、ネットワークプリンタにおけるさらなるデコーディングまたは処理を伴わずに)。対照的に、(例えば、ネットワークアプリケーションをホストする)ホストサーバに常駐するVDAは、印刷のために、エンコーディングされたトラフィック(ネットワークアプリケーションから)をネットワークプリンタに向けることができないこともある。
さらに、グラフィックデコーディング能力は、中間デバイス上に一元化されると、より一貫し、中間デバイスが、レンダリングのために、デコーディングをハンドリングし、最終出力をクライアントデバイスに提供するので、クライアントデバイスプラットフォームにわたって殆ど影響を受けないこともある。例えば、オーディオおよびグラフィックデコーディングおよび/または最適化(時として、レンダリング)は、中間デバイスにおいて実施され得、未加工(または最適化されたより良好な品質の)オーディオおよびグラフィックが、レンダリングのために、クライアントデバイスに送信されることができる。この点について、ユーザは、プラットフォームおよびクライアントデバイスのタイプに関係なく、より良好なまたはより一貫したオーディオ/グラフィック体験を提供される。中間デバイスは、セキュアブラウザをホストまたは実行することもでき、それは、例えば、ウェブまたはSaaSアプリケーションのためのセキュアブラウザサービスを提供する。したがって、そうでなければユーザが他の実装および構成へのアクセスを有しないこともある潜在的に非セキュアコンテンツは、セキュアブラウザサービスを介して、ユーザに提供され得る。いくつかの実施形態において、中間デバイスは、ユーザがアクセスを1つのクライアントデバイスから別のクライアントデバイスに切り替えるとき、および/または、ユーザがネットワークアプリケーションの同じセッションから接続解除し、同じセッションに再接続するとき、クライアントデバイスによってアクセスされるネットワークアプリケーションのセッション状態を維持し得る。
図11を参照すると、ネットワークアプリケーションを配信するためのシステム1100の一実施形態のブロック図が、描写されている。システム1100は、1つ以上のネットワークアプリケーション1108をホストする1つ以上のサーバ1102と、クライアントアプリケーション1116を実行するクライアントデバイス1104と、サーバ1102とクライアントデバイス1104との間に位置する中間デバイス1106とを含み得る。中間デバイス1106は、サーバ1102と中間デバイス1106との間の接続を確立するためのネットワーキングエージェント1110を含むことができる。中間デバイス1106は、サーバ1102上にホストされたネットワークアプリケーション1108と中間デバイス1106との間でデータを交換するための遠隔セッションエージェント1112を含むことができる。いくつかのインスタンスにおいて、ネットワークアプリケーション1108からのデータは、エンコーディングされ得る。中間デバイス1106は、サーバ1102を実行するまたは別様にその上にホストされるネットワークアプリケーション1108からのエンコーディングされたアプリケーションデータをデコーディングし得るシステムオンチップ(SoC)1114を含むことができる。ネットワーキングエージェント1110は、クライアントデバイス1104との接続を確立し得る。遠隔セッションエージェント1112は、クライアントアプリケーション1116内でのレンダリングのために、デコーディングされたデータをクライアントデバイス1104に通信し得る。クライアントデバイス1104は、クライアントデバイス1104における(またはその上/その中での)さらなる処理を伴わずに、デコーディングされたデータをレンダリングし得る。
上で述べられた要素またはエンティティの各々は、1つ以上の実施形態において、ハードウェアまたはハードウェアおよびソフトウェアの組み合わせ内に実装される。システム1100の各コンポーネントは、図1に関連して上で詳述されるハードウェアまたはハードウェアまたはソフトウェアの組み合わせを使用して実装され得る。例えば、これらの要素またはエンティティの各々は、例えば、クライアントデバイス1104、サーバ1102、および/または中間デバイス1106のハードウェア上で実行される任意のアプリケーション、プログラム、ライブラリ、スクリプト、タスク、サービス、プロセス、または任意のタイプおよび形態の実行可能命令を含むことができる。ハードウェアは、1つ以上の実施形態において、1つ以上のプロセッサ等の回路網を含む。
サーバ1102は、1つ以上のネットワークアプリケーション1108を実行、提供、プロビジョニング、および/またはホストし得る。ネットワークアプリケーション1108は、少なくとも図2-5、7、および8に関連して上で説明される任意のタイプまたは形態のネットワークアプリケーション406を含み得る。サーバ1102は、ネットワークアプリケーション1108を記憶し得、通信インターフェース118を介して、システム1100の他の種々のコンポーネントと通信し得る揮発性メモリ122または不揮発性メモリ128(例えば、図1に議論される)の任意の実施形態を含み得る。故に、サーバ1102は、いくつかの側面において、図1を参照して説明されるコンピュータ101に類似し得る。ネットワークアプリケーション1108は、中間デバイス1106を介してプロビジョニングされるネットワークアプリケーションの遠隔でホストされたセッションを介して、クライアントデバイス1104によってアクセスされ得る。
ネットワーキングエージェント1110は、サーバ1102と中間デバイス1106との間のネットワーク接続を確立し得る。いくつかの実施形態において、ネットワーキングエージェント1110は、図4および8を参照して上で説明されるネットワーキングエージェント412の実施形態の1つ以上の要素を含み得る。クライアントデバイス1104は、ネットワークアプリケーション1110からの情報をレンダリングし得る(例えば、図1に描写されるコンピューティングコンポーネントのうちの1つ以上のものを介して)クライアントアプリケーション1116を実行し得る。クライアントデバイス1104は、いくつかの側面において、図4、5、7、および8を参照して説明される、クライアントデバイス402に類似し得る。中間デバイス1106の遠隔セッションエージェント1112は、サーバ1102上/にホストされたネットワークアプリケーション1108からアプリケーションデータを受信/読み出し得る。中間デバイス1106は、SoC1114を含み得る。SoC1114は、下で議論されるように、クライアントアプリケーション1112を介して、クライアントデバイス1104上にレンダリングされたネットワークアプリケーション1108からのデータをデコーディングするように構成され得る。ネットワーキングエージェント1110および遠隔セッションエージェント1112は、中間デバイス1106内に表されるが、いくつかの実施形態において、ネットワーキングエージェント1110および/または遠隔セッションエージェント1112は、サーバ1102に位置し得ることに留意されたい。いくつかの実施形態において、システム1110は、サーバ1102と中間デバイス1106との間のネットワーク接続に対応する、ネットワーキングエージェントおよび遠隔セッションエージェントと、中間デバイス1106とクライアントデバイス1104との間のネットワーク接続に対応する、ネットワーキングエージェントおよび遠隔セッションエージェントとを含み得る。
いくつかの実施形態において、クライアントアプリケーション1112は、少なくとも図4および8に関連して上で説明されるクライアントアプリケーション404の任意の実施形態の1つ以上の要素を含み得る。いくつかの実施形態において、クライアントアプリケーション1112は、内蔵ブラウザを含み得る。内蔵ブラウザを伴うクライアントアプリケーション1112(CEB)は、少なくとも図4および8に関連して以前に上で説明されるようなCEBの任意の要素または実施形態を含むことができる。いくつかの実施形態において、クライアントアプリケーション1112は、ユーザによって動作させられるクライアントデバイス1104上で実行され得る。クライアントデバイス1104は、少なくとも図4、5、7、および8に関連して上で説明される、クライアントデバイス402の任意の実施形態の1つ以上の要素を含み得る。
中間デバイス1106は、サーバ1102上のネットワークアプリケーション1108と接続を確立するように設計または実装され得る。いくつかの実施形態において、中間デバイス1106は、ネットワーキングエージェント1110を含み得る。ネットワーキングエージェント1110は、サーバ1102と中間デバイス1106との間の1つ以上の接続を確立、作成、発生、または別様に形成し得る。上で述べられるように、ネットワーキングエージェント1110は、中間デバイス1106に/上/内に位置するように示されるが、いくつかの実施形態において、ネットワーキングエージェント1110は、サーバ1102に/上/内に位置し得る。
ネットワーキングエージェント1110は、時として、SD-WANエージェント、mVPNエージェント、またはマイクロVPNエージェントとも称される。ネットワーキングエージェント1110は、中間デバイス1106とサーバ1102(ネットワークアプリケーション1108をホストおよび/または実行する)との間のネットワーク接続を確立すること、またはその確立を促進することができる。ネットワーキングエージェント1110は、ネットワークアプリケーションにアクセスするために中間デバイス1106(またはクライアントデバイス1104)から要求される接続のためにハンドシェイクを実施することができ、要求される接続を確立することができる。いくつかの実施形態において、ネットワーキングエージェント1110は、セキュアまたは暗号化された接続を確立し得る。例えば、ネットワーキングエージェント1110は、例えば、仮想プライベートネットワーク(VPN)を介して、企業リソース(サービスおよびネットワークアプリケーション1108を含む)に接続し得る。例えば、ネットワーキングエージェント1110は、中間デバイス1106とサーバ1102との間にセキュアソケット層(SSL)VPNを確立することができ、それは、1つ以上のネットワークアプリケーション1108の遠隔配信またはプロビジョニングをサポートすることができる。時として、マイクロVPNまたは特定用途向けVPNとも称されるVPN接続は、例えば、図3に関連して上で議論されるように、特定のネットワークアプリケーション、特定のデバイス、クライアントデバイス上の特定のセキュア化されたエリア等に特定であり得る。そのようなVPN接続は、いくつかの例として、Microsoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、HyperText Transfer Protocol(HTTP)トラフィック、HyperText Transfer Protocol Secure(HTTPS)トラフィックを搬送することができる。
いくつかの実施形態において、ネットワーキングエージェント1110は、サーバ1102とHTTPまたはウェブベースのセッションを形成するように設計または実装され得る。ネットワーキングエージェント1110は、サーバ1102(例えば、サーバ1102のポート)への伝送制御プロトコル(TCP)接続を確立し得る。ネットワーキングエージェント1110は、TCPに従って、HTTPセッション内でサーバ1102と種々のコマンドを交換することができる。いくつかの実施形態において、ネットワーキングエージェント1110は、上で説明されるセキュア接続に類似する様式において、セキュアHTTP(例えば、HTTPS)セッションを確立し得る。
これらの実施形態において、ネットワーキングエージェント1110は、サーバ1102と中間デバイス1106との間のネットワーク接続を形成または確立することができる。いくつかの実施形態において、ネットワーキングエージェント1110は、サーバ1102と中間デバイス1106との間のセキュア接続(例えば、SSL VPN接続)を形成または確立し得る。
中間デバイス1106は、遠隔でホストされたアプリケーションまたはデスクトップセッションに配信するためのプロビジョニングセッションを開始するように設計または実装され得る。中間デバイス1106は、ネットワーキングエージェント1110によって確立されたネットワーク接続内で、またはそれを横断して、プロビジョニングセッションを開始し得る。いくつかの実施形態において、遠隔セッションエージェント1112が、プロビジョニングセッションを開始し得る(例えば、Citrix高品位ユーザ体験(HDX)または独立コンピューティングアーキテクチャ(ICA)プロトコルまたは遠隔デスクトッププロトコル(RDP)を使用して確立され得る)。プロビジョニングセッションおよび/またはネットワーク接続は、アプリケーションデータの1つ以上のタイプ(例えば、オーディオ、グラフィック、メタデータ、プリンタデータ、ディスクデータ、スマートカードデータ等)を中間デバイスに通信するために、複数の仮想チャネルを含むことができる。例えば、いくつかのタイプのアプリケーションデータの各々は、プロビジョニングセッション内の専用仮想チャネルを介して、伝達または通信されることができ、および/または、あるタイプのアプリケーションデータの各々は、1つ以上の仮想チャネルを共有することによって、中間デバイスに伝達または通信されることができる。仮想チャネルは、サーバ側アプリケーションと通信するクライアント側仮想ドライバに対応し、またはそれを含み得る。仮想チャネルは、セキュア接続を提供し、デバイスおよび/またはアプリケーション間で通信することができる。クライアント側において、仮想チャネルは、各々が特定の機能を提供する仮想ドライバに対応し得る。仮想ドライバは、プレゼンテーション層プロトコルレベルで動作することができる。例えば、WinStationプロトコル層によって提供されるチャネルを多重化することによって、任意の所与の時間にアクティブであるこれらのプロトコルのうちのいくつかが存在する。複数の仮想チャネルは、プロビジョニングセッション(例えば、ICA/HDXセッションまたはトラフィックストリーム)内で組み合わせられること、または多重化されることができる。
遠隔セッションエージェント1112は、RDP、アプライアンスリンクプロトコル(ALP)、遠隔フレームバッファ(RFB)プロトコル、およびICAプロトコル等の任意のタイプまたは形態のプロトコルに従って、プロビジョニングセッションを開始し得る。そのようなプロトコルは、サーバ1102上にネイティブにホストされるアプリケーションまたはデスクトップセッション(またはネットワークアプリケーション1108からの他のアプリケーションデータ)のユーザインターフェース(UI)要素が、サーバ1102において発生させられ、例えば、クライアントデバイスにプロビジョニングされることを可能にすることができる。UI要素および他のアプリケーションデータは、そのようなプロトコルを使用して、サーバ1102内でエンコーディングされ、エンコーディングされたアプリケーションデータまたはトラフィックを形成し得、それは、次いで、中間デバイス1106に配信または別様にプロビジョニングされる。故に、サーバ1102は、アプリケーションデータを発生させ、次いで、アプリケーションデータを中間デバイス1106に提供することに先立って、アプリケーションデータをエンコーディングし得る。いくつかの実施形態において、サーバ1102は、アプリケーションデータをエンコーディングされたフォーマットにおいて発生させ得(時として、エンコーディングされたアプリケーションデータとも称される)、それは、中間デバイス1106に提供される。
いくつかの実施形態において、ネットワークアプリケーション1108のうちの少なくとも1つは、遠隔でホストされたデスクトップ、遠隔でホストされたアプリケーション、またはサービスとしてのソフトウェア(SaaS)アプリケーションに対応し得る。遠隔でホストされたデスクトップは、サーバ1102上にホストされた仮想デスクトップであり得、それは、クライアントデバイス1104によってアクセスされ、またはそれに対して遠隔でプロビジョニングされる。いくつかの実施形態において、遠隔でホストされたデスクトップの配信は、上で説明されるように、HDXベース、ICAベース、RDPベース等のセッションおよび/または接続を介したものであり得る。遠隔でホストされたアプリケーションは、遠隔でホストされたデスクトップ環境上/内にインストールされ、したがって、遠隔でホストされたデスクトップ内でアクセス可能であるアプリケーションであり得る。SaaSアプリケーションは、中央にホストされたアプリケーションであり、それは、典型的に、サブスクリプションベースでアクセス可能である。いくつかの実施形態において、SaaSアプリケーションは、ウェブベースのアプリケーションであり得る。他の実施形態において、SaaSアプリケーションは、遠隔でホストされたアプリケーションに対応し得、したがって、HDX/ICA/RDPベースのセッションおよび/または接続において配信されることができる。
中間デバイス1106は、ネットワーキングエージェント1110によって確立されたネットワーク接続を介して、ネットワークアプリケーション1108を伝送し、受信し、交換し、または別様にそれと通信するように設計または実装され得る。いくつかの実施形態において、遠隔セッションエージェント1112は、ネットワーキングエージェント1110によって形成されるネットワーク接続を横断して、ネットワークアプリケーション1108と通信し得る。サーバ1102上にホストされたネットワークアプリケーション1108は、(例えば、クライアントアプリケーション1116内への)クライアントデバイス1104におけるレンダリングのために、アプリケーションデータを作成し、発生し、生成し、取り込み、コンパイルし、または別様に形成し得る。アプリケーションデータは、(例えば、クライアントデバイス1104における)ネットワークアプリケーション1108のためのユーザインターフェース(UI)を発生させるために使用可能であり得る(またはそのための情報またはコマンドを含む)。アプリケーションデータは、UIコマンドに対応するデータであり得る。UIコマンドは、UIのウィジェットまたは他の要素を形成するためのコマンド(例えば、サイズ、場所、タイプ、視覚的特性)であり得る。いくつかの実施形態において、アプリケーションデータは、データレート、サービス水準合意等のサーバ1102からの通信の種々のトラフィック特性を調整するための制御または構成トラフィックを含み得る。いくつかの実施形態において、アプリケーションデータは、アプリケーションセッション状態、種々のユーザプロファイル情報、ユーザ発生データ、キャッシュデータ等を含むことができる。いくつかの実施形態において、アプリケーションデータは、グラフィックおよび/またはオーディオデータを含み得る。いくつかの実施形態において、アプリケーションデータは、ネットワークデバイス命令を含み得る。
いくつかの実施形態において、ネットワークアプリケーション1108は、アプリケーションデータをエンコーディングされたフォーマットにおいて発生させ得る。エンコーディングされたデータ(encoded data)(またはencode data、encoding data等のその変形例)は、本明細書で使用されるように、データフォーマットまたは構造をデコーディングする能力を有する特定のアプリケーションまたはソフトウェアによってアクセス可能なデータフォーマットまたは構造を指し得る。したがって、エンコーディングされたアプリケーションデータは、「未加工」またはレンダリング可能データ(例えば、デコーディングされたデータ)ではなく、「未加工」またはレンダリング可能データは、そのようなデコーディング能力から独立してレンダリングまたはアクセスされ得る。むしろ、エンコーディングされたアプリケーションデータは、デバイスまたはエンドポイントにおいてレンダリング可能となることに先立って、デコーディングされるべきである。いくつかの実施形態において、ネットワークアプリケーション1108は、アプリケーションデータをネットワークアプリケーション特有ソフトウェアによってアクセス可能なフォーマットでエンコーディングし得る。例えば、アプリケーションデータは、次いで、ネットワークアプリケーションのためのユーザインターフェースとしてレンダリングされ得るカスケードスタイルシート(CSS)ファイルにデコーディングされる、エンコーディングされたフォーマットであり得る。
エンコーディングされたデータの他の種々の例および/またはタイプは、圧縮されたグラフィック、画像、またはビデオデータ(コーデック)、圧縮されたオーディオデータ等を含むことができる。エンコーディングされたアプリケーションデータは、例えば、Audio-Video Interleave(AVI)、Flash Video Format(FLV)、Windows(登録商標) Media Video(WMV)、Apple QuickTime Movie(MOV)、Moving Picture Experts Group 4(MP4)、Joint Photographic Experts Group(JPEG)、Tagged Image File Format(TIFF)、Graphics Interchange Format(GIF)、Computer Graphics Metafile(CGM)、Waveform Audio File Format(WAV)、Audio Interchange File Format(AIFF)、MPEG-1 Audio Layer 3(MP3)、AdvancedA udio Coding(AAC)、Microsoft Word Document(DOC)、Office Open XML Document(DOCX)、ASCII Text as Comma-Separated Values(CSV)等の種々のファイルフォーマット(またはコンテナ)を有し得る。
いくつかの実施形態において、エンコーディングされたアプリケーションデータは、エンコーディングされたユーザインターフェースディスプレイコマンドまたはメッセージを含み得る(例えば、例えば、HDXまたはICAプロトコルにおいて)。エンコーディングされたアプリケーションデータは、CSSファイルに類似するユーザインターフェースウィジェットの種々の特性(例えば、例えば、サイズ、場所、タイプ、視覚的特性)に対応するコマンドまたはメッセージの具体的フォーマットであり得る。これらの例におけるデコーディングされたアプリケーションデータは、CSSファイルを含み得、それは、さらなる処理を伴わずに、表示またはレンダリングされる未加工形態におけるグラフィック(例えば、ビットマップまたは他の未加工グラフィックデータ)を生成するためにレンダリング可能である。デコーディングされたアプリケーションデータの他の例は、プレーンテキスト、未加工オーディオデータ等を含むことができる。
これらの例の各々において、エンコーディングされたアプリケーションデータは、特定のデコーダを使用し、デコーダは、さらなる処理を伴わずに、(例えば、クライアントデバイス1104における)レンダリングのためにアプリケーションデータをデコーディングするために、ファイルフォーマットまたはコンテナに特有であり得る。故に、デコーディングされたアプリケーションデータは、クライアントデバイス1104においてレンダリング可能フォーマットにある。例えば、デコーディングされたアプリケーションデータは、CSSファイルおよび種々のスタイル要素であり得る。デコーディングされたアプリケーションデータからのCSSファイルおよび種々のスタイル要素は、ネットワークアプリケーション1108のためのユーザインターフェースをレンダリングするために使用され得る。
中間デバイス1106は、エンコーディングされたトラフィックをネットワークアプリケーション1108から受信するように設計または実装され得る。中間デバイス1106は、ネットワーキングエージェント1110によって確立されたネットワーク接続を介して、エンコーディングされたアプリケーションデータをサーバ1102上のネットワークアプリケーション1108から受信し得る。中間デバイス1106の遠隔セッションエージェント1112は、エンコーディングされたアプリケーションデータを受信し、またはそれにアクセスし得る。例えば、遠隔セッションエージェント1116は、エンコーディングされたアプリケーションデータを更新し、リフレッシュし、ダウンロードし、または別様に読み出すために、ユーザリフレッシュまたはアクセスコマンド等に応答して、種々のインターバルにおいて、ネットワークアプリケーション1108にアクセスし得る。いくつかの実施形態において、サーバ1102(例えば、VDAを介して)は、エンコーディングされたアプリケーションデータを遠隔セッションエージェント1112にリアルタイム(または種々のインターバルまたはリフレッシュレート)で提供し得る。各インスタンスにおいて、遠隔セッションエージェント1112は、ネットワーキングエージェント1110によって確立されたネットワーク接続を介して、エンコーディングされたアプリケーションデータをサーバ1102から受信し得る。
中間デバイス1106は、例えば、中間デバイスのネットワークレベルまたは層において、中間デバイスのハードウェア(例えば、プロセッサ)を使用または活用して、ネットワークアプリケーション1108からのエンコーディングされたトラフィックデータを変換、判読、解読、解釈、または別様にデコーディング(以降、「デコーディング」)し得る。デコーディング(decode)(およびdecoded、decoding等のその変形例)は、本明細書で使用されるように、さらなる処理を伴わずに、デバイスにレンダリング可能な(例えば、OSIモデルに従ったネットワークレベルまたは層における)データフォーマットまたは構造の生成を指し得る。中間デバイス1106は、例えば、SoC1114を使用して、オンボードでネットワークアプリケーション1108からのエンコーディングされたトラフィックをデコーディングし得る。SoC1114は、コンピュータまたは他の電子システムの1つ以上のコンポーネントを含む集積回路またはハードウェアデバイスであるか、または、それを含み得る。例えば、SOC1114は、中央処理ユニット(CPU)、メモリ、データを受信するためのI/Oポート、二次ストレージ等を含み得る。SoC1114は、種々の用途に応じて、他のコンポーネントを含み得る。いくつかの実施形態において、SoC1114は、例えば、ネットワークレベルまたは層において、(例えば、ネットワークアプリケーションセッションのための)遠隔でホストされたプロビジョニングトラフィックの処理またはデコーディング専用の1つ以上のプロセッサまたは回路網に対応する。この点について、SoC1114は、遠隔プロビジョニングおよびネットワークトラフィックタイプ処理および/またはデコーディングをハンドリングするように具体的に設計または実装され得る。
いくつかの実施形態において、遠隔セッションエージェント1112は、例えば、OSIモデルのネットワーク層または別の層において、デコーディングのために、アプリケーションデータをSoC1114にルーティングし得る。これは、アプリケーションデータのデコーディングおよび/または処理をクライアントデバイスから中間デバイス上のハードウェアにオフロードすることができる。中間デバイス(例えば、SoC1114)は、トラフィックをネットワークレベルで処理または最適化するクライアントアプリケーション(例えば、Citrix Receiver HDXエンジン)として動作、機能、および/または、それとしての役割を果たすことができる。いくつかの実施形態において、遠隔セッションエージェント1112は、アプリケーションデータがエンコーディングされたフォーマットであるかどうかに関係なく、デコーディングまたは処理のために、全てのアプリケーションデータをSoC1114にルーティングし得る。ある実施形態において、遠隔セッションエージェント1112は、デコーディングのために、SoC1112にルーティングするためのアプリケーションデータの一部を識別し得る。その一部は、エンコーディング(またはAVC/H.264エンコーディング等のあるフォーマットでエンコーディング)されるアプリケーションデータを含み得る。遠隔セッションエージェント1112は、どのネットワークアプリケーション1108がアプリケーションデータ、そのアプリケーションデータのための具体的構造、フォーマット、またはコンテナ等を提供するかに基づいてその一部を識別し得る。
SoC1114は、例えば、ネットワーク層またはレベルで、ネットワークアプリケーション1108からのトラフィックをデコーディングするように設計または実装され得る。例えば、SoC1114は、デコーダを含み得る。デコーダは、ネットワークアプリケーション1108からのエンコーディングされたトラフィックをレンダリング可能フォーマットにデコーディングするように設計または実装され得る。エンコーディングされたトラフィックは、ネットワーク層パケットを含むことができる。デコーダは、ネットワーク層パケット内のエンコーディングされたペイロードおよび/またはヘッダ情報をデコーディングすることができる。いくつかの実施形態において、SoC1114は、複数のデコーダを含み得る。各デコーダは、ネットワークアプリケーション特有であり得る。例えば、中間デバイス1106は、1つ以上のデコーダをデコーダストアから選択し、読み出し、および/または、アクティブにし得る。デコーダは、アプリケーションが、サーバ1102においてインストールされるとき、記憶されるとき、実行されるとき、アクセスされるとき等、および/または、中間デバイスを介してアクセスまたは配信されるとき、選択され得る。いくつかの実施形態において、デコーダは、SoC1114上に(例えば、メモリまたは二次ストレージ内に)ローカルで記憶され得る。いくつかの実施形態において、デコーダは、ネットワークアプリケーション1108とともにパッケージ化され、ネットワークアプリケーション1108が、イサーバ1102上にンストールまたは別様に記憶されるとき、中間デバイス1106によって読み出され得る。デコーダは、ネットワークアプリケーション1108がインストールされるとき、記憶されるとき、アクセスされるときに等、サーバ1102によって、中間デバイス1106に提供され得る。いくつかの実施形態において、デコーダは、AVC/H/264ハードウェアデコーダ等のハードウェアデコーダであり得る。デコーダは、SoC1114の中に構築され得る。故に、デコーダは、SoC1114によってエンコーディングされたアプリケーションデータをデコーディングするために使用される、ハードウェアまたはソフトウェアであり得る。
SoC1114は、レンダリングのために、アプリケーションデータを中間デバイス1106においてデコーディングし得る。SoC1114は、(例えば、クライアントアプリケーション1116の内蔵ブラウザ内への)クライアントデバイス1104におけるレンダリングのために、アプリケーションデータをデコーディングし得る。SoC1114は、(例えば、下で議論されるように、中間デバイス1106のセキュアブラウザ内への)中間デバイス1106におけるレンダリングのために、アプリケーションデータをデコーディングし得る。SoC1114は、エンコーディングプロトコルに従って、エンコーディングされたアプリケーションデータをデコーディングし得る。例えば、SoC1114の種々のデコーダは、種々のタイプのデータをエンコーディングおよびデコーディングするための種々のエンコーディングプロトコルであるか、またはそれを含み得る。SoC1114は、特定のタイプのアプリケーションデータのためのエンコーディングプロトコルに従って、エンコーディングされたアプリケーションデータをデコーディングし得る。アプリケーションデータは、グラフィックデータ、オーディオデータ、および/または他のタイプのデータを含むことができる。いくつかのタイプのデータは、1つ以上の仮想チャネルを介して、中間デバイスに通信されることができる。SoC1114は、これらのデータのいずれかを中間デバイスにおいて、デコーディング、処理、および/または最適化し、それによって、例えば、そのような処理をクライアントデバイスからオフロードし得る。
一例として、SoC1114は、エンコーディングされたグラフィックデータをデコーディングされたグラフィックデータにデコーディングし得る。例えば、中間デバイス11106の遠隔セッションエージェント1112は、エンコーディングされたグラフィックデータをJPEGフォーマットまたはコンテナにおいて受信し得る。遠隔セッションエージェント1112は、エンコーディングされたグラフィックデータをSoC1114に提供し得る。SoC1114は、さらなる処理を伴わずに(例えば、さらなるデコーディングを伴わずに)クライアントデバイス1104においてレンダリング可能なビットマップフォーマット等において、エンコーディングされたグラフィックデータをデコーディングされたグラフィックデータにデコーディングし得る。
別の例として、SoC1114は、エンコーディングされたオーディオデータをデコーディングされたオーディオデータにデコーディングし得る。例えば、中間デバイス1106の遠隔セッションエージェント1112は、エンコーディングされたオーディオデータをMP3フォーマットまたはコンテナにおいて受信し得る。遠隔セッションエージェント1112は、エンコーディングされたオーディオデータをSoC1114に提供し得る。SoC1114は、さらなる処理を伴わずにクライアントデバイス1104においてレンダリング可能な未加工オーディオフォーマットにエンコーディングされたオーディオデータをデコーディングし得る。
さらに別の例として、SoC1114は、ネットワークアプリケーション1108のためのUIを表示するために、エンコーディングされたUIアプリケーションデータをデコーディングし得る。デコーディングされたアプリケーションデータは、CSSファイルを含み得る。各CSSファイルは、例えば、フォント、色、テキストサイズ等のページのトポグラフィ詳細、種々のオーディオまたはビデオフォーマット等を説明する一連のルールを含み得る。SoC1114は、さらなる処理を伴わずにクライアントデバイス1104においてレンダリング可能なCSSファイルにエンコーディングされたアプリケーションデータをデコーディングし得る。
これらの例の各々において、遠隔セッションエージェント1112は、エンコーディングされたアプリケーションデータを受信し、それは、SoC1114に提供される。SoC1114は、エンコーディングされたアプリケーションデータのいずれかがクライアントデバイス1104にレンダリングまたは別様に提供されることに先立って、エンコーディングされたアプリケーションデータをデコーディングする。クライアントデバイス1104は、したがって、ネットワークアプリケーション1108からのアプリケーションデータの処理または他のデコーディングを実施せず、それは、代わりに、中間デバイスにおいて実施される。
中間デバイス1106は、ネットワークアプリケーション1108のためのユーザインターフェースをユーザにレンダリングまたは別様に表示するために、デコーディングされたアプリケーションデータをクライアントデバイス1104のクライアントアプリケーション1116に伝送するように設計または実装され得る。いくつかの実施形態において、ネットワーキングアプリケーション1110は、クライアントデバイス1104との接続を確立し得(上で説明される中間デバイス1106とサーバ1102との間のネットワーク接続に類似する様式において)、遠隔セッションエージェント1112は、レンダリングのために、デコーディングされたアプリケーションデータをクライアントアプリケーション1116に通信し得る。他の実施形態において、中間デバイス1106は、サーバ1102と中間デバイス1106との間のネットワーク接続のために、および、中間デバイス1106とクライアントデバイス1104との間のネットワーク接続のために、それぞれのネットワーキングエージェント1110と、遠隔セッションエージェント1112とを含み得る。
中間デバイス1106は、中間デバイス1106が中間デバイス1106によって受信されたアプリケーションデータをデコーディングすることに続いて、デコーディングされたアプリケーションデータをクライアントデバイス1104に伝送し得る。遠隔セッションエージェント1112は、アプリケーションデータがデコーディングされると(例えば、SoC1114からの「停止」、「完了」、または他のコマンドの検出または登録に応じて)、デコーディングされたアプリケーションデータをSoC1114から受信し得、デコーディングされたアプリケーションデータをクライアントデバイス1104に通信することができる。いくつかの実施形態において、中間デバイス1106は、中間デバイス1106がエンコーディングされたアプリケーションデータをデコーディングするにつれて、デコーディングされたアプリケーションデータをクライアントデバイスに伝送し得る(例えば、持続的に、またはインターバルを空けて)。遠隔セッションエージェント1112は、デコーディングされるにつれて、デコーディングされたアプリケーションデータをSoC1114から受信し得、デコーディングされたアプリケーションデータが受信されると、デコーディングされたアプリケーションデータをクライアントデバイス1104に通信することができる。
いくつかの実施形態において、中間デバイス1106は、アプリケーションデータがネットワークデバイス(ネットワークプリンタ、ファックス機械等)に(または別様にそのために)向けられるかどうかを決定し得る。例えば、システム1100は、ネットワークプリンタ、ファックス機械等の1つ以上のネットワークデバイスを含み得る。ネットワーク接続は、ネットワーキングエージェント1110によって、上で説明されるネットワーク接続に類似する様式において、中間デバイス1106とネットワークデバイスとの間に確立され得る。遠隔セッションエージェント1112は、例えば、種々のデータ構造特性、アプリケーションデータに関連付けられたアドレス等に基づいて、ネットワークデバイスのためのアプリケーションデータを識別し得る。遠隔セッションエージェント1112が、アプリケーションデータがネットワークデバイスのためであることを識別する場合、遠隔セッションエージェント1112は、アプリケーションデータを中間デバイス1106からネットワークデバイスに向け、伝送し、または別様に通信し得る。例えば、ネットワークアプリケーションデータのトラフィックを中間デバイス1106においてローカルで処理またはデコーディングした中間デバイス1106は、印刷のために(例えば、ネットワークプリンタにおけるさらなるデコーディングまたは処理を伴わずに)、ネットワークプリンタにデコーディングされたデータを直接伝達することができる。そのような実施形態は、中間デバイス1106と種々のネットワークデバイスとの間の直接通信を提供し、それは、他の設計または実装において容易に遂行されないこともある。
いくつかの実施形態において、中間デバイス1106は(例えば、中間デバイス1106において)デコーディングされたアプリケーションデータをレンダリングするために、セキュアブラウザを提供するように設計または実装され得る。セキュアブラウザは、少なくとも図4、5、7、8、および10を参照して上で説明されるセキュアブラウザ420に類似し得る。セキュアブラウザ内でアクセスまたはレンダリングされるように構成されるネットワークアプリケーション(またはセキュアブラウザによってアクセスされるウェブページ)は、事実上、セキュアブラウザによって実装されるセキュリティ機構の支配下にあり得る。これらのネットワークアプリケーションは、セキュアコンテナ内に(例えば、セキュアに)含まれると見なされ得る。そのようなセキュアブラウザの使用は、企業が、コンテンツフィルタリングポリシを実装することを有効にすることができ、コンテンツフィルタリングポリシにおいて、例えば、従業員は、従業員のクライアントデバイスから、あるウェブサイトに直接アクセスすることをブロックされる。セキュアブラウザは、例えば、クライアントデバイスユーザが、VPNの必要なくコーポレートイントラネットにアクセスすることを有効にするために使用されることができる。
セキュアブラウザは、クライアントデバイスの代わりに、デコーディングされたアプリケーションデータをレンダリングし得る。セキュアブラウザは、例えば、ネットワークアプリケーション1108のためのユーザインターフェースを発生させ、中間デバイス1106においてレンダリングし得る。アプリケーションデータ(例えば、ユーザインターフェース)が、中間デバイス1106(例えば、セキュアブラウザ上)にレンダリングされると、中間デバイス1106は、未加工またはデコーディングされたデータ(例えば、レンダリングされたアプリケーションデータに対応する)をクライアントデバイス1104に通信し得る。(例えば、ビットマップ形態における)レンダリングされたアプリケーションデータは、クライアントデバイス1104によって、ユーザインターフェースをクライアントデバイス1104にレンダリング、表示、または別様に提供するために使用され得る。例えば、中間デバイス1106は、ビットマップデータをクライアントデバイス1104に提供し得、それは、クライアントデバイス1104のためのディスプレイに通信され、事実上、セキュアブラウザをクライアントデバイス1104上にミラーリングする。同様に、中間デバイス1106は、未加工オーディオデータをクライアントデバイスに提供し得、それは、クライアントデバイス1104のためのスピーカに通信される。これらの実施形態の各々において、クライアントデバイス1104は、ダミーレンダリングまたはディスプレイデバイスとして動作することができる。そのような実施形態は、クライアントデバイス1104の完全性を維持し、ユーザが、中間デバイスにホストされたセキュアブラウザを通して、非セキュアまたは非認定ページまたはネットワークアプリケーションにアクセスすることを可能にし得る。
いくつかの実施形態において、中間デバイス1106は、クライアントアプリケーション1116に統合された内蔵ブラウザにデコーディングされたアプリケーションデータをレンダリングさせることができる。内蔵ブラウザは、少なくとも図4および8を参照して上で説明される内蔵ブラウザ410に類似し得る。内蔵ブラウザは、ウェブブラウザアプリケーションまたはエンジンの要素および機能性を含むことができる。内蔵ブラウザは、クライアントアプリケーション1116のコンポーネントまたは拡張として、ネットワークアプリケーションをローカルでレンダリングすることができる。内蔵ブラウザは、クライアントアプリケーション1116の実行可能コードの中への直接統合(例えば、プログラミング言語またはスクリプト挿入)等の任意の手段を介して、またはプラグインインストールを介して、クライアントアプリケーション1116の中に内蔵または組み込まれることができる。例えば、内蔵ブラウザは、例えば、Chromium内蔵フレームワーク(CEF)を使用して、クライアントアプリケーション1116の中に埋め込まれ得るChromiumベースのブラウザエンジンまたは他のタイプのブラウザエンジンを含むことができる。内蔵ブラウザは、HTML5ベースのレイアウトグラフィカルユーザインターフェース(GUI)を含むことができる。内蔵ブラウザは、HTMLレンダリングおよびJava(登録商標)Scriptサポートを種々のプログラミング言語を組み込むクライアントアプリケーションに提供することができる。例えば、内蔵ブラウザの要素は、C、C++、Delphi、Go、Java(登録商標)、.NET/Mono、Visual Basic 6.0、および/またはPythonを組み込む、クライアントアプリケーション1116にバインドすることができる。
デコーディングされたアプリケーションデータがCSSファイルを含む実施形態では、内蔵ブラウザ(またはセキュアブラウザ)は、CSSファイルを解析し、ネットワークアプリケーション1108のためのユーザインターフェースのレンダリングを構築し得る。内蔵ブラウザ(またはセキュアブラウザ)は、CSSファイル(例えば、CSSファイルの仕様に従って位置および構築される種々のウィジェットを伴う)に従って、ユーザインターフェースをレンダリングし得る。内蔵ブラウザは、アクセスのために、ユーザインターフェースをユーザに表示し得る。故に、ユーザは、中間デバイス1106において(例えば、SoC1114上で)デコーディングされているクライアントデバイス1104上のネットワークアプリケーション1108のユーザインターフェースと相互作用し得る。いくつかの実施形態において、ユーザインターフェースは、ネットワークアプリケーション1108からのデータが、SoC1114において受信およびデコーディングされるにつれて、クライアントデバイス1104にレンダリングおよび表示され得る。この点について、ネットワークアプリケーション1108からのトラフィックは、段階的、動的、または持続ベースで、デコーディングされ、内蔵ブラウザ(またはセキュアブラウザ)に通信される。そのような実施形態は、ネットワークアプリケーションにアクセスすることにおけるユーザ体験を改良し得る。
いくつかの実施形態において、中間デバイス1106は、クライアントデバイス1104におけるレンダリングのために、または、別様にそれに提供するために、受信されたアプリケーションデータを最適化し得る。最適化は、本明細書で使用されるように、クライアントデバイス特有特性に従って性能特性を達成するためのデータの修正を指し得る。例えば、SoC1114は、データがクライアントデバイスにレンダリングされることに先立って、アプリケーションデータを再構成または修正し得る。SoC1114は、アプリケーションデータ(または未加工データ)の読み出し、レンダリング、またはクライアントデバイス1104への提供の効率を改良するために、アプリケーションデータを再構成または修正し得る。SoC1114は、ディスプレイ分解能またはスケール、着色オプション、フレームリフレッシュレート、スピーカ出力能力等のクライアントデバイス1104の種々の仕様に従って、アプリケーションデータを最適化し得る。そのようなクライアントデバイス1104仕様は、ネットワーキングエージェント1110が、例えば、中間デバイス1106とクライアントデバイス1104との間のネットワーク接続を確立すると、中間デバイス1106に通信され得る(例えば、クライアントデバイス1104によって)。
SoC1114は、クライアントデバイス1104の仕様に従って、アプリケーションデータの種々の構成を選択し得る。SoC1114は、デバイス速度、その上にレンダリングされたディスプレイまたはユーザインターフェースの明確性、オーディオ音等のクライアントデバイス1104の種々の性能特性を達成するために、アプリケーションデータの構成を選択し得る。一例として、SoC1114は、クライアントデバイス1104がモバイルデバイスである場合、クライアントデバイス1104の増加させられたバッテリ寿命のために、より低い分解能を選択し得る。別の例として、SoC1114は、比較的に大きいディスプレイを有するクライアントデバイス1104のために、より高いディスプレイスケールを選択し得る。さらに別の例として、SoC1114は、クライアントデバイス1104のためのディスプレイタイプ(例えば、高精細対標準精細LED)に応じて、異なる着色オプションを選択し得る。これらの例の各々において、SoC1114は、クライアントデバイス1104の具体的特性に従って性能特性を達成するために、アプリケーションデータを修正することができる。故に、中間デバイス1106は、アプリケーションデータを最適化することができる。
いくつかの実施形態において、中間デバイス1106は、ネットワークアプリケーション1108、中間デバイス1106、および/またはクライアントデバイス1104間で通信されるトラフィックを監視し得る。例えば、中間デバイス1106は、(例えば、暗号化されたパケット形態における)受信されたトラフィックを監視することができ、解読された/デコーディングされたデータストリームおよび/またはSSLスタックの中の完全可視性を有することもできる。この可視性は、中間デバイス1106が、ポリシベースの管理(例えば、データ損失防止(DLP)能力を含む)、アプリケーション制御(例えば、性能、サービス水準を改良するため)、および分析の収集および生成を実施または促進することを可能にすることができる。例えば、そのような可視性は、ウェブおよびSaaSアプリケーションをCEBを通して展開するための制御されたシステムを情報技術(IT)管理者に提供し、IT管理者が、前述のアクティビティのいずれかを実施するために、CEBを介して、ポリシまたは構成を設定することを可能にすることができる。
いくつかの実施形態において、中間デバイス1106は、クライアントデバイス1104がネットワークアプリケーション1108のセッションから接続解除するとき、ネットワークアプリケーション1108の状態を維持し得る。中間デバイス1106は、ネットワークアプリケーション1108のセッションがクライアントデバイス1104から別のクライアントデバイス1104に転送されるとき、ネットワークアプリケーション1108の状態を維持し得る。ネットワークアプリケーション1108のセッション中、中間デバイス1106は、ネットワークアプリケーション1108の動作の状態を維持し得る。ネットワークアプリケーション1108の動作の状態は、実行コード/ライン/サブルーチン識別子/インジケータ、キャッシュ状態、入力/出力(I/O)状態、UI状態、およびそれらの組み合わせを含み得る。中間デバイス1106は、これらの動作の状態の一部(または全部)をキャッシュし得る。いくつかの実施形態において、中間デバイス1106は、(例えば、ネットワーキングエージェント1110によって確立された通信リンクを経由して遠隔セッションエージェント1112によって)メッセージをサーバ1102に送信し、例えば、クライアントデバイスがネットワークアプリケーションのセッションから接続解除することに応答して、ネットワークアプリケーション1108のために、実行を一時停止するか、または、これらの動作の状態の一部または全部を記憶/キャッシュし得る。動作の状態は、例えば、クライアントデバイス1104のユーザが同じクライアントデバイス上(または異なるクライアントデバイス1104上)でセッションを再開するまで、記憶またはキャッシュされ得る。いくつかの実施形態において、動作の状態(セッション状態とも称される)は、満了時間まで、記憶またはキャッシュされ得る。そのような実施形態は、アプリケーションセッションのモビリティを改良し、意図されないセッションデータ損失を防止することによって、ユーザ体験を増加させ得る。
図12を参照すると、ネットワークアプリケーションを配信する方法の一実施形態のフロー図が、描写されている。方法の機能性は、図1-11に関連して本明細書に詳述されるコンポーネントを使用して実装され、またはそれによって実施され得る。概要として、中間デバイスは、ネットワークアプリケーションとの接続を確立する(1205)。中間デバイスは、エンコーディングされたアプリケーションデータを受信する(1210)。中間デバイスは、アプリケーションデータをデコーディングする(1215)。中間デバイスは、アプリケーションデータをクライアントアプリケーションに伝送する(1220)。
ここで動作(1205)を参照すると、いくつかの実施形態において、中間デバイスは、ネットワークアプリケーションとの接続を確立する。いくつかの実施形態において、中間デバイスは、クライアントデバイスとネットワークアプリケーションをホストしているサーバとの間に位置する。中間デバイスは、サーバよりクライアントデバイスの近くに位置し得る。例えば、中間デバイスは、クライアントデバイスの地理的により近くに位置し得る。いくつかの実施形態において、中間デバイスは、ネットワーク経路長の観点からクライアントデバイスのより近くに位置し得る。中間デバイスは、サーバからのネットワークトラフィックの処理および最適化を実施するためにより好適であるように、またはそのように位置付けられ得る。中間デバイスは、オンボードで処理を実施することによって、より良好なユーザ体験を提供し得、それは、クライアントデバイスプラットフォームにわたってグラフィックデコーディングの一貫性を増加させ得る。
いくつかの実施形態において、中間デバイスは、ネットワーキングエージェントを含み得る。ネットワーキングエージェントは、中間デバイスとサーバ(ネットワークアプリケーションをホストする)との間のネットワーク接続を確立すること、またはその確立を促進することができる。ネットワーキングエージェントは、ネットワークアプリケーションにアクセスするためにクライアントアプリケーションまたはクライアントデバイスから要求される接続のために、ハンドシェイクを実施することができ、要求される接続を確立することができる。ネットワーキングエージェントは、例えば、ユーザが(例えば、クライアントデバイスのクライアントアプリケーション上に表示される)ネットワークアプリケーションを立ち上げること、または別様に開くことに関連付けられるアイコンまたは他のリンクを選択することに続いて、要求される接続のために、ハンドシェイクを実施することができる。いくつかの実施形態において、ネットワーキングエージェントは、ネットワークアプリケーションがサーバ上にインストールまたは別様に含まれることに応答して、要求される接続のために、ハンドシェイクを実施することができる。
いくつかの実施形態において、ネットワーキングエージェントは、セキュアまたは暗号化された接続を確立し得る。例えば、ネットワーキングエージェントは、例えば、VPN接続を介して、サーバに接続し得る。例えば、ネットワーキングエージェントは、中間デバイスとサーバとの間のSSL VPN接続を確立することができる。
いくつかの実施形態において、ネットワーキングエージェントは、サーバとのHTTPセッションを形成、維持、または確立するように設計または実装され得る。ネットワーキングエージェントは、例えば、サーバとのTCP接続を確立し得る。ネットワーキングエージェントは、TCPに従って、HTTPセッション内でサーバと種々のコマンドを交換することができる。いくつかの実施形態において、ネットワーキングエージェントは、上で説明されるセキュアまたは暗号化された接続に類似する様式において、セキュアHTTPセッションを確立し得る。したがって、ネットワーキングエージェントは、概して、いくつかの実施形態において、セキュアネットワーク接続(例えば、SSL VPN)であり得るサーバと中間デバイスとの間のネットワーク接続を確立する、またはその確立を促進することができる。
中間デバイスは、遠隔でホストされたアプリケーションまたはデスクトップセッションのためのプロビジョニングセッションを開始するように設計または実装され得る。中間デバイスは、ネットワーキングエージェントによって確立されたネットワーク接続内で、またはそれを横断して、プロビジョニングセッションを開始し得る。いくつかの実施形態において、中間デバイスは、遠隔セッションエージェントを含み得る。遠隔セッションエージェントは、(例えば、Citrix HDX、ICAプロトコル、またはRDPを使用して確立された)プロビジョニングセッションを開始し得る。遠隔セッションエージェントは、RDP、ALP、RFBプロトコル、およびICAプロトコル等の任意のタイプまたは形態のプロトコルに従って、プロビジョニングセッションを開始し得る。遠隔セッションエージェントは、クライアントデバイスのユーザがネットワークアプリケーションにアクセスするために、プロビジョニングセッションを開始することができる。
いくつかの実施形態において、ネットワークアプリケーションのうちの少なくとも1つは、遠隔でホストされたデスクトップ、遠隔でホストされたアプリケーション、またはサービスとしてのソフトウェア(SaaS)アプリケーションであり得る。遠隔でホストされたデスクトップは、クライアントデバイスによってアクセスされるサーバ上にホストされた仮想デスクトップであり得る。故に、ユーザは、クライアントデバイスから、サーバにホストされた仮想デスクトップを遠隔で動作させることができる。いくつかの実施形態において、遠隔でホストされたデスクトップは、上で説明されるように、HDXベース、ICAベース、RDPベース等であり得る。遠隔でホストされたアプリケーションは、遠隔でホストされたデスクトップ環境内にインストールされ、したがって、遠隔でホストされたデスクトップ内でアクセス可能であるアプリケーションであり得る。SaaSアプリケーションは、典型的に、サブスクリプションベースでアクセス可能である中央でホストされたアプリケーションである。いくつかの実施形態において、SaaSアプリケーションは、ウェブベースのアプリケーションを含み得る。他の実施形態において、SaaSアプリケーションは、遠隔でホストされたアプリケーションを含み得、したがって、HDX/ICA/RDPベースのアプリケーションである。
ここで動作(1210)を参照すると、いくつかの実施形態において、中間デバイスは、エンコーディングされたアプリケーションデータを受信する。いくつかの実施形態において、中間デバイスは、動作(1205)において確立されたネットワーク接続を介して、エンコーディングされたアプリケーションを受信し得る。中間デバイスは、エンコーディングされたアプリケーションデータをネットワークアプリケーションから受信し得る。エンコーディングされたアプリケーションデータは、エンコーディングされたグラフィックデータまたはエンコーディングされたオーディオデータを含み得る。
ネットワークアプリケーションは、コマンド、プロセス、命令等をサーバにおいて実行し得る。例えば、ネットワークアプリケーションおよび/またはVDAは、上で説明される種々のプロトコル(例えば、RDP、ALP、RFB、ICAプロトコル)を使用して、アプリケーションデータを発生させ得る。そのようなプロトコルは、サーバ上にネイティブにホストされたアプリケーションまたはデスクトップセッションまたは他のアプリケーションデータのUI要素が、例えば、ネットワークを横断して別のデバイスにプロビジョニングされることを可能にすることができる。それらのUI要素および他のアプリケーションデータは、そのようなプロトコルを使用して、(例えば、VDAによって)エンコーディングされ、中間デバイスに配信または別様にプロビジョニングされることができる。したがって、アプリケーションデータは、ネットワークアプリケーションのためのUIを発生させるために使用可能であり得る。アプリケーションデータは、UIコマンドに対応するデータを含み得る。UIコマンドは、UIのウィジェットを形成するためのコマンド(例えば、サイズ、場所、タイプ、視覚的特性)を含み得る。いくつかの実施形態において、アプリケーションデータは、データレート、サービス水準合意等のサーバからの通信の種々のトラフィック特性を調整するための制御または構成トラフィックを含み得る。いくつかの実施形態において、アプリケーションデータは、アプリケーション状態、種々のユーザプロファイル情報、ユーザ発生データ、キャッシュデータ等を含むことができる。いくつかの実施形態において、アプリケーションデータは、グラフィックまたはオーディオデータを含み得る。
ネットワークアプリケーションおよび/またはVDAは、アプリケーションデータをエンコーディングされたフォーマットにおいて発生させ得る。他の実施形態において、ネットワークアプリケーションは、アプリケーションデータをデコーディングされたフォーマットにおいて発生させ、アプリケーションデータを中間デバイスに伝送することに先立って、アプリケーションデータをエンコーディングし得る。いくつかの実施形態において、ネットワークアプリケーションは、アプリケーションデータを、ネットワークアプリケーション特有ソフトウェアによってアクセス可能またはデコーディング可能であるフォーマットにおいてエンコーディングし得る。例えば、アプリケーションデータは、ネットワークアプリケーションのためのユーザインターフェースを形成するためのレンダリングに先立って、カスケードスタイルシート(CSS)ファイルを発生させるようにデコーディングされる、エンコーディングされたフォーマットであり得る。
中間デバイスは、エンコーディングされたアプリケーションデータを、ネットワーキングエージェントによって確立されたネットワーク接続を介して、サーバ上のネットワークアプリケーションから受信し得る。中間デバイスの遠隔セッションエージェントは、エンコーディングされたアプリケーションデータを受信し得る(または遠隔プロビジョニングセッションは、エンコーディングされたアプリケーションデータを遠隔セッションエージェントに提供し得る)。故に、遠隔セッションエージェントは、エンコーディングされたアプリケーションデータを受信し得る。
ここで動作(1215)を参照すると、いくつかの実施形態において、中間デバイスは、アプリケーションデータをデコーディングする。いくつかの実施形態において、中間デバイスは、クライアントデバイスにおけるレンダリングのために、ネットワークアプリケーションの受信されたアプリケーションデータをデコーディングされたグラフィックデータまたはデコーディングされたオーディオデータのうちの少なくとも1つにデコーディングする。グラフィックおよび/またはオーディオデータが、時として、本開示で参照されるが、これらは、単に、一例であり、いかようにも限定することを意図するものではない。同様に、例えば、マルチメディアデータ、ディスクデータ、クリップボードデータ、プリンタデータ等の(例えば、プロビジョニングセッションの任意の仮想チャネルからの)任意のタイプまたは形態のアプリケーションデータが、適用されることができる。
中間デバイスは、ネットワークアプリケーションからのエンコーディングされたアプリケーションデータをデコーディングし得る。中間デバイスは、SoCによって、オンボードでネットワークアプリケーションからのエンコーディングされたアプリケーションデータをデコーディングし得る。SoCは、コンピュータまたは他の電子システムの1つ以上のコンポーネントを含む集積回路、プロセッサ、またはハードウェアデバイスであるか、または、それを含み得る。例えば、SoCは、中央処理ユニット(CPU)、メモリ、データを受信するためのI/Oポート、および/または二次ストレージ等を含み得る。
SoCは、ネットワークアプリケーションからのトラフィック(例えば、アプリケーションデータ)をデコーディングするように設計または実装され得る。例えば、SoCは、デコーダを含み得る。デコーダは、ネットワークアプリケーションからのエンコーディングされたトラフィックをレンダリング可能フォーマットにデコーディングするように設計または実装され得る。いくつかの実施形態において、SoCは、複数のデコーダを含み得る。各デコーダは、ネットワークアプリケーション特有であり得る。例えば、中間デバイス(例えば、遠隔セッションエージェント)は、デコーダをデコーダストアから読み出し得る。遠隔セッションエージェントは、アプリケーションが、サーバにおいてインストールされるとき、記憶されるとき、アクセスされるとき等、デコーダを読み出し得る。デコーダは、SoC上に(例えば、メモリまたは二次ストレージ内に)ローカルで記憶され得る。いくつかの実施形態において、デコーダは、ネットワークアプリケーションとともにパッケージ化され得る。これらの実施形態において、デコーダは、ネットワークアプリケーションが、サーバ上にインストールまたは別様に記憶されるとき、遠隔セッションエージェントによって読み出され得る。いくつかの実施形態において、サーバは、ネットワークアプリケーションが、インストールされるとき、記憶されるとき、アクセスされるとき等、デコーダを遠隔セッションエージェントに提供し得る。いくつかの実施形態において、デコーダは、AVC/H/264ハードウェアデコーダ等またはそれに類似するハードウェアデコーダであり得る。デコーダは、SoC1114の中に構築され得る。故に、デコーダは、SoC1114によってエンコーディングされたアプリケーションデータをデコーディングするために使用される、ハードウェアまたはソフトウェアであり得る。
SoCは、レンダリングのために、中間デバイスにおいて、アプリケーションデータをデコーディングし得る。いくつかの実施形態において、SoCは、(例えば、クライアントアプリケーション内への)クライアントデバイスにおけるレンダリングのために、中間デバイスにおいて、アプリケーションデータをデコーディングし得る。他の実施形態において、SoCは、(例えば、下で議論されるように、セキュアブラウザによる)中間デバイスにおけるレンダリングのために、中間デバイスにおいて、アプリケーションデータをデコーディングし得る。SoCは、エンコーディングプロトコルに従って、エンコーディングされたアプリケーションデータをデコーディングし得る。例えば、SoCの種々のデコーダは、対応するアプリケーションからの種々のタイプのデータをエンコーディングおよびデコーディングするための種々のエンコーディングプロトコルであるか、または、それを含み得る。SoCは、特定のタイプのアプリケーションデータのためのエンコーディングプロトコルに従って、エンコーディングされたアプリケーションデータをデコーディングし得る。
いくつかの実施形態において、中間デバイスは、クライアントデバイスにおけるレンダリングのために、または別様にそれを提供するために、(例えば、ネットワーク層またはレベルで)受信されたアプリケーションデータを最適化し得る。中間デバイスは、クライアントデバイスからのアプリケーションデータの処理、最適化、および/またはデコーディングを中間デバイスのハードウェアにオフロードすることができる。例えば、SoCは、データがクライアントデバイスにレンダリングされることに先立って、アプリケーションデータを再構成または修正し得る。SoCは、アプリケーションデータ(または未加工データ)の読み出し、レンダリング、またはクライアントデバイスへの提供の効率を改良するために、アプリケーションデータを再構成または修正し得る。SoCは、ディスプレイ分解能またはスケール、着色オプション、フレームリフレッシュレート、スピーカ出力能力等のクライアントデバイスの種々の仕様に従って、アプリケーションデータを最適化し得る。そのようなクライアントデバイス仕様は、ネットワーキングエージェントが中間デバイスとクライアントデバイスとの間のネットワーク接続を確立するとき、(例えば、クライアントデバイスによって)中間デバイスに通信され得る。SoCは、クライアントデバイスの仕様に従って、アプリケーションデータの種々の構成を選択し得る。SoCは、クライアントデバイスの種々の性能特性を達成するために、デバイス速度、その上にレンダリングされるディスプレイまたはユーザインターフェースの明確性、オーディオ音等のアプリケーションデータの構成を選択し得る。したがって、SoCは、クライアントデバイスの具体的特性に従って、性能特性を達成し、故に、アプリケーションデータを最適化するために、アプリケーションデータを修正することができる。
いくつかの実施形態において、中間デバイスは、デコーディングされたアプリケーションデータをレンダリングするためのセキュアブラウザを提供し得る(例えば、デコーディングされたアプリケーションデータを中間デバイスにおいてレンダリングする)。セキュアブラウザ内で起動されるように構成されるネットワークアプリケーション(またはセキュアブラウザによってアクセスされるウェブページ)は、事実上、セキュアブラウザによって実装されるセキュリティ機構の支配下にあり得る。そのようなセキュアブラウザの使用は、企業が、コンテンツフィルタリングポリシを実装することを有効にすることができ、その中で、例えば、従業員は、従業員のクライアントデバイスからあるウェブサイトまたは他の非認定コンテンツまたはソースにアクセスすることをブロックされる。
セキュアブラウザは、クライアントデバイスの代わりに、デコーディングされたアプリケーションデータをレンダリングし得る。セキュアブラウザは、例えば、ネットワークアプリケーションのためのユーザインターフェースを中間デバイスにレンダリングし得る。アプリケーションデータ(例えば、ユーザインターフェース)が中間デバイス(例えば、セキュアブラウザ上)にレンダリングされると、中間デバイスは、未加工またはデコーディングされたデータ(例えば、レンダリングされたアプリケーションデータに対応する)をクライアントデバイスに通信し得る。(例えば、ビットマップ形態における)レンダリングされたアプリケーションデータは、クライアントデバイスによって、ユーザインターフェースをクライアントデバイスにレンダリング、表示、または別様に提供するために使用され得る。例えば、中間デバイスは、ビットマップデータをクライアントデバイスに提供し得、それは、クライアントデバイスのためのディスプレイに通信され、事実上、セキュアブラウザをクライアントデバイス上にミラーリングする。同様に、中間デバイスは、未加工オーディオデータをクライアントデバイスに提供し得、それは、クライアントデバイスのためのスピーカに通信される。これらの実施形態の各々において、クライアントデバイスは、ダミーレンダリングまたはディスプレイデバイスとしての機能を果たす。そのような実施形態は、クライアントデバイスの完全性を維持し、ユーザが、中間デバイスにホストされたセキュアブラウザを通して、非セキュアまたは非認定ページまたはアプリケーションにアクセスすることを可能にし得る。
ここで動作(1220)を参照すると、いくつかの実施形態において、中間デバイスは、アプリケーションデータをクライアントアプリケーションデータに伝送する。いくつかの実施形態において、中間デバイスは、ネットワークアプリケーションへのユーザアクセスを提供するためのレンダリングのために、デコーディングされたグラフィックデータおよび/またはデコーディングされたオーディオデータをクライアントデバイスのクライアントアプリケーションに伝送する。いくつかの実施形態において、ネットワーキングアプリケーションは、クライアントデバイスとの接続を確立し得(上で説明される中間デバイスとサーバとの間に確立されたネットワーク接続に類似する様式において)、遠隔セッションエージェントは、レンダリングのために、デコーディングされたアプリケーションデータをクライアントアプリケーションに通信し得る。他の実施形態において、中間デバイスは、サーバと中間デバイスとの間のネットワーク接続のために、および中間デバイスとクライアントデバイスとの間のネットワーク接続のために、それぞれのネットワーキングエージェントと、遠隔セッションエージェントとを含み得る。
中間デバイスは、中間デバイスによって受信されたアプリケーションデータのデコーディングに続いて、デコーディングされたアプリケーションデータをクライアントデバイスに伝送し得る。遠隔セッションエージェントは、アプリケーションデータがデコーディングされると、デコーディングされたアプリケーションデータをSoCから受信し得、デコーディングされたアプリケーションデータをクライアントデバイスに通信することができる。いくつかの実施形態において、中間デバイスは、中間デバイスがエンコーディングされたアプリケーションデータをデコーディングするにつれて、デコーディングされたアプリケーションデータを伝送し得る。遠隔セッションエージェントは、デコーディングされるにつれて、デコーディングされたアプリケーションデータをSoCから受信し、デコーディングされたアプリケーションデータが受信されると、デコーディングされたアプリケーションデータをクライアントデバイスに通信し得る。この点について、クライアントデバイスは、全てを一度に、またはデコーディングデータの一部が受信されるにつれて、デコーディングされたアプリケーションデータをレンダリングし得る。
いくつかの実施形態において、中間デバイスは、クライアントアプリケーションに統合された内蔵ブラウザにデコーディングされたアプリケーションデータをレンダリングさせ得る。内蔵ブラウザは、クライアントアプリケーションのコンポーネントまたは拡張として、ネットワークアプリケーションをローカルでレンダリングすることができる。
デコーディングされたアプリケーションデータがCSSファイルである実施形態において、内蔵ブラウザ(またはセキュアブラウザ)は、CSSファイルを解析し、ネットワークアプリケーションのためのユーザインターフェースのレンダリングを構築し得る。内蔵ブラウザ(またはセキュアブラウザ)は、CSSファイル(例えば、CSSファイルの仕様に従って位置および構築される種々のウィジェットを伴う)に従って、ユーザインターフェースをレンダリングし得る。内蔵ブラウザ(またはセキュアブラウザ)は、アクセスのために、ユーザインターフェースをユーザに表示し得る。故に、ユーザは、クライアントデバイス上にレンダリングされたネットワークアプリケーションのユーザインターフェースと相互作用し得る。いくつかの実施形態において、ユーザインターフェースは、SOCにおいてデコーディングされたデータを使用して、クライアントデバイスにレンダリングおよび表示され得る。この点について、ネットワークアプリケーションからのトラフィックは、レンダリングまたは表示のために、デコーディングされ、内蔵ブラウザに通信される。
いくつかの実施形態において、中間デバイスは、ネットワークアプリケーション、中間デバイスおよび/またはクライアントデバイス間で通信されるトラフィックを監視し得る。例えば、中間デバイスは、受信されたトラフィック(例えば、暗号化されたパケット形態における)を監視することができ、解読されたデータストリームおよび/またはSSLスタックの中の完全可視性を有することもできる。この可視性は、中間デバイスが、ポリシベースの管理(例えば、データ損失防止(DLP)能力を含む)、アプリケーション制御(例えば、性能、サービス水準を改良するために)、および分析の収集および生成を実施または促進することを可能にすることができる。
いくつかの実施形態において、中間デバイスは、クライアントデバイスがネットワークアプリケーションのセッションから接続解除するとき、ネットワークアプリケーションの状態を維持し得る。中間デバイスは、ネットワークアプリケーションのセッションがクライアントデバイスから別のクライアントデバイスに転送されるとき、ネットワークアプリケーションの状態を維持し得る。ネットワークアプリケーションのセッション中、中間デバイスは、ネットワークアプリケーションのための動作の状態を維持し得る。ネットワークアプリケーションのための動作の状態は、実行コード/ライン/サブルーチン識別子/インジケータ、キャッシュ状態、入力/出力(I/O)状態、UI状態、およびそれらの組み合わせを含み得る。中間デバイスは、これらの動作の状態の一部(または全部)をキャッシュし得る。いくつかの実施形態において、中間デバイスは、(例えば、遠隔セッションエージェントによって、ネットワーキングエージェントによって確立された通信リンクを経由して)メッセージをサーバに送信し、例えば、クライアントデバイスがネットワークアプリケーションのセッションから接続解除することに応答して、ネットワークアプリケーションのために、実行を一時停止するか、または、これらの動作の状態の一部または全部を記憶/キャッシュし得る。動作の状態は、例えば、クライアントデバイスのユーザが同一クライアントデバイス上(または異なるクライアントデバイス上)でセッションを再開するまで、記憶またはキャッシュされ得る。いくつかのインスタンスにおいて、動作の状態(セッション状態とも称される)は、満了時間まで、記憶またはキャッシュされ得る。そのような実施形態は、アプリケーションセッションのモビリティを改良し、意図されないデータ損失を防止することによって、ユーザ体験を増加させ得る。
上で説明されるシステムは、それらのコンポーネントの任意のもののうちの複数のものまたはそれらのコンポーネントの各々を提供し得、これらのコンポーネントは、独立型機械、またはいくつかの実施形態において、分散型システム内の複数の機械のいずれか上に提供され得ることを理解されたい。上で説明されるシステムおよび方法は、プログラミングおよび/またはエンジニアリング技法を使用して、方法、装置、または製造品として実装され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成し得る。加えて、上で説明されるシステムおよび方法は、1つ以上の製造品上または内に具現化される1つ以上のコンピュータ読み取り可能なプログラムとして提供され得る。用語「製造品」は、本明細書で使用されるように、1つ以上のコンピュータ読み取り可能なデバイス、ファームウェア、プログラマブル論理、メモリデバイス(例えば、EEPROM、ROM、PROM、RAM、SRAM等)、ハードウェア(例えば、集積回路チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)、電子デバイス、コンピュータ読み取り可能な不揮発性記憶ユニット(例えば、CD-ROM、USBフラッシュメモリ、ハードディスクドライブ等)からアクセス可能であり、その中に埋め込まれるコードまたは論理を包含するように意図される。製造品は、ネットワーク伝送ライン、無線伝送メディア、空間を通して伝搬する信号、無線波、赤外線信号等を介して、コンピュータ読み取り可能なプログラムへのアクセスを提供するファイルサーバからアクセス可能であり得る。製造品は、フラッシュメモリカードまたは磁気テープであり得る。製造品は、プロセッサによって実行されるコンピュータ読み取り可能な媒体に埋め込まれる、ハードウェア論理およびソフトウェアまたはプログラマブルコードを含む。一般に、コンピュータ読み取り可能なプログラムは、LISP、PERL、C、C++、C#、PROLOG等の任意のプログラミング言語で、またはJAVA(登録商標)等の任意のバイトコード言語で実装され得る。ソフトウェアプログラムは、オブジェクトコードとして、1つ以上の製造品において記憶され得る。
方法およびシステムの種々の実施形態が、説明されているが、これらの実施形態は、例証的であって、説明される方法またはシステムの範囲をいかようにも限定するものではない。当業者は、説明される方法およびシステムの最も広い範囲から逸脱することなく、説明される方法およびシステムの形態および詳細の変化をもたらすことができる。したがって、本明細書に説明される方法およびシステムの範囲は、例証的実施形態のいずれかによって限定されるべきではなく、付随の請求項およびその均等物に従って定義されるべきである。