IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ サイトリックス システムズ,インコーポレイテッドの特許一覧

特表2022-513595SAASアプリケーションのためのインテリセンスのためのシステムおよび方法
<>
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図1
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図2
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図3
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図4
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図5
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図6
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図7
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図8
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図9
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図10
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図11
  • 特表-SAASアプリケーションのためのインテリセンスのためのシステムおよび方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-02-09
(54)【発明の名称】SAASアプリケーションのためのインテリセンスのためのシステムおよび方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20220202BHJP
【FI】
G06F21/62
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021525098
(86)(22)【出願日】2019-11-11
(11)【特許番号】
(45)【特許公報発行日】2022-01-14
(85)【翻訳文提出日】2021-07-02
(86)【国際出願番号】 US2019060715
(87)【国際公開番号】W WO2020102075
(87)【国際公開日】2020-05-22
(31)【優先権主張番号】16/188,118
(32)【優先日】2018-11-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
2.VISUAL BASIC
3.Internet Explorer
4.Firefox
5.ShareFile
6.Sharepoint
7.Chromium
8.Gmail
(71)【出願人】
【識別番号】397074301
【氏名又は名称】サイトリックス システムズ,インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】チョーハン, アビシェク
(57)【要約】
説明される実施形態は、ネットワークアプリケーションを横断して、コンテキストを意識した入力を提供するための方法を含む。本方法は、クライアントアプリケーション内の内蔵ブラウザを介して、複数のネットワークアプリケーションとのユーザのための複数のセッションを確立するステップを含むことができる。本方法は、複数のネットワークアプリケーションを横断したユーザの入力アクティビティをデータ記憶装置に記憶するステップを含むことができる。本方法は、複数のネットワークアプリケーションのうちのネットワークアプリケーションの入力要素上における入力焦点を検出するステップであって、入力要素は、入力されるべきデータのタイプを有する、ステップを含むことができる。
【特許請求の範囲】
【請求項1】
他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するための方法であって、前記方法は、
(a)クライアントアプリケーションによって、前記クライアントアプリケーション内の内蔵ブラウザを介して、複数のネットワークアプリケーションとのユーザのための複数のセッションを確立することと、
(b)前記クライアントアプリケーションによって、前記複数のネットワークアプリケーションを横断した前記ユーザの入力アクティビティをデータ記憶装置に記憶することと、
(c)前記クライアントアプリケーションによって、前記複数のネットワークアプリケーションのうちのネットワークアプリケーションの入力要素上における入力焦点を検出することであって、前記入力要素は、入力されるべきデータのタイプを有する、ことと、
(d)前記クライアントアプリケーションによって、前記データ記憶装置内に記憶される前記複数のネットワークアプリケーションの別のネットワークアプリケーション内で使用されるデータの1つ以上の入力のタイプを識別することと、
(e)前記クライアントアプリケーションによって、別のネットワークアプリケーションからの前記1つ以上の入力を前記ネットワークアプリケーションの入力要素のための選択可能入力として提供することと
を含む、方法。
【請求項2】
前記データ記憶装置は、前記クライアントアプリケーションのクライアントデバイスまたは1つ以上のサーバのうちの1つ上にある、請求項1に記載の方法。
【請求項3】
(b)はさらに、前記複数のネットワークアプリケーションを横断した前記ユーザの入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置に記憶することを含む、請求項1に記載の方法。
【請求項4】
(b)はさらに、前記入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置内のユーザ特有の辞書に記憶することを含み、前記クライアントアプリケーションは、前記ユーザによって使用される前記複数のネットワークアプリケーションを横断した入力補完のために、前記ユーザ特有の辞書を使用する、請求項1に記載の方法。
【請求項5】
(b)はさらに、前記複数のユーザのクライアントアプリケーションによってアクセスされる前記複数のネットワークアプリケーションを横断したエンティティの複数のユーザの入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置内の企業辞書に記憶することを含み、前記クライアントアプリケーションは、前記ユーザによって使用される前記複数のネットワークアプリケーションを横断した入力補完のために、前記企業辞書を使用する、請求項1に記載の方法。
【請求項6】
(c)はさらに、前記内蔵ブラウザによって、前記入力要素内の所定のタグを検出することを含み、前記内蔵ブラウザは、前記所定のタグに応答して、入力補完をトリガするように構成される、請求項1に記載の方法。
【請求項7】
(d)はさらに、前記別のネットワークアプリケーションから別のユーザによって入力されるデータの1つ以上の入力のタイプを識別することを含む、請求項1に記載の方法。
【請求項8】
ユーザ類似性ベースの予測分析を使用して、前記別のユーザまたは前記1つ以上の入力のうちの1つを決定することをさらに含む、請求項7に記載の方法。
【請求項9】
(e)はさらに、前記選択可能な1つ以上の入力を提供するためのコンテキストメニューを提示することを含む、請求項1に記載の方法。
【請求項10】
前記選択可能な1つ以上の入力のうちの選択された1つを使用して、前記入力要素への入力を自動的に補完することをさらに含む、請求項1に記載の方法。
【請求項11】
他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するためのシステムであって、前記システムは、
クライアントアプリケーションであって、前記クライアントアプリケーションは、1つ以上のプロセッサ上で実行可能であり、前記クライアントアプリケーション内の内蔵ブラウザを介して、複数のネットワークアプリケーションとのユーザのための複数のセッションを確立するように構成される、クライアントアプリケーションと、
データ記憶装置であって、前記データ記憶装置は、前記クライアントアプリケーションによって記憶される前記複数のネットワークアプリケーションを横断した前記ユーザの入力アクティビティを記憶するように構成される、データ記憶装置と
を備え、
前記クライアントアプリケーションは、前記複数のネットワークアプリケーションのうちのネットワークアプリケーションの入力要素上における入力焦点を検出するように構成されており、前記入力要素は、入力されるべきデータのタイプを有しており、
前記クライアントアプリケーションは、前記データ記憶装置内に記憶される前記複数のネットワークアプリケーションの別のネットワークアプリケーション内で使用されるデータの1つ以上の入力のタイプを識別することと、
別のネットワークアプリケーションからの1つ以上の入力を前記1つのネットワークアプリケーションの入力要素のための選択可能入力として提供することと
を行うように構成される、システム。
【請求項12】
前記データ記憶装置は、前記クライアントアプリケーションのクライアントデバイスまたは1つ以上のサーバのうちの1つ上にある、請求項11に記載のシステム。
【請求項13】
前記クライアントアプリケーションはさらに、前記複数のネットワークアプリケーションを横断した前記ユーザの入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置に記憶するように構成される、請求項11に記載のシステム。
【請求項14】
前記クライアントアプリケーションはさらに、前記入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置内のユーザ特有の辞書に記憶するように構成され、前記クライアントアプリケーションはさらに、前記ユーザによって使用される前記複数のネットワークアプリケーションを横断した入力補完のために、前記ユーザ特有の辞書を使用するように構成される、請求項11に記載のシステム。
【請求項15】
前記クライアントアプリケーションはさらに、前記複数のユーザのクライアントアプリケーションによってアクセスされる前記複数のネットワークアプリケーションを横断したエンティティの複数のユーザの入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置内の企業辞書に記憶するように構成され、前記クライアントアプリケーションはさらに、前記ユーザによって使用される前記複数のネットワークアプリケーションを横断した入力補完のために、前記企業辞書を使用するように構成される、請求項11に記載のシステム。
【請求項16】
前記内蔵ブラウザはさらに、前記入力要素内の所定のタグを検出するように構成され、前記内蔵ブラウザはさらに、前記所定のタグに応答して、入力補完をトリガするように構成される、請求項11に記載のシステム。
【請求項17】
前記クライアントアプリケーションはさらに、前記別のネットワークアプリケーションから別のユーザによって入力されるデータの1つ以上の入力のタイプを識別するように構成される、請求項11に記載のシステム。
【請求項18】
ユーザ類似性ベースの予測分析が、前記別のユーザまたは前記1つ以上の入力のうちの1つを決定するために適用される、請求項17に記載のシステム。
【請求項19】
前記内蔵ブラウザはさらに、前記選択可能な1つ以上の入力を提供するためのコンテキストメニューを提示するように構成される、請求項11に記載のシステム。
【請求項20】
前記クライアントアプリケーションはさらに、前記選択可能な1つ以上の入力のうちの選択された1つを使用して、前記入力要素への入力を補完するように構成される、請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、その内容が、あらゆる目的のために、参照することによってその全体として本明細書に組み込まれる、「SYSTEMS AND METHODS FOR INTELLISENSE FOR SAAS APPLICATION」と題され、2018年11月12日に出願された、米国特許出願第16/188,118号の優先権および利点を主張する。
【0002】
本願は、概して、限定ではないが、内蔵ブラウザを使用して、ウェブおよびサービスとしてのソフトウェア(SaaS)アプリケーションを管理および監視するためのシステムおよび方法を含む、アプリケーションの管理に関する。
【背景技術】
【0003】
企業の従業員が、より可動性となり、種々の条件下で稼働するにつれて、個人は、パーソナルデバイスを含む、1つ以上のクライアントデバイスを使用して、ウェブアプリケーション等のネットワークリソースにアクセスし得る。クライアントデバイスおよびネットワークリソースがアクセスされ得る様式間の差異に起因して、企業が、ネットワークリソースへのアクセスを管理し、リソースの潜在的不正使用を監視する際に、有意な課題が存在する。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示は、他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するためのシステムおよび方法を対象とする。開示されるシステムおよび方法は、クライアントアプリケーションを使用して、ネットワークアプリケーション(例えば、SaaSアプリケーション)にアクセスする際、ユーザのためのコンテキストを意識した(またはコンテキストに依存した)生産性向上構造を提供することができる。そのようなシステムは、セキュアコンテナがサポートする、種々のSaaSアプリケーションを横断した、グローバルビューおよびいくつかのコンテキストを原動力とすることができる。そのようなコンテキストを欠いている、いくつかのネットワークアプリケーションに関して、コンテキストは、これらの種類のネットワークアプリケーションにおいて複製されることができる。
【0005】
時として、SaaSコンテナとも称され得る、セキュアコンテナは、ユーザ(または企業)がクライアントアプリケーションを通してアクセスしている、複数のネットワークアプリケーションを横断してビューを有することができる。したがって、クライアントアプリケーションは、あるタイプのデータが入力されることの検出に応答して、例えば、住所、電話番号、カレンダ予約、注文番号、多文字列確認コード、および/または予約等、コンテキストを意識した生産性向上構造を提供することができる。さらに、クライアントアプリケーションは、企業全体の辞書、複数のネットワークアプリケーションを横断したユーザ特有の辞書、および/またはユーザ類似性分析(コホート分析)に従って、入力要素への自動補完機能を提供することができる。随意に、時として、「インテリセンス」とも称される、自動補完機能は、クライアントアプリケーションが、入力要素内に設置され得る、所定のタグを検出することによっても、トリガされることができる。トリガされることに応じて、クライアントアプリケーションは、インテリセンスに基づいて、コンテキストメニューを提示することができる。
【0006】
一側面では、本開示は、他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するための方法を対象とする。本方法は、クライアントアプリケーションによって、クライアントアプリケーション内の内蔵ブラウザを介して、複数のネットワークアプリケーションとのユーザのための複数のセッションを確立するステップを含むことができる。本方法は、クライアントアプリケーションによって、複数のネットワークアプリケーションを横断したユーザの入力アクティビティをデータ記憶装置に記憶するステップを含むことができる。本方法は、クライアントアプリケーションによって、複数のネットワークアプリケーションのネットワークアプリケーションの入力要素上における入力焦点を検出するステップであって、入力要素は、入力されるべきデータのタイプを有する、ステップを含むことができる。本方法は、クライアントアプリケーションによって、データ記憶装置内に記憶される、複数のネットワークアプリケーションの別のネットワークアプリケーション内で使用されるデータの1つ以上の入力のタイプを識別するステップを含むことができる。本方法は、クライアントアプリケーションによって、別のネットワークアプリケーションからの1つ以上の入力をネットワークアプリケーションの入力要素のための選択可能入力として提供するステップを含むことができる。
【0007】
いくつかの実施形態では、データ記憶装置は、クライアントアプリケーションのクライアントデバイスまたは1つ以上のサーバのうちの1つ上にある。
【0008】
いくつかの実施形態では、本方法はさらに、複数のネットワークアプリケーションを横断したユーザの入力アクティビティにおいて入力として使用されたデータをデータ記憶装置に記憶するステップを含むことができる。
【0009】
いくつかの実施形態では、本方法はさらに、入力アクティビティにおいて入力として使用されたデータをデータ記憶装置内のユーザに特有の辞書に記憶するステップを含むことができ、クライアントアプリケーションは、ユーザによって使用される複数のネットワークアプリケーションを横断した入力補完のために、ユーザ特有の辞書を使用する。
【0010】
いくつかの実施形態では、本方法はさらに、複数のユーザのクライアントアプリケーションによってアクセスされる複数のネットワークアプリケーションを横断したエンティティの複数のユーザの入力アクティビティにおいて入力として使用されたデータをデータ記憶装置内の企業辞書に記憶するステップを含むことができる。クライアントアプリケーションは、ユーザによって使用される複数のネットワークアプリケーションを横断した入力補完のために、企業辞書を使用することができる。
【0011】
いくつかの実施形態では、本方法はさらに、内蔵ブラウザによって、入力要素内の所定のタグを検出するステップを含むことができ、内蔵ブラウザは、所定のタグに応答して、入力補完をトリガするように構成される。
【0012】
いくつかの実施形態では、本方法はさらに、別のネットワークアプリケーションから別のユーザによって入力されるデータの1つ以上の入力のタイプを識別するステップを含むことができる。
【0013】
いくつかの実施形態では、本方法はさらに、ユーザ類似性ベースの予測分析を使用して、別のユーザまたは1つ以上の入力のうちの1つを決定するステップを含むことができる。
【0014】
いくつかの実施形態では、本方法はさらに、選択可能な1つ以上の入力を提供するためのコンテキストメニューを提示するステップを含むことができる。
【0015】
いくつかの実施形態では、本方法はさらに、選択可能な1つ以上の入力のうちの選択された1つを使用して、入力要素への入力を自動的に補完するステップを含むことができる。
【0016】
別の側面では、本開示は、他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するためのシステムを対象とする。本システムは、1つ以上のプロセッサ上で実行可能なクライアントアプリケーションを含むことができる。クライアントアプリケーションは、クライアントアプリケーション内の内蔵ブラウザを介して、複数のネットワークアプリケーションとのユーザのための複数のセッションを確立することができる。本システムは、データ記憶装置を含むことができる。データ記憶装置は、クライアントアプリケーションによって記憶される複数のネットワークアプリケーションを横断して、ユーザの入力アクティビティを記憶することができる。クライアントアプリケーションは、複数のネットワークアプリケーションのネットワークアプリケーションの入力要素上における入力焦点を検出することができ、入力要素は、入力されるべきデータのタイプを有する。クライアントアプリケーションは、データ記憶装置内に記憶される、複数のネットワークアプリケーションの別のネットワークアプリケーション内で使用されるデータの1つ以上の入力のタイプを識別することができる。クライアントアプリケーションは、別のネットワークアプリケーションからの1つ以上の入力を1つのネットワークアプリケーションの入力要素のための選択可能入力として提供することができる。
【0017】
いくつかの実施形態では、データ記憶装置は、クライアントアプリケーションのクライアントデバイスまたは1つ以上のサーバのうちの1つ上にある。
【0018】
いくつかの実施形態では、クライアントアプリケーションはさらに、複数のネットワークアプリケーションを横断したユーザの入力アクティビティにおいて入力として使用されたデータをデータ記憶装置に記憶することができる。
【0019】
いくつかの実施形態では、クライアントアプリケーションはさらに、入力アクティビティにおいて入力として使用されたデータをデータ記憶装置内のユーザに特有の辞書に記憶することができる。クライアントアプリケーションはさらに、ユーザによって使用される複数のネットワークアプリケーションを横断した入力補完のために、ユーザ特有の辞書を使用することができる。
【0020】
いくつかの実施形態では、クライアントアプリケーションはさらに、複数のユーザのクライアントアプリケーションによってアクセスされる複数のネットワークアプリケーションを横断したエンティティの複数のユーザの入力アクティビティにおいて入力として使用されたデータをデータ記憶装置内の企業辞書に記憶することができる。クライアントアプリケーションはさらに、ユーザによって使用される複数のネットワークアプリケーションを横断した入力補完のために、企業辞書を使用することができる。
【0021】
いくつかの実施形態では、内蔵ブラウザはさらに、入力要素内の所定のタグを検出し、内蔵ブラウザはさらに、所定のタグに応答して、入力補完をトリガするように構成されることができる。
【0022】
いくつかの実施形態では、クライアントアプリケーションはさらに、別のネットワークアプリケーションから別のユーザによって入力されるデータの1つ以上の入力のタイプを識別することができる。
【0023】
いくつかの実施形態では、ユーザ類似性ベースの予測分析が、別のユーザまたは1つ以上の入力のうちの1つを決定するために適用される。
【0024】
いくつかの実施形態では、内蔵ブラウザはさらに、選択可能な1つ以上の入力を提供するためのコンテキストメニューを提示することができる。
【0025】
いくつかの実施形態では、クライアントアプリケーションはさらに、選択可能な1つ以上の入力のうちの選択された1つを使用して、入力要素への入力を補完することができる。
【図面の簡単な説明】
【0026】
本ソリューションの前述および他の目的、側面、特徴、および利点は、付随の図面と関連して検討される、以下の説明を参照することによって、より明白となり、より深く理解されるであろう。
【0027】
図1図1は、コンピューティングデバイスの実施形態のブロック図である。
図2図2は、リソースにアクセスする際に使用するためのクラウドサービスの例証的実施形態のブロック図である。
図3図3は、企業モビリティ管理システムの例示的実施形態のブロック図である。
図4図4は、内蔵ブラウザのシステム400のブロック図である。
図5図5は、セキュアブラウザを使用するためのシステムの例示的実施形態のブロック図である。
図6図6は、セキュアブラウザプラグインを使用したブラウザリダイレクトのための実装の例示的表現である。
図7図7は、セキュアブラウザを使用するシステムの例示的実施形態のブロック図である。
図8図8は、ローカル内蔵ブラウザおよびホストされたセキュア化されたブラウザを使用するためのシステムの例示的実施形態のブロック図である。
図9図9は、ローカル内蔵ブラウザおよびホストされたセキュア化されたブラウザを使用するための例示的プロセスフローである。
図10図10は、ウェブページへのユーザアクセスを管理するためのシステムの例示的実施形態である。
図11図11は、コンテキストを意識した入力をいくつかのネットワークアプリケーションのうちの1つに提供するためのシステムの例示的実施形態である。
図12図12は、コンテキストを意識した入力をいくつかのネットワークアプリケーションのうちの1つに提供するための方法の例示的実施形態である。
【0028】
本ソリューションの特徴および利点は、同様の参照文字が全体を通して対応する要素を識別する、図面と関連して検討されるとき、下記に記載される詳細な説明からより明白となるであろう。図面では、同様の参照番号は、概して、同じ、機能的に類似する、および/または構造的に類似する要素を示す。
【発明を実施するための形態】
【0029】
下記の種々の実施形態の説明を熟読する目的のために、本明細書の節の以下の説明およびその個別の内容が、有用であり得る。
【0030】
第A節は、本明細書に説明される実施形態を実践するために有用であり得る、コンピューティング環境を説明する。
【0031】
第B節は、内蔵ブラウザのためのシステムおよび方法を説明する。
【0032】
第C節は、複数のネットワークアプリケーションを横断してコンテキストを意識した入力を提供するためのシステムおよび方法を説明する。
A.コンピューティング環境
【0033】
第B節において本明細書に詳述されるシステムおよび方法の実施形態の詳細について議論することに先立って、そのような実施形態が展開され得る、コンピューティング環境について議論することが有用であり得る。
【0034】
図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と、例えば、オペレーティングシステム115および/またはアプリケーション116のコンピュータ命令が、プロセッサ103によって揮発性メモリ122から実行されるように、データ117とを記憶する。いくつかの実施形態では、揮発性メモリ122は、メインメモリより高速の応答時間をもたらし得る、RAMおよび/またはキャッシュメモリのうちの1つ以上のタイプを含んでもよい。データは、GUI124の入力デバイスを使用して打ち込まれる、またはI/Oデバイス126から受信されてもよい。コンピュータ101の種々の要素は、通信バス150として示される、1つ以上の通信バスを介して、通信してもよい。
【0035】
図1に示されるようなコンピュータ101は、単なる実施例として、クライアント、サーバ、中間体、および他のネットワーキングデバイスとして示され、任意のコンピューティングまたは処理環境によって、本明細書に説明されるように動作することが可能な好適なハードウェアおよび/またはソフトウェアを有し得る、任意のタイプの機械またはセットの機械を用いて実装されてもよい。プロセッサ103は、1つ以上のプログラマブルプロセッサによって実装され、コンピュータプログラム等の1つ以上の実行可能命令を実行し、システムの機能を実施してもよい。本明細書で使用されるように、用語「プロセッサ」は、機能、動作、または動作のシーケンスを実施する、回路網を説明する。機能、動作、または動作のシーケンスは、回路網の中にハードコーディングされてもよい、または、メモリデバイス内に保持され、回路網によって実行される命令を用いて、ソフトコーディングされてもよい。「プロセッサ」は、デジタル値を使用して、および/またはアナログ信号を使用して、機能、動作、または動作のシーケンスを実施してもよい。いくつかの実施形態では、「プロセッサ」は、1つ以上の特定用途向け集積回路(ASIC)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、グラフィック処理ユニット(GPU)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)、マルチコアプロセッサ、または関連付けられるメモリを伴う汎用コンピュータ内に具現化されることができる。「プロセッサ」は、アナログ、デジタル、または複合信号であってもよい。いくつかの実施形態では、「プロセッサ」は、1つ以上の物理的プロセッサまたは1つ以上の「仮想」(例えば、遠隔に位置するまたは「クラウド」)プロセッサであってもよい。複数のプロセッサコアを含むプロセッサおよび/または複数のプロセッサは、命令の並列同時実行または1つを上回るデータ上での1つの命令の並列同時実行のための機能性を提供し得る。
【0036】
通信インターフェース118は、1つ以上のインターフェースを含み、コンピュータ101が、種々の有線および/または無線またはセルラー接続を通して、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)等のコンピュータネットワーク、またはインターネットにアクセスすることを可能にしてもよい。
【0037】
説明される実施形態では、コンピューティングデバイス101は、クライアントコンピューティングデバイスのユーザの代わりに、アプリケーションを実行してもよい。例えば、コンピューティングデバイス101は、ホストされたデスクトップセッション等、その中でアプリケーションが、ユーザまたはクライアントコンピューティングデバイスの代わりに実行する、実行セッションを提供する、仮想機械を実行してもよい。コンピューティングデバイス101はまた、端末サービスセッションを実行し、ホストされたデスクトップ環境を提供してもよい。コンピューティングデバイス101は、その中で1つ以上のアプリケーションが実行され得る、1つ以上のアプリケーション、1つ以上のデスクトップアプリケーション、および1つ以上のデスクトップセッションのうちの1つ以上のものを含む、コンピューティング環境へのアクセスを提供してもよい。
【0038】
ネットワーク環境、コンピュータ101、およびクライアントおよびサーバコンピュータの実装および動作の付加的詳細は、2017年1月3日にCitrix Systems, Inc.(Fort Lauderdale, FL)に発行された米国特許第9,538,345号(その教示は、参照することによって本明細書に組み込まれる)に説明されるようなものであり得る。
B.内蔵ブラウザのためのシステムおよび方法
【0039】
本開示は、内蔵ブラウザのシステムおよび方法を対象とする。クライアントデバイス上で実行されるクライアントアプリケーションは、ユーザが、ウェブアプリケーションおよびサービスとしてのソフトウェア(SaaS)アプリケーション(以降、時として、概して、ネットワークアプリケーションと称される)等の1つ以上のサーバからサーブされる、および/またはその上にホストされる、アプリケーション(アプリ)にアクセスすることを可能にすることができる。クライアントアプリケーションに内蔵または統合された、ブラウザは、ユーザに、クライアントアプリケーションを介してアクセスまたは要求される、ネットワークアプリケーションをレンダリングすることができ、ユーザとネットワークアプリケーションとの間の相互作用を有効にすることができる。ブラウザは、時として、内蔵ブラウザとも称され、内蔵ブラウザを伴うクライアントアプリケーション(CEB)は、時として、作業空間アプリケーションとも称される。クライアントアプリケーションは、1つ以上のサーバとのセキュア接続を確立し、ユーザがクライアントデバイスおよび内蔵ブラウザを使用してネットワークアプリケーションにアクセスするためのアプリケーションセッションを提供することができる。内蔵ブラウザは、クライアントアプリケーションと統合され、ネットワークアプリケーションに関連するトラフィックが、クライアントアプリケーションを通してルーティングされ、および/またはその中で処理されることを確実にすることができ、これは、クライアントアプリケーションに、トラフィックに対するリアルタイム可視性(例えば、クライアントアプリケーションを通して解読されるとき)およびユーザ相互作用および挙動を提供することができる。内蔵ブラウザは、ネットワークアプリケーションが、ユーザインターフェース(クライアントアプリケーションおよび内蔵ブラウザによって共有される)を介して要求され、同一ユーザインターフェース内の内蔵ブラウザを通してレンダリングされるため、シームレスな体験をユーザに提供することができる。
【0040】
クライアントアプリケーションは、セキュアソケット層(SSL)仮想プライベートネットワーク(VPN)接続等のネットワークアプリケーションのサーバと確立されたセキュア化された接続の一端で終端し得る。クライアントアプリケーションは、暗号化されたトラフィックをネットワークアプリケーションから受信することができ、さらなる処理(例えば、内蔵ブラウザによるレンダリング)の前に、トラフィックを解読することができる。クライアントアプリケーションは、(例えば、暗号化されたパケット形態における)受信されたトラフィックを監視し、また、解読されたデータストリームおよび/またはSSLスタックの中の完全可視性を有することができる。本可視性は、クライアントアプリケーションが、ポリシベースの管理(例えば、データ損失防止(DLP)能力を含む)、アプリケーション制御(例えば、性能、サービス水準を改良するため)、および分析の収集および生成を実施または促進することを可能にすることができる。例えば、ローカルCEBは、情報技術(IT)管理者に、CEBを通してウェブおよびSaaSアプリケーションを展開するための制御されたシステムを提供し、IT管理者が、CEBを介して、前述のアクティビティのいずれかを実施するためのポリシまたは構成を設定することを可能にすることができる。
【0041】
多くのウェブおよびSaaS配信アプリケーションが、ウェブサーバからユーザの汎用ブラウザ(例えば、Internet Explorer、Firefox等)に接続する。いったん認証されると、そのようなネットワークアプリケーションのセッション全体は、暗号化される。しかしながら、本シナリオでは、管理者は、ユーザのデジタル作業空間からネットワークアプリケーションに入るコンテンツ、またはネットワークアプリケーションから離れ、ユーザのデジタル作業空間に入るコンテンツの可視性、分析、または制御を有し得ない。さらに、汎用ブラウザ内で閲覧されるネットワークアプリケーションのコンテンツは、潜在的に任意の恣意的アプリケーションまたはデバイスにコピーまたはダウンロードされ(例えば、ユーザまたはプログラムによって)、可能性として考えられる侵害をデータセキュリティにもたらし得る。
【0042】
本システムおよび方法は、ネットワークアプリケーションと関連付けられるトラフィックがCEBを通してチャネリングされることを確実にすることができる。例証として、ユーザが、例えば、有効にされたセキュリティアサーションマークアップ言語(SAML)でSaaSウェブサービスにアクセスすると、対応するアクセス要求が、CEBがアクセス要求を行うために使用されたかどうかを決定、チェック、または照合する、指定されるゲートウェイサービスに転送され得る。CEBがアクセス要求を行うために使用されたことの決定に応答して、ゲートウェイサービスは、認証およびシングルサインオン(SSO)を実施または提供することができ、CEBが、直接、SaaSウェブサービスに接続することを可能にすることができる。暗号化(例えば、標準的暗号化)が、CEBとSaaSウェブサービスとの間のアプリケーションセッションのために使用されることができる。ウェブサービスからのコンテンツが、内蔵ブラウザを介して閲覧されるためにCEB内で暗号化解除されると、および/または入力が、CEBを介して打ち込まれると、CEBは、例えば、制御および分析のために、追加されるサービスを選択的アプリケーション関連情報上に提供することができる。例えば、分析エージェントまたはアプリケーションプログラミングインターフェース(API)が、CEBに内蔵され、追加されるサービスを提供または実施することができる。
【0043】
CEB(時として、作業空間アプリケーションまたは受信機とも称される)は、1つ以上のゲートウェイサービス、中間体、および/またはネットワークサーバ(時として、集合的に、クラウドサービスまたはCitrix Cloudと称される)と相互運用され、アクセスをネットワークアプリケーションに提供することができる。クラウドサービスの実施形態の動作に関連する環境の特徴および要素は、下記に説明される。
【0044】
図2は、ネットワークアプリケーションを含む、リソースにアクセスする際に使用するためのクラウドサービスの実施形態を図示する。クラウドサービスは、企業モビリティ技術アーキテクチャ200を含むことができ、これは、1つの例証的実施形態では、アクセスゲートウェイ260を含むことができる。アーキテクチャは、例えば、ブリング・ユア・オウン・デバイス(BYOD)環境内で使用されることができる。アーキテクチャは、クライアントデバイス202(例えば、モバイルまたは他のデバイス)のユーザが、クライアントデバイス202から企業またはパーソナルリソースの両方にアクセスし、パーソナル使用のために、クライアントデバイス202を使用することを有効にすることができる。ユーザは、クライアントデバイス202上で実行されるクライアントアプリケーションを介して、そのような企業リソース204または企業サービス208にアクセスしてもよい。ユーザは、ユーザによって購入されたクライアントデバイス202または企業によってユーザに提供されたクライアントデバイス202を使用して、そのような企業リソース204または企業サービス208にアクセスしてもよい。ユーザは、業務使用のみのために、または業務およびパーソナル使用のために、クライアントデバイス202を利用してもよい。クライアントデバイスは、iOSオペレーティングシステムおよびAndroidオペレーティングシステムまたは同等物を起動させてもよい。企業は、クライアントデバイス202を管理するためのポリシを実装することを選定してもよい。ポリシは、クライアントデバイスが、識別、セキュア化、またはセキュリティ照合され、企業リソースに対する選択的または完全アクセスを提供され得るように、ファイアウォールまたはゲートウェイを通して埋め込まれてもよい。ポリシは、クライアントデバイス管理ポリシ、モバイルアプリケーション管理ポリシ、モバイルデータ管理ポリシ、またはクライアントデバイス、アプリケーション、およびデータ管理ポリシのある組み合わせであってもよい。クライアントデバイス管理ポリシの適用を通して管理される、クライアントデバイス202は、登録されたデバイスと称され得る。クライアントデバイス管理ポリシは、例えば、クライアントアプリケーションを介して適用されることができる。
【0045】
いくつかの実施形態では、クライアントデバイスのオペレーティングシステムは、管理下パーティション210および非管理下パーティション212に分離されてもよい。管理下パーティション210は、ポリシをそれに適用させ、管理下パーティション上で起動されるアプリケーションおよびその中に記憶されるデータをセキュア化し得る。管理下パーティション上で起動するアプリケーションは、セキュアアプリケーションであり得る。他の実施形態では、全てのアプリケーションは、アプリケーションと別個に受信され、そのアプリケーションが本デバイス上で実行されているとき、クライアントデバイス管理システムによって施行される、1つ以上のセキュリティパラメータ、特徴、リソース制限、および/または他のアクセス制御を定義する、1つ以上のポリシファイルのセットに従って実行されてもよい。その個別のポリシファイルに従って動作することによって、各アプリケーションは、1つ以上の他のアプリケーションおよび/またはリソースとの通信を可能にされる、またはそれが制限され、それによって、仮想パーティションを作成し得る。したがって、本明細書で使用されるように、パーティションは、メモリの物理的にパーティション化された部分(物理的パーティション)、メモリの論理的にパーティション化された部分(論理的パーティション)、および/または本明細書に説明されるような複数のアプリを横断した1つ以上のポリシおよび/またはポリシファイルの施行の結果として作成される仮想パーティション(仮想パーティション)を指し得る。換言すると、管理下アプリ上でポリシを施行することによって、それらのアプリは、他の管理下アプリおよび信頼された企業リソースと通信することのみが可能であるように制限され、それによって、非管理下アプリおよびデバイスによってアクセス可能ではない、仮想パーティションを作成し得る。
【0046】
セキュアアプリケーションは、電子メールアプリケーション、ウェブブラウジングアプリケーション、サービスとしてのソフトウェア(SaaS)アクセスアプリケーション、Windows(登録商標)アプリケーションアクセスアプリケーション、および同等物であり得る。クライアントアプリケーションは、セキュアアプリケーションランチャ218を含むことができる。セキュアアプリケーションは、セキュアネイティブアプリケーション214、セキュアアプリケーションランチャ218によって実行されるセキュア遠隔アプリケーション222、セキュアアプリケーションランチャ218によって実行される仮想化アプリケーション226、および同等物であり得る。セキュアネイティブアプリケーション214は、セキュアアプリケーションラッパ220によってラッピングされ得る。セキュアアプリケーションラッパ220は、セキュアネイティブアプリケーションがデバイス上で実行されるとき、クライアントデバイス202上で実行される、統合されたポリシを含んでもよい。セキュアアプリケーションラッパ220は、クライアントデバイス202上で起動するセキュアネイティブアプリケーション214を、セキュアネイティブアプリケーション214がセキュアネイティブアプリケーション214の実行に応じて要求されるタスクを完了するために要求し得る、企業にホストされたリソースにポインティングする、メタデータを含んでもよい。セキュアアプリケーションランチャ218によって実行されるセキュア遠隔アプリケーション222は、セキュアアプリケーションランチャアプリケーション218内で実行されてもよい。セキュアアプリケーションランチャ218によって実行される仮想化アプリケーション226は、クライアントデバイス202上の、企業リソース204における、および同等物のリソースを利用してもよい。セキュアアプリケーションランチャ218によって実行される仮想化アプリケーション226によってクライアントデバイス202上で使用されるリソースは、ユーザ相互作用リソース、処理リソース、および同等物を含んでもよい。ユーザ相互作用リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、オーディオ入力、視覚的入力、ジェスチャ入力、および同等物を収集および伝送するために使用されてもよい。処理リソースは、ユーザインターフェース、企業リソース204から受信されたプロセスデータ、および同等物を提示するために使用されてもよい。セキュアアプリケーションランチャ218によって実行される仮想化アプリケーション226によって企業リソース204において使用されるリソースは、ユーザインターフェース発生リソース、処理リソース、および同等物を含んでもよい。ユーザインターフェース発生リソースは、ユーザインターフェースを組み立てる、ユーザインターフェースを修正する、ユーザインターフェースをリフレッシュする、および同等物のために使用されてもよい。処理リソースは、情報を作成する、情報を読みとる、情報を更新する、情報を削除する、および同等物のために使用されてもよい。例えば、仮想化アプリケーションは、サーバアプリケーションがサーバ上で動作するアプリケーションへの入力としてユーザ相互作用データを使用し得る場合、グラフィカルユーザインターフェース(GUI)と関連付けられるユーザ相互作用を記録し、それらをサーバアプリケーションに通信してもよい。本配列では、企業は、アプリケーションを、アプリケーションと関連付けられるデータ、ファイル等とともに、サーバ側上に維持することを選んでもよい。企業は、本明細書の原理に従って、いくつかのアプリケーションを、(例えば、クライアントアプリケーションを介して)クライアントデバイス上での展開のためにそれらをセキュア化することによって「動態化」することを選び得るが、本配列はまた、あるアプリケーションのために選ばれてもよい。例えば、いくつかのアプリケーションは、クライアントデバイス上での使用のためにセキュア化され得るが、その他は、クライアントデバイス上での展開のために準備されない、または適切ではない場合があり、したがって、企業は、仮想化技法を通して、非準備アプリケーションへのモバイルユーザアクセスを提供することを選んでもよい。別の実施例として、企業は、クライアントデバイスのためにアプリケーションをカスタマイズすることが非常に困難である、または別様に望ましくないであろう、大規模で複合的なデータセットを伴う、大規模で複合的なアプリケーション(例えば、材料リソース計画アプリケーション)を有し得、したがって、企業は、仮想化技法を通して、アプリケーションへのアクセスを提供することを選んでもよい。さらに別の実施例として、企業は、セキュア化されたモバイル環境に関してさえ非常に取扱に注意を要すると企業によって見なされ得る、高度にセキュア化されたデータ(例えば、人材データ、顧客データ、エンジニアリングデータ)を維持する、アプリケーションを有し得、したがって、企業は、仮想化技法を使用して、そのようなアプリケーションおよびデータへのモバイルアクセスを許可することを選んでもよい。企業は、完全にセキュア化され、かつ完全に機能的の両方である、アプリケーションをクライアントデバイス上で提供することを選んでもよい。企業は、仮想化アプリケーションを含み得る、クライアントアプリケーションを使用して、サーバ側上でより適切に動作されると見なされる、アプリケーションへのアクセスを可能にすることができる。ある実施形態では、仮想化アプリケーションは、一部のデータ、ファイル等を、セキュアストレージ場所のうちの1つにおいて携帯電話上に記憶してもよい。企業は、例えば、ある情報が電話上に記憶されることを可能にするが、他の情報を許可しないことを選んでもよい。
【0047】
仮想化アプリケーションに関連して、本明細書に説明されるように、クライアントデバイスは、GUIを提示し、次いで、GUIとのユーザ相互作用を記録するように設計される、仮想化アプリケーションを有してもよい。仮想化アプリケーションは、アプリケーションとのユーザ相互作用としてサーバ側アプリケーションによって使用されるために、ユーザ相互作用をサーバ側に通信してもよい。それに応答して、サーバ側上のアプリケーションは、クライアントデバイスに、新しいGUIを返信してもよい。例えば、新しいGUIは、静的ページ、動的ページ、アニメーション、または同等物であって、それによって、遠隔で位置するリソースへのアクセスを提供してもよい。
【0048】
セキュアアプリケーションは、クライアントデバイスの管理下パーティション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上に留まってもよい。企業は、選択されたクライアントデバイスから、または企業(企業データ)によって所有、ライセンス供与、または制御される、全てのデータ、ファイル、および/またはアプリケーションを削除する一方、ユーザによって所有、ライセンス供与、または制御される、パーソナルデータ、ファイル、および/またはアプリケーション(パーソナルデータ)を残す、または別様に保存することを所望してもよい。本動作は、選択的消去と称され得る。本明細書に説明される側面に従って配列される企業およびパーソナルデータを用いることで、企業は、選択的消去を実施し得る。
【0049】
クライアントデバイス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へのアクセスを与え得る。
【0050】
仮想プライベートネットワーク接続は、アクセスゲートウェイ260によって確立および管理されてもよい。アクセスゲートウェイ260は、クライアントデバイス202への企業リソース204の配信を管理、加速、および改良する、性能向上特徴を含んでもよい。アクセスゲートウェイはまた、トラフィックをクライアントデバイス202からパブリックインターネット248に再ルーティングし、クライアントデバイス202が、パブリックインターネット248上で起動される、公的に入手可能かつ非セキュア化されたアプリケーションにアクセスすることを有効にしてもよい。クライアントデバイスは、トランスポートネットワーク262を介して、アクセスゲートウェイに接続してもよい。トランスポートネットワーク262は、1つ以上のトランスポートプロトコルを使用してもよく、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、都市規模ネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク、および同等物であってもよい。
【0051】
企業リソース204は、電子メールサーバ、ファイル共有サーバ、SaaS/ウェブアプリケーション、ウェブアプリケーションサーバ、Windows(登録商標)アプリケーションサーバ、および同等物を含んでもよい。電子メールサーバは、Exchangeサーバ、Lotus Notesサーバ、および同等物を含んでもよい。ファイル共有サーバは、ShareFileサーバおよび同等物を含んでもよい。SaaSアプリケーションは、Salesforceおよび同等物を含んでもよい。Windows(登録商標)アプリケーションサーバは、ローカルWindows(登録商標)オペレーティングシステムおよび同等物上で起動されるように意図される、アプリケーションを提供するために構築される、任意のアプリケーションサーバを含んでもよい。企業リソース204は、敷地ベースのリソース、クラウドベースのリソース、および同等物であってもよい。企業リソース204は、直接、クライアントデバイス202によって、またはアクセスゲートウェイ260を通して、アクセスされてもよい。企業リソース204は、トランスポートネットワーク262を介して、クライアントデバイス202によってアクセスされてもよい。トランスポートネットワーク262は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、都市規模ネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク、および同等物であってもよい。
【0052】
クラウドサービスは、アクセスゲートウェイ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は、管理サービス、プロビジョニングサービス、展開サービス、割当サービス、取消サービス、ラッピングサービス、および同等物を含んでもよい。
【0053】
企業モビリティ技術アーキテクチャ200は、アプリケーションストア278を含んでもよい。アプリケーションストア278は、非ラッピングアプリケーション280、事前にラッピングされたアプリケーション282、および同等物を含んでもよい。アプリケーションは、アプリケーションコントローラ274からアプリケーションストア278内に取り込まれてもよい。アプリケーションストア278は、アクライアントデバイス202によって、アクセスゲートウェイ260を通して、パブリックインターネット248を通して、または同等物を通して、アクセスされてもよい。アプリケーションストアは、直感的で使用が容易なユーザインターフェースを提供されてもよい。
【0054】
ソフトウェア開発キット284は、セキュアラッパをアプリケーションの周囲に提供することによって、ユーザに、ユーザによって選択されたアプリケーションをセキュア化する能力を提供し得る。ソフトウェア開発キット284を使用してラッピングされているアプリケーションは、次いで、アプリケーションコントローラ274を使用して、それをアプリケーションストア278内に取り込むことによって、クライアントデバイス202に利用可能にされ得る。
【0055】
企業モビリティ技術アーキテクチャ200は、管理および分析能力を含んでもよい。管理および分析能力は、リソースが使用される方法、リソースが使用される頻度、同等物に関連する情報を提供してもよい。リソースは、デバイス、アプリケーション、データ、および同等物を含んでもよい。リソースが使用される方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか、および同等物を含んでもよい。リソースが使用される頻度は、アプリケーションがダウンロードされた頻度、データの具体的セットがアプリケーションによってアクセスされた回数、および同等物を含んでもよい。
【0056】
図3は、企業モビリティ管理システム300の例証的実施形態を描写する。図2を参照して上記に説明されるモビリティ管理システム200のコンポーネントのうちのいくつかは、単純性の目的のために省略されている。図3に描写されるシステム300のアーキテクチャは、多くの点において、図2を参照して上記に説明されるシステム200のアーキテクチャに類似し、上記に述べられていない付加的特徴を含んでもよい。
【0057】
この場合、左側は、ゲートウェイサーバ306と相互作用し、上記の右側上に示される、ウェブまたはSasSアプリケーション、Exchange、Sharepoint、公開鍵基盤(PKI)リソース、Kerberosリソース、認証書発行サービス等の種々の企業リソース308およびサービス309にアクセスする、クライアントエージェント304を伴う、登録されたクライアントデバイス302を表す。ゲートウェイサーバ306は、アクセスゲートウェイ260およびアプリケーションコントローラ機能性等のクラウドサービスの特徴および機能性の実施形態を含むことができる。具体的に示されないが、クライアントエージェント304は、ネットワークアプリケーションの選択および/またはダウンロードのために、企業アプリケーションストア(ストアフロント)として動作し得る、クライアントアプリケーションの一部であってもよい、および/またはそれと相互作用してもよい。
【0058】
クライアントエージェント304は、高品位ユーザ体験(HDX)または独立コンピューティングアーキテクチャ(ICA)ディスプレイ遠隔プロトコルを使用してアクセスされる、企業データセンタ内にホストされたWindows(登録商標)アプリ/デスクトップのためのUI(ユーザインターフェース)中間体として作用することができる。クライアントエージェント304はまた、ネイティブiOSまたはAndroidアプリケーション等のクライアントデバイス302上のネイティブアプリケーションのインストールおよび管理をサポートすることができる。例えば、上記の図に示される、管理下アプリケーション310(メール、ブラウザ、ラッピングされたアプリケーション)は、デバイス上でローカルで実行される、ネイティブアプリケーションである。本アーキテクチャのクライアントエージェント304およびアプリケーション管理フレームワークは、コネクティビティおよびSSO(シングルサインオン)等のポリシ主導型管理能力および特徴を企業リソース/サービス308に提供するように作用する。クライアントエージェント304は、他のゲートウェイサーバコンポーネントへのSSOを用いて、企業、例えば、アクセスゲートウェイ(AG)に対する一次ユーザ認証をハンドリングする。クライアントエージェント304は、ポリシをゲートウェイサーバ306から取得し、クライアントデバイス302上での管理下アプリケーション310の挙動を制御する。
【0059】
ネイティブアプリケーション310とクライアントエージェント304との間のセキュアプロセス間通信(IPC)リンク312は、管理チャネルを表し、これは、クライアントエージェントが、各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク314によって施行されるためのポリシを供給することを可能にする。IPCチャネル312はまた、クライアントエージェント304が、企業リソース308へのコネクティビティおよびSSOを有効にする、証明書および認証情報を供給することを可能にする。最後に、IPCチャネル312は、アプリケーション管理フレームワーク314が、オンラインおよびオフライン認証等のクライアントエージェント304によって実装されるユーザインターフェース機能を呼び出すことを可能にする。
【0060】
クライアントエージェント304とゲートウェイサーバ306との間の通信は、本質的に、各ネイティブ管理下アプリケーション310をラッピングするアプリケーション管理フレームワーク314からの管理チャネルの拡張である。アプリケーション管理フレームワーク314は、ポリシ情報をクライアントエージェント304から要求し、これは、ひいては、それをゲートウェイサーバ306から要求する。アプリケーション管理フレームワーク314は、認証を要求し、クライアントエージェント304は、ゲートウェイサーバ306(NetScalerアクセスゲートウェイとしても知られる)のゲートウェイサービス部分にログインする。クライアントエージェント304はまた、サポートサービスをゲートウェイサーバ306上にコールしてもよく、これは、ローカルデータボルト316のための暗号化キーを導出するための入力材料を生成する、または下記により完全に解説されるように、PKI保護リソースへの直接認証を有効にし得る、クライアント認証書を提供し得る。
【0061】
さらに詳細には、アプリケーション管理フレームワーク314は、各管理下アプリケーション310を「ラッピング」する。これは、明示的構築ステップを介して、または構築後処理ステップを介して、組み込まれてもよい。アプリケーション管理フレームワーク314は、アプリケーション310の最初の立ち上げの際のクライアントエージェント304と「ペアリング」し、セキュアIPCチャネルを初期化し、そのアプリケーションのためのポリシを取得してもよい。アプリケーション管理フレームワーク314は、クライアントエージェントログイン依存性およびローカルOSサービスが使用され得る方法またはそれらがアプリケーション310と相互作用し得る方法を制限する、含有ポリシの一部等、ローカルで適用される、ポリシの関連部分を施行してもよい。
【0062】
アプリケーション管理フレームワーク314は、セキュアIPCチャネル312を経由してクライアントエージェント304によって提供されるサービスを使用して、認証および内部ネットワークアクセスを促進してもよい。プライベートおよび共有データボルト316(コンテナ)のためのキー管理もまた、管理下アプリケーション310とクライアントエージェント304との間の適切な相互作用によって管理されてもよい。ボルト316は、オンライン認証後のみ利用可能であってもよい、またはポリシによって許可される場合、オフライン認証後に利用可能にされてもよい。ボルト316の最初の使用は、オンライン認証を要求してもよく、オフラインアクセスは、最大でオンライン認証が再び要求される前のポリシリフレッシュ期間に限定されてもよい。
【0063】
内部リソースへのネットワークアクセスは、アクセスゲートウェイ306を通して、直接、個々の管理下アプリケーション310から生じ得る。アプリケーション管理フレームワーク314は、各アプリケーション310の代わりに、ネットワークアクセスを取りまとめることに関与する。クライアントエージェント304は、オンライン認証に続いて取得される好適な時限二次証明書を提供することによって、これらのネットワーク接続を促進し得る。リバースウェブプロキシ接続およびエンドツーエンドVPN式トンネル318等のネットワーク接続の複数のモードが、使用されてもよい。
【0064】
メールおよびブラウザ管理下アプリケーション310は、特殊ステータスを有することができ、概して、恣意的ラッピングされたアプリケーションに利用可能にされ得ない、設備を利用してもよい。例えば、メールアプリケーションは、それが、完全AGログオンを要求せずに、長期間にわたって、Exchangeにアクセスすることを可能にする、特殊バックグラウンドネットワークアクセス機構を使用してもよい。ブラウザアプリケーションは、複数のプライベートデータボルトを使用して、異なる種類のデータを分離してもよい。
【0065】
本アーキテクチャは、種々の他のセキュリティ特徴の組み込みをサポートすることができる。例えば、ゲートウェイサーバ306(そのゲートウェイサービスを含む)は、ある場合には、アクティブディレクトリ(AD)パスワードを検証する必要がない場合がある。ADパスワードが、いくつかの状況では、一部のユーザのための認証要因として使用されるかどうかは、企業の裁量に委ねられ得る。異なる認証方法が、ユーザがオンラインまたはオフラインである(すなわち、ネットワークに接続される、または接続されない)場合に使用されてもよい。
【0066】
ステップアップ認証は、ゲートウェイサーバ306が、強認証を使用して、より取扱に注意を要するデータへのアクセスを有することを可能にされ、これが、再認証が以前のより弱いレベルのログイン後にユーザから要求されることを意味する場合でも、これらのアプリケーションへのアクセスが、適切な認証を実施後のみ許可されることを確実にする、管理下ネイティブアプリケーション310を識別し得る、特徴である。
【0067】
本ソリューションの別のセキュリティ特徴は、クライアントデバイス302上のデータボルト316(コンテナ)の暗号化である。ボルト316は、クリップボード/キャッシュデータ、ファイル、データベース、および構成を含む、デバイス上データの全てが保護されるように、暗号化されてもよい。オンラインボルトに関しては、キーが、サーバ(ゲートウェイサーバ306)上に記憶されてもよく、オフラインボルトに関しては、キーのローカルコピーが、ユーザパスワードまたはバイオメトリック検証によって保護されてもよい。データが、セキュアコンテナ316内において本デバイス302上にローカルで記憶されるとき、最低限のAES256暗号化アルゴリズムが利用されることが好ましい。
【0068】
他のセキュアコンテナ特徴もまた、実装されてもよい。例えば、ログ付け特徴が、含まれてもよく、アプリケーション310の内側で起こる全てのセキュリティイベントは、ログ付けされ、バックエンドに報告される。データ消去が、アプリケーション310が不正開封を検出する場合等に、サポートされてもよく、関連付けられる暗号化キーは、ユーザデータが破壊されたファイルシステムに関するヒントを残さないように、ランダムデータで上書きされてもよい。スクリーンショット保護は、アプリケーションが任意のデータがスクリーンショット内に記憶されることを防止し得る、別の特徴である。例えば、キーウィンドウの隠れプロパティが、「はい」に設定され得る。これは、画面上に現在表示されているあらゆるコンテンツを隠し、ブランクスクリーンショットを任意のコンテンツが通常常駐するであろう場所にもたらし得る。
【0069】
ローカルデータ転送は、例えば、それをコピーするまたはそれを外部アプリケーションに送信することによって、任意のデータがアプリケーションコンテナの外側にローカルで転送されることを防止すること等によって、防止され得る。キーボードキャッシュ特徴は、取扱に注意を要するテキストフィールドのための自動補正機能性を無効にするように動作し得る。SSL認証書検証が、動作可能であり得、したがって、アプリケーションは、具体的には、サーバSSL認証書を、それがキーチェーン内に記憶されることになる代わりに、検証する。暗号化キー発生特徴が、デバイスに関するデータを暗号化するために使用されるキーが、ユーザによって供給されるパスフレーズまたはバイオメトリックデータを使用して発生されるように、使用されてもよい(オフラインアクセスが、要求される場合)。オフラインアクセスが要求されない場合、ランダムに発生され、サーバ側上に記憶される、別のキーとXORされてもよい。キー導出関数が、ユーザパスワードから発生されたキーが、その暗号化ハッシュを作成するのではなく、KDF(キー導出関数、とりわけ、パスワードベースのキー導出関数2(PBKDF2))を使用するように動作してもよい。後者は、キーを総当たりまたは辞書攻撃を被りやすくする。
【0070】
さらに、1つ以上の初期化ベクトルが、暗号化方法において使用されてもよい。初期化ベクトルは、同一の暗号化されたデータの複数のコピーに異なる暗号テキスト出力をもたらせさせ、リプレイおよび暗号解読攻撃の両方を防止し得る。これはまた、攻撃者が盗まれた暗号化キーを用いてさえ任意のデータを解読することを防止し得る。さらに、アプリケーションデータが、ユーザがアプリケーション内で認証された後のみ解読される、認証、次いで、解読が、使用されてもよい。別の特徴は、必要とされるときのみ、(ディスク内ではなく)メモリ内に保たれ得る、メモリ内の取扱に注意を要するデータに関連し得る。例えば、ログイン証明書が、ログイン後、メモリから消去されてもよく、オブジェクティブCインスタンス変数内側の暗号化キーおよび他のデータは、それらが容易に参照され得るため、記憶されない。代わりに、メモリは、これらのために手動で配分されてもよい。
【0071】
無活動のポリシ-定義期間後、ユーザセッションが終了される、無活動タイムアウトが、CEBを介して実装されてもよい。
【0072】
アプリケーション管理フレームワーク314からのデータ漏出は、他の方法において防止され得る。例えば、アプリケーション310が、バックグラウンドに置かれるとき、メモリは、事前に決定された(構成可能)期間後、クリアされ得る。バックグラウンド化されると、アプリケーションの最後に表示された画面のスナップショットが、撮影され、前景化プロセスに集中させ得る。スクリーンショットは、機密データを含有し得、故に、クリアされるべきである。
【0073】
別のセキュリティ特徴は、1つ以上のアプリケーションへのアクセスのために、AD(アクティブディレクトリ)322パスワードの使用を伴わない、OTP(ワンタイムパスワード)320の使用に関する。ある場合には、一部のユーザは、そのADパスワードを把握しておらず(または把握するように許可されず)、したがって、これらのユーザは、SecurIDのようなハードウェアOTPシステム等を使用することによって、OTP320を使用して認証してもよい(OTPはまた、EntrustまたはGemalto等の異なるベンダによって提供されてもよい)。ある場合には、ユーザが、ユーザIDを用いて認証した後、テキストが、ユーザに、OTP320とともに送信される。ある場合には、これは、単一フィールドであるプロンプトを用いて、オンライン使用のためのみに実装されてもよい。
【0074】
オフラインパスワードが、オフライン使用が企業ポリシを介して許可される、それらのアプリケーション310のためのオフライン認証のために実装されてもよい。例えば、企業は、ストアフロントがこのようにアクセスされることを所望し得る。この場合、クライアントエージェント304は、ユーザが、カスタムオフラインパスワードを設定することを要求し得、ADパスワードは、使用されない。ゲートウェイサーバ306は、標準的Windows(登録商標)サーバパスワード複雑性要件によって説明されるような最小長、文字クラス構成、およびパスワードの有効期間に関するパスワード規格を制御および施行するためのポリシを提供してもよいが、これらの要件は、修正されてもよい。
【0075】
別の特徴は、二次証明書としてのあるアプリケーション310のためのクライアント側認証書の有効化要件に関する(アプリケーション管理フレームワークマイクロVPN特徴を介して、PKI保護ウェブリソースにアクセスする目的のために)。例えば、アプリケーションが、そのような認証書を利用してもよい。この場合、クライアントエージェント304からの認証書が、ゲートウェイサーバ306によって読み出され、キーチェーン内で使用され得る、ActiveSyncプロトコルを使用した認証書ベースの認証が、サポートされてもよい。各管理下アプリケーションは、ゲートウェイサーバ306内に定義されるラベルによって識別される、1つの関連付けられるクライアント認証書を有し得る。
【0076】
ゲートウェイサーバ306は、企業特殊目的ウェブサービスと相互作用し、クライアント認証書の発行をサポートし、関連管理下アプリケーションが、内部PKI保護リソースに対して認証することを可能にしてもよい。
【0077】
クライアントエージェント304およびアプリケーション管理フレームワーク314は、内部PKI保護ネットワークリソースに対する認証のためのクライアント認証書の取得および使用をサポートするように拡張されてもよい。1つを上回る認証書が、種々のレベルのセキュリティおよび/または分離要件に合致する等のために、サポートされてもよい。認証書は、メールおよびブラウザ管理下アプリケーションによって、最終的には、恣意的ラッピングされたアプリケーションによって使用されてもよい(それらのアプリケーションが、アプリケーション管理フレームワークがhttps要求を調停するために合理的である場合、ウェブサービススタイル通信パターンを使用することを前提として)。
【0078】
iOS上のアプリケーション管理クライアント認証書サポートは、パブリックキー暗号法規格(PKCS)12BLOB(バイナリラージオブジェクト)を、使用の各期間に対し、各管理下アプリケーション内のiOSキーチェーンの中にインポートすることに依拠し得る。アプリケーション管理フレームワーククライアント認証書サポートは、プライベートメモリ内キーストレージを伴うHTTPS実装を使用してもよい。クライアント認証書は、iOSキーチェーン内には決して存在し得ず、潜在的に、強固に保護される「オンライン専用」データ値を除き、存続し得ない。
【0079】
相互SSLまたはTLSもまた、クライアントデバイス302が企業に対して認証されること(その逆も同様)を要求することによって、付加的セキュリティを提供するために実装されてもよい。ゲートウェイサーバ306に対する認証のための仮想スマートカードもまた、実装されてもよい。
【0080】
限定および完全Kerberosサポートは両方とも、付加的特徴であり得る。完全サポート特徴は、ADパスワードまたは信頼されたクライアント認証書を使用して、アクティブディレクトリ(AD)322への完全Kerberosログインを行い、Kerberosサービスチケットを取得し、HTTPネゴシエーション認証チャレンジに応答する能力に関する。限定サポート特徴は、Citrix Access Gateway Enterprise Edition(AGEE)における制約された委譲に関し、AGEEは、Kerberosプロトコル遷移の呼出をサポートし、したがって、HTTPネゴシエーション認証チャレンジに応答して、Kerberosサービスチケットを取得および使用することができる(制約された委譲に従って)。本機構は、リバースウェブプロキシ(コーポレート仮想プライベートネットワーク(CVPN)として知られる)モードにおいて、およびhttp(但し、httpsではない)接続がVPNおよびマイクロVPNモードでプロキシ化されるときに機能する。
【0081】
別の特徴は、アプリケーションコンテナロックおよび消去に関し、これは、ジェイルブレイクまたはルーティング検出に応じて自動的に生じ、管理コンソールからプッシュされたコマンドとして生じ得、アプリケーション310が起動されていないときでも、遠隔消去機能性を含み得る。
【0082】
ユーザが、失敗の場合、いくつかの異なる場所のうちの1つからサービス提供されることを可能にする、企業アプリケーションストアおよびアプリケーションコントローラのマルチサイトアーキテクチャまたは構成が、サポートされてもよい。
【0083】
ある場合には、管理下アプリケーション310は、API(例えば、OpenSSL)を介して、認証書およびプライベートキーにアクセスすることを可能にされ得る。企業の信頼された管理下アプリケーション310は、アプリケーションのクライアント認証書およびプライベートキーを用いて、具体的パブリックキー動作を実施することを可能にされ得る。アプリケーションが、ブラウザのように挙動し、認証書アクセスが使用されないとき、アプリケーションが、「who am I」に関して認証書を読みとるとき、アプリケーションが、認証書を使用して、セキュアセッショントークンを構築するとき、およびアプリケーションが、重要なデータ(例えば、トランザクションログ)のデジタル署名のため、または一時的データ暗号化のために、プライベートキーを使用するとき等の種々のユースケースが、適宜、識別および処理され得る。
【0084】
ここで図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を含むことができる。
【0085】
上記に述べられた要素またはエンティティはそれぞれ、1つ以上の実施形態では、ハードウェア、またはハードウェアおよびソフトウェアの組み合わせ内に実装される。システム400の各コンポーネントは、図1に関連して上記で詳述される、ハードウェア、または、ハードウェアまたはソフトウェアの組み合わせを使用して実装されてもよい。例えば、これらの要素またはエンティティはそれぞれ、クライアントデバイス402、少なくとも1つのネットワークデバイス432、および/または1つ以上のサーバ430のハードウェア上で実行される、任意のアプリケーション、プログラム、ライブラリ、スクリプト、タスク、サービス、プロセス、または任意のタイプおよび形態の実行可能命令を含むことができる。ハードウェアは、1つ以上の実施形態では、1つ以上のプロセッサ等の回路網を含む。例えば、少なくとも1つのネットワークデバイス432および/または1つ以上のサーバ430は、例えば、少なくとも図1に関連して上記に説明される、コンピューティングデバイスの要素のいずれかを含むことができる。
【0086】
クライアントデバイス402は、例えば、少なくとも図1に関連して上記に説明される、コンピューティングデバイスの任意の実施形態を含むことができる。クライアントデバイス402は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットデバイス、スマートフォン、または任意の他のモバイルまたはパーソナルデバイス等の任意のユーザデバイスを含むことができる。クライアントデバイス402は、ユーザのデジタル作業空間を含むことができ、これは、クライアントデバイス402上のファイルシステム、キャッシュまたはメモリ(例えば、電子クリップボードを含む)、コンテナ、アプリケーション、および/または他のリソースを含むことができる。デジタル作業空間は、1つ以上のネットワークを介してアクセス可能なファイルシステムおよび/または他のリソースを含む、イントラネットおよびインターネット等、クライアントデバイス402によってアクセス可能な1つ以上のネットワークを含む、またはそれに対して拡張することができる。デジタル作業空間の一部は、例えば、内蔵ブラウザ410を伴うクライアントアプリケーション404(CEB)の使用を介して、セキュア化されることができる。デジタル作業空間のセキュア部分は、例えば、CEBに配分され、および/またはCEBによってCEBを介してアクセスされるネットワークアプリケーション406に配分される、ファイルシステム、キャッシュまたはメモリ(例えば、電子クリップボードを含む)、アプリケーション、コンテナおよび/または他のリソースを含むことができる。デジタル作業空間のセキュア部分はまた、デジタル作業空間のセキュア部分内への含有のために、CEBによって規定されたリソースを含むことができる(1つ以上のポリシを介して)(例えば、特定のローカルアプリケーションは、ポリシを介して、ネットワークアプリケーションから取得されるデータを受信することを可能にされるように規定されることができる)。
【0087】
クライアントアプリケーション404は、内蔵ブラウザ410、ネットワーキングエージェント412、クラウドサービスエージェント414(時として、管理エージェントとも称される)、遠隔セッションエージェント416(時として、HDXエンジンとも称される)、および/またはセキュアコンテナ418(時として、セキュアキャッシュコンテナとも称される)等の1つ以上のコンポーネントを含むことができる。コンポーネントのうちの1つ以上のものは、クライアントアプリケーション404またはCEBのソフトウェア構築または解放の一部としてインストールされる、または別個に入手またはダウンロードされ、例えば、クライアントアプリケーション404またはCEBの既存のインストールの中にインストール/統合されることができる。例えば、クライアントデバイスは、クライアントアプリケーション404(または任意のコンポーネント)をネットワークデバイス432からダウンロードまたは別様に受信してもよい。いくつかの実施形態では、クライアントデバイスは、クライアントアプリケーション404のための要求をネットワークデバイス432に送信してもよい。例えば、クライアントデバイスのユーザは、クライアントアプリケーションの要求、ダウンロード、および/またはインストールを開始することができる。ネットワークデバイス432は、ひいては、クライアントアプリケーションをクライアントデバイスに送信してもよい。いくつかの実施形態では、ネットワークデバイス432は、クライアントアプリケーションのための設定またはインストールアプリケーションをクライアントデバイスに送信してもよい。受信に応じて、クライアントデバイスは、クライアントアプリケーションをクライアントデバイスのハードディスク上にインストールしてもよい。いくつかの実施形態では、クライアントデバイスは、設定アプリケーションを起動し、クライアントアプリケーションのパッケージをアンパックまたは解凍してもよい。いくつかの実施形態では、クライアントアプリケーションは、クライアントデバイス上にインストールされる別のアプリケーション(例えば、ネットワーキングエージェント412)に対する拡張(例えば、アドオン、アドイン、アプレット、またはプラグイン)であってもよい。クライアントデバイスは、クライアントアプリケーションをインストールし、事前にインストールされたアプリケーションとインターフェースをとらせる、または相互運用してもよい。いくつかの実施形態では、クライアントアプリケーションは、独立型アプリケーションであってもよい。クライアントデバイスは、クライアントアプリケーションをインストールし、別個のプロセスとして実行してもよい。
【0088】
内蔵ブラウザ410は、ウェブブラウザアプリケーションまたはエンジンの要素および機能性を含むことができる。内蔵ブラウザ410は、ネットワークアプリケーションをクライアントアプリケーションのコンポーネントまたは拡張としてローカルでレンダリングすることができる。例えば、内蔵ブラウザ410は、SaaS/ウェブアプリケーションをCEBの内側にレンダリングすることができ、これは、CEBに、アプリケーションセッションの完全可視性および制御を提供することができる。内蔵ブラウザは、クライアントアプリケーションの実行可能コードの中への直接統合(例えば、プログラミング言語またはスクリプト挿入)等の任意の手段を介して、またはプラグインインストールを介して、クライアントアプリケーションの中に内蔵される、または組み込まれることができる。例えば、内蔵ブラウザは、例えば、Chromium内蔵フレームワーク(CEF)を使用して、クライアントアプリケーションの中に内蔵され得る、Chromiumベースのブラウザエンジンまたは他のタイプのブラウザエンジンを含むことができる。内蔵ブラウザは、HTML5ベースのレイアウトグラフィカルユーザインターフェース(GUI)を含むことができる。内蔵ブラウザは、HTMLレンダリングおよびJavaScript(登録商標)サポートを種々のプログラミング言語を組み込むクライアントアプリケーションに提供することができる。例えば、内蔵ブラウザの要素は、C、C++、Delphi、Go、Java(登録商標)、.NET/Mono、Visual Basic 6.0、および/またはPythonを組み込む、クライアントアプリケーションにバインドすることができる。
【0089】
いくつかの実施形態では、内蔵ブラウザは、クライアントアプリケーション上にインストールされるプラグインを備える。例えば、プラグインは、1つ以上のコンポーネントを含むことができる。1つのそのようなコンポーネントは、クライアントアプリケーションの中にロードされ、その中で実行されることが可能なActiveX制御またはJava(登録商標)制御または任意の他のタイプおよび/または形態の実行可能命令であることができる。例えば、クライアントアプリケーションは、クライアントアプリケーションのメモリ空間またはコンテキスト等内に内蔵ブラウザのActiveX制御をロードし、起動することができる。いくつかの実施形態では、内蔵ブラウザは、クライアントアプリケーション上の拡張としてインストールされることができ、ユーザは、プラグインまたは拡張を有効または無効にするように選定することができる。内蔵ブラウザ(例えば、プラグインまたは拡張を介して)は、デジタル作業空間のセキュア化された部分内のリソースをセキュア化する、使用する、および/またはそれにアクセスするために、セキュア化されたブラウザとして形成される、または動作することができる。
【0090】
内蔵ブラウザは、その標準的または典型的ブラウザにおいて利用可能なまたは可能性として考えられるもの以上のコードおよび機能性を組み込むことができる。例えば、内蔵ブラウザは、セキュア化されたコンテナ418とバインドし、またはそれを割り当てられ、ユーザのデジタル作業空間のセキュア化された部分の少なくとも一部を定義することができる。内蔵ブラウザは、クライアントデバイスのキャッシュの一部とバインドし、またはそれを割り当てられ、セキュア化されたコンテナ418の少なくとも一部であり得る、セキュア化されたクリップボードを形成することができる(例えば、クライアントデバイスのローカルで、または他のデバイスに拡張可能)。内蔵ブラウザは、クライアントアプリケーションと統合され、ネットワークアプリケーションに関連するトラフィックが、クライアントアプリケーションを通してルーティングされ、および/またはその中で処理されることを確実にすることができ、これは、クライアントアプリケーションに、トラフィックに対するリアルタイム可視性を提供することができる(例えば、クライアントアプリケーションを通して解読されるとき)。トラフィックに対する本可視性は、クライアントアプリケーションが、ポリシベースの管理(例えば、データ損失防止(DLP)能力を含む)、アプリケーション制御、および分析の収集および生成を実施または促進することを可能にすることができる。
【0091】
いくつかの実施形態では、内蔵ブラウザは、クラウドサービスエージェント414、遠隔セッションエージェント416、および/またはセキュアコンテナ418等のクライアントアプリケーション404の1つ以上の他のコンポーネントを組み込む。例えば、ユーザは、内蔵ブラウザのクラウドサービスエージェント414を使用して、アクセスゲートウェイ422(時として、CISとも称される)と相互運用され、ネットワークアプリケーションにアクセスすることができる。例えば、クラウドサービスエージェント414は、内蔵ブラウザ内で実行されることができ、ナビゲーションコマンドを内蔵ブラウザから受信し、ホストされたネットワークアプリケーションに伝送することができる。クラウドサービスエージェントは、遠隔提示プロトコルを使用して、ネットワークアプリケーションによって発生された出力を内蔵ブラウザに表示することができる。例えば、クラウドサービスエージェント414は、エンドユーザが内蔵ブラウザ上の遠隔デスクトップおよび/またはアプリケーションにアクセスすることを可能にする、HTML5ウェブクライアントを含むことができる。
【0092】
クライアントアプリケーション404およびCEBは、クライアントデバイスの動作(OSI)スタックのアプリケーション層上で動作する。クライアントアプリケーション404は、クラウドサービス408と相互運用される、1つ以上のエージェントを含む、および/または実行することができる。クライアントアプリケーション404は、種々のポリシ(例えば、企業のカスタム、規定、または内部ポリシまたはルール)および/またはデータ(例えば、クラウドサービス408のアクセスゲートウェイ422および/またはネットワークデバイスまたは企業によって管理され得る他のサーバから)を受信する、取得する、読み出す、または別様にそれにアクセスすることができる。クライアントアプリケーションは、ポリシおよび/またはデータにアクセスし、ネットワークアプリケーション(例えば、SaaS、ウェブ、または遠隔でホストされたアプリケーション)を制御および/または管理することができる。ネットワークアプリケーションの制御および/または管理は、アクセス制御、セッション配信、利用可能な特徴または機能、サービス水準、トラフィック管理、および監視等のネットワークアプリケーションの種々の側面の制御および/または管理を含むことができる。ネットワークアプリケーションは、企業のプロバイダまたはベンダ(例えば、salesforce.com、SAP、Microsoft Office365)から、企業自体から、または別のエンティティ(例えば、DropboxまたはGmailサービス)からのものであることができる。
【0093】
例えば、クラウドサービスエージェント414は、ネットワークアプリケーションの使用および/またはアクセスに関連するポリシ主導型管理能力および特徴を提供することができる。例えば、クラウドサービスエージェント414は、ポリシエンジンを含み、(例えば、クラウドサービスから受信された)1つ以上のポリシを適用し、ネットワークアプリケーション等のリソースに対するアクセス制御および/またはコネクティビティを決定することができる。セッションが、クライアントアプリケーションと、例えば、SaaSアプリケーションを提供するサーバ430との間に確立されると、クラウドサービスエージェント414は、1つ以上のポリシを適用し、セッションのトラフィックレベルおよび/またはトラフィックタイプ(または他の側面)を制御し、例えば、SaaSアプリケーションのサービス水準を管理することができる。制御または管理され得る、アプリケーショントラフィックの付加的側面は、トラフィックに適用される暗号化レベルおよび/または暗号化タイプ、ユーザに許可される相互作用のレベル、ネットワークアプリケーションのある特徴(例えば、プリントスクリーン、保存、編集、またはコピー機能)への限定されたアクセス、ネットワークアプリケーションから取得されるデータの使用または転送に対する制限、2つ以上のネットワークアプリケーションへの同時アクセスの限定、あるファイルリポジトリまたは他のリソースへのアクセスの限定等を含むことができる。
【0094】
クラウドサービスエージェント414は、CEBに可視のSaaS相互作用イベントについての情報等の情報をクラウドサービス408の分析サービス424に伝達またはフィードすることができる。CEBを使用したそのような構成は、クライアントデバイスとサーバ430との間に位置するインラインデバイスまたはプロキシを有することなく、またはSaaS APIゲートウェイ「帯域外」アプローチを使用することなく、分析に関する情報を監視または捕捉することができる。いくつかの実施形態では、クラウドサービスエージェント414は、内蔵ブラウザ内で実行されない。これらの実施形態では、ユーザは、同様に、クラウドサービスエージェント414を使用して、アクセスゲートウェイ(またはCIS)422と相互運用し、ネットワークアプリケーションにアクセスすることができる。例えば、クラウドサービスエージェント414は、アクセスゲートウェイ(またはCIS)422に登録および/または認証されることができ、ネットワークアプリケーションのリストをアクセスゲートウェイ(またはCIS)422から取得することができる。クラウドサービスエージェント414は、ネットワークアプリケーションのユーザ選択および/またはダウンロードのためのアプリケーションストア(またはストアフロント)を含む、および/またはそれとして動作することができる。ネットワークアプリケーションにアクセスするためのログインに応じて、クラウドサービスエージェント414は、ナビゲーションコマンドを内蔵ブラウザから傍受し、ネットワークアプリケーションに伝送することができる。クラウドサービスエージェントは、遠隔提示プロトコルを使用して、ネットワークアプリケーションによって発生された出力を内蔵ブラウザに表示することができる。例えば、クラウドサービスエージェント414は、エンドユーザが内蔵ブラウザ上の遠隔デスクトップおよび/またはアプリケーションにアクセスすることを可能にする、HTML5ウェブクライアントを含むことができる。
【0095】
いくつかの実施形態では、クラウドサービスエージェント414は、ユーザおよび/またはクライアントデバイスが複数のネットワークアプリケーションにアクセスするためのシングルサインオン(SSO)能力を提供する。クラウドサービスエージェント414は、例えば、アクセスゲートウェイ422と通信することによって、ユーザ認証を実施して、ネットワークアプリケーションおよび他のネットワークリソースおよびサービスにアクセスすることができる。例えば、クラウドサービスエージェント414は、アクセスゲートウェイ422に認証または登録され、クラウドサービス408および/またはネットワークアプリケーション406の他のコンポーネントにアクセスすることができる。認証または登録に応答して、アクセスゲートウェイ422は、ユーザおよび/またはクライアントアプリケーションのために(またはその代わりに)、ネットワークアプリケーションに認証および/またはSSOを実施することができる。
【0096】
クライアントアプリケーション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)トラフィックを搬送することができる。
【0097】
遠隔セッションエージェント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)内に、またはそれを経由して、遠隔アプリケーションセッションを確立することができる。
【0098】
クライアントアプリケーションまたはCEBは、セキュアコンテナ418を含む、またはそれと関連付けられることができる。セキュアコンテナは、クライアントデバイス内でアクセス可能であって、および/またはクライアントデバイスによってアクセス可能である、1つ以上のタイプのリソースの論理または仮想境界を含むことができる。例えば、セキュアコンテナ418は、デジタル作業空間のセキュア化された部分の全体またはセキュア化された部分の特定の側面を指し得る。いくつかの実施形態では、セキュアコンテナ418は、セキュアキャッシュ(例えば、電子または仮想クリップボード)に対応し、保護またはセキュア化された(例えば、暗号化された)、ユーザの各クライアントデバイスのローカルキャッシュ、および/またはユーザのクラウドベースのキャッシュの一部を動的に組み込むことができる。セキュアコンテナは、ファイルシステムの一部を定義する、および/またはCEBおよび/またはCEBを介してアクセスされるネットワークアプリケーションに配分される、リソースを境界し得る。セキュアコンテナは、例えば、図2に関連して上記に議論される、セキュアデータコンテナ228の要素を含むことができる。CEBは、(例えば、ポリシを介して)セキュアコンテナ内で識別されたリソースおよび/またはデータ上でのあるアクションまたはアクティビティを限定、禁止、または無効にするように構成されることができる。セキュア化されたコンテナは、セキュアコンテナ内のリソースおよび/またはデータが、不正使用、乱用、および/または搾取のために監視されるべきであることを規定するために定義されることができる。
【0099】
ある実施形態では、セキュアコンテナは、種々の企業セキュリティ特徴を実装する、セキュアブラウザ(例えば、内蔵ブラウザ410またはセキュアブラウザ420)の使用に関連する、またはそれを伴う。セキュアブラウザ内で実行されるように構成される、ネットワークアプリケーション(またはセキュアブラウザによってアクセスされるウェブページ)は、事実上、セキュアブラウザによって実装されるセキュリティ機構を継承することができる。これらのネットワークアプリケーションは、セキュアコンテナ内に含有されると見なされ得る。そのようなセキュアブラウザの使用は、企業が、例えば、従業員がそのクライアントデバイスからあるウェブサイトにアクセスしないようにブロックされる、コンテンツフィルタリングポリシを実装することを有効にすることができる。セキュアブラウザは、例えば、クライアントデバイスユーザが、VPNの必要なく、コーポレートイントラネットにアクセスすることを有効にするために使用されることができる。
【0100】
いくつかの実施形態では、セキュアコンテナは、企業リソースを保護するために、種々のタイプの是正アクションをサポートすることができる。1つのそのような是正策は、クライアントデバイスまたはセキュアコンテナが、例えば、管理者によって提供される有効コードを用いてのみロック解除され得るように、クライアントデバイス、または保護されるべきデータを記憶する、クライアントデバイス上のセキュアコンテナをロックすることである。いくつかの実施形態では、これらおよび他のタイプの是正策は、クライアントデバイス上で検出された条件に基づいて、自動的に呼び出されることができる(例えば、ポリシの適用を介して)、または管理者によって遠隔で開始されることができる。
【0101】
いくつかの実施形態では、セキュアコンテナは、ドキュメントのためのセキュアドキュメントコンテナを含むことができる。ドキュメントは、テキスト、オーディオ、ビデオ、および/または他のタイプの情報またはメディアを含む、任意のコンピュータ可読ファイルを備えることができる。ドキュメントは、これらのメディアタイプの任意の単一の1つまたはそれらの組み合わせを備えることができる。本明細書で解説されるように、セキュアコンテナは、クライアントデバイスの異なるアプリケーションおよびコンポーネントおよび他のデバイスへの企業情報の拡散を防止することに役立ち得る。企業システム(部分的または全体的に、クラウドネットワーク内にあり得る)は、ドキュメントを種々のデバイスに伝送することができ、これは、セキュアコンテナ内に記憶されることができる。セキュアコンテナは、クライアントデバイスの非認可アプリケーションおよび他のコンポーネントがセキュアコンテナ内の情報にアクセスすることを防止することができる。ユーザが、企業データにアクセスする、それを記憶する、それを使用するために、その独自のクライアントデバイスを使用することを可能にする、企業に関して、セキュアコンテナをクライアントデバイス上に提供することは、企業データをセキュア化することに役立つ。例えば、セキュアコンテナをクライアントデバイス上に提供することは、企業データを各クライアントデバイス上の1つの場所に一元化することができ、所望されるとき、各クライアントデバイスからの企業データの選択的または完全削除を促進することができる。
【0102】
セキュアコンテナは、ドキュメントおよび/または他のタイプのファイルを記憶する、ファイルシステムを実装する、アプリケーションを含むことができる。ファイルシステムは、クライアントデバイスのコンピュータ可読メモリの一部を備えることができる。ファイルシステムは、クライアントデバイスのコンピュータ可読メモリの他の部分から論理的に分離されることができる。このように、企業データは、セキュアコンテナ内に記憶されることができ、プライベートデータは、例えば、クライアントデバイスのコンピュータ可読メモリの別個の部分内に記憶されることができる。セキュアコンテナは、CEB、CEBを介してアクセスされるネットワークアプリケーション、ローカルでインストールされるアプリケーション、および/またはクライアントデバイスの他のコンポーネントが、情報をファイルシステムから読み取る、そこに書き込む、および/またはそれを削除することを可能にすることができる(そのように行うことが認可される場合)。セキュアコンテナからのデータの削除は、セキュアコンテナ内に記憶される実際のデータの削除、セキュアコンテナ内に記憶されるデータへのポインタの削除、セキュアコンテナ内に記憶されるデータを解読するために使用される暗号化キーの削除、および同等物を含むことができる。セキュアコンテナは、例えば、クライアントアプリケーション、管理者、またはクライアントデバイス製造業者によって、インストールされることができる。セキュアコンテナは、ファイルシステム内に記憶される企業データの一部または全てが、セキュアコンテナの外側のクライアントデバイス上に記憶されるプライベートデータを修正せずに、削除されることを有効にすることができる。ファイルシステムは、ファイルシステムからのデータの選択的または完全削除を促進することができる。例えば、企業のシステムの認可されたコンポーネントは、例えば、エンコーディングされたルールに基づいて、ファイルシステムからデータを削除することができる。いくつかの実施形態では、クライアントアプリケーションは、企業のシステムからの削除コマンドの受信に応答して、ファイルシステムからデータを削除することができる。
【0103】
セキュアコンテナは、クライアントデバイスのアプリケーションおよび他のコンポーネントによって、ファイルシステムへのアクセスを統制する、アクセスマネージャを含むことができる。ファイルシステムへのアクセスは、クライアントアプリケーションによって、ドキュメント内に、および/またはファイルシステム内に維持される、ドキュメントアクセスポリシ(例えば、エンコーディングされたルール)に基づいて、統制されることができる。ドキュメントアクセスポリシは、(1)クライアントデバイスのどのアプリケーションまたは他のコンポーネントが、アクセスを要求しているか、(2)どのドキュメントが要求されているか、(3)時間または日付、(4)クライアントデバイスの地理的位置、(5)要求側アプリケーションまたは他のコンポーネントが、正しい認証書または証明書を提供するかどうか、(6)クライアントデバイスのユーザが正しい証明書を提供するかどうか、(7)他の条件、またはそれらの任意の組み合わせに基づいて、ファイルシステムへのアクセスを限定することができる。ユーザの証明書は、例えば、パスワード、セキュリティ質問に対する1つ以上の回答(例えば、高校のマスコットは?)、バイオメトリック情報(例えば、指紋走査、眼走査)、および同等物を備えることができる。故に、アクセスマネージャを使用することによって、セキュアコンテナは、セキュアコンテナにアクセスすることを認可されるアプリケーションによってのみアクセスされるように構成されることができる。一実施例として、アクセスマネージャは、クライアントデバイス上にインストールされる企業アプリケーションが、セキュアコンテナ内に記憶されるデータにアクセスし、非企業アプリケーションが、セキュアコンテナ内に記憶されるデータにアクセスすることを防止することを有効にすることができる。
【0104】
ドキュメントアクセスに関する時間的および地理的制限は、有用であり得る。例えば、管理者は、(セキュアコンテナ内に記憶される)ドキュメントの可用性を規定された時間枠および/またはその中にクライアントデバイスがドキュメントにアクセスするために常駐しなければならない(例えば、GPSチップによって決定されるような)地理的ゾーンに制限する、ドキュメントアクセスポリシを展開してもよい。さらに、ドキュメントアクセスポリシは、セキュアコンテナまたはクライアントアプリケーションに、規定された期間が切れると、またはクライアントデバイスが定義された地理的ゾーンの外側で捉えられる場合、ドキュメントをセキュアコンテナから削除する、または別様にそれらを利用不可能にするように命令することができる。
【0105】
いくつかのドキュメントは、ドキュメントがセキュアコンテナ内に保存されることを禁じる、アクセスポリシを有することができる。そのような実施形態では、ドキュメントは、ユーザが、例えば、クラウドサービスを介してログインまたは認証されるときのみ、クライアントデバイス上で閲覧するために利用可能にされることができる。
【0106】
アクセスマネージャはまた、遠隔デバイス(例えば、企業リソースまたは他の企業サーバ)とセキュアコンテナとの間でコネクティビティのあるモードを施行するように構成されることができる。例えば、アクセスマネージャは、セキュアコンテナによって遠隔デバイスから受信され、および/またはセキュアコンテナから遠隔デバイスに送信されるドキュメントが、例えば、セキュア化されたトンネル/接続を通して伝送されることを要求することができる。アクセスマネージャは、セキュアコンテナにおよびそこから伝送される全てのドキュメントが暗号化されることを要求することができる。クライアントアプリケーションまたはアクセスマネージャは、セキュアコンテナから送信されるドキュメントを暗号化し、セキュアコンテナに送信されるドキュメントを解読するように構成されることができる。セキュアコンテナ内のドキュメントはまた、暗号化された形態で記憶されることができる。
【0107】
セキュアコンテナは、ドキュメントまたはドキュメントまたはセキュアコンテナ内に含まれるデータが、クライアントデバイスまたは他のデバイスの非認可アプリケーションまたはコンポーネントによって使用されることを防止するように構成されることができる。例えば、セキュアコンテナからのドキュメントにアクセスするための認可を有する、クライアントデバイスアプリケーションは、ユーザが、ドキュメントのデータをコピーし、それを別のファイルまたはアプリケーションインターフェースの中に通過させる、またはドキュメントまたはドキュメントデータをセキュアコンテナの外側で新しいファイルとしてローカルで保存することを防止するようにプログラムされることができる。同様に、セキュアコンテナは、そのようなコピー/ペーストおよびローカル保存動作を許可しない、ドキュメントビューアおよび/またはエディタを含むことができる。さらに、アクセスマネージャは、そのようなコピー/ペーストおよびローカル保存動作を防止するように構成されることができる。さらに、セキュアコンテナおよびセキュアコンテナからドキュメントにアクセスするようにプログラムおよび認可されるアプリケーションは、ユーザが、そのようなドキュメントを電子メールまたは他の形態の通信に添付することを防止するように構成されることができる。
【0108】
1つ以上のアプリケーション(例えば、クライアントデバイス上にインストールされるアプリケーションおよび/またはCEBを介してアクセスされるネットワークアプリケーション)は、(例えば、ポリシベースの施行を介して)企業関連データのみをセキュアコンテナの中に書き込むようにプログラムまたは制御されることができる。例えば、アプリケーションのソースコードは、セキュアコンテナのリソース名を提供されることができる。同様に、(例えば、クライアントデバイス以外のデバイス上で実行される)遠隔アプリケーションは、データまたはドキュメントのみをセキュアコンテナに送信するように構成されることができる(クライアントデバイスの他のコンポーネントまたはメモリ場所とは対照的)。データをセキュアコンテナに記憶することは、自動的に、例えば、アプリケーション、クライアントアプリケーション、および/またはセキュアブラウザの制御下で生じ得る。クライアントアプリケーションは、セキュアコンテナ内に記憶された、または記憶されることになる、ドキュメントを暗号化または解読するようにプログラムされることができる。ある実施形態では、セキュアコンテナは、セキュアコンテナを識別および使用するようにプログラムされ、そのように行うための認可を有する、(クライアントデバイスまたは遠隔デバイス上の)アプリケーションによってのみ使用されることができる。
【0109】
ネットワークアプリケーション406は、認定ネットワークアプリケーション426と、非認定ネットワークアプリケーション428とを含むことができる。非限定的実施例として、認定ネットワークアプリケーション426は、Workday、Salesforce、Office365、SAP等からのネットワークアプリケーションを含むことができる一方、非認定ネットワークアプリケーション426は、Dropbox、Gmail等からのネットワークアプリケーションを含むことができる。例えば、図4は、認定アプリケーション426がCEBを介してアクセスされる場合を図示する。動作(1)時、クライアントデバイス402上にインストールされる、クライアントアプリケーション404のユーザインスタンスは、クラウドサービス408のアクセスゲートウェイ422に登録または認証されることができる。例えば、ユーザは、ユーザをクライアントデバイスに認証させ、クライアントデバイス402にログインすることができる。クライアントアプリケーションは、自動的に実行される、またはユーザによってアクティブ化されることができる。いくつかの実施形態では、ユーザは、クライアントアプリケーションにサインインすることができる(例えば、ユーザをクライアントアプリケーションに認証させることによって)。ログインまたはサインインに応答して、クライアントアプリケーションは、ユーザおよび/またはクライアントアプリケーションをアクセスゲートウェイ422に登録または認証させることができる。
【0110】
動作(2)時、登録または認証に応答して、アクセスゲートウェイ422は、ユーザに利用可能である、または事前に割り当てられる、列挙されたネットワークアプリケーションのリストを識別する、または読み出すことができ、リストをクライアントアプリケーションに提供することができる。例えば、登録または認証に応答して、アクセスゲートウェイは、ユーザを識別し、および/またはユーザのユーザプロファイルを読み出すことができる。識別および/またはユーザプロファイルに従って、アクセスゲートウェイは、リストを決定する(例えば、ユーザのユーザプロファイルおよび/または識別と合致されるネットワークアプリケーションの記憶されたリストを読み出す)ことができる。リストは、ユーザのために認定されたネットワークアプリケーションのリストに対応し得る。アクセスゲートウェイは、リストをクライアントアプリケーションまたは内蔵ブラウザに送信することができ、これは、選択のために、クライアントアプリケーションまたは内蔵ブラウザを介して、ユーザに提示されることができる(例えば、ストアフロントユーザインターフェース内に)。
【0111】
動作(3)時、ユーザは、ユーザに提示されるネットワークアプリケーションのリストから選択することによって、認定ネットワークアプリケーション(例えば、SaaSアプリケーション)への接続を開始することができる。例えば、ユーザは、クライアントアプリケーションまたは内蔵ブラウザを介して表示される、認定ネットワークアプリケーションのアイコンまたは他の表現上をクリックすることができる。本ユーザアクションは、CEBをトリガし、ネットワークアプリケーションをプロビジョニングする、接続またはアクセス要求をサーバに伝送することができる。要求は、アクセスゲートウェイと通信し、ユーザを認証するためのサーバ(例えば、SaaSプロバイダ)への要求を含むことができる。サーバは、例えば、ユーザを認証するための要求をアクセスゲートウェイに送信することができる。
【0112】
動作(4)時、アクセスゲートウェイは、サーバとのSSOを実施し、ユーザを認証することができる。例えば、ユーザを認証するためのサーバの要求に応答して、アクセスゲートウェイは、SSOのために、ユーザの証明書をサーバ430に提供し、選択されたネットワークアプリケーションおよび/または他の認定ネットワークアプリケーションにアクセスすることができる。動作(5)時、ユーザは、SSOに基づいて(例えば、証明書を使用して)、選択されたネットワークアプリケーションにログインすることができる。クライアントアプリケーション(例えば、ネットワーキングエージェント412および/または遠隔セッションエージェント416)は、サーバ430とセキュア接続およびセッションを確立し、選択されたネットワークアプリケーションにアクセスすることができる。CEBは、セキュア接続を介して受信されたアプリケーショントラフィックを解読することができる。CEBは、CEBを介して送信されるトラフィックおよびサーバ430へのセキュア化された接続を監視することができる。
【0113】
動作(6)時、クライアントアプリケーションは、分析処理のために、情報をクラウドサービス408の分析サービス424に提供することができる。例えば、クライアントアプリケーション404のクラウドサービスエージェント414は、選択されたネットワークアプリケーションとのユーザ相互作用イベントを監視または捕捉することができる。クラウドサービスエージェント414は、分析を生成するように処理されるために、ユーザ相互作用イベントを分析サービス424に伝達することができる。
【0114】
図5は、セキュアブラウザを使用するためのシステムの例示的実施形態を描写する。概要として、システムは、クラウドサービス408と、ネットワークアプリケーション406と、クライアントデバイス402とを含む。いくつかの実施形態では、システムの種々の要素は、図4に関して上記に説明されるものに類似するが、クライアントアプリケーション(内蔵ブラウザを伴う)は、クライアントデバイス402内では利用不可能である。標準的または典型的ブラウザが、クライアントデバイス上で利用可能であり得、そこからユーザは、例えば、認定ネットワークアプリケーションにアクセスするための要求を開始することができる。ネットワークアプリケーションは、管理者によって、または自動的に(例えば、人工知能を介して)設定され得る、ポリシを介して、認定または非認定として規定されることができる。
【0115】
例えば、動作(1)時、ユーザは、標準的ブラウザを使用して、ネットワークアプリケーションにログインし得る。認定ネットワークアプリケーションにアクセスするために、ユーザは、標準的ブラウザを介して、ネットワークアプリケーションをプロビジョニングし、ネットワークアプリケーションにアクセスするための要求を開始する、サーバの所定のURLおよび/または対応するウェブページにアクセスしてもよい。いくつかの実施形態では、要求は、(例えば、要求のデータ経路内の)指定されるゲートウェイサービスに転送される、またはそれによって傍受されることができる。例えば、ゲートウェイサービスは、(例えば、実行可能プログラムとして)クライアントデバイス上に常駐することができる、または、例えば、クラウドサービス408のネットワークデバイス432上に常駐することができる。いくつかの実施形態では、アクセスゲートウェイは、ゲートウェイサービスに対応する、またはそれを含んでもよい。ゲートウェイサービスは、要求されるネットワークアプリケーションが認定ネットワークアプリケーションであるかどうかを決定することができる。ゲートウェイサービスは、CEBが要求を開始したかどうかを決定することができる。ゲートウェイサービスは、要求がCEB以外のクライアントデバイス内のソースから開始される(例えば、標準的ブラウザによって開始される)ことを検出または別様に決定することができる。いくつかの実施形態では、指定されるゲートウェイサービスが、要求がCEBから開始されたかどうか、例えば、要求されるネットワークアプリケーションが認定されているかどうか、ユーザが標準的ブラウザを介して要求を開始していること、および/または所定のURLおよび/または対応するウェブページがアクセスされていることを検出または決定するための要件は、存在しない。
【0116】
動作(2)時、サーバは、クラウドサービス408のアクセスゲートウェイを介して、ユーザを認証してもよい。サーバは、要求に応答して、アクセスゲートウェイと通信し、ユーザを認証してもよい。例えば、要求は、アクセスゲートウェイと通信し、ユーザを認証するためのサーバへのインジケーションを含むことができる。いくつかの実施形態では、サーバは、認定ネットワークアプリケーションにアクセスするための要求のために、アクセスゲートウェイと通信し、ユーザを認証するように事前に構成される。サーバは、要求をアクセスゲートウェイに送信し、ユーザを認証してもよい。ユーザを認証するためのサーバの要求に応答して、アクセスゲートウェイは、ユーザの証明書をサーバ430に提供することができる。
【0117】
動作(3)時、ゲートウェイサービスおよび/またはサーバは、全てのトラフィックをセキュアブラウザ420にダイレクト(またはリダイレクト)することができ、これは、セキュアブラウジングサービスを提供する。これは、要求されるネットワークアプリケーションが認定ネットワークアプリケーションであることの決定、要求がCEB以外のソースから開始されることの決定、要求されるネットワークアプリケーションが認定されていることの決定、ユーザが標準的ブラウザを介して要求を開始することの決定、および/または所定のURLおよび/または対応するウェブページがアクセスされていることの決定のうちの少なくとも1つに応答したものであってもよい。
【0118】
ユーザのURLセッションは、セキュアブラウザにリダイレクトされることができる。例えば、サーバ、ゲートウェイサービス、および/またはアクセスゲートウェイは、決定に応答して、URLリダイレクトメッセージを発生させ、および/または標準的ブラウザに送信することができる。標準的ブラウザのセキュアブラウザプラグインは、URLリダイレクトメッセージを受信することができ、例えば、非認定ネットワークアプリケーションにアクセスするための要求をセキュアブラウザ420に送信することができる。セキュアブラウザ420は、要求を非認定ネットワークアプリケーションのサーバにダイレクトすることができる。URLリダイレクトメッセージは、標準的ブラウザ(および/またはセキュアブラウザプラグイン)に、(例えば、ネットワークアプリケーションに向けられる)トラフィックを標準的ブラウザからネットワークデバイス上にホストされたセキュアブラウザ420にダイレクトするように命令することができる。これは、セキュアブラウザサービスを通した動的ルーティングを介して、クライアントレスアクセスおよび制御を提供することができる。いくつかの実施形態では、セキュアブラウザ420への全てのトラフィックのリダイレクトは、(例えば、SSOを使用した)サーバとのユーザの認証を実施することに先立って、開始または構成される。
【0119】
いくつかの実施形態では、ゲートウェイサービスは、要求されるネットワークアプリケーションのサーバに、セキュアブラウザ420と通信するように指示または要求することができる。例えば、ゲートウェイサービスは、サーバおよび/またはセキュアブラウザに、ネットワークアプリケーションのためのアプリケーションセッションを確立するために、サーバとセキュアブラウザとの間にセキュア化された接続を確立するように指示することができる。
【0120】
いくつかの実施形態では、セキュア化されたブラウザ420は、クラウドサービス408のネットワークデバイス432上にホストされる、ブラウザを備える。セキュア化されたブラウザ420は、例えば、少なくとも図4に関連して上記に説明される、セキュア化されたブラウザ420の1つ以上の特徴を含むことができる。ホストされたブラウザは、クライアントデバイス上の代わりに、ネットワークデバイス432上にホストされる、CEBの内蔵ブラウザを含むことができる。ホストされたブラウザは、ネットワークデバイス432上にホストされる、CEBのホストされた仮想化バージョンの内蔵ブラウザを含むことができる。クライアントデバイス上にインストールされるCEBと同様に、トラフィックは、ネットワークデバイス上にホストされたCEBを通してルーティングされ、これは、管理者が、CEBを通してトラフィックの可視性を有し、セキュリティポリシ制御、分析、および/または性能の管理のための制御を保つことを可能にする。
【0121】
図6は、セキュアブラウザプラグインを使用したブラウザリダイレクトのための例示的実装を図示する。概要として、実装は、クライアントデバイス上で動作するセキュアブラウザプラグイン516を伴う、ウェブブラウザ512と、ネットワークデバイス上に常駐する、ホストされたウェブブラウザ(またはセキュアブラウザ)522とを含む。ウェブブラウザ512は、例えば、図4に関連して上記に議論されるような内蔵ブラウザの代わりに、標準的ブラウザに対応し得る。セキュアブラウザプラグイン516は、第1のネットワーク510内で実行され、第2のネットワーク530内のサーバ430にアクセスすることができる。第1のネットワーク510および第2のネットワーク530は、例証目的のためのものであって、より少ないまたは付加的コンピュータネットワークと置換されてもよい。セキュアブラウザプラグイン516は、標準的ブラウザ512上にインストールされることができる。プラグインは、1つ以上のコンポーネントを含むことができる。1つのそのようなコンポーネントは、標準的ブラウザの中にロードされ、その中で実行されることが可能なActiveX制御またはJava(登録商標)制御または任意の他のタイプおよび/または形態の実行可能命令を含むことができる。例えば、標準的ブラウザは、セキュアブラウザプラグイン516のActive X制御を標準的ブラウザのメモリ空間またはコンテキスト内にロードし、起動することができる。いくつかの実施形態では、セキュアブラウザプラグインは、拡張として標準的ブラウザ上にインストールされることができ、ユーザは、プラグインまたは拡張を有効にまたは無効にするように選定することができる。セキュアブラウザプラグインは、デジタル作業空間のセキュア化された部分内のリソースをセキュア化する、それを使用する、および/またはそれにアクセスするために、セキュア化されたブラウザ420と通信および/または動作することができる。
【0122】
標準的ブラウザ512内で動作するセキュアブラウザプラグイン516を使用することによって、標準的ブラウザ512を介してアクセスされるネットワークアプリケーションは、ホストされたセキュアブラウザにリダイレクトされることができる。例えば、セキュアブラウザプラグイン516は、ネットワークアプリケーションが標準的ブラウザを介してアクセスされていることを検出するように実装および/または設計されることができ、トラフィックをネットワークアプリケーションと関連付けられるクライアントデバイスからホストされたセキュアブラウザにダイレクト/リダイレクトすることができる。ホストされたセキュアブラウザは、例えば、レンダリングおよび/または表示のために、ネットワークアプリケーションから受信されたトラフィックをセキュアブラウザプラグイン516および/またはクライアントエージェント514にダイレクトすることができる。クライアントエージェント514は、ウェブブラウザ512および/またはセキュアブラウザプラグイン内で実行されることができ、例えば、少なくとも図4に関連して上記に議論される、クライアントアプリケーション404のある要素または特徴を含むことができる。例えば、クライアントエージェント514は、ネットワークアプリケーションをウェブブラウザ512においてレンダリングするために、遠隔セッションエージェント416を含むことができる。いくつかの実施形態では、ネットワークアプリケーションは、ホストされたセキュアブラウザにレンダリングされ、レンダリングされたデータは、処理および/または表示のために、セキュアブラウザプラグイン516および/またはクライアントエージェント514に伝達またはミラーリングされる。
【0123】
実施例として、ユーザは、遠隔で作業している場合があり、ユーザが非セキュアネットワークに接続されるコンピューティングデバイス上で作業している間、セキュアコーポレートネットワークの内部のネットワークアプリケーションにアクセスすることを所望し得る。この場合、ユーザは、その中で第1のネットワーク510が非セキュアネットワークを構成し得る、第1のネットワーク510内で実行される標準的ブラウザ512を利用している場合がある。ユーザがアクセスすることを所望する、サーバ430は、例えば、その中で第2のネットワーク530がセキュアコーポレートネットワークを構成する、第2のネットワーク530であり得る。ユーザは、セキュアウェブサイト532のための内部ユニフォームレコードロケータ(URL)をクリックすることによって、非セキュアな第1のネットワーク510からサーバ430にアクセスすることが可能ではない場合がある。すなわち、ユーザは、外部非セキュアネットワーク510から標準的ブラウザ512を実行している際、異なるURL(例えば、外部URL)を利用する必要があり得る。外部URLは、第2のネットワーク530(例えば、セキュアネットワーク)内のサーバ430にアクセスするように構成される、1つ以上のホストされたウェブブラウザ522にダイレクトされ得る、またはそれにアドレス指定され得る。セキュアアクセスを維持するために、セキュアブラウザプラグイン516は、ホストされたセキュアブラウザのために、内部URLを外部URLにリダイレクトし得る。
【0124】
セキュアブラウザプラグイン516は、内部URLを外部URLにリダイレクトすべきかどうかを識別するために、ネットワーク検出を実装することが可能であり得る。標準的ブラウザ512は、セキュアネットワーク内で実行されるウェブサイトのための内部URLを備える、要求を受信し得る。例えば、標準的ブラウザ512は、ユーザが(例えば、セキュアウェブサイト532のための)標準的ブラウザ内のウェブアドレスを打ち込むことに応答して、要求を受信し得る。セキュアブラウザプラグイン516は、ホストされたウェブブラウザアプリケーションのために、ユーザウェブブラウザアプリケーション512を内部URLから外部URLにリダイレクトし得る。例えば、セキュアブラウザプラグイン516は、セキュアネットワーク530内で実行されるホストされたウェブブラウザアプリケーション522のために、内部URLと外部URLを置換してもよい。
【0125】
セキュアブラウザプラグイン516は、クライアントエージェント514がホストされたウェブブラウザアプリケーション522に接続されることを可能にし得る。クライアントエージェント514は、標準的ブラウザ512の中にロードされ、その中で実行されることが可能なActiveX制御またはJava(登録商標)制御または任意の他のタイプおよび/または形態の実行可能命令等のプラグインコンポーネントを備えてもよい。例えば、クライアントエージェント514は、ユーザウェブブラウザアプリケーション512のメモリ空間またはコンテキスト等内にロードされ、標準的ブラウザ512によって起動される、ActiveX制御を備えてもよい。クライアントエージェント514は、ユーザウェブブラウザアプリケーション512内のホストされたウェブブラウザアプリケーション522のコンテンツを提示するように事前に構成されてもよい。
【0126】
クライアントエージェント514は、シンクライアントまたは遠隔ディスプレイプロトコルを使用して、サーバまたはクラウド/ホストされたウェブブラウザサービス520に接続し、サービス520上で実行されるホストされたウェブブラウザアプリケーション522によって発生されたディスプレイ出力を提示してもよい。シンクライアントまたは遠隔ディスプレイプロトコルは、プロトコルの以下の非包括的リスト、すなわち、Citrix Systems, Inc.(Ft. Lauderdale, Fla.)によって開発された独立コンピューティングアーキテクチャ(ICA)プロトコルまたはMicrosoft Corporation(Redmond, Wash)によって製造された遠隔デスクトッププロトコル(RDP)のうちの任意の1つであることができる。
【0127】
ホストされたウェブブラウザアプリケーション522は、要求されるネットワークアプリケーションにフルスクリーンモードでナビゲートしてもよく、要求されるネットワークアプリケーションをレンダリングすることができる。クライアントエージェント514は、例えば、コンテンツがフルスクリーンモードで表示されていることに基づいて、コンテンツが標準的ブラウザ512によって表示されているように現れるように、シームレスかつ透明様式において、ネットワークアプリケーションのコンテンツまたは描出をウェブブラウザアプリケーション512上に提示してもよい。換言すると、ユーザは、ウェブサイトコンテンツが、ホストされたウェブブラウザアプリケーション522によってではなく、ユーザウェブブラウザアプリケーション512によって表示されているという印象を与えられ得る。クライアントエージェント514は、シンクライアントまたは遠隔ディスプレイプロトコルを使用して、ユーザウェブブラウザアプリケーション512によって発生されたナビゲーションコマンドをホストされたウェブブラウザアプリケーション522に伝送してもよい。ホストされたウェブブラウザアプリケーション522のディスプレイ出力の変化は、ナビゲーションコマンドに起因して、クライアントエージェント514によってユーザウェブブラウザアプリケーション512内に反映され、ナビゲーションコマンドがユーザウェブブラウザアプリケーション512によって実行されたという印象をユーザに与え得る。
【0128】
再び図5を参照すると、動作(4)時、新しいブラウザタブが、標準的ブラウザ上に開かれ、セキュアブラウザセッションをレンダリングまたは表示することができる。新しいブラウザタブは、例えば、セキュアブラウザプラグインによって、確立される、または開かれることができる。セキュアブラウザプラグインおよび/またはクライアントエージェントは、例えば、図6に関連して上記に議論されるように、データをセキュアブラウザセッションから受信することができ、ネットワークアプリケーションを新しいブラウザタブ内にレンダリングすることができる。
【0129】
動作(5)時、セキュアブラウザは、処理のために、ネットワークアプリケーションを介した全てのユーザ相互作用イベントを分析サービスにフィードバックすることができる。セキュアブラウザプラグインは、ブラウザタブ内のネットワークアプリケーションの描出にダイレクトされる、任意のユーザ相互作用イベントを監視および傍受することができる。故に、ユーザは、(クライアントアプリケーションの不在下)クラウドサービスおよびセキュアブラウザの相互運用を介して、ネットワークアプリケーションのトラフィックへの可視性を可能にしながら、ネイティブ(または標準的)ブラウザを使用して、ネットワークアプリケーションにアクセスすることができる。
【0130】
図7は、セキュアブラウザを使用するシステムの別の例示的実施形態を描写する。概要として、システムは、クラウドサービス408と、ネットワークアプリケーション406と、クライアントデバイス402とを含む。いくつかの実施形態では、システムの種々の要素は、図5に関して上記に説明されるものに類似する。内蔵ブラウザを伴うクライアントアプリケーションは、クライアントデバイス402内では利用不可能である。標準的または典型的(例えば、HTML5)ブラウザが、クライアントデバイス上で利用可能であって、そこからユーザは、非認定ネットワークアプリケーションにアクセスするための要求を開始することができる。ネットワークアプリケーションは、管理者によって、または自動的に(例えば、人工知能を介して)設定され得る、ポリシを介して、認定または非認定として規定されることができる。
【0131】
動作(1)時、ユーザは、標準的ブラウザを使用して、非認定ネットワークアプリケーションにログインしようと試み得る。ユーザは、ネットワークアプリケーションをプロビジョニングする、サーバのウェブページにアクセスし、ネットワークアプリケーションにアクセスするための要求を開始しようと試み得る。いくつかの実施形態では、要求は、(例えば、要求のデータ経路内の)指定されるゲートウェイサービスに転送される、またはそれによって傍受されることができる。例えば、ゲートウェイサービス(時として、SWGとも称される)は、(例えば、実行可能プログラムとして)クライアントデバイス上に常駐することができる、または、例えば、クラウドサービス408のネットワークデバイス432上に常駐することができる。ゲートウェイサービスは、要求されるネットワークアプリケーションが認定ネットワークアプリケーションであるかどうかを検出または別様に決定することができる。ゲートウェイサービスは、CEBが要求を開始したかどうかを決定することができる。ゲートウェイサービスは、要求がCEB以外のクライアントデバイス内のソースから開始される(例えば、標準的ブラウザによって開始される)ことを検出または別様に決定することができる。
【0132】
動作(2)時、ゲートウェイサービスは、要求されるネットワークアプリケーションが非認定ネットワークアプリケーションであることを検出する。ゲートウェイサービスは、例えば、情報(例えば、目的地アドレス、要求されるネットワークアプリケーションの名称)を要求から抽出し、情報を認定および/または非認定ネットワークアプリケーションのデータベースからのものと比較することができる。ゲートウェイサービスは、比較に基づいて、要求されるネットワークアプリケーションが非認定ネットワークアプリケーションであることを決定することができる。
【0133】
動作(3)時、決定に応答して、ゲートウェイサービスは、例えば、要求をブロックすることによって、要求されるネットワークアプリケーションへのアクセスをブロックすることができる。ゲートウェイサービスは、決定に応答して、URLリダイレクトメッセージを発生させ、および/または標準的ブラウザに送信することができる。URLリダイレクトメッセージは、動作(3)時、図5におけるサーバから標準的ブラウザに送信される、URLリダイレクトメッセージに類似することができる。標準的ブラウザのセキュアブラウザプラグインは、URLリダイレクトメッセージを受信することができ、例えば、非認定ネットワークアプリケーションにアクセスするための要求をセキュアブラウザ420に送信することができる。セキュアブラウザ420は、要求を非認定ネットワークアプリケーションのサーバにダイレクトすることができる。
【0134】
非認定ネットワークアプリケーションのサーバは、例えば、セキュアブラウザからの要求の受信に応答して、クラウドサービス408のアクセスゲートウェイを介して、ユーザを認証してもよい。サーバは、要求に応答して、アクセスゲートウェイと通信し、ユーザを認証してもよい。サーバは、要求をアクセスゲートウェイに送信し、ユーザを認証してもよい。ユーザを認証するためのサーバの要求に応答して、アクセスゲートウェイは、ユーザの証明書をサーバ430に提供することができる。認証に応じて、セキュアブラウザ(または対応するCEB)は、セキュア化された接続およびアプリケーションセッションをサーバと確立することができる。
【0135】
動作(4)時、新しいブラウザタブが、標準的ブラウザ上に開かれ、セキュアブラウザのアプリケーションセッションをレンダリングまたは表示することができる。新しいブラウザタブは、例えば、セキュアブラウザプラグインによって、確立される、または開かれることができる。セキュアブラウザプラグインおよび/またはクライアントエージェントは、データをセキュアブラウザセッションから受信することができ、例えば、図5-6に関連して上記に議論されるように、ネットワークアプリケーションを新しいブラウザタブ内にレンダリングすることができる。
【0136】
動作(5)時、セキュアブラウザは、処理のために、ネットワークアプリケーションを介した全てのユーザ相互作用イベントを分析サービスにフィードバックすることができる。セキュアブラウザプラグインは、ブラウザタブ内のネットワークアプリケーションの描出にダイレクトされる、任意のユーザ相互作用イベントを監視および傍受することができる。故に、ユーザは、(クライアントアプリケーションの不在下)クラウドサービスおよびセキュアブラウザの相互運用を介して、ネットワークアプリケーションのトラフィックへの可視性を可能にしながら、ネイティブ(または標準的)ブラウザを使用して、ネットワークアプリケーションにアクセスすることができる。
【0137】
いくつかの実施形態では、クライアントデバイス上のCEBの不在または非可用性下、ブラウザリダイレクトは、各要求されるネットワークアプリケーションが、全てのトラフィックを単一のホストされたセキュアブラウザ(またはホストされたCEB)を通してリダイレクトさせる代わりに、ハンドリングするために、対応するホストされたセキュアブラウザ(またはホストされたCEB)を介してアクセスされるように実施される。各専用セキュアブラウザは、コンパートメント化および改良されたセキュリティを提供することができる。
【0138】
CEBの使用は、ホストされる、またはクライアントデバイスのローカルであるかどうかにかかわらず、分析、サービス水準合意(SLA)、リソース利用、監査等のために、アプリケーショントラフィックのエンドツーエンド可視性を可能にすることができる。そのような可視性に加え、CEBは、これらのおよび他の側面のいずれかを管理および制御するために、ポリシとともに構成されることができる。例えば、DLP特徴が、サポートされ、「コピーおよびペースト」アクティビティ、ファイルのダウンロード、ファイルの共有を制御し、例えば、電子透かしを実装することができる。別の実施例として、CEBは、周辺機器等のローカルドライブおよび/またはデバイスリソースへのアクセスを管理および制御するために、ポリシとともに構成されることができる。
【0139】
ここで図8を参照すると、ローカル内蔵ブラウザおよびホストされたセキュア化されたブラウザを使用するためのシステムの例示的実施形態が、描写される。好適なCEBをローカルで装備し得るように、異なるタイプのクライアントデバイス402A、402Bが使用され得(例えば、BYODコンテキストにおいて)、別のクライアントデバイスが、好適なローカルCEBをインストールさせない場合がある、環境が、示される。そのような環境では、図4、5、および7に説明されるシステムは、ローカルでインストールされ、好適なCEBの可用性に基づいて、クライアントデバイスのそれぞれをサポートするために使用されることができる。
【0140】
図9は、ローカル内蔵ブラウザおよびホストされたセキュア化されたブラウザを使用するための例示的プロセスフローを描写する。プロセスフローは、図8において上記に説明される環境内で使用され、内蔵ブラウザまたはホストされたセキュア化されたブラウザが、ネットワークアプリケーションにアクセスするために各クライアントデバイスに対して使用されるべきかどうかを決定することができる。例えば、動作901時、HTTPクライアントは、ウェブサービス(例えば、ネットワークアプリケーションのサーバ)にアクセスするように試みることができる。動作903時、ウェブサービスは、認証のために、HTTPクライアントをゲートウェイサービスにリダイレクトすることができる。動作905時、ゲートウェイサービスは、HTTPクライアントがCEBであるかどうかを決定することができる。該当する場合、動作909時、ゲートウェイサービスは、CEBが、例えば、定義されたアプリケーションポリシを施行することが可能な好適なCEBであるかどうかを決定することができる。該当する場合、動作911時、CEBは、ウェブサービスにアクセスすることを可能にされ、定義されたポリシを施行することができる。
【0141】
ゲートウェイサービスが、HTTPクライアントがCEBではないことを決定する場合、ゲートウェイサービスは、動作907時、CEBの仮想化されたバージョンを初期化させ、遠隔サーバ(例えば、クラウドサービス408のネットワークデバイス432)上にホストさせることができる。いくつかの実施形態では、そのようなホストされたCEBは、ネットワークデバイス432上ですでに利用可能であり得、使用のために選択されることができる。例えば、動作911時、CEBは、ウェブサービスにアクセスすることを可能にされ、定義されたポリシを施行することができる。
【0142】
ゲートウェイサービスが、HTTPクライアントがCEBであるが、CEBが好適なCEBではないことを決定する場合、ゲートウェイサービスは、動作907時、CEBの仮想化されたバージョンを初期化させ、遠隔サーバ(例えば、クラウドサービス408のネットワークデバイス432)上にホストさせることができる。いくつかの実施形態では、そのようなホストされたCEBは、ネットワークデバイス432上ですでに利用可能であり得、使用のために選択されることができる。例えば、動作911時、CEBは、ウェブサービスにアクセスすることを可能にされ、定義されたポリシを施行することができる。
【0143】
いくつかの実施形態では、ユーザは、企業データセンタ内に位置するウェブアプリケーションへのアクセスを要求する場合、(クラウドサービス内または敷地上の)ゲートウェイサービスは、CEBを伴うクライアントアプリケーションが検出されると、アクセスを可能にすることができる。そうでなければ、要求は、CEBのホストされた仮想化されたバージョンを伴うサービスにルーティングされることができ、次いで、アクセスが、認証および許可される。
【0144】
例えば、動作905および/または動作909では、HTTPクライアントがCEBであるかどうかおよび好適なCEBであるかどうかに関して行われる決定が、いくつかの要因によって決定されてもよい。例えば、HTTPクライアントがCEBであるかどうかを決定するために、ゲートウェイサービスは、例えば、ユーザ識別および認証の強度、クライアント場所、クライアントIPアドレス、ユーザ識別、クライアント場所、クライアントIPの信頼性、クライアントデバイスのジェイルブレイクステータス、マルウェア対策ソフトウェアのステータス、クライアントデバイスのコーポレートポリシへの準拠、および/またはクライアントソフトウェアの完全性の遠隔証明または他の証拠のうちの少なくとも1つを含む、要因を考慮し得る。
【0145】
CEBが、全ての定義されたアプリケーションポリシ(クライアントバージョン、クライアントOSプラットフォーム、および他の要因によって変動し得る)を守る、またはサポートすることが可能であるかどうかを決定するために、クライアントデバイスのソフトウェアおよびゲートウェイサービスは、能力ネゴシエーションおよび/または交換バージョン情報を実施してもよい。いくつかの実施形態では、ゲートウェイサービスは、CEBのバージョン番号または識別子をクエリまたはチェックし、CEBが使用するために好適なCEBであるかどうかを決定することができる。
【0146】
全てのトラフィックをCEBを通して駆動することは、次いで、SaaSおよびウェブベースのシステムにアクセスするコンテンツの付加的制御を可能にする。SaaSおよびウェブトラフィックのデータ損失防止(DLP)が、他のCEBアクセスアプリケーションまたはIT管理下デバイスへのコピーおよびペースト制御を含む、特徴とともに、CEBアプリを通して適用されることができる。DLPはまた、コンテンツがIT制御下の指定されるファイルサーバまたはサービスへのみダウンロードされることを有効にすることによって、施行されることができる。
【0147】
ここで図10を参照すると、描写されるものは、ウェブページへのユーザアクセスを管理するためのシステムの例示的実施形態である。いくつかのウェブページ(またはウェブサイト)は、安全であることが把握されているが、その他は、疑わしい場合がある。ユーザは、標準的ブラウザを通して、対応するURLを介して、ウェブページにアクセスし得る。例えば、ユーザは、メールアプリケーションを使用して閲覧されている電子メール内に含まれ得る、URLに対応するリンクをクリックし得る。アクセスゲートウェイ(SWG)は、リンクのクリックによって発生されたアクセス要求を傍受し得、対応するURLが安全である、または疑わしいかどうかを決定することができる。URLが、安全であることが把握される場合、アクセスゲートウェイは、対応するウェブサイトまたはウェブサーバに進むための要求を可能にすることができる。URLが、疑わしい場合、アクセスゲートウェイは、ホストされたセキュアブラウザを介してハンドリングされるように要求をリダイレクトすることができる。セキュアブラウザは、少なくとも図7および5に関連して議論されるようなブラウザリダイレクトを介したネットワークアプリケーションのハンドリングと同様に、ウェブページ(標準的ブラウザの代わりに)へのアクセスを要求し、それにアクセスすることができ、ウェブページ情報が標準的ブラウザに伝達されることを可能にすることができる。
C.複数のネットワークアプリケーションを横断してコンテキストを意識した入力を提供するためのシステムおよび方法
【0148】
本開示は、他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するためのシステムおよび方法の種々の実施形態を提供する。開示されるシステムおよび方法は、クライアントアプリケーションを使用して、ネットワークアプリケーション(例えば、SaaSアプリケーション)にアクセスする際、ユーザのためのコンテキストを意識した(またはコンテキストに依存した)生産性向上構造を提供することができる。そのようなシステムは、セキュアコンテナがサポートする、種々のSaaSアプリケーションを横断した、グローバルビューおよびいくつかのコンテキストを原動力とすることができる。そのようなコンテキストを欠いている、いくつかのネットワークアプリケーションに関して、コンテキストは、これらの種類のネットワークアプリケーションにおいて複製されることができる。
【0149】
時として、SaaSコンテナとも称され得る、セキュアコンテナは、ユーザ(または企業)がクライアントアプリケーションを通してアクセスしている、複数のネットワークアプリケーションを横断してビューを有することができる。したがって、クライアントアプリケーションは、あるタイプのデータが入力されることの検出に応答して、例えば、住所、電話番号、カレンダ予約、注文番号、多文字列確認コード、および/または予約等、コンテキストを意識した生産性向上構造を提供することができる。さらに、クライアントアプリケーションは、企業全体の辞書、複数のネットワークアプリケーションを横断したユーザ特有の辞書、および/またはユーザ類似性分析(コホート分析)に従って、入力要素への自動補完機能を提供することができる。随意に、時として、「インテリセンス」とも称される、自動補完機能は、クライアントアプリケーションが、入力要素内に設置され得る、所定のタグを検出することによっても、トリガされることができる。トリガされることに応じて、クライアントアプリケーションは、インテリセンスに基づいて、コンテキストメニューを提示することができる。
【0150】
図11を参照すると、描写されるものは、複数のネットワークアプリケーションを横断してコンテキストを意識した入力を提供するためのシステム1100の一実施形態のブロック図である。システム1100は、1つ以上のサーバ430と、1つ以上のクライアントデバイス402-1および402-2とを含むことができる。システム1100は、個別のクライアントデバイス402-1-2に通信可能に結合または接続される、1つ以上の入力/出力(I/O)デバイス1120を含むことができる。システム1100のクライアントデバイス402-1-2はそれぞれ、クライアントアプリケーション404を介してアクセスされるネットワークアプリケーション406-1または406-2の情報をレンダリングし得る、内蔵ブラウザ410を含む、クライアントアプリケーション404を含むことができる。システム1100は、サーバ430に通信可能に結合または接続される、アクティビティ記憶装置1108を含むことができる。
【0151】
クライアントアプリケーション404は、本明細書の前述で詳述されたクライアントアプリケーション404のインスタンスであることができる。内蔵ブラウザ410(CEB)を伴うクライアントアプリケーション404は、本明細書で前述のようなCEBの任意の要素を含むことができる。いくつかの実施形態では、クライアントアプリケーション404は、ユーザ(例えば、図11におけるユーザ1または2)によって動作されるクライアントデバイス402-1または402-2上で実行されることができる。いくつかの実施形態では、クライアントデバイス402-1-2はそれぞれ、1つ以上のアクティビティ記憶装置1110と、1つ以上のアクティビティキーパ1112と、1つ以上の入力モニタ1114と、1つ以上の入力プロバイダ1116とを含むことができる。いくつかの実施形態では、クライアントアプリケーション404は、1つ以上のアクティビティ記憶装置1110、アクティビティキーパ1112、入力モニタ1114、および入力プロバイダ1116にアクセスする、それを確立する、またはそれを実行することができる。
【0152】
上記に述べられた要素またはエンティティはそれぞれ、1つ以上の実施形態では、ハードウェアまたはハードウェアおよびソフトウェアの組み合わせ内に実装される。システム1100の各コンポーネントは、図1に関連して上記に詳述される、ハードウェアまたはハードウェアまたはソフトウェアの組み合わせを使用して実装されることができる。例えば、これらの要素またはエンティティはそれぞれ、デバイス(例えば、クライアントデバイス402-1-2)のハードウェア上で実行される、任意のアプリケーション、プログラム、ライブラリ、スクリプト、タスク、サービス、プロセス、または任意のタイプおよび形態の実行可能命令を含むことができる。ハードウェアは、1つ以上の実施形態では、1つ以上のプロセッサ等の回路網を含む。
【0153】
ネットワークアプリケーション406-1-2はそれぞれ、本明細書の前述で詳述されたネットワークアプリケーション406のインスタンスであることができる。ネットワークアプリケーションは、本明細書の前述で詳述された任意のタイプまたは形態のネットワークアプリケーション406を含むことができる。1つ以上のクライアントデバイス402-1-2は、ネットワーク1104を介して、1つ以上のサーバと通信する、インターフェースをとる、または別様に相互作用することができる。ネットワーク1104は、図2に描写されるトランスポートネットワーク262または図2に描写されるパブリックインターネット284またはある他のネットワークまたはインターネット通信チャネルの1つ以上のコンポーネントまたは機能性を含むことができる。
【0154】
依然として、図11をさらに詳細に参照すると、システム1100は、クライアントアプリケーション404を含むことができる。クライアントアプリケーション404は、ネットワークアプリケーションとのセッション1106を確立するように、設計、構築、または動作されることができる。クライアントアプリケーション404は、1つ以上のネットワークアプリケーション406-1-2との1つ以上のセッション1106-1および1106-2を確立することができる。例えば、クライアントデバイス402-1のクライアントアプリケーション404は、単一ネットワークアプリケーション406-1との単一セッション1106-1を確立することができ、クライアントデバイス402-2のクライアントアプリケーション404は、単一ネットワークアプリケーション406-2との単一セッション1106-2を確立することができる。クライアントアプリケーション404は、単一ネットワークアプリケーションとの複数のセッションを確立することができる。クライアントアプリケーション404は、複数の個別のネットワークアプリケーションとの単一の別個のセッションを確立することができる。クライアントアプリケーション404は、複数のネットワークアプリケーションのそれぞれとの複数のセッションを確立することができる。
【0155】
クライアントアプリケーション404は、クライアントアプリケーション404またはクライアントデバイス402-1-2のうちの1つの内蔵ブラウザ410を介して、1つ以上のネットワークアプリケーション406-1-2とのセッション1106-1-2を確立することができる。クライアントアプリケーション404は、図4に説明される1つ以上のセッション確立技法、プロシージャ、プロトコル、またはプロセスを使用することによって、1つ以上のネットワークアプリケーション406-1-2との複数のセッション1106-1-2を確立することができる。例えば、クライアントアプリケーション404は、クライアントアプリケーション404と1つ以上のリソース(例えば、ネットワークアプリケーションをサービングするサーバ430)との間のネットワーク接続を確立またはその確立を促進する、ネットワーキングエージェント412を含むことができる。クライアントアプリケーション404は、ネットワークアプリケーションにアクセスするためにクライアントアプリケーション404から要求される接続のためのハンドシェイクを実施することができ、要求される接続(例えば、セキュアまたは暗号化された接続)を確立することができる。クライアントアプリケーション404は、例えば、クライアントアプリケーション404とネットワークアプリケーションを提供するサーバ430との間の仮想プライベートネットワーク(VPN)またはセキュアソケット層(SSL)VPNを介して、企業リソース(サービスを含む)に接続することができる。クライアントアプリケーションは、例えば、図4に描写されるように、遠隔セッションエージェント416を含み、遠隔プロトコル(例えば、HDXまたはICA)の表示をサポートする、または遠隔デスクトッププロトコル(RDP)、アプライアンスリンクプロトコル(ALP)、遠隔フレームバッファ(RFB)プロトコル、およびICAプロトコル等の任意の種々のプロトコルに従って、遠隔デスクトップセッションおよび/または遠隔アプリケーションセッションを確立することができる。例えば、クライアントアプリケーション404(例えば、遠隔セッションエージェント416を介して)は、クライアントデバイスのユーザが企業ネットワークアプリケーションにアクセスするための遠隔アプリケーションセッションを確立することができる。したがって、クライアントアプリケーション404は、例えば、ネットワーキングエージェント412によって確立されるセキュア接続(例えば、VPN)内で、またはそれを経由して、遠隔アプリケーションセッション(例えば、ネットワークアプリケーションとのセッション)を確立することができる。
【0156】
アクティビティ記憶装置1110は、クライアントアプリケーション404またはクライアントデバイス402-1-2によって管理または維持されることができ、アクティビティ記憶装置1108は、サーバ430および/またはクライアントアプリケーション404またはクライアントデバイス402-1-2によって管理または維持されることができる。アクティビティ記憶装置1108は、ネットワークアプリケーション406-1-2を提供する、同一サーバによって維持または管理されることができる。ある場合には、アクティビティ記憶装置1108は、ネットワークアプリケーション406を提供するサーバ430と異なる、サーバによって維持または管理されることができる。
【0157】
アクティビティ記憶装置1108および1110はそれぞれ、例えば、ネットワークアプリケーション406-1-2を横断したユーザ1および2の入力アクティビティを含むことができる。アクティビティ記憶装置1108および1110はそれぞれさらに、例えば、ネットワークアプリケーション406-1-2を横断してユーザ1および2の入力アクティビティにおいて入力として使用されたデータを含むことができる。いくつかの実施形態では、アクティビティ記憶装置1108および1110はそれぞれ、ユーザ特有の辞書を含むことができる。例えば、アクティビティ記憶装置1108および1110内に記憶される辞書は、以前に認証されたユーザ、例えば、ユーザ1および2のグループの入力アクティビティ内で入力として使用されたデータを含有することができる。いくつかの実施形態では、アクティビティ記憶装置1108および1110はそれぞれ、企業辞書を含むことができる。例えば、アクティビティ記憶装置1108および1110内に記憶される辞書は、企業の従業員、例えば、ユーザ1および2の入力アクティビティ内で入力として使用されたデータを含有することができる。ネットワークアプリケーション406-1-2の1人以上のユーザの入力アクティビティ内の入力データを記憶することによって、クライアントアプリケーション404は、ネットワークアプリケーション406-1-2を横断した入力補完のために、アクティビティ記憶装置1108および/または1110にアクセスすることができ、これは、下記でさらに詳細に議論されるものとする。
【0158】
クライアントアプリケーション404は、アクティビティキーパ1112を含む、または実行する、または別様に、アクティビティキーパ1112の1つ以上のコンポーネントまたは機能性を提供することができる。アクティビティキーパ1112は、ネットワークアプリケーション406-1-2を横断したユーザ(例えば、ユーザ1および2)の入力アクティビティおよび/または入力アクティビティ内で入力として使用されたデータをデータ記憶装置1108および/または1110に記憶する、ログ付けする、または別様に保つように、設計、構築、または動作されることができる。いくつかの実施形態では、アクティビティキーパ1112は、ユーザの個々の識別に従って、入力アクティビティおよび/またはユーザ(例えば、ユーザ1および2)の入力アクティビティ内で入力として使用されたデータをデータ記憶装置1108および/または1110内に記憶してもよい。例えば、アクティビティキーパ1112は、ユーザ特有の辞書を、ユーザの以前に認証または識別されたグループの入力アクティビティおよび/または入力アクティビティ内で入力として使用されたデータのみを記憶し得る、データ記憶装置1108および/または1110内に確立してもよい。いくつかの実施形態では、アクティビティキーパ1112は、ユーザの企業識別に従って、ユーザ(例えば、ユーザ1および2)の入力アクティビティおよび/または入力アクティビティ内で入力として使用されたデータをデータ記憶装置1108および/または1110内に記憶してもよい。例えば、アクティビティキーパ1112は、企業辞書を、企業の従業員の入力アクティビティおよび/または入力アクティビティ内で入力として使用されたデータのみを記憶し得る、データ記憶装置1108および/または1110内に確立してもよい。
【0159】
クライアントアプリケーション404は、入力モニタ1114を含む、または実行する、または別様に、入力モニタ1114の1つ以上のコンポーネントまたは機能性を提供することができる。入力モニタ1114は、いくつかのネットワークアプリケーションのうちの1つ、例えば、406-1の入力要素上の入力焦点を検出するように、設計、構築、または動作されることができる。いくつかの実施形態では、入力要素は、入力されるべきあるタイプのデータを有する。いくつかの実施形態では、入力要素は、随意に、1つ以上の所定のタグを含有することができる。入力モニタ1114は、そのようなタグを検出し、入力要素への自動補完を有効にする、またはトリガするように、設計、構築、または動作されることができる(例えば、入力要素を選択可能データで自動的に埋める)。入力モニタ1114は、別のネットワークアプリケーション、例えば、406-2において使用され、データ記憶装置1108および/または1110内に記憶されている、データの1つ以上の入力のタイプを識別するように、設計、構築、または動作されることができる。そのようなデータの入力のタイプは、ネットワークアプリケーション406-1を使用するユーザ(例えば、ユーザ1)と異なる、ネットワークアプリケーション406-2を使用するユーザ(例えば、ユーザ2)によって提供されてもよい。いくつかの実施形態では、入力モニタ1114は、ユーザ類似性ベースの予測分析(例えば、コホート分析)を使用することによって、そのような2つの異なるユーザを識別するように、設計、構築、または動作されることができる。
【0160】
例えば、ユーザ1が、クライアントデバイス402-1上のクライアントアプリケーション404の内蔵ブラウザ410を使用すると、クライアントデバイス402-1のクライアントアプリケーション404は、入力モニタ1114を実行し、ネットワークアプリケーション406-1の入力要素(例えば、検索フィールド)上の入力焦点の存在を検出し得る。入力要素は、内蔵ブラウザ410を通して、クライアントデバイス402-1上に表示されてもよい。入力モニタ1114は、例えば、タッチスクリーン、キーボード、またはマウスを通して入力要素に移動されたポインタを検出する、および/またはドラッグアンドドロップ動作を通して入力要素に移動されたオブジェクト(例えば、画像、ドキュメント等)を検出することによって、入力要素表示上の入力焦点の存在を決定してもよい。入力焦点の存在の検出に応答して、入力モニタ1114は、次いで、随意に、入力要素が、入力要素への自動補完をトリガし得る、タグを含有するかどうかを検出することを通して、入力要素の入力タイプを識別することができる。入力タイプを識別することに応答して、入力モニタ1114は、アクティビティ記憶装置1108および/または1110と通信し、アクティビティ記憶装置が、別の異なるネットワークアプリケーション406-2を使用してユーザ1によって、同一ネットワークアプリケーション406-1を使用してユーザ2によって、または異なるネットワークアプリケーション406-2を使用してユーザ2によって提供された、そのような入力タイプのデータを有するかどうかを識別することができる。
【0161】
クライアントアプリケーション404は、入力プロバイダ1116を含む、または実行する、または別様に、入力プロバイダ1116の1つ以上のコンポーネントまたは機能性を提供することができる。入力プロバイダ1116は、いくつかのネットワークアプリケーションのうちの別の1つ(例えば、406-2)で使用され、入力モニタ1114によって、ネットワークアプリケーション(例えば、406-1)の入力要素のための選択可能入力として識別されている、データの1つ以上の入力のタイプを提供するように、設計、構築、または動作されることができる。いくつかの実施形態では、入力プロバイダ1116は、選択可能な1つ以上の入力を提供するためのコンテキストメニューを提示してもよい。入力プロバイダ1116は、対応するI/Oデバイス1120と通信し、コンテキストメニューをユーザ(例えば、ユーザ1)に提供することができる。
【0162】
図12を参照すると、描写されるものは、複数のネットワークアプリケーションを横断してコンテキストを意識した入力を提供するための方法1200の一実施形態のフロー図である。方法1200の機能性または動作は、図1-11に関連して本明細書に詳述されたコンポーネントを使用して実装される、またはそれによって実施されることができる。
【0163】
概要として、クライアントアプリケーションが、動作1202において、1つ以上のネットワークアプリケーションとの1つ以上のセッションを確立し得る。動作1204では、クライアントアプリケーションの入力モニタが、第1のネットワークアプリケーションのユーザの1つ以上の入力アクティビティを監視し得る。決定動作1205では、入力モニタは、第1のネットワークアプリケーションの入力要素上の焦点が検出されたかどうかを決定し得る。該当しない場合、方法1200は、動作1204に戻り得る。該当する場合、随意の決定動作1207において、入力モニタは、入力要素が所定のタグを含有するかどうかを決定し得る。該当しない場合、方法1200は、動作1204に戻り得る。該当する場合、動作1208において、入力モニタは、入力要素の入力タイプを識別し得る。次に、動作1210において、入力モニタは、次のネットワークアプリケーション(第1のネットワークアプリケーションと異なる)を選択し得る。決定動作1211では、入力モニタは、次のアプリケーションが識別された入力タイプのデータを有するかどうかを決定し得る。該当する場合、動作1214において、クライアントアプリケーションのアクティビティキーパが、データをリストに追加し得る。該当しない場合、動作1215において、入力モニタは、1つ以上の付加的ネットワークアプリケーションが識別された入力タイプのデータを有するかどうかを決定し得る。該当する場合、方法1200は、動作1210に反復し得る。該当しない場合、動作1216において、クライアントアプリケーションの入力プロバイダは、リストを第1のネットワークアプリケーションに提供し得る。次に、決定動作1217において、入力プロバイダは、第1のネットワークアプリケーションのユーザがアイテムをリストから選択したかどうかを決定し得る。該当しない場合、方法1200は、動作1204に戻り得る。該当する場合、動作1218において、入力プロバイダは、選択されたアイテムを入力要素内に挿入し得る。
【0164】
依然として、図12をさらに詳細に参照すると、クライアントアプリケーション(例えば、404)が、動作1202において、1つ以上のネットワークアプリケーションとの1つ以上のセッションを確立し得る。クライアントアプリケーションは、いくつかのネットワークアプリケーションのそれぞれとの少なくとも1つのセッションを確立することができる。ネットワークアプリケーションは、サーバ上にホストされることができる。クライアントアプリケーションは、内蔵ブラウザまたはCEBを含む、それと統合する、または別様に、それとインターフェースをとる、または通信し、ネットワークアプリケーションのそれぞれとの少なくとも1つのセッションを確立することができる。クライアントアプリケーションは、そのような複数のセッションを、同時に、または順次、確立することができる。
【0165】
ネットワークアプリケーションとのセッションの確立に応答して、動作1204において、クライアントアプリケーションの入力モニタ(例えば、1114)が、第1のネットワークアプリケーション(例えば、ネットワークアプリケーション406-1)のユーザの1つ以上の入力アクティビティを監視し得る。ユーザ(例えば、ユーザ1)は、クライアントデバイス402-1上で実行されるクライアントアプリケーション404の内蔵ブラウザ410を使用して、ネットワークアプリケーション406-1にアクセスし得る。入力アクティビティの実施例は、ユーザによって制御されるために内蔵ブラウザ上で利用可能なポインタの場所、ユーザによって移動されるために内蔵ブラウザ上で利用可能なあるオブジェクトの場所等を含むことができる。故に、入力モニタは、ユーザのそのような入力アクティビティを動的に追跡、検出、または別様に監視することができる。
【0166】
入力モニタが、動作1205において、ネットワークアプリケーションの入力要素上の入力焦点である入力アクティビティ(例えば、ポインタの場所が、ネットワークアプリケーションのあるフィールドに移動した、または移動中である)を検出することに応答して、入力モニタは、動作1207において、随意に、入力要素が所定のタグを有するかどうかを検出することができる。入力モニタが、入力要素上の入力焦点である入力アクティビティを検出しない場合、入力モニタは、ユーザの入力アクティビティを動的に追跡、検出、または別様に監視し続け得る(動作1204)。
【0167】
再び随意の動作1207を参照すると、入力モニタが、ネットワークアプリケーションの入力要素内に含有される所定のタグを検出しない場合、入力モニタは、ユーザの入力アクティビティを動的に追跡、検出、または別様に監視し続け得る(動作1204)。他方では、入力モニタが、入力要素上の入力焦点と、随意であり得る、入力要素内に含有される所定のタグとを検出した場合、入力モニタは、入力要素の入力タイプを識別し得る(動作1208)。
【0168】
いくつかの実施形態では、入力要素は、ある入力タイプを有し得る。故に、入力要素に打ち込まれた、挿入された、または別様に入力された、入力データは、そのような入力タイプを共有し得る。例えば、入力データは、住所、電話番号、カレンダ予約、注文番号、多文字列確認コード、予約、またはそれらの組み合わせを含むことができ、これは、以前に識別または決定された、入力要素の共通入力タイプを共有し得る。
【0169】
入力タイプを識別することに応答して、入力モニタは、動作1210において、その入力要素にユーザが焦点を当てているネットワークアプリケーション(例えば、406-1)と異なる、別のネットワークアプリケーション(例えば、ネットワークアプリケーション406-2)を選択し、ネットワークアプリケーション406-2が、動作1211において識別された入力タイプのデータを有するかどうかを決定し得る。いくつかの実施形態では、動作1208において入力タイプを識別するのと同時に、またはそれに続いて、入力モニタは、動作1211において、アクティビティ記憶装置(例えば、1108および/または1110)と通信し、識別されたタイプのデータを識別し得る。そのようなデータは、クライアントアプリケーションのアクティビティキーパによって、アクティビティ記憶装置内に、ユーザのあるグループに利用可能なユーザ特有の辞書または企業の従業員に利用可能な企業全体辞書の一部として、記憶されてもよい。
【0170】
動作1211において、入力モニタが、アクティビティ記憶装置内で識別された入力タイプのデータを見出す、または識別し得る場合、入力モニタは、動作1214において、データをリストに追加し得る。識別された入力タイプのそのようなデータは、同一または異なるユーザによって、ネットワークアプリケーション406-2に以前に入力されている場合がある。いくつかの実施形態では、識別された入力タイプのデータの検出に応答して、入力モニタは、動的または周期的に、アクティビティキーパと通信し、新しく見出されたまたは識別されたデータをリストのアイテムとしてアクティビティ記憶装置に記憶してもよい。したがって、アクティビティ記憶装置は、種々のユーザによって種々のネットワークアプリケーションに提供され得る、識別された入力タイプの種々のデータを記憶することができる。他方では、動作1211において、入力モニタが、ネットワークアプリケーション406-2に入力される識別された入力タイプのデータをアクティビティ記憶装置内で見出すことができない場合、入力モニタは、動作1215において、持続的に、アクティビティ記憶装置と通信し、付加的ネットワークアプリケーションがそのようなデータを有するかどうかをチェックし得る。
【0171】
識別された入力タイプのデータが見出されることができない、動作1211、または識別された入力タイプのデータが見出され得る、動作1214のいずれかに続いて、入力モニタは、動作1215において、アクティビティ記憶装置と通信し、付加的ネットワークアプリケーションがそのようなデータを有するかどうかをチェックし得る。該当する場合、方法1200は、動作1210および1211に戻り、入力モニタは、付加的ネットワークアプリケーションに以前に入力されている識別された入力タイプのデータが、アクティビティ記憶装置内に記憶されているかどうかを識別する。該当する場合、識別されたデータは、リストに追加され、アクティビティ記憶装置内に記憶されることができる。該当しない場合、方法1200は、次に、動作1216に進み、これは、以下のように議論されるものとする。
【0172】
入力モニタが、付加的ネットワークアプリケーションが識別された入力タイプのデータを有していないことを決定することに応答して、クライアントアプリケーションの入力プロバイダは、動作1216において、アクティビティ記憶装置に、リストをネットワークアプリケーション406-1に提供させ得る。リストは、1つ以上の他のネットワークアプリケーションから識別された入力タイプのデータを含むことができる。アクティビティ記憶装置が、リストをネットワークアプリケーションに提供することと同時に、またはそれに続いて、入力プロバイダは、リストをネットワークアプリケーション406-1のユーザに提示してもよい。いくつかの実施形態では、入力プロバイダは、リストを、それぞれ、識別された入力タイプのデータと関連付けられ得る、いくつかの選択可能アイテムを含む、コンテキストメニューとして提供してもよい。入力プロバイダは、クライアントデバイス402-1の内蔵ブラウザを通して、コンテキストメニューをネットワークアプリケーション406-1のユーザに提示してもよい。故に、ユーザは、1つ以上のアイテムをコンテキストメニューから選択することができる。
【0173】
ユーザが、動作1217において、アイテムをコンテキストメニューから選択しなかった場合、入力プロバイダは、入力モニタと通信し、入力アクティビティを監視し得る(動作1204)。他方では、ユーザが、少なくとも1つのアイテムをコンテキストメニューから選択した場合、入力プロバイダは、選択されたアイテムをネットワークアプリケーション406-1の入力要素内に挿入し、続いて、入力モニタと通信し、入力アクティビティを監視し得る(動作1204)。いくつかの実施形態では、入力プロバイダは、選択されたアイテムを入力要素の中に自動的に挿入してもよく、これは、時として、自動補完またはインテリセンスとも称される。
【0174】
上記に説明されるシステムは、それらのコンポーネントの任意またはそれぞれの複数のものを提供することができ、これらのコンポーネントは、独立型機械、またはいくつかの実施形態では、分散型システム内の複数の機械のいずれか上に提供されることができることを理解されたい。上記に説明されるシステムおよび方法は、プログラミングおよび/またはエンジニアリング技法を使用して、方法、装置、または製造品として実装され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成することができる。加えて、上記に説明されるシステムおよび方法は、1つ以上の製造品上または内に具現化される1つ以上のコンピュータ可読プログラムとして提供されることができる。用語「製造品」は、本明細書で使用されるように、1つ以上のコンピュータ可読デバイス、ファームウェア、プログラマブル論理、メモリデバイス(例えば、EEPROM、ROM、PROM、RAM、SRAM等)、ハードウェア(例えば、集積回路チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)、電子デバイス、コンピュータ可読不揮発性記憶ユニット(例えば、CD-ROM、USBフラッシュメモリ、ハードディスクドライブ等)からアクセス可能であって、その中に内蔵される、コードまたは論理を包含するように意図される。製造品は、ネットワーク伝送ライン、無線伝送メディア、空間を通して伝搬する信号、無線波、赤外線信号等を介して、コンピュータ可読プログラムへのアクセスを提供するファイルサーバからアクセス可能であることができる。製造品は、フラッシュメモリカードまたは磁気テープであることができる。製造品は、プロセッサによって実行されるコンピュータ可読媒体に内蔵される、ハードウェア論理およびソフトウェアまたはプログラマブルコードを含む。一般に、コンピュータ可読プログラムは、LISP、PERL、C、C++、C#、PROLOG等の任意のプログラミング言語で、またはJAVA(登録商標)等の任意のバイトコード言語で実装されることができる。ソフトウェアプログラムは、オブジェクトコードとして、1つ以上の製造品上または内に記憶されることができる。
【0175】
本方法およびシステムの種々の実施形態が、説明されているが、これらの実施形態は、例証的であって、説明される方法またはシステムの範囲をいかようにも限定するものではない。当業者は、説明される方法およびシステムの最も広い範囲から逸脱することなく、説明される方法およびシステムの形態および詳細の変化をもたらすことができる。したがって、本明細書に説明される方法およびシステムの範囲は、例証的実施形態のいずれかによって限定されるべきではなく、付随の請求項およびその均等物に従って定義されるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【手続補正書】
【提出日】2021-07-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するための方法であって、前記方法は、
(a)クライアントアプリケーションによって、前記クライアントアプリケーション内の内蔵ブラウザを介して、複数のネットワークアプリケーションとのユーザのための複数のセッションを確立することであって、前記複数のネットワークアプリケーションは、複数のデータコンテナの対応するデータコンテナ内にデータを記憶し、前記データコンテナは、対応するネットワークアプリケーションに対するアクセスを制限する、ことと、
(b)前記クライアントアプリケーションによって、前記複数のネットワークアプリケーションを横断した前記ユーザの入力アクティビティを前記データコンテナとは別個のデータ記憶装置に記憶することと、
(c)前記クライアントアプリケーションによって、前記複数のネットワークアプリケーションの第1のネットワークアプリケーションの入力要素上における入力焦点を検出することであって、前記入力要素は、入力されるべきデータのタイプを有する、ことと、
(d)前記クライアントアプリケーションによって、前記データ記憶装置内に記憶される前記複数のネットワークアプリケーションの第2のネットワークアプリケーション内で使用されるデータの1つ以上の入力のタイプを識別することであって、前記第2のネットワークアプリケーションは、前記複数のネットワークアプリケーションの前記第1のネットワークアプリケーションとは異なり、前記第1のネットワークアプリケーションのデータは、第1のデータコンテナ内に記憶され、前記第2のネットワークアプリケーションのデータは、第2のデータコンテナ内に記憶される、ことと、
(e)前記クライアントアプリケーションによって、前記第2のネットワークアプリケーションからの前記1つ以上の入力を前記第1のネットワークアプリケーションの入力要素のための選択可能入力として提供することと
を含む、方法。
【請求項2】
前記データ記憶装置は、前記クライアントアプリケーションのクライアントデバイスまたは1つ以上のサーバのうちの1つ上にある、請求項1に記載の方法。
【請求項3】
(b)はさらに、前記複数のネットワークアプリケーションを横断した前記ユーザの入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置に記憶することを含む、請求項1に記載の方法。
【請求項4】
(b)はさらに、前記入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置内のユーザ特有の辞書に記憶することを含み、前記クライアントアプリケーションは、前記ユーザによって使用される前記複数のネットワークアプリケーションを横断した入力補完のために、前記ユーザ特有の辞書を使用する、請求項1に記載の方法。
【請求項5】
(b)はさらに、前記複数のユーザのクライアントアプリケーションによってアクセスされる前記複数のネットワークアプリケーションを横断したエンティティの複数のユーザの入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置内の企業辞書に記憶することを含み、前記クライアントアプリケーションは、前記ユーザによって使用される前記複数のネットワークアプリケーションを横断した入力補完のために、前記企業辞書を使用する、請求項1に記載の方法。
【請求項6】
(c)はさらに、前記内蔵ブラウザによって、前記入力要素内の所定のタグを検出することを含み、前記内蔵ブラウザは、前記所定のタグに応答して、入力補完をトリガするように構成される、請求項1に記載の方法。
【請求項7】
(d)はさらに別のセキュアネットワークアプリケーションから別のユーザによって入力されるデータの1つ以上の入力のタイプを識別することを含む、請求項1に記載の方法。
【請求項8】
ユーザ類似性ベースの予測分析を使用して、前記別のユーザまたは前記1つ以上の入力のうちの1つを決定することをさらに含む、請求項7に記載の方法。
【請求項9】
(e)はさらに、前記選択可能な1つ以上の入力を提供するためのコンテキストメニューを提示することを含む、請求項1に記載の方法。
【請求項10】
前記選択可能な1つ以上の入力のうちの選択された1つを使用して、前記入力要素への入力を自動的に補完することをさらに含む、請求項1に記載の方法。
【請求項11】
他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するためのシステムであって、前記システムは、
クライアントアプリケーションであって、前記クライアントアプリケーションは、1つ以上のプロセッサ上で実行可能であり、前記クライアントアプリケーション内の内蔵ブラウザを介して、複数のネットワークアプリケーションとのユーザのための複数のセッションを確立するように構成され、前記複数のネットワークアプリケーションは、複数のデータコンテナの対応するデータコンテナ内にデータを記憶し、前記データコンテナは、対応するネットワークアプリケーションに対するアクセスを制限する、クライアントアプリケーションと、
データ記憶装置であって、前記データ記憶装置は、前記データコンテナとは別個の前記クライアントアプリケーションによって記憶される前記複数のネットワークアプリケーションを横断した前記ユーザの入力アクティビティを記憶するように構成される、データ記憶装置と
を備え、
前記クライアントアプリケーションは、前記複数のネットワークアプリケーションの第1のネットワークアプリケーションの入力要素上における入力焦点を検出するように構成されており、前記入力要素は、入力されるべきデータのタイプを有しており、
前記クライアントアプリケーションは、前記データ記憶装置内に記憶される前記複数のネットワークアプリケーションの第2のネットワークアプリケーション内で使用されるデータの1つ以上の入力のタイプを識別することであって、前記第2のネットワークアプリケーションは、前記複数のネットワークアプリケーションの前記第1のネットワークアプリケーションとは異なり、前記第1のネットワークアプリケーションのデータは、第1のデータコンテナ内に記憶され、前記第2のネットワークアプリケーションのデータは、第2のデータコンテナ内に記憶される、ことと、
前記第2のネットワークアプリケーションからの1つ以上の入力を前記第1のネットワークアプリケーションの入力要素のための選択可能入力として提供することと
を行うように構成される、システム。
【請求項12】
前記データ記憶装置は、前記クライアントアプリケーションのクライアントデバイスまたは1つ以上のサーバのうちの1つ上にある、請求項11に記載のシステム。
【請求項13】
前記クライアントアプリケーションはさらに、前記複数のネットワークアプリケーションを横断した前記ユーザの入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置に記憶するように構成される、請求項11に記載のシステム。
【請求項14】
前記クライアントアプリケーションはさらに、前記入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置内のユーザ特有の辞書に記憶するように構成され、前記クライアントアプリケーションはさらに、前記ユーザによって使用される前記複数のネットワークアプリケーションを横断した入力補完のために、前記ユーザ特有の辞書を使用するように構成される、請求項11に記載のシステム。
【請求項15】
前記クライアントアプリケーションはさらに、前記複数のユーザのクライアントアプリケーションによってアクセスされる前記複数のネットワークアプリケーションを横断したエンティティの複数のユーザの入力アクティビティにおいて入力として使用されたデータを前記データ記憶装置内の企業辞書に記憶するように構成され、前記クライアントアプリケーションはさらに、前記ユーザによって使用される前記複数のネットワークアプリケーションを横断した入力補完のために、前記企業辞書を使用するように構成される、請求項11に記載のシステム。
【請求項16】
前記内蔵ブラウザはさらに、前記入力要素内の所定のタグを検出するように構成され、前記内蔵ブラウザはさらに、前記所定のタグに応答して、入力補完をトリガするように構成される、請求項11に記載のシステム。
【請求項17】
前記クライアントアプリケーションはさらに、前記別のネットワークアプリケーションから別のユーザによって入力されるデータの1つ以上の入力のタイプを識別するように構成される、請求項11に記載のシステム。
【請求項18】
ユーザ類似性ベースの予測分析が、前記別のユーザまたは前記1つ以上の入力のうちの1つを決定するために適用される、請求項17に記載のシステム。
【請求項19】
前記内蔵ブラウザはさらに、前記選択可能な1つ以上の入力を提供するためのコンテキストメニューを提示するように構成される、請求項11に記載のシステム。
【請求項20】
前記クライアントアプリケーションはさらに、前記選択可能な1つ以上の入力のうちの選択された1つを使用して、前記入力要素への入力を補完するように構成される、請求項11に記載のシステム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正の内容】
【0025】
いくつかの実施形態では、クライアントアプリケーションはさらに、選択可能な1つ以上の入力のうちの選択された1つを使用して、入力要素への入力を補完することができる。
本発明は、例えば、以下を提供する。
(項目1)
他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するための方法であって、上記方法は、
(a)クライアントアプリケーションによって、上記クライアントアプリケーション内の内蔵ブラウザを介して、複数のネットワークアプリケーションとのユーザのための複数のセッションを確立することと、
(b)上記クライアントアプリケーションによって、上記複数のネットワークアプリケーションを横断した上記ユーザの入力アクティビティをデータ記憶装置に記憶することと、
(c)上記クライアントアプリケーションによって、上記複数のネットワークアプリケーションのうちのネットワークアプリケーションの入力要素上における入力焦点を検出することであって、上記入力要素は、入力されるべきデータのタイプを有する、ことと、
(d)上記クライアントアプリケーションによって、上記データ記憶装置内に記憶される上記複数のネットワークアプリケーションの別のネットワークアプリケーション内で使用されるデータの1つ以上の入力のタイプを識別することと、
(e)上記クライアントアプリケーションによって、別のネットワークアプリケーションからの上記1つ以上の入力を上記ネットワークアプリケーションの入力要素のための選択可能入力として提供することと
を含む、方法。
(項目2)
上記データ記憶装置は、上記クライアントアプリケーションのクライアントデバイスまたは1つ以上のサーバのうちの1つ上にある、項目1に記載の方法。
(項目3)
(b)はさらに、上記複数のネットワークアプリケーションを横断した上記ユーザの入力アクティビティにおいて入力として使用されたデータを上記データ記憶装置に記憶することを含む、項目1に記載の方法。
(項目4)
(b)はさらに、上記入力アクティビティにおいて入力として使用されたデータを上記データ記憶装置内のユーザ特有の辞書に記憶することを含み、上記クライアントアプリケーションは、上記ユーザによって使用される上記複数のネットワークアプリケーションを横断した入力補完のために、上記ユーザ特有の辞書を使用する、項目1に記載の方法。
(項目5)
(b)はさらに、上記複数のユーザのクライアントアプリケーションによってアクセスされる上記複数のネットワークアプリケーションを横断したエンティティの複数のユーザの入力アクティビティにおいて入力として使用されたデータを上記データ記憶装置内の企業辞書に記憶することを含み、上記クライアントアプリケーションは、上記ユーザによって使用される上記複数のネットワークアプリケーションを横断した入力補完のために、上記企業辞書を使用する、項目1に記載の方法。
(項目6)
(c)はさらに、上記内蔵ブラウザによって、上記入力要素内の所定のタグを検出することを含み、上記内蔵ブラウザは、上記所定のタグに応答して、入力補完をトリガするように構成される、項目1に記載の方法。
(項目7)
(d)はさらに、上記別のネットワークアプリケーションから別のユーザによって入力されるデータの1つ以上の入力のタイプを識別することを含む、項目1に記載の方法。
(項目8)
ユーザ類似性ベースの予測分析を使用して、上記別のユーザまたは上記1つ以上の入力のうちの1つを決定することをさらに含む、項目7に記載の方法。
(項目9)
(e)はさらに、上記選択可能な1つ以上の入力を提供するためのコンテキストメニューを提示することを含む、項目1に記載の方法。
(項目10)
上記選択可能な1つ以上の入力のうちの選択された1つを使用して、上記入力要素への入力を自動的に補完することをさらに含む、項目1に記載の方法。
(項目11)
他のネットワークアプリケーションからのデータに基づいて、ネットワークアプリケーションのためのコンテキストを意識した入力を提供するためのシステムであって、上記システムは、
クライアントアプリケーションであって、上記クライアントアプリケーションは、1つ以上のプロセッサ上で実行可能であり、上記クライアントアプリケーション内の内蔵ブラウザを介して、複数のネットワークアプリケーションとのユーザのための複数のセッションを確立するように構成される、クライアントアプリケーションと、
データ記憶装置であって、上記データ記憶装置は、上記クライアントアプリケーションによって記憶される上記複数のネットワークアプリケーションを横断した上記ユーザの入力アクティビティを記憶するように構成される、データ記憶装置と
を備え、
上記クライアントアプリケーションは、上記複数のネットワークアプリケーションのうちのネットワークアプリケーションの入力要素上における入力焦点を検出するように構成されており、上記入力要素は、入力されるべきデータのタイプを有しており、
上記クライアントアプリケーションは、上記データ記憶装置内に記憶される上記複数のネットワークアプリケーションの別のネットワークアプリケーション内で使用されるデータの1つ以上の入力のタイプを識別することと、
別のネットワークアプリケーションからの1つ以上の入力を上記1つのネットワークアプリケーションの入力要素のための選択可能入力として提供することと
を行うように構成される、システム。
(項目12)
上記データ記憶装置は、上記クライアントアプリケーションのクライアントデバイスまたは1つ以上のサーバのうちの1つ上にある、項目11に記載のシステム。
(項目13)
上記クライアントアプリケーションはさらに、上記複数のネットワークアプリケーションを横断した上記ユーザの入力アクティビティにおいて入力として使用されたデータを上記データ記憶装置に記憶するように構成される、項目11に記載のシステム。
(項目14)
上記クライアントアプリケーションはさらに、上記入力アクティビティにおいて入力として使用されたデータを上記データ記憶装置内のユーザ特有の辞書に記憶するように構成され、上記クライアントアプリケーションはさらに、上記ユーザによって使用される上記複数のネットワークアプリケーションを横断した入力補完のために、上記ユーザ特有の辞書を使用するように構成される、項目11に記載のシステム。
(項目15)
上記クライアントアプリケーションはさらに、上記複数のユーザのクライアントアプリケーションによってアクセスされる上記複数のネットワークアプリケーションを横断したエンティティの複数のユーザの入力アクティビティにおいて入力として使用されたデータを上記データ記憶装置内の企業辞書に記憶するように構成され、上記クライアントアプリケーションはさらに、上記ユーザによって使用される上記複数のネットワークアプリケーションを横断した入力補完のために、上記企業辞書を使用するように構成される、項目11に記載のシステム。
(項目16)
上記内蔵ブラウザはさらに、上記入力要素内の所定のタグを検出するように構成され、上記内蔵ブラウザはさらに、上記所定のタグに応答して、入力補完をトリガするように構成される、項目11に記載のシステム。
(項目17)
上記クライアントアプリケーションはさらに、上記別のネットワークアプリケーションから別のユーザによって入力されるデータの1つ以上の入力のタイプを識別するように構成される、項目11に記載のシステム。
(項目18)
ユーザ類似性ベースの予測分析が、上記別のユーザまたは上記1つ以上の入力のうちの1つを決定するために適用される、項目17に記載のシステム。
(項目19)
上記内蔵ブラウザはさらに、上記選択可能な1つ以上の入力を提供するためのコンテキストメニューを提示するように構成される、項目11に記載のシステム。
(項目20)
上記クライアントアプリケーションはさらに、上記選択可能な1つ以上の入力のうちの選択された1つを使用して、上記入力要素への入力を補完するように構成される、項目11に記載のシステム。
【国際調査報告】