(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】2021501381
(43)【公表日】20210114
(54)【発明の名称】組み込みブラウザを介してSAASアプリケーション呼び出しを傍受し、かつ強化するシステムおよび方法
(51)【国際特許分類】
   G06F 21/55 20130101AFI20201211BHJP
   G06F 15/00 20060101ALI20201211BHJP
   G06F 21/62 20130101ALI20201211BHJP
【FI】
   !G06F21/55
   !G06F15/00 440Z
   !G06F21/62 390
【審査請求】有
【予備審査請求】未請求
【全頁数】64
(21)【出願番号】2019570019
(86)(22)【出願日】20190919
(85)【翻訳文提出日】20200213
(86)【国際出願番号】US2019051893
(87)【国際公開番号】WO2020061288
(87)【国際公開日】20200326
(31)【優先権主張番号】16/138,076
(32)【優先日】20180921
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
(71)【出願人】
【識別番号】397074301
【氏名又は名称】サイトリックス システムズ,インコーポレイテッド
【住所又は居所】アメリカ合衆国 フロリダ 33309,フォート ローダーデール, ウエスト サイプレス クリーク ロード 851
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】ボーカー, ビピン
【住所又は居所】アメリカ合衆国 カリフォルニア 95054, サンタ クララ, グレート アメリカ パークウェイ 4988, サイトリックス システムズ, インコーポレイテッド 気付
(72)【発明者】
【氏名】サンパス, サントシュ
【住所又は居所】アメリカ合衆国 カリフォルニア 95054, サンタ クララ, グレート アメリカ パークウェイ 4988, サイトリックス システムズ, インコーポレイテッド 気付
(72)【発明者】
【氏名】シャルマ, ディーパック
【住所又は居所】アメリカ合衆国 カリフォルニア 95054, サンタ クララ, グレート アメリカ パークウェイ 4988, サイトリックス システムズ, インコーポレイテッド 気付
(72)【発明者】
【氏名】サンカラスブラマニアン, アルビンド
【住所又は居所】アメリカ合衆国 カリフォルニア 95054, サンタ クララ, グレート アメリカ パークウェイ 4988, サイトリックス システムズ, インコーポレイテッド 気付
(57)【要約】
説明された実施形態は、クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出すシステムおよび方法を含む。方法は、クライアントアプリケーションによって、クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することを含む。クライアントアプリケーションは、ネットワークアプリケーションによって呼び出された第1のAPIを傍受し、クライアントアプリケーションの複数のAPIを使用するためのポリシーを識別することができる。クライアントアプリケーションは、傍受された第1のAPIについて使用するために第2のAPIを決定し、当該第1のAPI呼び出しについて第2のAPIを実行することができる。
【特許請求の範囲】
【請求項1】
クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのために該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法であって、該方法は、
(a)クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされる1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することであって、該クライアントアプリケーションは、複数のアプリケーションプログラムインターフェース(API)を提供する、ことと、
(b)該クライアントアプリケーションによって、該1つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第1のアプリケーションプログラミングインターフェース(API)を傍受することと、
(c)該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のAPIを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
(d)少なくとも該ポリシーに基づいて、傍受された該第1のAPIについて使用するために該クライアントアプリケーションの該複数のAPIのうちの第2のAPIを該クライアントアプリケーションによって決定することと、
(e)傍受された該第1のAPI呼び出しについて、該クライアントアプリケーションの該複数のAPIのうちの該第2のAPIを該クライアントアプリケーションによって実行することと
を含む、方法。
【請求項2】
前記組み込みブラウザは、前記クライアントアプリケーションに統合されている、請求項1に記載の方法。
【請求項3】
前記1つ以上のネットワークアプリケーションは、ネットワークを介して前記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、請求項1に記載の方法。
【請求項4】
(b)は、前記クライアントアプリケーションによって、該クライアントアプリケーションの前記ブラウザにおいて前記ネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語APIを備えている前記第1のAPIを傍受することをさらに含む、請求項1に記載の方法。
【請求項5】
(c)は、前記ネットワークアプリケーション、前記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別することをさらに含む、請求項1に記載の方法。
【請求項6】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項1に記載の方法。
【請求項7】
(e)は、前記組み込みブラウザによって、前記クライアントアプリケーション内において前記第2のAPIを実行することをさらに含む、請求項1に記載の方法。
【請求項8】
前記クライアントアプリケーションの前記第2のAPIは、前記ネットワークアプリケーションの前記第1のAPIを介して利用可能でない機能性を提供する、請求項1に記載の方法。
【請求項9】
クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのために該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出すシステムであって、該システムは、
クライアントデバイス上において実行可能なクライアントアプリケーションを備え、該クライアントアプリケーションは、組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス(API)を提供し、該クライアントアプリケーションは、
該クライアントアプリケーションの該組み込みブラウザを介してアクセスされる1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することと、
該1つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第1のアプリケーションプログラミングインターフェース(API)を傍受することと、
該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のAPIを使用するためのポリシーを識別することと、
少なくとも該ポリシーに基づいて、傍受された該第1のAPIについて使用するための該クライアントアプリケーションの該複数のAPIのうちの第2のAPIを決定することと、
傍受された該第1のAPI呼び出しについて、該クライアントアプリケーションの該複数のAPIのうちの該第2のAPIを実行することと
を行うように構成されている、システム。
【請求項10】
前記組み込みブラウザは、前記クライアントアプリケーションに統合されている、請求項9に記載のシステム。
【請求項11】
前記1つ以上のネットワークアプリケーションは、ネットワークを介して前記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、請求項9に記載のシステム。
【請求項12】
前記クライアントアプリケーションは、該クライアントアプリケーションの前記ブラウザにおいて前記1つ以上のネットワークアプリケーションのうちの少なくとも1つのネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語APIを備えている前記第1のAPIを傍受するようにさらに構成されている、請求項9に記載のシステム。
【請求項13】
前記クライアントアプリケーションは、前記1つ以上のネットワークアプリケーションのうちの少なくとも1つのネットワークアプリケーション、前記クライアントデバイス、または該少なくとも1つのネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別するようにさらに構成されている、請求項9に記載のシステム。
【請求項14】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項9に記載のシステム。
【請求項15】
前記クライアントアプリケーションは、前記組み込みブラウザによって、該クライアントアプリケーション内において前記第2のAPIを実行するようにさらに構成されている、請求項9に記載のシステム。
【請求項16】
前記クライアントアプリケーションの前記第2のAPIは、前記ネットワークアプリケーションの前記第1のAPIを介して利用可能でない機能性を提供する、請求項9に記載のシステム。
【請求項17】
クライアントアプリケーションの組み込みブラウザにおいてネットワークアプリケーションを介して該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法であって、該方法は、
(a)クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することであって、該クライアントアプリケーションは、該組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス(API)を提供する、ことと、
(b)該組み込みブラウザによって、該ネットワークアプリケーションのウェブページを受け取ることであって、該ウェブページは、該クライアントアプリケーションの該複数のAPIのうちのAPIを備えている、ことと、
(c)該ネットワークアプリケーションのために、該クライアントアプリケーションの該APIを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
(d)該ポリシーに基づいて、該クライアントアプリケーションの該APIを実行するためのアクセスを該ネットワークアプリケーションが有していることを該クライアントアプリケーションによって決定することと、
(e)該クライアントアプリケーションによって、該ネットワークアプリケーションの該ウェブページのために該クライアントアプリケーションの該APIを実行することと
を含む、方法。
【請求項18】
(b)は、前記ウェブページによって呼び出されている前記APIが前記クライアントアプリケーションの前記APIであることを前記組み込みブラウザによって決定することをさらに含む、請求項17に記載の方法。
【請求項19】
(c)は、前記ネットワークアプリケーション、前記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別することをさらに含む、請求項17に記載の方法。
【請求項20】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項17に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の参照)
本出願は、「SYSTEMS AND METHODS FOR INTERCEPTING AND ENHANCING SAAS APPLICATION CALLS VIA EMBEDDED BROWSER」という名称であり、2018年9月21日に出願された米国特許出願第16/138,076号に対する利益および優先権を主張する。前述の特許出願の全内容が、全ての目的のために本明細書において参照によって援用される。
【0002】
(開示の分野)
本出願は、概して、アプリケーションの管理に関し、アプリケーションの管理は、ウェブおよびサービスとしてのソフトウェア(software−as−a−service;SaaS)アプリケーションを管理および監視するために組み込みブラウザを使用するシステムおよび方法を含むが、それらに限定されない。
【背景技術】
【0003】
(背景)
企業の従業員がより移動性を増し様々な条件のもとで働く場合、個人は、ウェブアプリケーションなどのネットワークリソースにアクセスするために、パーソナルデバイスを含む1つ以上のクライアントデバイスを使用することができる。クライアントデバイスとネットワークリソースがアクセスされることのできる様式との間における違いに起因して、ネットワークリソースへのアクセスを管理すること、およびリソースの潜在的な悪用を監視することにおいて、企業にとって重大な課題が存在している。
【発明の概要】
【課題を解決するための手段】
【0004】
(概要)
本開示は、組み込みブラウザを通してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース(API)を呼び出すことを対象とする。クライアントアプリケーションは、クライアントデバイス上において実行可能であることができ、クライアントアプリケーションの組み込みブラウザを通してクライアントデバイスのために1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することができる。クライアントアプリケーションは、ネットワークアプリケーションによるAPIへの呼び出しを傍受することができ、呼び出されるAPIを強化するか、または、ネットワークアプリケーションによって呼び出されたAPIと比較してより高い機能性を有する異なるAPIを提供することができる。異なるAPIは、元々呼び出されたAPIが含んでいなかった機能性(セキュリティ特徴および/またはアクセス制御などであるがそれらに限定されない)を含むことができる。例えば、セッションの間、ネットワークアプリケーション(例えば、ウェブアプリケーション、サービスとしてのソフトウェア(software−as−a−service;SaaS)アプリケーション)は、クライアントアプリケーションの組み込みブラウザを介してAPIを呼び出すことができる。APIは、印刷APIを含み得る。クライアントアプリケーションは、印刷APIの機能性を向上させるために、呼び出された印刷APIを強化または最適化することができる。例えば、クライアントアプリケーションは、典型的なブラウザ印刷フローを実施する代わりに印刷APIが直接印刷するように、印刷APIを修正することができる。クライアントアプリケーションは、直接印刷するように構成された第2の異なる印刷APIを提供し得る。
【0005】
クライアントアプリケーションは、(クライアントデバイスと連結されたUSBデバイス、生体認証などであるがそれらに限定されない)クライアントリソース、クライアントドライブ、および/もしくはクライアントデバイスにアクセスするために、ならびに/またはクライアントデバイスにローカルまたはネイティブであるアプリケーションと通信するためにネットワークアプリケーションが呼び出すAPIを提供し得る。いくつかの実施形態において、特定のネットワークアプリケーションがそれぞれの1つ以上のポリシーをサポートしないとしても、クライアントアプリケーションは、ある特定の制限を実行するためにクライアントデバイスとネットワークアプリケーションとの間におけるセッション上において1つ以上のポリシーを適用することができる。例えば、1つの実施形態において、ネットワークアプリケーションがスマートカード認証をサポートしないとしても、クライアントアプリケーションは、ネットワークアプリケーションについてスマートカード認証を実行するためにポリシーを適用することができる。
【0006】
クライアントアプリケーションは、クライアントデバイスおよび/または周辺デバイスなどであるがそれらに限定されない、ネイティブエンドポイントアプリケーションとの統合を構築するためにネットワークアプリケーションによって作成された呼び出しを傍受することができる。クライアントアプリケーションは、データ損失防止のためのポリシーを実行すること、および/またはネットワークアプリケーションのある特定の部分へのアクセスを制限することができる。クライアントアプリケーションは、ネットワークアプリケーションがどのようにローディングおよび/またはレンダリングするかを制御することによって、ネットワークアプリケーションパフォーマンスを最適化することができ、ネットワークアプリケーション使用にわたってよりきめ細かいアクセス制御を提供することができる。
【0007】
1つの様態において、本開示は、クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法を対象とする。方法は、クライアントデバイス上におけるクライアントアプリケーションによって、クライアントアプリケーションの組み込みブラウザを介してアクセスされる1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することを含む。複数のアプリケーションプログラムインターフェース(API)を提供するクライアントアプリケーション。方法は、クライアントアプリケーションによって、1つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第1のアプリケーションプログラミングインターフェース(API)を傍受することと、ネットワークアプリケーションのために、クライアントアプリケーションの複数のAPIを使用するためのポリシーをクライアントアプリケーションによって識別することとをさらに含む。方法は、少なくともポリシーに基づいて、傍受された該第1のAPIについて使用するためにクライアントアプリケーションの複数のAPIのうちの第2のAPIをクライアントアプリケーションによって決定することと、傍受された第1のAPI呼び出しについて、クライアントアプリケーションの複数のAPIのうちの第2のAPIをクライアントアプリケーションによって実行することとをさらに含む。
【0008】
組み込みブラウザは、クライアントアプリケーションに統合されることができる。1つ以上のネットワークアプリケーションは、ネットワークを介してクライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを含むことができる。方法は、クライアントアプリケーションによって、クライアントアプリケーションのブラウザにおいてネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語APIを備えている第1のAPIを傍受することを含むことができる。方法は、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを識別することをさらに含むことができる。ポリシーは、クライアントアプリケーションによって、ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られることができる。
【0009】
方法は、組み込みブラウザによってクライアントアプリケーション内において第2のAPIを実行することを含むことができる。クライアントアプリケーションの第2のAPIは、ネットワークアプリケーションの第1のAPIを介して利用可能でない機能性を提供する。
【0010】
別の様態において、本開示は、クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出すシステムを対象とする。システムは、クライアントデバイス上において実行可能なクライアントアプリケーションを含む。組み込みブラウザを介してクライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス(API)を提供するクライアントアプリケーション。クライアントアプリケーションは、クライアントアプリケーションの組み込みブラウザを介してアクセスされる1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することと、1つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第1のアプリケーションプログラミングインターフェース(API)を傍受することとを行うように構成されることができる。クライアントアプリケーションは、ネットワークアプリケーションのために、クライアントアプリケーションの複数のAPIを使用するためのポリシーを識別することと、少なくともポリシーに基づいて、傍受された第1のAPIについて使用するためのクライアントアプリケーションの複数のAPIのうちの第2のAPIを決定することと、傍受された第1のAPI呼び出しについて、クライアントアプリケーションの複数のAPIのうちの第2のAPIを実行することとを行うようにさらに構成されることができる。
【0011】
クライアントアプリケーションは、クライアントアプリケーションのブラウザにおいて1つ以上のネットワークアプリケーションのうちの少なくとも1つのネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語APIを備えている第1のAPIを傍受するようにさらに構成されることができる。クライアントアプリケーションは、1つ以上のネットワークアプリケーションのうちの少なくとも1つのネットワークアプリケーション、クライアントデバイス、または少なくとも1つのネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを識別するようにさらに構成されることができる。クライアントアプリケーションは、組み込みブラウザによって、クライアントアプリケーション内において第2のAPIを実行するようにさらに構成されることができる。クライアントアプリケーションの第2のAPIは、ネットワークアプリケーションの第1のAPIを介して利用可能でない機能性を提供する。
【0012】
別の様態において、本開示は、クライアントアプリケーションの組み込みブラウザにおいてネットワークアプリケーションを介してクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法を対象とする。方法は、クライアントデバイス上におけるクライアントアプリケーションによって、クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することを含む。組み込みブラウザを介してクライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス(API)を提供するクライアントアプリケーション。方法は、組み込みブラウザによって、ネットワークアプリケーションのウェブページを受け取ることをさらに含む。クライアントアプリケーションの複数のAPIのうちのAPIを含むウェブページ。方法は、ネットワークアプリケーションのために、クライアントアプリケーションのAPIを使用するためのポリシーをクライアントアプリケーションによって識別することと、ポリシーに基づいて、クライアントアプリケーションのAPIを実行するためのアクセスをネットワークアプリケーションが有していることをクライアントアプリケーションによって決定することとをさらに含む。方法は、クライアントアプリケーションによって、ネットワークアプリケーションのウェブページのためにクライアントアプリケーションのAPIを実行することをさらに含む。
【0013】
方法は、ウェブページによって呼び出されているAPIがクライアントアプリケーションのAPIであることを組み込みブラウザによって決定することを含むことができる。方法は、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを識別することを含むことができる。
【0014】
前述の事項、ならびに本解決手段の他の目的、様態、特徴および利点は、添付の図面とともに以下の記載を参照することによってより明らかになり、より理解されるであろう。添付の図面は、以下の通りである。
【図面の簡単な説明】
【0015】
【図1】図1は、コンピューティングデバイスの実施形態のブロック図である。
【図2】図2は、リソースにアクセスすることにおける使用のためのクラウドサービスの例示的な実施形態のブロック図である。
【図3】図3は、企業移動性管理システムの例示的実施形態のブロック図である。
【図4】図4は、組み込みブラウザのシステム400のブロック図である。
【図5】図5は、安全なブラウザを使用するシステムの例示的実施形態のブロック図である。
【図6】図6は、安全なブラウザプラグインを使用するブラウザリダイレクトについての実装の例示的表現である。
【図7】図7は、安全なブラウザを使用するシステムの例示的実施形態のブロック図である。
【図8】図8は、1つ以上のローカル組み込みブラウザと1つ以上のホストされ安全化されたブラウザとを使用するシステムの例示的実施形態のブロック図である。
【図9】図9は、1つ以上のローカル組み込みブラウザと1つ以上のホストされ安全化されたブラウザとを使用するための例示的過程フローである。
【図10】図10は、ウェブページへのユーザーアクセスを管理するシステムの例示的実施形態である。
【図11】図11は、組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース(API)を呼び出すシステムの例示的実施形態のブロック図である。
【図12】図12は、クライアントデバイスのためにAPIを提供するクライアントアプリケーション内における組み込みブラウザのブロック図の例示的実施形態である。
【図13】図13は、組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法の例示的実施形態のフロー図である。
【図14】図14は、クライアントアプリケーションの組み込みブラウザにおいてネットワークアプリケーションを介してクライアントアプリケーションのAPIを呼び出す方法の例示的実施形態のフロー図である。
【発明を実施するための形態】
【0016】
本解決手段の特徴および利点は、図面とともに参照した場合、下記の詳細な説明からより明らかになるであろう。詳細な説明全体を通して、同じ参照符号は、対応する要素を特定する。図面において、同じ参照番号は、概して、同一の、機能的に類似した、および/または構造上類似した要素を示す。
【0017】
(詳細な説明)
下記の様々な実施形態の説明を読解する目的のために、以下の明細書の節およびそれぞれの内容の説明が役立ち得る。
【0018】
第A節は、本明細書において説明される実施形態を実施するために有用であり得るコンピューティング環境を説明する。
【0019】
第B節は、組み込みブラウザについてのシステムおよび方法を説明する。
【0020】
第C節は、組み込みブラウザを通してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース(API)を呼び出すシステムおよび方法を説明する。
【0021】
A.コンピューティング環境
本明細書において第B節で詳細に述べられるシステムおよび方法の実施形態の詳細を論じる前に、そのような実施形態がデプロイされ得るコンピューティング環境を論じることが、役立ち得る。
【0022】
図1に示されるように、コンピューター101は、1つ以上のプロセッサ103と、揮発性メモリ122(例えば、ランダムアクセスメモリ(RAM))と、不揮発性メモリ128(例えば、1つ以上のハードディスクドライブ(HDD)または他の磁気もしくは光学記憶媒体、フラッシュドライブもしくは他のソリッドステート記憶媒体などの1つ以上のソリッドステートドライブ(SSD)、1つ以上のハイブリッド磁気ソリッドステートドライブ、および/またはクラウドストレージなどの1つ以上の仮想ストレージボリューム、またはそのような物理ストレージボリュームおよび仮想ストレージボリュームの組み合わせ、またはそれらのアレイ)と、ユーザーインターフェース(UI)123と、1つ以上の通信インターフェース118と、通信バス150とを含み得る。ユーザーインターフェース123は、グラフィカルユーザーインターフェース(GUI)124(例えば、タッチスクリーン、ディスプレイなど)と、1つ以上の入力/出力(input/output;I/O)デバイス126(例えば、マウス、キーボード、マイク、1つ以上のスピーカー、1つ以上のカメラ、1つ以上の生体スキャナー、1つ以上の環境センサー、1つ以上の加速度計など)とを含み得る。不揮発性メモリ128は、例えばオペレーティングシステム115のコンピューター命令および/またはアプリケーション116が揮発性メモリ122から1つ以上のプロセッサ103によって実行されるように、オペレーティングシステム115と、1つ以上のアプリケーション116と、データ117とを格納する。いくつかの実施形態において、揮発性メモリ122は、メインメモリよりも速い応答時間を提供し得る1つ以上の種類のRAMおよび/またはキャッシュメモリを含み得る。データは、GUI124の入力デバイスを使用することによって入れられ得るか、または1つ以上のI/Oデバイス126から受け取られ得る。コンピューター101の様々な要素が、通信バス150として示される、1つ以上の通信バスを介して通信し得る。
【0023】
図1に示されるようなコンピューター101は、例として(クライアント、サーバー、中間体、および他のネットワークデバイスとして)示されているに過ぎず、任意のコンピューティング環境または処理環境によって実装され得、本明細書において説明されるように作動することが可能な適したハードウェアおよび/またはソフトウェアを有し得る任意の種類の機械または機械一式とともに実装され得る。1つ以上のプロセッサ103は、システムの機能を実施するために、コンピュータープログラムなどの1つ以上の実行可能な命令を実行するように1つ以上のプログラミング可能なプロセッサによって実装され得る。本明細書において、「プロセッサ」という用語は、機能、オペレーション、または一連のオペレーションを実施する回路を指す。機能、オペレーション、または一連のオペレーションは、回路の中へハードコード化され得るか、またはメモリデバイスにおいて保持され回路によって実行される命令としてソフトコード化され得る。「プロセッサ」は、デジタル値を使用して、および/またはアナログ信号を使用して、機能、オペレーション、または一連のオペレーションを実施し得る。いくつかの実施形態において、「プロセッサ」は、1つ以上の特定用途向け集積回路(application specific integrated circuits;ASICs)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、グラフィックスプロセッシングユニット(GPU)、マイクロコントローラー、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)、マルチコアプロセッサ、または関連づけられたメモリを有する汎用コンピューターに組み込まれることができる。「プロセッサ」は、アナログ、デジタル、または混合信号であり得る。いくつかの実施形態において、「プロセッサ」は、1つ以上の物理プロセッサまたは1つ以上の「仮想」(例えば、リモートに場所決定されているか、もしくは「クラウド」)プロセッサであり得る。複数のプロセッサコアを含むプロセッサおよび/または複数のプロセッサ複数のプロセッサは、1つ以上のデータ上において1つの命令を並列かつ同時に実行することについて、または複数の命令を並列かつ同時に実行することについて、機能性を提供し得る。
【0024】
通信インターフェース118は、コンピューター101がローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、または様々な有線および/もしくは無線またはセルラー接続を通したインターネットなどのコンピューターネットワークにアクセスすることを可能にするための1つ以上のインターフェースを含み得る。
【0025】
説明される実施形態において、コンピューティングデバイス101は、クライアントコンピューティングデバイスのユーザーに代わってアプリケーションを実行し得る。例えば、コンピューティングデバイス101は、ホストされたデスクトップセッションなどの実行セッションを提供する仮想マシンを実行し得、当該実行セッション内において、ユーザーまたはクライアントコンピューティングデバイスに代わってアプリケーションが稼働する。また、コンピューティングデバイス101は、ホストされたデスクトップ環境を提供するために、端末サービスセッションも実行し得る。コンピューティングデバイス101は、1つ以上のアプリケーション、1つ以上のデスクトップアプリケーション、および1つ以上のアプリケーションが稼働し得る1つ以上のデスクセッションのうちの1つ以上を含むコンピューティング環境へのアクセスを提供し得る。
【0026】
ネットワーク環境、コンピューター101、クライアントコンピューターおよびサーバーコンピューターの実装ならびにオペレーションの追加的な詳細は、フロリダ州フォートローダーデールのサイトリックスシステムズ,インコーポレイテッドに対して2017年1月3日に発行された米国特許第9,538,345号において説明される通りであり得る。前述の特許の教示が、本明細書において参照によって援用される。
【0027】
B.組み込みブラウザについてのシステムおよび方法
本開示は、組み込みブラウザのシステムおよび方法を対象とする。クライアントデバイス上において稼働するクライアントアプリケーションは、ユーザーが、ウェブアプリケーションおよびサービスとしてのソフトウェア(software−as−a−service;SaaS)アプリケーション(以下、時に、総合的にネットワークアプリケーションという)などの、1つ以上のサーバーから提供されかつ/または1つ以上のサーバー上でホストされるアプリケーション(アプリ)にアクセスすることを可能にすることができる。クライアントアプリケーションと組み込まれているか統合されているブラウザは、クライアントアプリケーションを介してアクセスされるか要請されるネットワークアプリケーションをユーザーに与えることができ、ユーザーとネットワークアプリケーションとの間における相互作用を可能にすることができる。ブラウザは、時に、組み込みブラウザといい、組み込みブラウザを有するクライアントアプリケーション(CEB)は、時に、作業空間アプリケーションという。クライアントアプリケーションは、ユーザーがクライアントデバイスおよび組み込みブラウザを使用することによってネットワークアプリケーションにアクセスするためのアプリケーションセッションを提供するために、1つ以上のサーバーへの安全な接続を確立することができる。組み込みブラウザは、ネットワークアプリケーションに関するトラフィックが確実にクライアントアプリケーションを通って経路決定、かつ/またはクライアントアプリケーションにおいて処理されるように、クライアントアプリケーションと統合されることができ、それは、(例えば、クライアントアプリケーションを通して復号化されるときに)トラフィックに対するリアルタイムでの可視性、ユーザーの相互作用および挙動をクライアントアプリケーションに提供することができる。組み込みブラウザは、ネットワークアプリケーションがユーザーインターフェースを介して要請され(クライアントアプリケーションおよび組み込みブラウザによって共有され)、同じユーザーインターフェース内における組み込みブラウザを通して与えられた場合、シームレスな操作性をユーザーに提供することができる。
【0028】
クライアントアプリケーションは、セキュアソケットレイヤー(SSL)バーチャルプライベートネットワーク(VPN)接続など、ネットワークアプリケーションのサーバーとともに確立された安全化された接続の一端を終了させることができる。クライアントアプリケーションは、ネットワークアプリケーションから暗号化されたトラフィックを受け取ることができ、さらなる処理の前にトラフィックを復号化することができる(例えば、組み込みブラウザによって与える)。クライアントアプリケーションは、受け取られたトラフィックを(例えば、暗号化されたパケットの形態において)監視することができ、また、復号化データストリームおよび/またはSSLスタックへの完全な可視性を有することもできる。この可視性は、クライアントアプリケーションがポリシーベース管理(例えば、データ損失防止(data loss prevention;DLP)能力を含む)、アプリケーション制御(例えば、パフォーマンス、サービスレベルを向上させること)、ならびに解析の収集および生成を実施するかまたは容易にすることを可能にすることができる。例えば、ローカルCEBは、CEBを通してウェブおよびSaaSアプリケーションをデプロイするための制御されたシステムを有する情報技術(information technology;IT)管理者を提供することができ、前述のアクティビティのうちの任意のアクティビティを実施するためにIT管理者がCEBを介してポリシーまたは構成を設定することを可能にすることができる。
【0029】
多くのウェブおよびSaaS伝達アプリケーションは、ウェブサーバーからユーザーの一般的なブラウザ(例えば、インターネットエクスプローラー、ファイヤーフォックスなど)に接続する。認証されると、そのようなネットワークアプリケーションのセッション全体が暗号化される。しかし、このシナリオにおいて、管理者は、ユーザーのデジタル作業空間からネットワークアプリケーションに入るコンテンツ、またはネットワークアプリケーションから出てユーザーのデジタル作業空間に入るコンテンツの可視性、解析、または制御を有さない場合がある。さらに、一般的なブラウザにおいて閲覧されるネットワークアプリケーションのコンテンツは、潜在的に、(例えば、ユーザーまたはプログラムによって)任意の恣意的なアプリケーションまたはデバイスにコピーまたはダウンロードされることができ、その結果、データセキュリティに違反する可能性がある。
【0030】
本システムおよび方法は、ネットワークアプリケーションと関連づけられるトラフィックが確実にCEBを通って送られるようにすることができる。例示として、例えばセキュリティアサーションマークアップランゲージ(SAML)が許可されたSaaSウェブサービスにユーザーがアクセスする場合、対応するアクセス要請は、アクセス要請を作成するためにCEBが使用されたかどうか決定、チェック、および検証する指定されたゲートウェイサービスに転送されることができる。アクセス要請を作成するためにCEBが使用されたことを決定することに応答して、ゲートウェイサービスは、認証またはシングルサインオン(SSO)を実施または提供することができ、CEBがSaaSウェブサービスに直接接続することを可能にすることができる。暗号化(例えば、標準的な暗号化)は、CEBとSaaSウェブサービスとの間におけるアプリケーションセッションのために使用されることができる。組み込みブラウザを介して閲覧されるようにCEBにおいてウェブサービスからのコンテンツが暗号化されていない場合、および/またはCEBを介して入力がなされる場合、CEBは、例えば制御および解析のために、選択的アプリケーション関連情報上で追加されたサービスを提供することができる。例えば、解析エージェントまたはアプリケーションプログラミングインターフェース(API)は、追加されたサービスを提供または実施するために、CEBに組み込まれることができる。
【0031】
CEB(時に、作業空間アプリケーションまたはレシーバーという)は、ネットワークアプリケーションへのアクセスを提供するために、1つ以上のゲートウェイサービス、中間体、および/またはネットワークサービス(時に、まとめてクラウドサービスまたはサイトリックスクラウドという)と相互作動することができる。クラウドサービスの実施形態のオペレーションに関する環境の特徴および要素は、以下で説明される。
【0032】
図2は、ネットワークアプリケーションを含むリソースにアクセスすることにおける使用のためのクラウドサービスの実施形態を例示する。クラウドサービスは、企業移動性技術アーキテクチャ200を含むことができ、それは、1つの例示的な実施形態において、アクセスゲートウェイ260を含むことができる。アーキテクチャは、例えば、私的デバイスの持ち込み(bring−your−own−device;BYOD)環境において使用されることができる。アーキテクチャは、クライアントデバイス204(例えば、携帯または他のデバイス)のユーザーがクライアントデバイス202からの企業リソースまたは個人リソースにアクセスすることと、クライアントデバイス204を個人的な用途のために使用することとの両方を可能にすることができる。ユーザーは、クライアントデバイス204上において稼働するクライアントアプリケーションを介してそのような企業リソース204または企業サービス208にアクセスし得る。ユーザーは、ユーザーによって購入されたクライアントデバイス204、または企業によってユーザーに提供されたクライアントデバイス202を使用することによって、そのような企業リソース204または企業サービス208にアクセスし得る。ユーザーは、ビジネス用途のみのために、またはビジネス用途および個人的な用途のためにクライアントデバイス202を利用し得る。クライアントデバイスは、iOSオペレーティングシステムおよびAndroid(登録商標)オペレーティングシステムなどを動作させ得る。企業は、クライアントデバイス204を管理するために、ポリシーを実装することを選び得る。ポリシーは、クライアントデバイスが識別、安全化、またはセキュリティ検証され得、企業リソースへの選択的または完全なアクセスを提供され得るように、ファイヤーウォールまたはゲートウェイを通して埋め込まれ得る。ポリシーは、クライアントデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはクライアントデバイス、アプリケーション、およびデータ管理ポリシーの何らかの組み合わせであり得る。クライアントデバイス管理ポリシーのアプリケーションを通して管理されるクライアントデバイス204は、登録済みデバイスという場合がある。クライアントデバイス管理ポリシーは、例えばクライアントアプリケーションを介して適用されることができる。
【0033】
いくつかの実施形態において、クライアントデバイスのオペレーティングシステムは、管理対象パーティション210と、非管理対象パーティション212とに分離され得る。管理対象パーティション210は、管理対象パーティション上で動作するアプリケーションと管理対象パーティションに格納されるデータとを安全化するために、管理対象パーティション210に適用されるポリシーを有し得る。管理対象パーティション上で動作するアプリケーションは、安全なアプリケーションであり得る。他の実施形態において、全てのアプリケーションは、アプリケーションから分離して受け取られる1つ以上のポリシーファイル一式に従って稼働し得、当該ポリシーファイルは、アプリケーションがデバイス上で稼働しているときにクライアントデバイス管理システムによって行われる1つ以上のセキュリティパラメーター、特徴、リソース制限、および/または他のアクセス制御を定義する。それぞれの1つ以上のポリシーファイルに従って作動することによって、各アプリケーションは、1つ以上の他のアプリケーションおよび/またはリソースとの通信を許可され得るか、または1つ以上の他のアプリケーションおよび/またはリソースとの通信を制限され得、それによって、仮想パーティションを作成する。従って、本明細書において、パーティションは、物理的に区切られたメモリの部分(物理パーティション)、論理上区切られたメモリの部分(論理パーティション)、ならびに/または本明細書において説明されるような1つ以上のポリシーおよび/もしくは複数のアプリにわたるポリシーファイルを実行した結果作成される仮想パーティション(仮想パーティション)を指し得る。言い換えれば、管理されたアプリ上でポリシーを実行することによって、それらのアプリは、他の管理されたアプリおよび信用される企業リソースと通信することのみが可能であるように制限され得、それによって、非管理対象のアプリおよびデバイスによってアクセス可能でない仮想パーティションを作成する。
【0034】
安全なアプリケーションは、メールアプリケーション、ウェブブラウジングアプリケーション、サービスとしてのソフトウェア(software−as−a−service;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つの場所における携帯電話上に、いくつかのデータ、ファイルなどを格納し得る。企業は、例えば、ある特定の情報が電話に格納されることを可能にするが他の情報を許可しないことを選択し得る。
【0035】
本明細書において説明するように、仮想化アプリケーションに関連して、クライアントデバイスは、GUIを提示しそしてGUIとのユーザー相互作用を記録するように設計された仮想化アプリケーションを有し得る。仮想化アプリケーションは、サーバー側アプリケーションによって使用されるサーバー側に、ユーザー相互作用を、アプリケーションとのユーザー相互作用として通信し得る。応答して、サーバー側のアプリケーションは、新しいGUIをクライアントデバイスに伝送し返し得る。例えば、新しいGUIは、静的ページ、動的ページ、アニメーションなどであり得、それによってリモートに場所決定されたリソースへのアクセスを提供する。
【0036】
安全なアプリケーションは、クライアントデバイスの管理対象パーティション210における安全なデータコンテナ228に格納されたデータにアクセスし得る。安全なデータコンテナにおいて安全化されたデータは、安全なラッピングされたアプリケーション214、安全なアプリケーションランチャー222によって実行されるアプリケーション、安全なアプリケーションランチャー218によって実行される仮想化アプリケーション226などによってアクセスされ得る。安全なデータコンテナ228に格納されたデータは、ファイル、データベースなどを含み得る。安全なデータコンテナ228に格納されたデータは、安全なアプリケーション232の中で共有される特定の安全なアプリケーション230に制限されたデータなどを含み得る。安全なアプリケーションに制限されたデータは、安全な一般データ234と、高度に安全なデータ238とを含み得る。安全な一般データは、高度暗号化標準(Advanced Encryption Standard;AES)128ビット暗号化などの強力な暗号化方式を使用し得るが、高度に安全なデータ238は、AES256ビット暗号化などの非常に強力な暗号化方式を使用し得る。安全なデータコンテナ228に格納されたデータは、デバイスマネージャー224からのコマンドを受け取ると、デバイスから削除され得る。安全なアプリケーションは、デュアルモードオプション240を有し得る。デュアルモードオプション240は、安全化されていないモードまたは非管理対象モードにおいて、安全化されたアプリケーションを作動させるオプションをユーザーに提示し得る。安全化されていないモードまたは非管理対象モードにおいて、安全なアプリケーションは、クライアントデバイス202の非管理対象パーティション212上の安全化されていないデータコンテナ242に格納されたデータにアクセスし得る。安全化されていないデータコンテナに格納されたデータは、個人データ244であり得る。安全化されていないデータコンテナ242に格納されたデータは、クライアントデバイス202の非管理対象パーティション212上で動作している安全化されていないアプリケーション248によってアクセスされ得る。安全化されていないデータコンテナ242に格納されたデータは、安全なデータコンテナ228に格納されたデータがクライアントデバイス202から削除されるときに、クライアントデバイス202上に残っていてもよい。企業は、ユーザーによって所有、ライセンス取得、もしくは制御される個人データ、ファイル、および/またはアプリケーション(個人データ)を存続させながら、または別様に保存しながら、企業によって所有、ライセンス取得、もしくは制御される、選択されたデータ、ファイル、および/またはアプリケーション、または全てのデータ、ファイル、および/またはアプリケーション(企業データ)をクライアントデバイスから削除することを望む場合がある。このオペレーションは、選択的消去という場合がある。本明細書において説明される様態に従って配置された企業データおよび個人データを使用して、企業は、選択的消去を実施し得る。
【0037】
クライアントデバイス202は、企業における企業リソース204および企業サービス208をパブリックインターネット248などに接続し得る。クライアントデバイスは、バーチャルプライベートネットワーク接続を通して、企業リソース204および企業サービス208に接続し得る。バーチャルプライベートネットワーク接続(マイクロVPNまたはアプリケーション固有VPNともいう)は、特定のアプリケーション(例えば、マイクロVPN250に例示されるように)、特定のデバイス、クライアントデバイス上の特定の安全化されたエリア(例えば、O/S VPN252に例示されるように)などに特有のものであり得る。例えば、電話の安全化されたエリアにおけるラッピングされたアプリケーションのうちの各々は、VPNへのアクセスが、おそらくユーザーまたはデバイス属性情報と合わせて、アプリケーションに関連づけられる属性に基づいて付与されるように、アプリケーション固有VPNを通して企業リソースにアクセスし得る。バーチャルプライベートネットワーク接続は、Microsoft(登録商標)エクスチェンジトラフィック、Microsoft(登録商標)アクティブディレクトリトラフィック、ハイパーテキストトランスファープロトコル(HTTP)トラフィック、ハイパーテキストトランスファープロトコルセキュア(HTTPS)トラフィック、アプリケーション管理トラフィックなどを運搬し得る。バーチャルプライベートネットワーク接続は、シングルサインオン認証プロセス254を支援し、可能にし得る。シングルサインオンプロセスは、ユーザーが単一のセットの認証クレデンシャルを提供することを可能にし、当該認証クレデンシャルは、認証サービス258によってその後検証される。そして、認証サービス258は、個々の企業リソース204に認証クレデンシャルを提供することをユーザーに要求することなく、複数の企業リソース204へのアクセスをユーザーに付与し得る。
【0038】
バーチャルプライベートネットワーク接続は、アクセスゲートウェイ260によって確立され、管理され得る。アクセスゲートウェイ260は、クライアントデバイス202への企業リソース204の伝達を管理し、高速化し、かつ向上させるパフォーマンス強化特徴を含み得る。アクセスゲートウェイは、クライアントデバイス202からパブリックインターネット248にトラフィックを経路切替し得、クライアントデバイス202が、パブリックインターネット248上で動作する公に利用可能で安全化されていないアプリケーションにアクセスすることを可能にする。クライアントデバイスは、トランスポートネットワーク262を介してアクセスゲートウェイに接続し得る。トランスポートネットワーク262は、1つ以上のトランスポートプロトコルを使用し得、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、プライベートネットワークなどであり得る。
【0039】
企業リソース204は、電子メールサーバー、ファイル共有サーバー、SaaS/ウェブアプリケーション、ウェブアプリケーションサーバー、Windows(登録商標)アプリケーションサーバーなどを含み得る。電子メールサーバーは、エクスチェンジサーバー、ロータスノーツサーバーなどを含み得る。ファイル共有サーバーは、シェアファイルサーバーなどを含み得る。SaaSアプリケーションは、セールスフォースなどを含み得る。Windows(登録商標)アプリケーションサーバーは、ローカルなWindows(登録商標)オペレーティングシステム上で動作することを意図されているアプリケーションを提供するために構築される任意のアプリケーションサーバーなどを含み得る。企業リソース204は、プレミスベースのリソース、クラウドベースのリソースなどであり得る。企業リソース204は、直接、またはアクセスゲートウェイ260を通してクライアントデバイス202によってアクセスされ得る。企業リソース204は、トランスポートネットワーク262を介してクライアントデバイス202によってアクセスされ得る。トランスポートネットワーク262は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、プライベートネットワークなどであり得る。
【0040】
クラウドサービスは、アクセスゲートウェイ260および/または企業サービス208を含み得る。企業サービス208は、認証サービス258、脅威検出サービス264、デバイスマネージャーサービス224、ファイル共有サービス268、ポリシーマネージャーサービス270、ソーシャル統合サービス272、アプリケーションコントローラーサービス274などを含み得る。認証サービス258は、ユーザー認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービスなどを含み得る。認証サービス258は、証明書を使用し得る。証明書は、企業リソース204などによってクライアントデバイス202上に格納され得る。クライアントデバイス202上に格納された証明書は、クライアントデバイス上の暗号化された場所に格納され得、証明書は、認証時の使用などのためにクライアントデバイス202上に一時的に格納され得る。脅威検出サービス264は、侵入検出サービス、不正アクセス試行検出サービスなどを含み得る。不正アクセス試行検出サービスは、デバイス、アプリケーション、データなどへの不正アクセス試行を含み得る。デバイス管理サービス224は、構成サービス、プロビジョニングサービス、セキュリティサービス、サポートサービス、監視サービス、報告サービス、および閉鎖サービスを含み得る。ファイル共有サービス268は、ファイル管理サービス、ファイル格納サービス、ファイル共同サービスなどを含み得る。ポリシーマネージャーサービス270は、デバイスポリシーマネージャーサービス、アプリケーションポリシーマネージャーサービス、データポリシーマネージャーサービスなどを含み得る。ソーシャル統合サービス272は、連絡先統合サービス、共同サービス、Facebook、Twitter、およびLinkedInなどのソーシャルネットワークとの統合などを含み得る。アプリケーションコントローラーサービス274は、管理サービス、プロビジョニングサービス、デプロイメントサービス、割り当てサービス、取消サービス、ラッピングサービスなどを含み得る。
【0041】
企業移動性技術アーキテクチャ200は、アプリケーションストア278を含み得る。アプリケーションストア278は、ラッピングされていないアプリケーション280、予めラッピングされたアプリケーション282などを含み得る。アプリケーションは、アプリケーションコントローラー274からアプリケーションストア278にポピュレートされ得る。アプリケーションストア278は、アクセスゲートウェイ260、パブリックインターネット248などを通してクライアントデバイス202によってアクセスされ得る。アプリケーションストアは、直感的で使いやすいユーザーインターフェースを提供され得る。
【0042】
ソフトウェア開発キット284は、アプリケーションの周りに安全なラッパーを提供することによって、ユーザーによって選択されるアプリケーションを安全化する性能をユーザーに提供し得る。その後、ソフトウェア開発キット284を使用することによってラッピングされたアプリケーションは、アプリケーションコントローラー274を使用して当該アプリケーションをアプリケーションストア278にポピュレートすることによって、クライアントデバイス202に利用可能にされ得る。
【0043】
企業移動性技術アーキテクチャ200は、管理および解析性能を含み得る。管理および解析性能は、リソースがどのように使用されるか、リソースがどのくらいの頻度で使用されるかなどに関する情報を提供し得る。リソースは、デバイス、アプリケーション、データなどを含み得る。リソースがどのように使用されるかということは、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするかなどを含み得る。リソースがどのくらいの頻度で使用されるかということは、アプリケーションがどのくらいの頻度でダウンロードされたか、特定のデータのセットがアプリケーションによって何回アクセスされたかなどを含み得る。
【0044】
図3は、企業移動性管理システム300の例示的な実施形態を示す。図2を参照して上記で説明された移動性管理システム200の構成要素のうちのいくつかは、簡易化のために省略されている。図3に示されるシステム300のアーキテクチャは、図2を参照して上記で説明されたシステム200のアーキテクチャと多くの点において類似しており、上述されていない追加的な特徴を含み得る。
【0045】
この場合、左側は、クライアントエージェント304とともに登録済みクライアントデバイス302を表し、クライアントエージェント304は、ゲートウェイサーバー306と相互作用して、右側の上に示されるようなWebまたはSaaSアプリケーション、エクスチェンジ、シェアポイント、パブリックキーインフラストラクチャ(PKI)リソース、ケルベロスリソース、証明書発行(Certificate Issuance)サービスなどの様々な企業リソース308およびサービス309にアクセスする。ゲートウェイサーバー306は、アクセスゲートウェイ260およびアプリケーションコントローラー機能性などのクラウドサービスの特徴および機能性の実施形態を含むことができる。具体的に示されていないものの、クライアントエージェント304は、ネットワークアプリケーションの選択および/またはダウンロードのために、企業アプリケーションストア(ストアフロント)として作動することができるクライアントアプリケーションの一部であり得、かつ/または、当該クライアントアプリケーションと相互作用し得る。
【0046】
クライアントエージェント304は、高解像度ユーザーエクスペリエンス(High−Definition User Experience;HDX)または独立コンピューティングアーキテクチャ(Independent Computing Architecture;ICA)ディスプレイリモーティングプロトコルを使用することによってアクセスされる、エンタープライズデータセンターにおいてホストされたWindows(登録商標)アプリ/デスクトップのためのUI(ユーザーインターフェース)中間体として機能することができる。クライアントエージェント304は、ネイティブiOSまたはAndroid(登録商標)アプリケーションなどの、クライアントデバイス302上のネイティブアプリケーションのインストールおよび管理もサポートすることができる。例えば、上記の図に示される管理対象アプリケーション310(メール、ブラウザ、ラッピングされたアプリケーション)は、デバイス上でローカルに稼働するネイティブアプリケーションである。このアーキテクチャのクライアントエージェント304およびアプリケーション管理フレームワークは、企業リソース/サービス308への接続性およびSSO(シングルサインオン)などのポリシーによって駆動される管理性能および特徴を提供するために機能する。クライアントエージェント304は、企業への(例えば、他のゲートウェイサーバー構成要素に対するSSOによるアクセスゲートウェイ(AG)への)一次ユーザー認証を扱う。クライアントエージェント304は、クライアントデバイス302上の管理対象アプリケーション310の挙動を制御するために、ゲートウェイサーバー306からポリシーを取得する。
【0047】
ネイティブアプリケーション310とクライアントエージェント304との間におけるセキュアインタープロセスコミュニケーション(IPC)リンク312は、管理チャネルを表し、管理チャネルは、各アプリケーションを「ラッピングする」アプリケーション管理フレームワーク314によって実行されるポリシーをクライアントエージェントが供給することを可能にする。IPCチャネル312は、企業リソース308への接続性およびSSOを可能にするクレデンシャルならびに認証情報を、クライアントエージェント304が供給することも可能にする。最後に、IPCチャネル312は、アプリケーション管理フレームワーク314が、オンライン認証およびオフライン認証などのクライアントエージェント304によって実装されるユーザーインターフェース機能を起動することを可能にする。
【0048】
クライアントエージェント304とゲートウェイサーバー306との間における通信は、本質的に、各ネイティブ管理対象アプリケーション310をラッピングするアプリケーション管理フレームワーク314からの管理チャネルの拡張である。アプリケーション管理フレームワーク314は、クライアントエージェント304からポリシー情報を要請し、クライアントエージェント304は、次に当該ポリシー情報をゲートウェイサーバー306から要請する。アプリケーション管理フレームワーク314は、認証を要求し、クライアントエージェント304は、ゲートウェイサーバー306のゲートウェイサービス部分(NetScalerアクセスゲートウェイとしても知られる)にログインする。クライアントエージェント304は、ゲートウェイサーバー306上でサポートサービスも呼び出し得、それは、下記でより完全に説明されるように、ローカルデータボールト316のための暗号化キーを導き出すための入力材料を生成し得るか、または、PKI保護化リソースへの直接認証を可能にし得るクライアント証明書を提供し得る。
【0049】
より詳細には、アプリケーション管理フレームワーク314は、各管理対象アプリケーション310を「ラッピングする」。これは、明示的な構築ステップを介して、または構築後処理ステップを介して、組み入れられ得る。アプリケーション管理フレームワーク314は、アプリケーション310の最初の起動においてクライアントエージェント304と「ペアリング」し得て、安全なIPCチャネルを初期化し、そのアプリケーションのためのポリシーを取得する。アプリケーション管理フレームワーク314は、(クライアントエージェントログイン依存性、およびローカルOSサービスがどのように使用され得るか、または当該サービスがどのようにアプリケーション310と相互作用し得るかを制限する制約ポリシーのうちのいくつかなど)ローカル適用するポリシーの関連部分を実行し得る。
【0050】
アプリケーション管理フレームワーク314は、認証および内部ネットワークアクセスを容易にするために、安全なIPCチャネル312を経由してクライアントエージェント304によって提供されるサービスを使用し得る。プライベートおよび共有データボールト316(コンテナ)のためのキー管理は、管理対象アプリケーション310とクライアントエージェント304との間における適切な相互作用によっても管理され得る。ボールト316は、オンライン認証後にのみ利用可能であり得るか、または、ポリシーによって許可された場合、オフライン認証の後に利用可能にされ得る。ボールト316の最初の使用は、オンライン認証を要求し得、オフラインアクセスは、最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に限定され得る。
【0051】
内部リソースへのネットワークアクセスは、アクセスゲートウェイ306を通して個別の管理対象アプリケーション310から直接起こり得る。アプリケーション管理フレームワーク314は、各アプリケーション310のためにネットワークアクセスを編成することを担う。クライアントエージェント304は、オンライン認証に続いて取得される適切な時間制限付き二次的クレデンシャルを提供することによって、これらのネットワーク接続を容易にし得る。リバースウェブプロキシ接続およびエンドツーエンドVPN形式トンネル318など、ネットワーク接続の複数のモードが使用され得る。
【0052】
メールおよびブラウザ管理対象アプリケーション310は、特別な状態を有することができ、任意にラッピングされたアプリケーションにとって通常利用可能でないであろうファシリティを利用し得る。例えば、メールアプリケーションは、メールアプリケーションが完全なAGログオンを要求することなく延長された期間にわたってエクスチェンジにアクセスすることを可能にする特別なバックグラウンドネットワークアクセス機構を使用し得る。ブラウザアプリケーションは、異なる種類のデータを分離するために、複数のプライベートデータボールトを使用し得る。
【0053】
このアーキテクチャは、様々な他のセキュリティ特徴の組み入れをサポートすることができる。例えば、いくつかの場合におけるゲートウェイサーバー306(そのゲートウェイサービスを含む)は、アクティブディレクトリ(AD)パスワードを確認する必要がないかもしれない。ある状況においてADパスワードがあるユーザーのための認証ファクターとして使用されるかどうかは、企業の裁量に任せることができる。ユーザーがオンラインまたはオフラインである(すなわち、ネットワークに接続されているかまたは接続されていない)場合、異なる認証方法が使用され得る。
【0054】
ステップアップ認証は、ゲートウェイサーバー306が、強力な認証を使用することによって扱いにより注意を要するデータへのアクセスを有することが許可された管理対象ネイティブアプリケーション310を識別し得、かつ、たとえこれが前回のより弱いレベルのログイン後に再認証がユーザーから要請されることを意味するとしても、適切な認証を実施した後にのみこれらのアプリケーションへのアクセスが許可されることを確実にし得る特徴である。
【0055】
この解決手段の別のセキュリティ特徴は、クライアントデバイス302上のデータボールト316(コンテナ)の暗号化である。ボールト316は、クリップボード/キャッシュデータ、ファイル、データベース、および構成を含む全てのオンデバイスデータが保護されるように、暗号化され得る。オンラインボールトについて、キーは、サーバー(ゲートウェイサーバー306)上に格納され得、オフラインボールトについて、キーのローカルコピーがユーザーパスワードまたは生体確認によって保護され得る。データが安全なコンテナ316においてデバイス302上でローカルに格納される場合、AES256暗号化アルゴリズムの最小値が利用されることが好ましい。
【0056】
他の安全なコンテナ特徴も実装され得る。例えば、ロギング特徴が含まれ得、アプリケーション310の内部で起こる全てのセキュリティイベントがログされ、バックエンドに報告される。アプリケーション310が改竄を検出した場合などにおいて、データ消去がサポートされ得、ユーザーデータが破壊されたことの手がかりをファイルシステムに何ら残さず、関連づけられた暗号化キーがランダムデータによって上書きされ得る。スクリーンショット保護は、別の特徴であり、アプリケーションは、任意のデータがスクリーンショットにおいて格納されることを防止し得る。例えば、キーウィンドウの隠されたプロパティがYESに設定され得る。これは、どのようなコンテンツが現在スクリーンに表示されていても、そのコンテンツを隠れさせ得、その結果、通常任意のコンテンツが存在するスクリーンショットが空白になる。
【0057】
例えば、データを外部のアプリケーションにコピーまたは送信することによって任意のデータがアプリケーションコンテナの外部にローカルに移行されることを防止することなどによって、ローカルなデータ移行が防止され得る。キーボードキャッシュ特徴は、扱いに注意を要するテキストフィールドのために自動修正機能性を無効化するように作動し得る。SSL証明書確認は、アプリケーションがサーバーSSL証明書をキーチェーンにおいて格納する代わりにサーバーSSL証明書を具体的に確認するように、作動可能であり得る。暗号化キー生成特徴は、(オフラインアクセスが要求された場合)ユーザーによって供給されるパスフレーズまたは生体データを使用することによってデバイス上でデータを暗号化するために使用されるキーが生成されるように、使用され得る。オフラインアクセスが要求されない場合、それは、ランダムに生成されサーバー側で格納される別のキーとXORされ得る。キー導出関数は、ユーザーパスワードから生成されたキーが、それの暗号ハッシュを作成するのではなく、KDF(キー導出関数、とりわけパスワードベースのキー導出関数2(Password−Based Key Derivation Function 2;PBKDF2))を使用するように作動し得る。暗号ハッシュによって、キーは、総当たり攻撃または辞書攻撃を受けやすくなる。
【0058】
さらに、暗号化方法において、1つ以上の初期化ベクトルが使用され得る。初期化ベクトルは、同じ暗号化データの複数のコピーに異なる暗号テキスト出力を生じさせ得、反射攻撃と暗号解読攻撃との両方を防止する。これは、攻撃者が盗まれた暗号キーを使用した場合であっても、攻撃者が任意のデータを復号化することも防止し得る。さらに、認証そして復号化が使用され得、アプリケーションデータは、ユーザーがアプリケーション内において認証された後にのみ復号化される。別の特徴は、メモリ内の扱いに注意を要するデータに関連し得、当該データは、必要とされるときのみ(ディスク内でなく)メモリ内に保存され得る。例えば、ログインクレデンシャルは、ログイン後にメモリから消去され得、暗号化キーおよびオブジェクティブ−Cインスタンス変数内部の他のデータは、容易に参照され得るので格納されない。代わりに、これらのために、メモリが手動で割り当てられ得る。
【0059】
CEBを介して無活動タイムアウトが実装され得、ポリシーによって定義された無活動の期間の後に、ユーザーセッションが終了する。
【0060】
アプリケーション管理フレームワーク314からのデータ漏洩は、他の方法で防止され得る。例えば、アプリケーション310がバックグラウンドに置かれる場合、メモリは、所定の(構成可能な)期間後にクリアされ得る。バックグラウンド化される場合、フォアグラウンドプロセスを結びつけるために、アプリケーションの最後に表示されるスクリーンのスナップショットが撮られ得る。スクリーンショットは、機密データを含み得、従って、クリアされるべきである。
【0061】
別のセキュリティ特徴は、1つ以上のアプリケーションへのアクセスのためのAD(アクティブディレクトリ)322パスワードの使用を伴わないOTP(one time password;ワンタイムパスワード)320の使用に関する。いくつかの場合において、あるユーザーたちは、自分のADパスワードを知らない(または知ることを許されていない)ため、そのユーザーたちは、SecurIDなどのハードウェアOTPシステムを使用することなどによって、OTP320を使用することによって認証し得る(OTPは、EntrustまたはGemaltoなどの異なるベンダによっても提供され得る)。いくつかの場合において、ユーザーがユーザーIDを使用して認証した後、OTP320によってユーザーにテキストが送信される。いくつかの場合において、これは、単一フィールドであるプロンプトによって、オンライン使用でのみ実装され得る。
【0062】
オフラインパスワードは、企業ポリシーを介してオフライン使用が許可されるアプリケーション310についてのオフライン認証のために実装され得る。例えば、企業は、ストアフロントがこのような態様でアクセスされることを望み得る。この場合、クライアントエージェント304は、ユーザーに、カスタムオフラインパスワードを設定することを要求し得、ADパスワードは、使用されない。ゲートウェイサーバー306は、標準的なWindows(登録商標) Serverパスワード複雑度要件によって記述されるなどの最小の長さ、文字クラス構成、およびパスワードの期限に関するパスワード基準を制御および実行するためのポリシーを提供し得る。ただし、これらの要件は、修正され得る。
【0063】
別の特徴は、(アプリケーション管理フレームワークマイクロVPN特徴を介してPKI保護化ウェブリソースにアクセスする目的のための)二次的クレデンシャルとしてのある特定のアプリケーション310用のクライアント側の証明書の有効化に関する。例えば、アプリケーションは、そのような証明書を利用し得る。この場合、ActiveSyncプロトコルを使用する証明書ベースの認証がサポートされ得、クライアントエージェント304からの証明書がゲートウェイサーバー306によって検索され得、キーチェーンにおいて使用され得る。各管理対象アプリケーションは、ゲートウェイサーバー306において定義されるラベルによって識別される1つの関連づけられたクライアント証明書を有し得る。
【0064】
ゲートウェイサーバー306は、関連する管理対象アプリケーションが内部PKI保護化リソースへ認証することを可能にするためのクライアント証明書の発行をサポートするために、エンタープライズ専用のウェブサービスと相互作用し得る。
【0065】
クライアントエージェント304およびアプリケーション管理フレームワーク314は、内部PKI保護化ネットワークリソースへの認証のためのクライアント証明書を取得し使用することをサポートするために、強化され得る。様々なレベルのセキュリティおよび/または分離要件に合わせるように、2つ以上の証明書がサポートされ得る。証明書は、メールおよびブラウザ管理対象アプリケーションによって使用され得、最終的に、任意のラッピングされたアプリケーションによって使用され得る(ただし、それらのアプリケーションは、アプリケーション管理フレームワークがhttps要求を媒介することが合理的である場合、ウェブサービス形式通信パターンを使用するものとする)。
【0066】
iOS上のアプリケーション管理クライアント証明書サポートは、各使用期間について、各管理対象アプリケーションにおいて公開キー暗号法基準(public−key cryptography standards;PKCS)12 BLOB(バイナリーラージオブジェクト)をiOSキーチェーンにインポートすることに依拠し得る。アプリケーション管理フレームワーククライアント証明書サポートは、プライベートインメモリキーストレージを有するHTTPS実装を使用し得る。クライアント証明書は、iOSキーチェーンにおいて決して存在し得ず、強力に保護された「オンラインのみ」データ値において潜在的に存在する場合を除いて、存続され得ない。
【0067】
相互SSLまたはTLSも、クライアントデバイス302が企業に認証されることを要求すること、かつその逆を要求することによって追加的なセキュリティを提供するために実装され得る。ゲートウェイサーバー306への認証のための仮想スマートカードも実装され得る。
【0068】
限定的ケルベロスサポートと完全ケルベロスサポートとの両方が、追加的な特徴であり得る。完全なサポート特徴は、ADパスワードまたは信頼されるクライアント証明書を使用することによってアクティブディレクトリ(AD)322への完全なケルベロスログインを行い、HTTPネゴシエイト(Negotiate)認証チャレンジに応答するためのケルベロスサービスチケットを取得する能力に関する。限定的サポート特徴は、サイトリックスアクセスゲートウェイ企業編集(Citrix Access Gateway Enterprise Edition;AGEE)の制約付き委任に関し、AGEEは、HTTPネゴシエイト認証チャレンジに応答して(制約付き委任の対象となる)ケルベロスサービスチケットを取得および使用することができるように、ケルベロスプロトコル遷移を起動することをサポートする。この機構は、リバースウェブプロキシ(akaコーポレートバーチャルプライベートネットワークアプリケーション(CVPN))モードで、http(httpsではない)接続がVPNおよびマイクロVPNモードでプロキシされるときに、作用する。
【0069】
別の特徴は、アプリケーションコンテナのロックおよび消去に関し、それらは、ジェイルブレイクまたはルーティング検出の際に自動的に起こり得、管理側コンソールからのプッシュされたコマンドとして起こり得、アプリケーション310が動作していないときでもリモート消去機能を含み得る。
【0070】
企業アプリケーションストアおよびアプリケーションコントローラーのマルチサイトアーキテクチャまたは構成は、サポートされ得、それは、ユーザーが、障害時にいくつかの異なる場所のうちの1つの場所からサービスを受けることを可能にする。
【0071】
いくつかの場合において、管理対象アプリケーション310は、API(例えば、OpenSSL)を介して証明書およびプライベートキーにアクセスすることを許可され得る。企業の信頼された管理対象アプリケーション310は、アプリケーションのクライアント証明書およびプライベートキーによって特定の公開キーオペレーションを実施することを許可され得る。アプリケーションがブラウザのような挙動をして証明書アクセスが何ら使用されない場合、アプリケーションが「自分が誰なのか」についての証明書を読み取る場合、アプリケーションが証明書を使用して安全なセッショントークンを構築する場合、および、アプリケーションが重要なデータ(例えば、トランザクションログ)のデジタル署名用または一時的なデータ暗号化用のプライベートキーを使用する場合など、様々な使用状況が識別され得、それに応じて取り扱われ得る。
【0072】
ここで図4を参照すると、組み込みブラウザのシステム400のブロック図が示されている。概略として、システム400は、ユーザーのためのデジタル作業空間を有するクライアントデバイス402と、クライアントアプリケーション404と、少なくとも1つのネットワークデバイス432上で作動するクラウドサービス408と、1つ以上のサーバー430から提供されかつ/または1つ以上のサーバー430上でホストされるネットワークアプリケーション406とを含み得る。クライアントアプリケーション404は、例えば、組み込みブラウザ410、ネットワーキングエージェント412、クラウドサービスエージェント414、リモートセッションエージェント416、または安全なコンテナ418のうちの少なくとも1つを含むことができる。クラウドサービス408は、例えば、1つ以上の安全なブラウザ420、アクセスゲートウェイ422(または、例えばクライアントアプリケーションおよび/もしくはユーザーを登録ならびに/または認証するためのCIS)、または解析サービス424(または、例えば解析のためにクライアントアプリケーションから情報を受け取るためのCAS)のうちの少なくとも1つを含むことができる。ネットワークアプリケーション406は、承認済みアプリケーション426および未承認アプリケーション428を含み得る。
【0073】
上述の要素またはエンティティのうちの各々は、1つ以上の実施形態において、ハードウェアまたはハードウェアとソフトウェアとの組み合わせにおいて実装される。システム200の各構成要素は、図1に関連して上記で詳細に述べられたハードウェアまたはハードウェアとソフトウェアとの組み合わせを使用して実装され得る。例えば、これらの要素またはエンティティのうちの各々は、クライアントデバイス402のハードウェア、少なくとも1つのネットワークデバイス432、および/または1つ以上のサーバー430上で稼働する任意のアプリケーション、プログラム、ライブラリ、スクリプト、タスク、サービス、プロセスまたは任意の種類および形態の実行可能な命令を含むことができる。ハードウェアは、1つ以上の実施形態において、1つ以上のプロセッサなどの回路を含む。例えば、少なくとも1つのネットワークデバイス432および/または1つ以上のサーバー430は、例えば少なくとも図1に関連して上記で説明されたコンピューティングデバイスの要素のうちの任意の要素を含むことができる。
【0074】
クライアントデバイス402は、例えば少なくとも図1に関連して上記で説明されたコンピューティングデバイスの任意の実施形態を含むことができる。クライアントデバイス402は、デスクトップコンピューター、ラップトップコンピューター、タブレットデバイス、スマートフォン、または任意の他のモバイルもしくはパーソナルデバイスなどの任意のユーザーデバイスを含むことができる。クライアントデバイス402は、ユーザーのデジタル作業空間を含むことができ、当該デジタル作業空間は、クライアントデバイス402上の1つ以上のファイルシステム、キャッシュもしくはメモリ(例えば、1つ以上の電子クリップボードを含む)、1つ以上のコンテナ、1つ以上のアプリケーション、および/または他のリソースを含むことができる。デジタル作業空間は、クライアントデバイス402によってアクセス可能な1つ以上のネットワーク(1つ以上のネットワークを介してアクセス可能な1つ以上のファイルシステムおよび/または他のリソースを含む、イントラネットおよびインターネットなど)を含むことができるか、または当該ネットワークまで拡張することができる。デジタル作業空間の一部は、例えば組み込みブラウザ410を有するクライアントアプリケーション404(CEB)の使用を介して安全化されることができる。デジタル作業空間の安全な部分は、例えば、CEBに割り当てられかつ/またはCEBを介してアクセスされる1つ以上のネットワークアプリケーション406にCEBによって割り当てられる1つ以上のファイルシステム、キャッシュもしくはメモリ(例えば、1つ以上の電子クリップボードを含む)、1つ以上のアプリケーション、1つ以上のコンテナ、および/または他のリソースを含むことができる。デジタル作業空間の安全な部分は、デジタル作業空間の安全な部分を含めるために(1つ以上のポリシーを介して)CEBによって特定されるリソースを含むこともできる(例えば、特定のローカルアプリケーションは、ポリシーを介して、ネットワークアプリケーションから取得されたデータを受け取ることを許可されていると特定されることができる)。
【0075】
クライアントアプリケーション404は、組み込みブラウザ410、ネットワーキングエージェント412、クラウドサービス414(時に、管理エージェントという)、リモートセッションエージェント416(時に、HDXエンジンという)、および/または安全なコンテナ418(時に、安全なキャッシュコンテナという)などの1つ以上の構成要素を含むことができる。構成要素のうちの1つ以上の構成要素は、CEBまたはクライアントアプリケーション404のソフトウェアビルドもしくはリリースの一部としてインストールされることができるか、個別に得られることができるか、または、例えばCEBまたはクライアントアプリケーション404の既存のインストールにダウンロードされ、インストールされる/統合されることができる。例えば、クライアントデバイスは、1つ以上のネットワークデバイス432からクライアントアプリケーション404(または任意の構成要素)をダウンロードし得るか、または別様に受け取り得る。いくつかの実施形態において、クライアントデバイスは、クライアントアプリケーション404に対する要請を、1つ以上のネットワークデバイス432に送信し得る。例えば、クライアントデバイスのユーザーは、クライアントアプリケーションの要請、ダウンロード、および/またはインストールを開始することができる。次に、1つ以上のネットワークデバイス432は、クライアントアプリケーションをクライアントデバイスに送信し得る。いくつかの実施形態において、1つ以上のネットワークデバイス432は、クライアントアプリケーションに対するセットアップまたはインストールをクライアントデバイスに送信し得る。受け取りの際、クライアントデバイスは、クライアントデバイスのハードディスクにクライアントアプリケーションをインストールし得る。いくつかの実施形態において、クライアントデバイスは、クライアントアプリケーションのパッケージを復元または解凍するために、セットアップアプリケーションを動作させ得る。いくつかの実施形態において、クライアントアプリケーションは、クライアントデバイスにインストールされた別のアプリケーション(例えば、ネットワーキングエージェント414)への拡張(例えば、アドオン、アドイン、アプレットまたはプラグイン)であり得る。クライアントデバイスは、予めインストールされたアプリケーションとインターフェースで接続するか相互作動するために、クライアントアプリケーションをインストールし得る。いくつかの実施形態において、クライアントアプリケーションは、スタンドアローンアプリケーションであり得る。クライアントデバイスは、個別のプロセスとして稼働するために、クライアントアプリケーションをインストールし得る。
【0076】
組み込みブラウザ410は、ウェブブラウザアプリケーションまたはエンジンの要素と機能性とを含むことができる。組み込みブラウザ410は、クライアントアプリケーションの構成要素または拡張として1つ以上のネットワークアプリケーションをローカルにレンダリングすることができる。例えば、組み込みブラウザ410は、アプリケーションセッションの制御と完全な可視性とをCEBに提供することができる、CEB内部のSaaS/Webアプリケーションをレンダリングすることができる。組み込みブラウザは、クライアントアプリケーションの実行可能なコードへの直接統合(例えば、プログラミング言語またはスクリプト挿入)など任意の手段を介して、またはプラグインインストールを介してクライアントアプリケーションに組み込まれることができるか、または組み入れられることができる。例えば、組み込みブラウザは、クロミウムベースのブラウザエンジンまたは他の種類のブラウザエンジンを含むことができ、それらのエンジンは、例えばクロミウム組み込みフレームワーク(Chromium embedded framework;CEF)を使用してクライアントアプリケーションに組み込まれることができる。組み込みブラウザは、HTML5−ベースのレイアウトグラフィカルユーザーインターフェース(GUI)を含むことができる。組み込みブラウザは、様々なプログラミング言語を組み入れるクライアントアプリケーションに、HTMLレンダリングおよびジャバスクリプトサポートを提供することができる。例えば、組み込みブラウザの要素は、C、C++、デルファイ、Go、ジャバ、.NET/Mono、ビジュアルベーシック6.0、および/またはパイソンを組み入れるクライアントアプリケーションに結合することができる。
【0077】
いくつかの実施形態において、組み込みブラウザは、クライアントアプリケーションにインストールされたプラグインを備えている。例えば、プラグインは、1つ以上の構成要素を含むことができる。そのような構成要素の1つは、アクティブエックスコントロールもしくはジャバコントロール、または任意の他の種類および/もしくは形態の、クライアントアプリケーションにローディングされクライアントアプリケーションにおいて稼働することが可能な実行可能な命令であることができる。例えば、クライアントアプリケーションは、クライアントアプリケーションのコンテクストまたはメモリ空間などにおいて、組み込みブラウザのアクティブエックスコントロールをローディングし動作させることができる。いくつかの実施形態において、組み込みブラウザは、クライアントアプリケーション上における拡張としてインストールされることができ、ユーザーは、プラグインまたは拡張を有効化または無効化することを選択することができる。組み込みブラウザ(例えば、プラグインまたは拡張を介して)は、デジタル作業空間の安全化された部分内のリソースを使用することおよび/または当該リソースにアクセスすることによって、安全化のために安全化されたブラウザとして成るか、または作動することができる。
【0078】
組み込みブラウザは、標準的または典型的なブラウザにおいて利用可能であるか可能であるものを超えるコードおよび機能性を組み入れることができる。例えば、組み込みブラウザは、ユーザーのデジタル空間の安全化された部分の少なくとも一部を定義するために、安全化されたコンテナ418と結合することができるか、または当該コンテナを割り当てられることができる。組み込みブラウザは、安全化されたクリップボード(例えば、クライアントデバイスにローカルであるか、または他のデバイスに拡張可能である)を形成するために、クライアントデバイスのキャッシュの一部と結合することができるか、または当該一部を割り当てられることができ、当該一部は、安全化されたコンテナ418の少なくとも一部であることができる。組み込みブラウザは、ネットワークアプリケーションに関するトラフィックが確実にクライアントアプリケーションを通って経路決定され、かつ/またはクライアントアプリケーションにおいて処理されるように、クライアントアプリケーションと統合されることができ、それは、(例えば、クライアントアプリケーションを通して復号化されるときに)トラフィックに対するリアルタイムでの可視性をクライアントアプリケーションに提供することができる。トラフィックへのこの可視性は、クライアントアプリケーションがポリシーベースの管理(例えば、データ損失防止(data loss prevention;DLP)能力を含む)、アプリケーション制御、ならびに解析の収集および生成を実施するかまたは容易にすることを可能にすることができる。
【0079】
いくつかの実施形態において、組み込みブラウザは、クラウドサービスエージェント414、リモートセッションエージェント416、および/または安全なコンテナ418など、クライアントアプリケーション404の1つ以上の他の構成要素を組み入れる。例えば、ユーザーは、ネットワークアプリケーションにアクセスするために、アクセスゲートウェイ422(時に、CISという)と相互作動するために、組み込みブラウザのクラウドサービスエージェント414を使用することができる。例えば、クラウドサービスエージェント414は、組み込みブラウザ内において稼働することができ、組み込みブラウザからナビゲーションコマンドを受け取り、ホストされたネットワークアプリケーションに伝送することができる。クラウドサービスエージェントは、ネットワークアプリケーションによって生成された出力を組み込みブラウザに表示するために、リモートプレゼンテーションプロトコルを使用することができる。例えば、クラウドサービスエージェント414は、エンドユーザーが組み込みブラウザ上のアプリケーションおよび/またはリモートデスクトップにアクセスすることを可能にするHTML5ウェブクライアントを含むことができる。
【0080】
クライアントアプリケーション404およびCEBは、クライアントデバイスのオペレーショナル(OSI)スタックのアプリケーションレイヤー上で作動する。クライアントアプリケーション404は、クラウドサービス408と相互作動する1つ以上のエージェントを含むこと、および/または当該エージェントを実行することができる。クライアントアプリケーション404は、様々なポリシー(例えば、企業のカスタムポリシーまたはルール、規定のポリシーまたはルール、または内部ポリシーまたはルール)および/または(例えば、アクセスゲートウェイ422および/またはクラウドサービス408の1つ以上のネットワークデバイス、または企業によって管理され得る1つ以上の他のサーバーからの)データを受け取り、取得し、検索し、または別様に当該ポリシーおよび/またはデータにアクセスすることができる。クライアントアプリケーション404は、ネットワークアプリケーション(例えば、SaaS、ウェブまたはリモートでホストされたアプリケーション)の制御および/または管理のために、ポリシーおよび/またはデータにアクセスすることができる。ネットワークアプリケーション406の制御および/または管理は、アクセス制御、セッション伝達、利用可能な特徴または機能、サービスレベル、トラフィック管理および監視など、ネットワークアプリケーション406の様々な様態の制御および/または管理を含むことができる。ネットワークアプリケーション406は、企業のプロバイダまたはベンダ(例えば、salesforce.com、SAP、Microsoft(登録商標)オフィス365)から、企業自身から、または別のエンティティ(例えば、ドロップボックスまたはGメールサービス)からのものであり得る。
【0081】
例えば、クラウドサービスエージェント414は、ネットワークアプリケーション406の使用および/またはアクセスに関連する、ポリシーによって駆動される管理性能および特徴を提供することができる。例えば、クラウドサービスエージェント414は、ネットワークアプリケーション406などのリソースへの接続性および/またはアクセス制御を決定するための1つ以上のポリシー(例えば、クラウドサービスから受け取られる)を適用するためのポリシーエンジンを含むことができる。例えば、クライアントアプリケーション406とSaaSアプリケーションを提供するサーバー430との間においてセッションが確立される場合、クラウドサービスエージェント414は、例えばSaaSアプリケーションのサービスレベルを管理するために、セッションのトラフィックレベルおよび/またはトラフィック種類(もしくは他の様態)を制御するための1つ以上のポリシーを適用することができる。制御または管理されることができるアプリケーショントラフィックの追加的な様態は、トラフィックに適用される暗号化レベルおよび/または暗号化種類、ユーザーに許可される相互作用性のレベル、ネットワークアプリケーションのある特定の特徴への限定されたアクセス(例えば、プリントスクリーン、保存、編集またはコピー機能)、ネットワークアプリケーションから取得されたデータの使用または移行への制限、2つ以上のネットワークアプリケーション406への限定的同時アクセス、ある特定のファイルリポジトリまたは他のリソースへの限定的アクセスなどを含むことができる。
【0082】
クラウドサービスエージェント414は、CEBに可視であるSaaS相互作用イベントについての情報などの情報を、クラウドサービス408の解析サービス424に伝えるかまたは送ることができる。CEBを使用するそのような構成は、クライアントデバイス402と1つ以上のサーバー430との間に場所決定されたプロキシまたはインラインデバイスを有することなく、またはSaaS APIゲートウェイ「帯域外」アプローチを使用することなく、解析用の情報を監視または捕捉することができる。いくつかの実施形態において、クラウドサービスエージェント414は、組み込みブラウザ内において稼働しない。これらの実施形態において、ユーザーは、ネットワークアプリケーションにアクセスするために、アクセスゲートウェイ(またはCIS)422と相互作動するために、クラウドサービスエージェント414を同様に使用することができる。例えば、クラウドサービスエージェント414は、アクセスゲートウェイ(またはCIS)422に登録および/または認証することができ、アクセスゲートウェイ(またはCIS)422からネットワークアプリケーションのリストを取得することができる。クラウドサービスエージェント414は、ネットワークアプリケーションのユーザー選択および/またはダウンロードのためのアプリケーションストア(またはストアフロント)を含むこと、および/または当該アプリケーションストア(またはストアフロント)として作動することができる。ネットワークアプリケーションにアクセスするためにログインする際、クラウドサービスエージェント414は、組み込みブラウザからナビゲーションコマンドを傍受し、ネットワークアプリケーションに伝送することができる。クラウドサービスエージェントは、ネットワークアプリケーションによって生成された出力を組み込みブラウザに表示するために、リモートプレゼンテーションプロトコルを使用することができる。例えば、クラウドサービスエージェント414は、エンドユーザーが組み込みブラウザ上のアプリケーションおよび/またはリモートデスクトップにアクセスすることを可能にするHTML5ウェブクライアントを含むことができる。
【0083】
いくつかの実施形態において、クラウドサービスエージェント414は、ユーザーおよび/またはクライアントデバイス402が複数のネットワークアプリケーションにアクセスするためのシングルサインオン(SSO)性能を提供する。クラウドサービスエージェント414は、例えばアクセスゲートウェイ422と通信することによって、他のネットワークリソースおよびサービスならびにネットワークアプリケーションにアクセスするためのユーザー認証を実施することができる。例えば、クラウドサービスエージェント414は、ネットワークアプリケーション406および/またはクラウドサービス408の他の構成要素にアクセスするために、アクセスゲートウェイ422に認証または登録することができる。認証または登録に応答して、アクセスゲートウェイ422は、ネットワークアプリケーションとともに、ユーザーおよび/またはクライアントアプリケーションのための(または、ユーザーおよび/またはクライアントアプリケーションに代わって)認証および/またはSSOを実施することができる。
【0084】
クライアントアプリケーション404は、ネットワーキングエージェント412を含むことができる。ネットワーキングエージェント412は、時に、ソフトウェアによって定義されるワイドエリアネットワーク(software−defined wide area network;SD−WAN)エージェント、mVPNエージェント、またはマイクロVPNエージェントという。ネットワーキングエージェント412は、クライアントアプリケーションと1つ以上のリソース(例えば、ネットワークアプリケーションを提供するサーバー430)との間におけるネットワーク接続を確立することができるか、当該ネットワーク接続の確立を容易にすることができる。ネットワーキングエージェント412は、ネットワークアプリケーションにアクセスするために、クライアントアプリケーションからの要請された接続についてのハンドシェイクを実施することができ、要請された接続(例えば、安全な接続または暗号化された接続)を確立することができる。ネットワーキングエージェント412は、例えばバーチャルプライベートネットワーク(VPN)を介して企業リソース(サービスを含む)に接続することができる。例えば、ネットワーキングエージェント412は、クライアントアプリケーションとネットワークアプリケーション406を提供するサーバー430との間においてセキュアソケットレイヤー(SSL)VPNを確立することができる。VPN接続は、時に、マイクロVPNまたはアプリケーション専用VPNといい、例えば図3に関連して上記で論じられたように、特定のネットワークアプリケーション、特定のデバイス、クライアントデバイス上の特定の安全化されたエリアなどに特有であり得る。そのようなVPN接続は、いくつかの例として、Microsoft(登録商標)エクスチェンジトラフィック、Microsoft(登録商標)アクティブディレクトリトラフィック、ハイパーテキストトランスファープロトコル(HTTP)トラフィック、ハイパーテキストトランスファープロトコルセキュア(HTTPS)トラフィック、アプリケーション管理トラフィックなどを運搬することができる。
【0085】
リモートセッションエージェント416(時に、HDXエンジンという)は、リモーティングプロトコル(例えば、HDXまたはICA)の表示をサポートするために、例えば図2に関連して上記で論じられたクライアントエージェント304の特徴を含むことができる。いくつかの実施形態において、リモートセッションエージェント416は、リモートデスクトッププロトコル(RDP)、アプライアンスリンクプロトコル(ALP)、リモートフレームバッファ(RFB)プロトコル、およびICAプロトコルなどの任意の様々なプロトコルに従ってリモートデスクトッププロトコルおよび/またはリモートアプリケーションセッションを確立することができる。例えば、リモートセッションエージェント416は、クライアントデバイスのユーザーが企業ネットワークアプリケーションにアクセスするためのリモートアプリケーションセッションを確立することができる。リモートセッションエージェント416は、例えばネットワーキングエージェント412によって確立された安全な接続(例えば、VPN)内において、または当該接続を通してリモートアプリケーションセッションを確立することができる。
【0086】
クライアントアプリケーションまたはCEBは、安全なコンテナ418を含むことができるか、または当該安全なコンテナと関連づけられることができる。安全なコンテナは、クライアントデバイス内においてアクセス可能な、かつ/またはクライアントデバイスによってアクセス可能な1つ以上の種類のリソースの論理的描写または仮想描写を含むことができる。例えば、安全なコンテナ418は、デジタル作業空間の安全化された部分または安全化された部分の1つ以上の特定の様態の全体を指すことができる。いくつかの実施形態において、安全なコンテナ418は、安全なキャッシュ(例えば、電子クリップボードまたは仮想クリップボード)に対応し、保護または安全化(例えば、暗号化)された、ユーザーの各クライアントデバイスのローカルキャッシュおよび/またはユーザーのクラウドベースのキャッシュの一部を動的に組み入れることができる。安全なコンテナは、CEBおよび/もしくはCEBを介してアクセスされるネットワークアプリケーションに割り当てられる描写リソースならびに/または1つ以上のファイルシステムの一部を定義することができる。安全なコンテナは、例えば図2に関連して上記で論じられた安全なデータコンテナ228の要素を含むことができる。CEBは、安全なコンテナ内にあると識別されたリソースおよび/またはデータ上におけるある特定のアクションまたはアクティビティを(例えば、ポリシーを介して)限定、拒否、または無効化するように構成されることができる。安全なコンテナは、安全なコンテナ内におけるリソースおよび/またはデータが悪用、濫用、および/または抜き取りに関して監視されるべきであると特定するように定義されることができる。
【0087】
ある特定の実施形態において、安全なコンテナは、様々な企業セキュリティ特徴を実装する安全なブラウザ(例えば、組み込みブラウザ410または安全なブラウザ420)の使用に関するか、または当該使用を伴う。安全なブラウザ内において動作するように構成されたネットワークアプリケーション(または安全なブラウザによってアクセスされるウェブページ)は、安全なブラウザによって実装されたセキュリティ機構を効率的に継承することができる。これらのネットワークアプリケーションは、安全なブラウザ内に含まれると考えられることができる。そのような安全なブラウザの使用は、企業がコンテンツフィルタリングポリシーを実装することを可能にすることができ、当該コンテンツフィルタリングポリシーにおいて、例えば従業員は、自分のクライアントデバイスからある特定のウェブサイトにアクセスすることを遮断される。安全なブラウザは、例えば、クライアントデバイスユーザーがVPNを必要とすることなく企業内イントラネットにアクセスすることを可能にするために使用されることができる。
【0088】
いくつかの実施形態において、安全なコンテナは、企業リソースを保護するための様々な種類の補修アクションをサポートすることができる。そのような補修の1つは、クライアントデバイスまたは安全なコンテナが、例えば管理者によって提供された有効なコードによってのみ解除されることができるように、クライアントデバイス、または保護されるべきデータを格納するクライアントデバイス上の安全なコンテナをロックすることである。いくつかの実施形態において、これらの補修および他の種類の補修は、(例えばポリシーのアプリケーションを介して)クライアントデバイス上において検出された条件に基づいて自動的に起動されることができるか、または管理者によってリモートで開始されることができる。
【0089】
いくつかの実施形態において、安全なコンテナは、ドキュメントのための安全なドキュメントコンテナを含むことができる。ドキュメントは、テキスト、音声、ビデオ、および/または他の種類の情報もしくは媒体を含む任意のコンピューター可読ファイルを備えることができる。ドキュメントは、これらの媒体種類のうちの任意の1つまたは組み合わせを備えることができる。本明細書において説明されるように、安全なコンテナは、企業情報が他のデバイスならびにクライアントデバイスの異なるアプリケーションおよび構成要素に広まることを防止することを助けることができる。(部分的または全体的にクラウドネットワーク内に存在することができる)企業システムは、様々なデバイスにドキュメントを伝送することができ、ドキュメントは、安全なコンテナ内に格納されることができる。安全なコンテナは、クライアントデバイスの他の構成要素および不正アプリケーションが安全なコンテナ内の情報にアクセスすることを防止することができる。企業データへのアクセス、企業データの格納、および企業データの使用のためにユーザーが自分のクライアントデバイスを使用することを許可する企業にとって、クライアントデバイス上の安全なコンテナを提供することは、企業データを安全化することの助けとなる。例えば、クライアントデバイス上の安全なコンテナを提供することは、企業データを各クライアントデバイス上の1つの場所に集中させることができ、所望の場合に各クライアントデバイスから企業データを選択的または完全に削除することを容易にすることができる。
【0090】
安全なコンテナは、ドキュメントおよび/または他の種類のファイルを格納するファイルシステムを実装するアプリケーションを含むことができる。ファイルシステムは、クライアントデバイスのコンピューター可読メモリの一部を備えることができる。ファイルシステムは、クライアントデバイスのコンピューター可読メモリの他の部分から論理的に分離されることができる。このように、企業データは、安全なコンテナにおいて格納されることができ、プライベートデータは、例えばクライアントデバイスのコンピューター可読メモリの個別の部分において格納されることができる。安全なコンテナは、CEB、CEBを介してアクセスされるネットワークアプリケーション、ローカルにインストールされたアプリケーションおよび/またはクライアントデバイスの他の構成要素が、(そのようにすることが認可された場合)ファイルシステムからの情報からの読み取り、当該情報への書き込み、および/または当該情報の削除を行うことを可能にすることができる。安全なコンテナからデータを削除することは、安全なコンテナにおいて格納された実データを削除すること、安全なコンテナにおいて格納されたデータへのポインタを削除すること、安全なコンテナにおいて格納されたデータを復号化するために使用される暗号化キーを削除することなどを含むことができる。安全なコンテナは、例えば、クライアントアプリケーション、管理者、またはクライアントデバイス製造者によってインストールされることができる。安全なコンテナは、安全なコンテナの外部のクライアントデバイス上に格納されたプライベートデータを変更することなく、ファイルシステムにおいて格納された企業データのうちのいくつかまたは全てが削除されることを可能にすることができる。ファイルシステムは、ファイルシステムからのデータの選択的または完全な削除を容易にすることができる。例えば、企業のシステムの認可された構成要素は、例えばコード化されたルールに基づいてファイルシステムからデータを削除することができる。いくつかの実施形態において、クライアントアプリケーションは、企業のシステムからの削除コマンドを受け取ることに応答して、ファイルシステムからデータを削除することができる。
【0091】
安全なコンテナは、クライアントデバイスのアプリケーションおよび他の構成要素によるファイルシステムへのアクセスを支配するアクセスマネージャーを含むことができる。ファイルシステムへのアクセスは、ドキュメントおよび/またはファイルシステムにおいて、クライアントアプリケーションによって維持されるドキュメントアクセスポリシー(例えば、コード化されたルール)に基づいて支配されることができる。ドキュメントアクセスポリシーは、(1)クライアントデバイスのどのアプリケーションまたは他の構成要素がアクセスを要請しているのか、(2)どのドキュメントが要請されているのか、(3)時間または日付、(4)クライアントデバイスの地理上の位置、(5)要請中のアプリケーションまたは他の構成要素が正しい証明書またはクレデンシャルを提供しているか、(6)クライアントデバイスのユーザーが正しいクレデンシャルを提供しているか、(7)その他の条件またはそれらの任意の組み合わせに基づいて、ファイルシステムへのアクセスを限定することができる。ユーザーのクレデンシャルは、例えば、パスワード、セキュリティ質問(例えば、あなたの高校のマスコットは何か?)への1つ以上の回答、生体情報(例えば、指紋スキャン、眼のスキャン)などを備えることができる。従って、アクセスマネージャーを使用することによって、安全なコンテナは、安全なコンテナにアクセスすることが認可されたアプリケーションのみによってアクセスされるように構成されることができる。1つの例として、アクセスマネージャーは、クライアントデバイスにインストールされた企業アプリケーションが、安全なコンテナにおいて格納されたデータにアクセスすることと、安全なコンテナにおいて格納されたデータへの非企業アプリケーションによるアクセスを防止することとを可能にすることができる。
【0092】
ドキュメントアクセス上の一時的な制限かつ地理的な制限は、有用であり得る。例えば、管理者は、(安全なコンテナ内に格納された)ドキュメントの利用可能性を特定のタイムウィンドウおよび/または地理ゾーン(例えば、GPSチップによって決定されるように)に制限するドキュメントアクセスポリシーをデプロイし得、クライアントデバイスは、ドキュメントにアクセスするために当該タイムウィンドウおよび/または地理的ゾーン内に存在しなければならない。また、特定の時間が過ぎた場合、またはクライアントデバイスが定義された地理ゾーンの外側におかれた場合、ドキュメントアクセスポリシーは、安全なコンテナまたはクライアントアプリケーションに対して、安全なコンテナからドキュメントを削除するように指示するか、別様にドキュメントを利用不可にするように指示することができる。
【0093】
いくつかのドキュメントは、ドキュメントが安全なコンテナ内に保存されることを禁止するアクセスポリシーを有することができる。そのような実施形態において、ドキュメントは、例えばクラウドサービスを介してユーザーがログインされるかまたは認証されるときにのみ、クライアントデバイス上における閲覧について利用可能であることができる。
【0094】
アクセスマネージャーは、リモートデバイス(例えば、企業リソースまたは他の企業サーバー)と安全なコンテナとの間における接続性のある特定のモードを実行するように構成されることができる。例えば、アクセスマネージャーは、リモートデバイスから安全なコンテナによって受け取られかつ/または安全なコンテナからリモートデバイスに送信されるドキュメントが、例えば安全化されたトンネル/接続を通して伝送されるように要求することができる。アクセスマネージャーは、安全なコンテナに伝送され安全なコンテナから伝送される全てのドキュメントが暗号化されるように要求することができる。クライアントアプリケーションまたはアクセスマネージャーは、安全なコンテナから送信されるドキュメントを暗号化するように、かつ安全なコンテナに送信されるドキュメントを復号化するように構成されることができる。安全なコンテナにおけるドキュメントは、暗号化された形態で格納されることもできる。
【0095】
安全なコンテナは、ドキュメントまたはドキュメントもしくは安全なコンテナ内に含まれるデータが、クライアントデバイスまたは他のデバイスの不正アプリケーションもしくは構成要素によって使用されることを防止するように構成されることができる。例えば、安全なコンテナからのドキュメントにアクセスするための認可を有するクライアントデバイスアプリケーションは、ユーザーがドキュメントのデータをコピーしてそのデータを別のファイルまたはアプリケーションインターフェースにペーストすること、またはドキュメントもしくはドキュメントデータを安全なコンテナ外に新しいファイルとしてローカルに保存することを防止するようにプログラミングされることができる。同様に、安全なコンテナは、そのようなコピー/ペーストおよびローカルな保存操作を許可しないドキュメントビューアおよび/またはエディタを含むことができる。さらに、アクセスマネージャーは、そのようなコピー/ペーストおよびローカルな保存操作を防止するように構成されることができる。また、安全なコンテナからのドキュメントにアクセスするようにプログラミングされ認可されたアプリケーションおよび安全なコンテナは、ユーザーがそのようなドキュメントを電子メールまたは他の通信形態に添付することを防止するように構成されることができる。
【0096】
1つ以上のアプリケーション(例えば、クライアントデバイスにインストールされたアプリケーション、および/またはCEBを介してアクセスされるネットワークアプリケーション)は、(例えば、ポリシーベースの実行を介して)企業関連データを安全なコンテナ内のみに書き込むようにプログラミングまたは制御されることができる。例えば、アプリケーションのソースコードは、安全なコンテナのリソース名を提供されることができる。同様に、(例えば、クライアントデバイス以外のデバイス上において稼働する)リモートアプリケーションは、(クライアントデバイスの他の構成要素またはメモリ場所と対照的に)安全なコンテナのみにデータまたはドキュメントを送信するように構成されることができる。安全なコンテナへのデータの格納は、例えば、アプリケーション、クライアントアプリケーション、および/または安全なブラウザの制御のもとで自動的に起こることができる。クライアントアプリケーションは、安全なコンテナ内に格納されたドキュメントまたは安全なコンテナ内に格納されるべきドキュメントを暗号化または復号化するようにプログラミングされることができる。ある特定の実施形態において、安全なコンテナは、安全なコンテナを識別し使用するようにプログラミングされた(クライアントデバイスまたはリモートデバイス上における)アプリケーションによってのみ使用されることができ、当該アプリケーションは、そのようにするための認可を有する。
【0097】
ネットワークアプリケーション406は、承認済みネットワークアプリケーション426および未承認ネットワークアプリケーション428を含むことができる。非限定的な例として、承認済みネットワークアプリケーション426は、ワークデイ、セールスフォース、オフィス365、SAPなどからのネットワークアプリケーションを含むことができる一方で、未承認ネットワークアプリケーション426は、ドロップボックス、Gメールなどからのネットワークアプリケーションを含むことができる。例えば、図4は、承認済みネットワークアプリケーション426がCEBを介してアクセスされる場合を例示している。オペレーション(1)において、クライアントデバイス402にインストールされたクライアントアプリケーション404のユーザー例は、クラウドサービス408のアクセスゲートウェイ422に登録または認証することができる。例えば、ユーザーは、ユーザーをクライアントデバイスに認証し、クライアントデバイス402にログインすることができる。クライアントアプリケーションは、自動的に稼働することができるか、またはユーザーによって起動されることができる。いくつかの実施形態において、ユーザーは、(例えば、ユーザーをクライアントアプリケーションに認証することによって)クライアントアプリケーションにサインインすることができる。ログインまたはサインインに応答して、クライアントアプリケーションは、ユーザーおよび/またはクライアントアプリケーションをアクセスゲートウェイ422に登録または認証することができる。
【0098】
オペレーション(2)において、登録または認証に応答して、アクセスゲートウェイ422は、ユーザーに利用可能であるかまたは予め割り当てられた、列挙されたネットワークアプリケーションのリストを識別するか、または検索することができ、リストをクライアントアプリケーションに提供することができる。例えば、登録または認証に応答して、アクセスゲートウェイは、ユーザーの識別および/またはユーザーのユーザープロフィールの検索を行うことができる。アイデンティティおよび/またはユーザープロフィールに従って、アクセスゲートウェイは、リストを決定することができる(例えば、ユーザーのユーザープロフィールおよび/またはアイデンティティと合致するネットワークアプリケーションの格納されたリストを検索する)。リストは、ユーザーのために承認されたネットワークアプリケーションのリストに対応することができる。アクセスゲートウェイは、リストをクライアントアプリケーションまたは組み込みブラウザに送信することができ、当該リストは、クライアントアプリケーションまたは組み込みブラウザを介して、選択のためにユーザーに(例えば、ストアフロントユーザーインターフェースにおいて)提示されることができる。
【0099】
オペレーション(3)において、ユーザーは、ユーザーに提示されたネットワークアプリケーションのリストから選択することによって、承認済みネットワークアプリケーション(例えば、SaaSアプリケーション)への接続を開始することができる。例えば、ユーザーは、クライアントアプリケーションまたは組み込みブラウザを介して表示される、承認済みネイティブアプリケーションのアイコンまたは他の表現をクリックすることができる。このユーザーアクションによって、CEBは、ネットワークアプリケーションを供給するサーバーへの接続要請またはアクセス要請を送信することができる。要請は、ユーザーを認証するために、サーバー(例えば、SaaSプロバイダ)に対する、アクセスゲートウェイと通信することへの要請を含むことができる。サーバーは、例えばユーザーを認証するように、アクセスゲートウェイに要請を送信することができる。
【0100】
オペレーション(4)において、アクセスゲートウェイは、ユーザーを認証するために、サーバーとともにSSOを実施することができる。例えば、ユーザーを認証するようにというサーバーの要請に応答して、アクセスゲートウェイは、SSOのために1つ以上のサーバー430にユーザーのクレデンシャルを提供して、選択されたネットワークアプリケーションおよび/または他の承認済みネットワークアプリケーションにアクセスすることができる。オペレーション(5)において、ユーザーは、SSOに基づいて(例えば、クレデンシャルを使用して)、選択されたネットワークアプリケーションにログインすることができる。クライアントアプリケーション(例えば、ネットワーキングエージェント412および/またはリモートセッションエージェント416)は、選択されたネットワークアプリケーションにアクセスするために、1つ以上のサーバー430との安全な接続およびセッションを確立することができる。CEBは、安全な接続を介して受け取られたアプリケーショントラフィックを復号化することができる。CEBは、CEBおよびサーバー430への安全な接続を介して送信されたトラフィックを監視することができる。
【0101】
オペレーション(6)において、クライアントアプリケーションは、解析処理のために、クラウドサービス408の解析サービス424に情報を提供することができる。例えば、クライアントアプリケーション404のクラウドサービスエージェント414は、選択されたネットワークアプリケーションを有するユーザー相互作用イベントについて監視することができるか、または当該イベントを捕捉することができる。クラウドサービスエージェント414は、ユーザー相互作用イベントを解析サービス424に伝えることができ、当該イベントは、解析を生成するために処理される。
【0102】
図5は、安全なブラウザを使用するシステムの例示的実施形態を示す。概略として、システムは、クラウドサービス408と、ネットワークアプリケーション406と、クライアントデバイス402とを含む。いくつかの実施形態において、システムの様々な要素は、図4について上記で説明されたものと類似しているが、(組み込みブラウザを有する)クライアントアプリケーションは、クライアントデバイス402において利用可能でない。標準的または典型的なブラウザがクライアントデバイス上において利用可能であり得、ユーザーは、そこから例えば承認済みネットワークアプリケーションにアクセスすることへの要請を開始することができる。ネットワークアプリケーションは、管理者によって設定されることができるかまたは自動的に設定されることができるポリシーを介して承認済みまたは未承認であると特定されることができる(例えば、人工知能を介して)。
【0103】
例えば、オペレーション(1)において、ユーザーは、標準的なブラウザを使用することによってネットワークアプリケーションにログインし得る。承認済みネットワークアプリケーションにアクセスするために、ユーザーは、標準的なブラウザを介して、ネットワークアプリケーションを提供するサーバーの予め定義されたURLおよび/または対応するウェブページにアクセスして、ネットワークアプリケーションにアクセスすることへの要請を開始し得る。いくつかの実施形態において、要請は、(例えば、要請のデータパスにおいて)指定されたゲートウェイサービスに転送されることができるか、指定されたゲートウェイサービスによって傍受されることができる。例えば、ゲートウェイサービスは、クライアントデバイス上に(例えば、実行可能なプログラムとして)存在することができるか、または例えば、クラウドサービス408のネットワークデバイス432上に存在することができる。いくつかの実施形態において、アクセスゲートウェイは、ゲートウェイサービスに対応することができるか、またはゲートウェイサービスを含むことができる。ゲートウェイサービスは、要請されたネットワークアプリケーションが承認済みネットワークアプリケーションであるかどうか決定することができる。ゲートウェイサービスは、CEBが要請を開始したかどうか決定することができる。ゲートウェイサービスは、要請がCEB以外のクライアントデバイスにおけるソースから開始される(例えば、標準的なブラウザによって開始される)ことを検出または別様に決定することができる。いくつかの実施形態において、要請がCEBから開始するかどうかということ(例えば、要請されたネットワークアプリケーションが承認済みであるか)、ユーザーが標準的なブラウザを介して要請を開始していること、ならびに/または予め定義されたURLおよび/または対応するウェブページがアクセスされることを、指定されたゲートウェイサービスが検出または決定する必要がない。
【0104】
オペレーション(2)においてサーバーは、クラウドサービス408のアクセスゲートウェイを介してユーザーを認証し得る。サーバーは、要請に応答して、ユーザーを認証するためにアクセスゲートウェイと通信し得る。例えば、要請は、ユーザーを認証するためにアクセスゲートウェイと通信するようにサーバーに対して示すことを含むことができる。いくつかの実施形態において、サーバーは、承認済みネットワークアプリケーションにアクセスする要請について、ユーザーを認証するためにアクセスゲートウェイと通信するように予め構成される。サーバーは、ユーザーを認証するように、アクセスゲートウェイに要請を送信し得る。ユーザーを認証するようにというサーバーの要請に応答して、アクセスゲートウェイは、ユーザーのクレデンシャルをサーバー430に提供することができる。
【0105】
オペレーション(3)において、ゲートウェイサービスおよび/またはサーバーは、安全なブラウジングサービスを提供する安全なブラウザ420に、全てのトラフィックを導く(またはリダイレクトする)ことができる。これは、要請されたネットワークアプリケーションが承認されたネットワークアプリケーションであるという決定、要請がCEB以外のソースから開始されるという決定、要請されたネットワークアプリケーションが承認されるという決定、ユーザーが標準的なブラウザを介して要請を開始しているという決定、ならびに/または予め定義されたURLおよび/または対応するウェブページがアクセスされるという決定のうちの少なくとも1つに応答したものであり得る。
【0106】
ユーザーのURLセッションは、安全なブラウザにリダイレクトされることができる。例えば、サーバー、ゲートウェイサービスおよび/またはアクセスゲートウェイは、決定に応答して、URLリダイレクトメッセージを生成すること、および/またはURLリダイレクトメッセージを標準的なブラウザに送信することができる。標準的なブラウザの安全なブラウザプラグインは、URLリダイレクトメッセージを受け取ることができ、例えば、未承認ネットワークアプリケーションにアクセスするように、安全なブラウザ420に要請を送信することができる。安全なブラウザ420は、未承認ネットワークアプリケーションのサーバーに要請を導くことができる。URLリダイレクトメッセージは、標準的なブラウザ(および/または安全なブラウザプラグイン)に対して、標準的なブラウザからネットワークデバイス上でホストされた安全なブラウザ420にトラフィック(例えば、ネットワークアプリケーションへ向かう)を導くように指示することができる。これは、安全なブラウザサービスを通した動的な経路決定を介して、クライアントレスのアクセスおよび制御を提供することができる。いくつかの実施形態において、全てのトラフィックを安全なブラウザ420にリダイレクトすることは、サーバーによるユーザーの認証を(例えば、SSOを使用することによって)実施する前に開始または構成される。
【0107】
いくつかの実施形態において、ゲートウェイサービスは、要請されたネットワークアプリケーションのサーバーに対して、安全なブラウザ420と通信するように指令または要請することができる。例えば、ゲートウェイサービスは、ネットワークアプリケーションのためのアプリケーションセッションを確立するために、サービスおよび/または安全なブラウザに対して、サーバーと安全なブラウザとの間における安全化された接続を確立するように指令することができる。
【0108】
いくつかの実施形態において、安全化されたブラウザ420は、クラウドサービス408のネットワークデバイス432上においてホストされたブラウザを備えている。安全化されたブラウザ420は、例えば少なくとも図4に関連して上記で説明された、安全化されたブラウザ420の1つ以上の特徴を含むことができる。ホストされたブラウザは、クライアントデバイス上ではなくネットワークデバイス432上においてホストされたCEBの組み込みブラウザを含むことができる。ホストされたブラウザは、ネットワークデバイス432上においてホストされたCEBのホストされた仮想化バージョンの組み込みブラウザを含むことができる。クライアントデバイスにインストールされたCEBと同様に、トラフィックは、ネットワークデバイス上においてホストされたCEBを通して経路決定され、それは、管理者が、CEBを通してトラフィックの可視性を有することと、セキュリティポリシー制御、解析、および/またはパフォーマンスの管理を制御し続けることとを可能にする。
【0109】
図6は、安全なブラウザプラグインを使用するブラウザリダイレクトについての例示的実装を例示している。概略として、実装は、クライアントデバイス上において作動する安全なブラウザプラグイン516を有するウェブブラウザ512と、ネットワークデバイス上に存在するホストされたウェブブラウザ(または安全なブラウザ)522とを含む。ウェブブラウザ512は、例えば、図4に関連して上記で論じられたような組み込みブラウザの代わりに標準的なブラウザに対応することができる。安全なブラウザプラグイン516は、第1のネットワーク510内において稼働することができ、第2のネットワーク530においてサーバー532にアクセスすることができる。第1のネットワーク510および第2のネットワーク530は、例示目的のためであり、より少ない数のコンピューターネットワークまたは追加的なコンピューターネットワークに置き換えられ得る。安全なブラウザプラグイン516は、標準的なブラウザ512にインストールされることができる。プラグインは、1つ以上の構成要素を含むことができる。そのような構成要素の1つは、アクティブエックスコントロールもしくはジャバコントロール、または任意の他の種類および/もしくは形態の、標準的なブラウザにローディングされ標準的なブラウザにおいて稼働することが可能な実行可能な命令を含むことができる。例えば、標準的なブラウザは、標準的なブラウザのコンテクストまたはメモリ空間において、標準的なブラウザプラグイン516のアクティブエックスコントロールをローディングし動作させることができる。いくつかの実施形態において、安全なブラウザプラグインは、標準的なブラウザ上における拡張としてインストールされることができ、ユーザーは、プラグインまたは拡張を有効化または無効化することを選択することができる。安全なブラウザプラグインは、デジタル作業空間の安全化された部分内のリソースを使用することおよび/または当該リソースにアクセスすることによって、安全化のために安全化されたブラウザ420と通信および/または作動することができる。
【0110】
標準的なブラウザ512内において作動する安全なブラウザプラグイン516を使用することによって、標準的なブラウザ512を介してアクセスされるネットワークアプリケーションは、ホストされた安全なブラウザにリダイレクトされることができる。例えば、安全なブラウザプラグイン516は、ネットワークアプリケーションが標準的なブラウザを介してアクセスされていることを検出するように実装および/または設計されることができ、トラフィックを、ネットワークアプリケーションと関連づけられたクライアントデバイスからホストされた安全なブラウザへ導くこと/リダイレクトすることができる。ホストされた安全なブラウザは、ネットワークアプリケーションから受け取られたトラフィックを、例えばレンダリングおよび/または表示のために、安全なブラウザプラグイン516および/またはクライアントエージェント514に導くことができる。クライアントエージェント514は、ウェブブラウザ512および/または安全なブラウザプラグイン内において稼働することができ、例えば少なくとも図4に関連して上記で論じられたクライアントアプリケーション404のある特定の要素または特徴を含むことができる。例えば、クライアントエージェント514は、ウェブブラウザ512においてネットワークアプリケーションをレンダリングするために、リモートセッションエージェント418を含むことができる。いくつかの実施形態において、ネットワークアプリケーションは、ホストされた安全なブラウザにおいてレンダリングされ、レンダリングされたデータは、処理および/または表示のために、安全なブラウザプラグイン516および/またはクライアントエージェント514に伝えられるか、または写し出される。
【0111】
例として、ユーザーは、リモートで作業している場合があり、ユーザーが安全でないネットワークに接続されたコンピューティングデバイス上で作業している間に、ユーザーは、安全な企業内ネットワークの内部にあるネットワークアプリケーションにアクセスすることを望む場合がある。この場合、ユーザーは、第1のネットワーク510において稼働する標準的なブラウザ512を利用している場合があり、第1のネットワーク510は、安全でないネットワークを備え得る。ユーザーがアクセスすることを望んでいるサーバー430は、第2のネットワーク530上に存在し得、第2のネットワーク530は、例えば安全な企業内ネットワークを備えている。ユーザーは、安全なウェブサイト532についての内部ユニフォームレコードロケーター(URL)をクリックすることによって安全でない第1のネットワーク530からサーバー430にアクセスできない場合がある。すなわち、ユーザーは、外部の安全でないネットワーク510から標準的なブラウザ512を実行する一方で異なるURL(例えば、外部URL)を利用する必要があり得る。外部URLは、第2のネットワーク530(例えば、安全なネットワーク)内において1つ以上のサーバー430にアクセスするように構成された1つ以上のホストされたウェブブラウザ522に導かれ得るか、または当該ウェブブラウザをアドレス指定し得る。安全なアクセスを維持するために、安全なブラウザプラグイン516は、ホストされた安全なブラウザについて、内部URLを外部URLにリダイレクトし得る。
【0112】
安全なブラウザプラグイン516は、内部URLを外部URLにリダイレクトするかどうかを識別するために、ネットワーク検出を実装することが可能であり得る。標準的なブラウザ512は、安全なネットワーク内において稼働するウェブサイトについての内部URLを備えている要請を受け取り得る。例えば、標準的なブラウザ512は、ユーザーがウェブアドレス(例えば、安全なウェブサイト532についての)を標準的なブラウザに入力することに応答して、要請を受け取り得る。安全なブラウザプラグイン516は、ホストされたウェブブラウザアプリケーションについて、ユーザーウェブブラウザアプリケーション512を内部URLから外部URLにリダイレクトし得る。例えば、安全なブラウザプラグイン516は、安全なネットワーク530内において稼働するホストされたウェブブラウザアプリケーション522について、内部URLを外部URLに置き換え得る。
【0113】
安全なブラウザプラグイン516は、クライアントエージェント514がホストされたウェブブラウザアプリケーション522に接続されることを可能にし得る。クライアントエージェント514は、プラグイン構成要素(アクティブエックスコントロールもしくはジャバコントロール、または任意の他の種類および/もしくは形態の、標準的なブラウザ512にローディングされ標準的なブラウザ512において稼働することが可能な実行可能な命令など)を備え得る。例えば、クライアントエージェント514は、ユーザーウェブブラウザアプリケーション512のコンテクストまたはメモリ空間などにおいて、標準的なブラウザ512によってローディングされ動作させられるアクティブエックスコントロールを備え得る。クライアントエージェント514は、ユーザーウェブブラウザアプリケーション512内において、ホストされたウェブブラウザアプリケーション522のコンテンツを提示するように予め構成され得る。
【0114】
クライアントエージェント514は、サービス520上において稼働するホストされたウェブブラウザアプリケーション522によって生成された表示出力を提示するために、シンクライアントまたはリモートディスプレイプロトコルを使用することによってサーバーまたはクラウド/ホストされたウェブブラウザサービス520に接続し得る。シンクライアントまたはリモートディスプレイプロトコルは、以下のプロトコルの非網羅的なリストのうちの任意の1つであり得る:フロリダ州フォートローダーデールのサイトリックスシステムズ,インコーポレイテッドによって開発されたインディペンデントコンピューティングアーキテクチャ(ICA)プロトコル;またはワシントン州レドモンドのMicrosoft(登録商標)社によって製造されたリモートデスクトッププロトコル(RDP)。
【0115】
ホストされたウェブブラウザアプリケーション522は、フルスクリーンモードで要請されたネットワークアプリケーションにナビゲートし得、要請されたネットワークアプリケーションをレンダリングすることができる。クライアントエージェント514は、コンテンツが標準的なブラウザ512によって表示されているように見えるように(例えば、フルスクリーンモードで表示されているコンテンツに基づいて)、ウェブブラウザアプリケーション512上のネットワークアプリケーションのコンテンツまたはレンディションをシームレスかつトランスペアレントな態様で提示し得る。言い換えると、ユーザーは、ウェブサイトコンテンツがホストされたウェブブラウザアプリケーション522によってではなくユーザーウェブブラウザアプリケーション512によって表示されているという印象を与えられ得る。クライアントエージェント514は、シンクライアントまたはリモートディスプレイプロトコルを使用することによってユーザーウェブブラウザアプリケーション512によって生成されたナビゲーションコマンドをホストされたウェブブラウザアプリケーション522に伝送し得る。ナビゲーションコマンドによる、ホストされたウェブブラウザアプリケーション522の表示出力に対する変更は、クライアントエージェント514によってユーザーウェブブラウザアプリケーション512に反映され得、ナビゲーションコマンドがユーザーウェブブラウザアプリケーション512によって実行されたという印象をユーザーに与える。
【0116】
再び図5を参照すると、オペレーション(4)において、安全なブラウザセッションをレンダリングまたは表示するために、新しいブラウザタブが標準的なブラウザ上において開くことができる。新しいブラウザタブは、例えば安全なブラウザプラグインによって確立されるかまたは開かれることができる。例えば図6に関連して上記で論じられたように、安全なブラウザプラグインおよび/またはクライアントエージェントは、安全なブラウザセッションからデータを受け取ることができ、新しいブラウザタブ内においてネットワークアプリケーションをレンダリングすることができる。
【0117】
オペレーション(5)において、安全なブラウザは、ネットワークアプリケーションを介して全てのユーザー相互作用イベントを処理のための解析サービスにフィードバックすることができる。安全なブラウザプラグインは、ブラウザタブ内においてネットワークアプリケーションのレンディションに導かれた任意のユーザー相互作用イベントについて監視し傍受することができる。従って、ユーザーは、(クライアントアプリケーションが存在しないとき)安全なブラウザとクラウドサービスとの相互作動を介して、ネットワークアプリケーションのトラフィックへの可視性を可能にする一方で、ネットワークアプリケーションにアクセスするためにネイティブ(または標準的な)ブラウザを使用することができる。
【0118】
図7は、安全なブラウザを使用するシステムの別の例示的実施形態を示している。概略として、システムは、クラウドサービス408と、ネットワークアプリケーション406と、クライアントデバイス402とを含む。いくつかの実施形態において、システムの様々な要素は、図5について上記で説明された要素に類似している。組み込みブラウザを有するクライアントアプリケーションは、クライアントデバイス402において利用可能でない。標準的または典型的な(例えば、HTML5)ブラウザがクライアントデバイス上において利用可能であり、ユーザーは、そこから未承認ネットワークアプリケーションにアクセスすることへの要請を開始することができる。ネットワークアプリケーションは、管理者によって設定されることができるかまたは(例えば、人工知能を介して)自動的に設定されることができるポリシーを介して承認済みまたは未承認であると特定されることができる。
【0119】
オペレーション(1)において、ユーザーは、標準的なブラウザを使用することによって未承認ネットワークアプリケーションにログインすることを試み得る。ユーザーは、ネットワークアプリケーションを供給するサーバーのウェブページにアクセスすることを試み得、ネットワークアプリケーションにアクセスすることへの要請を開始することを試み得る。いくつかの実施形態において、要請は、指定されたゲートウェイサービスに転送されることができるか、または指定されたゲートウェイサービスによって傍受されることができる(例えば、要請のデータパスにおいて)。例えば、ゲートウェイサービス(時に、SWGという)は、クライアントデバイス上において(例えば、実行可能なプログラムとして)存在することができるか、または例えば、クラウドサービス408のネットワークデバイス432上に存在することができる。ゲートウェイサービスは、要請されたネットワークアプリケーションが承認済みネットワークアプリケーションであるかどうか検出または別様に決定することができる。ゲートウェイサービスは、CEBが要請を開始したかどうか決定することができる。ゲートウェイサービスは、要請がCEB以外のクライアントデバイスにおけるソースから開始される(例えば、標準的なブラウザによって開始される)ことを検出または別様に決定することができる。
【0120】
オペレーション(2)において、ゲートウェイサービスは、要請されたネットワークアプリケーションが未承認ネットワークアプリケーションであることを検出する。ゲートウェイサービスは、例えば要請から情報(例えば、要請されたネットワークアプリケーションの名前、宛先アドレス)を抽出して、当該情報を承認済みおよび/または未承認ネットワークアプリケーションのデータベースからのものと比較することができる。ゲートウェイサービスは、その比較に基づいて、要請されたネットワークアプリケーションが未承認ネットワークアプリケーションであると決定することができる。
【0121】
オペレーション(3)において、決定に応答して、ゲートウェイサービスは、例えば要請を遮断することによって、要請されたネットワークアプリケーションへのアクセスを遮断することができる。ゲートウェイサービスは、決定に応答して、URLリダイレクトメッセージを生成すること、および/またはURLリダイレクトメッセージを標準的なブラウザに送信することができる。URLリダイレクトメッセージは、オペレーション(3)において図5におけるサーバーから標準的なブラウザに送信されたURLリダイレクトメッセージに類似し得る。標準的なブラウザの安全なブラウザプラグインは、URLリダイレクトメッセージを受け取ることができ、例えば未承認ネットワークアプリケーションにアクセスすることへの要請を安全なブラウザ420に送信することができる。安全なブラウザ420は、未承認ネットワークアプリケーションのサーバーに要請を導くことができる。
【0122】
未承認ネットワークアプリケーションのサーバーは、例えば安全なブラウザから要請を受け取ることに応答して、クラウドサービス408のアクセスゲートウェイを介してユーザーを認証し得る。サーバーは、要請に応じて、ユーザーを認証するためにアクセスゲートウェイと通信し得る。サーバーは、ユーザーを認証するように、アクセスゲートウェイに要請を送信し得る。ユーザーを認証するようにというサーバーの要請に応答して、アクセスゲートウェイは、ユーザーのクレデンシャルをサーバー430に提供することができる。認証の際、安全なブラウザ(または対応するCEB)は、安全な接続およびアプリケーションセッションをサービスと確立することができる。
【0123】
オペレーション(4)において、安全なブラウザのアプリケーションセッションをレンダリングまたは表示するために、新しいブラウザタブが標準的なブラウザ上において開くことができる。新しいブラウザタブは、例えば安全なブラウザプラグインによって確立されるかまたは開かれることができる。例えば図5〜図6に関連して上記で論じられたように、安全なブラウザプラグインおよび/またはクライアントエージェントは、安全なブラウザセッションからデータを受け取ることができ、新しいブラウザタブ内においてネットワークアプリケーションをレンダリングすることができる。
【0124】
オペレーション(5)において、安全なブラウザは、ネットワークアプリケーションを介して全てのユーザー相互作用イベントを処理のための解析サービスにフィードバックすることができる。安全なブラウザプラグインは、ブラウザタブ内におけるネットワークアプリケーションのレンディションに導かれた任意のユーザー相互作用イベントについて監視し傍受することができる。従って、ユーザーは、(クライアントアプリケーションが存在しないとき)安全なブラウザとクラウドサービスとの相互作動を介して、ネットワークアプリケーションのトラフィックへの可視性を可能にする一方で、ネットワークアプリケーションにアクセスするためにネイティブ(または標準的な)ブラウザを使用することができる。
【0125】
いくつかの実施形態において、クライアントデバイス上においてCEBが存在しないかまたは利用不可である場合、ブラウザリダイレクトは、単一のホストされた安全なブラウザ(またはホストされたCEB)を通ってリダイレクトされた全てのトラフィックを有するのではなく扱うために、各要請されたネットワークアプリケーションが対応するホストされた安全なブラウザ(またはホストされたCEB)を介してアクセスされるように実施される。各専用の安全なブラウザは、区画化および向上させられたセキュリティを提供することができる。
【0126】
CEBの使用は、クライアントデバイスにローカルであろうがホストされていようが、解析、サービスレベル合意(service level agreement;SLA)、リソース利用、監査などのために、アプリケーショントラフィックのエンドツーエンドの可視性を可能にすることができる。そのような可視性に加えて、CEBは、これらの様態のうちの任意の様態および他の様態を管理ならびに制御するためのポリシーとともに構成されることができる。例えば、DLP特徴は、「コピーおよびペースト」アクティビティ、ファイルのダウンロード、ファイルの共有を制御するように、かつ例えばウォーターマーキングを実装するようにサポートされることができる。別の例として、CEBは、周辺機器などローカルデバイスおよび/またはデバイスリソースへのアクセスを管理および制御するためのポリシーとともに構成されることができる。
【0127】
図8を参照すると、1つ以上のローカル組み込みブラウザと1つ以上のホストされ安全化されたブラウザとを使用するシステムの例示的実施形態が示されている。一方が適切なCEBをローカルに搭載され得、他方のクライアントデバイスがインストールされた適切なローカルCEBを有し得ないように、異なる種類のクライアントデバイス402Aと402Bとが使用され得る(例えば、BYODコンテクストにおいて)環境が示されている。そのような環境において、図4、5および7において説明されたシステムは、ローカルにインストールされ適切なCEBの利用可能性に基づいて各クライアントデバイスをサポートするために使用されることができる。
【0128】
図9は、1つ以上のローカル組み込みブラウザと1つ以上のホストされ安全化されたブラウザとを使用するための例示的過程フローを示している。各クライアントデバイスがネットワークアプリケーションにアクセスするために組み込みブラウザまたはホストされ安全化されたブラウザが使用されるべきかどうか決定するために、過程フローは、図8において上記で説明された環境において使用されることができる。例えば、オペレーション901において、HTTPクライアントは、ウェブサービス(例えば、ネットワークアプリケーションのサーバー)にアクセスすることを試みることができる。オペレーション903において、ウェブサービスは、認証のためにHTTPクライアントをゲートウェイサービスにリダイレクトすることができる。オペレーション906において、ゲートウェイサービスは、HTTPクライアントがCEBであるかどうか決定することができる。CEBであれば、オペレーション909において、ゲートウェイサービスは、CEBが適切なCEB(例えば、定義されたアプリケーションポリシーを実行することが可能なCEB)であるかどうか決定することができる。適切なCEBであれば、オペレーション911において、CEBは、ウェブサービスへのアクセスを許可され、定義されたポリシーを実行することができる。
【0129】
HTTPクライアントがCEBでないとゲートウェイサービスが決定した場合、オペレーション907において、ゲートウェイサービスは、CEBの仮想化バージョンを初期化させリモートサーバー(例えば、クラウドサービス408のネットワークデバイス432)上においてホストさせることができる。いくつかの実施形態において、そのようなホストされたCEBは、既にネットワークデバイス432上において利用可能であり得、使用のために選択されることができる。例えばオペレーション911において、CEBは、ウェブサービスへのアクセスを許可され、定義されたポリシーを実行することができる。
【0130】
HTTPクライアントがCEBであるがCEBが適切なCEBでないとゲートウェイサービスが決定した場合、ゲートウェイサービスは、オペレーション907において、CEBの仮想化バージョンを初期化させリモートサーバー(例えば、クラウドサービス408のネットワークデバイス432)上においてホストさせることができる。いくつかの実施形態において、そのようなホストされたCEBは、既にネットワークデバイス432上において利用可能であり得、使用のために選択されることができる。例えばオペレーション911において、CEBは、ウェブサービスへのアクセスを許可され、定義されたポリシーを実行することができる。
【0131】
いくつかの実施形態において、ユーザーが企業データセンターに場所決定されたウェブアプリケーションにアクセスすることを要請している場合、CEBを有するクライアントアプリケーションが検出されたときに(クラウドサービスにおける、またはオンプレミスの)ゲートウェイサービスは、アクセスを許可することができる。別様に、要請は、CEBのホストされた仮想化バージョンを有するサービスに経路決定されることができ、そして、アクセスが認証され与えられる。
【0132】
例えばオペレーション905および/またはオペレーション909において、HTTPクライアントがCEBであるかどうか、およびそれが適切なCEBであるかどうかということに関してなされた決定は、多くのファクターによって決定され得る。例えば、HTTPクライアントがCEBであると決定するために、ゲートウェイサービスは、ファクターを考慮し得、当該ファクターは、例えば、以下のうちの少なくとも1つを含む:ユーザーアイデンティティおよび認証の強度、クライアントロケーション、クライアントIPアドレス、ユーザーアイデンティティ、クライアントロケーション、クライアントIPの信頼性の度合い、クライアントデバイスのジェイルブレイクステータス、アンチマルウェアソフトウェアのステータス、クライアントデバイスの企業内ポリシーに対するコンプライアンス、および/またはクライアントソフトウェアの整合性のリモート証明もしくは他の証拠。
【0133】
CEBが定義されたアプリケーションポリシー(クライアントバージョン、クライアントOSプラットフォームおよび他のファクターによって変化し得る)を全て守ることができるかまたはサポートすることができるか決定するために、クライアントデバイスのソフトウェアおよびゲートウェイサービスは、性能ネゴシエーションの実施および/またはバージョン情報の交換を行い得る。いくつかの実施形態において、ゲートウェイサービスは、CEBが使用に適切なCEBであるかどうか決定するために、CEBのバージョン番号または識別子について質問又はチェックすることができる。
【0134】
CEBを通って全てのトラフィックを駆動し、そして、SaaSおよびWebベースのシステムにアクセスするコンテンツの追加的な制御を許可する。SaaSおよびWebトラフィックのデータ損失防止(data loss prevention;DLP)は、他のCEBアクセスアプリケーションまたはIT管理対象デバイスに対するコピーおよびペースト制御を含む特徴を有するCEBアプリを通して適用されることができる。DLPは、コンテンツがIT制御のもとで指定されたファイルサーバーまたはサービスのみにダウンロードされることを可能にすることによって、実行されることもできる。
【0135】
図10を参照すると、ウェブページへのユーザーアクセスを管理するシステムの例示的実施形態が示されている。安全であると知られているウェブページ(またはウェブサイト)もあるが、疑わしいものであり得るウェブページ(またはウェブサイト)もある。ユーザーは、標準的なブラウザを通して、対応するURLを介してウェブページにアクセスし得る。例えば、ユーザーは、URLに対応するリンクをクリックし得、当該リンクは、メールアプリケーションを使用することによって閲覧されている電子メールに含まれ得る。アクセスゲートウェイ(SWG)は、リンクのクリックによって生成されたアクセス要請を傍受し得、対応するURLが安全か疑わしいか決定することができる。URLが安全であると知られている場合、アクセスゲートウェイは、要請が対応するウェブサイトまたはウェブサーバーに進むことを可能にすることができる。URLが疑わしい場合、アクセスゲートウェイは、ホストされた安全なブラウザを介して扱われるように要請をリダイレクトすることができる。少なくとも図7および5に関連して論じられたようなブラウザリダイレクトを介したネットワークアプリケーションの扱いと同様に、安全なブラウザは、ウェブページについてのアクセスを要請することができ、(標準的なブラウザの代わりに)ウェブページにアクセスすることができ、ウェブページの情報が標準的なブラウザに伝えられることを可能にすることができる。
【0136】
C.組み込みブラウザを通してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース(API)を呼び出すシステムおよび方法
【0137】
本開示は、組み込みブラウザを通してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース(API)を呼び出すことに関する。クライアントアプリケーションは、クライアントデバイス上において実行可能であることができ、クライアントアプリケーションの組み込みブラウザを通してクライアントデバイスのために1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することができる。クライアントアプリケーションは、ネットワークアプリケーションによるAPIへの呼び出しを傍受することができ、呼び出されたAPIを強化するか、または、ネットワークアプリケーションによって呼び出されたAPIと比較して増大させられた機能性を有する異なるAPIを提供することができる。例えば、クライアントアプリケーションによって提供される異なるAPIまたは強化されたAPIは、元々呼び出されたAPIを通じて利用可能でない機能性を含むことができる。
【0138】
実施形態において、セッションの間、ネットワークアプリケーション(例えば、サービスとしてのソフトウェア(software−as−a−service;SaaSアプリケーション)は、クライアントアプリケーションの組み込みブラウザを介してAPIを呼び出すことができる。APIは、印刷APIを含み得る。クライアントアプリケーションは、印刷APIの機能性を向上させるために、呼び出された印刷APIを強化または最適化することができる。例えば、クライアントアプリケーションは、典型的なブラウザ印刷フローを実施する代わりに印刷APIが直接印刷するように、印刷APIを修正することができる。クライアントアプリケーションは、直接印刷するように構成された第2の異なる印刷APIを提供し得る。
【0139】
クライアントアプリケーションは、(クライアントデバイスと連結されたUSBデバイス、生体認証などであるがそれらに限定されない)クライアントリソース、クライアントドライブ、またはクライアントデバイスにアクセスするために、および/またはクライアントデバイスにローカルまたはネイティブであるアプリケーションと通信するためにネットワークアプリケーションが呼び出すことができるAPIを提供し得る。
【0140】
いくつかの実施形態において、特定のネットワークアプリケーションがそれぞれの1つ以上のポリシーをサポートしないとしても、クライアントアプリケーションは、ある特定の制限を実行するためにクライアントデバイスとネットワークアプリケーションとの間におけるセッション上において1つ以上のポリシーを適用することができる。例えば、1つの実施形態において、ネットワークアプリケーションがクライアントアプリケーションなしにスマートカード認証をサポートしないとしても、クライアントアプリケーションは、ネットワークアプリケーションについてスマートカード認証を実行するためにポリシーを適用することができる。
【0141】
クライアントアプリケーションは、クライアントデバイスおよび/または周辺デバイスなどであるがそれらに限定されない、ネイティブエンドポイントアプリケーションとの統合を構築するためにネットワークアプリケーションによって作成された呼び出しを傍受することができる。クライアントアプリケーションは、データ損失防止のためのポリシーを実行すること、および/またはネットワークアプリケーションのある特定の部分へのアクセスを制限することができる。クライアントアプリケーションは、ネットワークアプリケーションがどのようにローディングおよび/またはレンダリングするかを制御することによって、ネットワークアプリケーションパフォーマンスを最適化することができ、ネットワークアプリケーション使用にわたってよりきめ細かいアクセス制御を提供することができる。
【0142】
図11を参照すると、クライアントアプリケーション1104の組み込みブラウザ1106を介して1つ以上のネットワークアプリケーション1120a〜1120nに対する1つ以上のセッション1130a〜1130n(本明細書において、アプリケーションセッションともいう)を確立するためにクライアントデバイス1102上で稼働するクライアントアプリケーション1104の1つの実施形態のブロック図が示されている。クライアントアプリケーション1104は、組み込みブラウザ1106と、ポリシーマネージャー1108と、複数のAPI1110a〜1110nとを含む。クライアントアプリケーション1104は、本明細書において説明される任意のクライアントアプリケーションの例であり得る。例えば、クライアントアプリケーション1104は、図4のクライアントアプリケーション404と同様であり得るかまたは実質的に類似し得る。
【0143】
組み込みブラウザ1106を有するクライアントアプリケーション1104(CEB)は、本明細書において説明されるようなCEBの任意の要素を含むことができる。例えば、組み込みブラウザ1106は、図4に関して上記で説明されたような組み込みブラウザ410と同様であり得るかまたは実質的に類似し得る。組み込みブラウザ1106は、ウェブブラウザアプリケーションまたはエンジンの要素と機能性とを含むことができる。組み込みブラウザ1106は、クライアントアプリケーション1104の構成要素または拡張としてネットワークアプリケーション1120a〜1120nのうちの1つ以上をローカルにレンダリングすることができる。例えば、組み込みブラウザ1106は、アプリケーションセッション1130の制御と完全な可視性とをCEBに提供することができる、CEB内部のSaaS/Webアプリケーションをレンダリングすることができる。
【0144】
クライアントアプリケーション1104は、組み込みブラウザ1106を通してクライアントデバイス1102のためにネットワークアプリケーション1120a〜1120nのうちの1つ以上に対するセッション1130a〜1130nのうちの1つ以上を確立することができる。セッション1130a〜1130nは、本明細書において説明されるような任意の種類または形態のセッションを含むことができる。例えば、セッション1130a〜1130nは、アプリケーションセッション、実行セッション、デスクトップセッション、ホストされたデスクトップセッション、端末サービスセッション、ブラウザセッション、リモートデスクトップセッション、およびリモートアプリケーションセッションを含み得るが、それらに限定されない。セッション1130a〜1130nは、ネットワークアプリケーション1120a〜1120nとクライアントデバイス1102との間において確立された、暗号化および/または安全なセッションを含み得る。
【0145】
ネットワークアプリケーション1120a〜1120nは、本明細書において詳細に説明された任意の種類または形態のネットワークアプリケーションを含み得る。例えば、ネットワークアプリケーション1120a〜1120nは、図4に関して上記で説明されたネットワークアプリケーション406と同様であり得るかまたは実質的に類似し得る。ネットワークアプリケーション1120a〜1120nは、1つ以上のサーバーから提供されかつ/または1つ以上のサーバー上でホストされるアプリケーション(アプリ)を含み得、当該アプリケーションは、ウェブアプリケーション、サービスとしてのソフトウェア(software−as−a−service;SaaS)アプリケーション、および/またはリモートホストされたアプリケーションなどであるがそれらに限定されない。いくつかの実施形態において、ネットワークアプリケーション1120a〜1120nは、ネットワーク104を介してクライアントデバイス1102によってアクセスされるサーバー上においてホストされたアプリケーションを含むことができる。ネットワークアプリケーション1120a〜1120nは、1つ以上のウェブページ1122を含むことができるか、当該ウェブページを実行することができる。ネットワークアプリケーションは、1つ以上のAPI112と連結されることができるか、当該APIを呼び出すことができる。API1112は、クライアントアプリケーションによって提供される複数のAPI1110a〜1110nと異なることができる。クライアントアプリケーション1104は、ネットワークアプリケーション1120a〜1120nによって作成されるAPI1112への呼び出しを傍受することができる。
【0146】
クライアントアプリケーション1104は、複数のAPI1110a〜1110nを含むか、または提供する。API1110a〜1110nは、本明細書において詳細に説明される任意の種類または形態のAPIを含み得る。API1110a〜1110nは、ソフトウェアを構築するためまたは内部システムもしくは外部システム(例えば、ネットワークアプリケーション1120)と相互作用するためのコマンドのセット、機能のセット、プロトコルのセット、および/またはオブジェクトのセットを含むことができる。例えば、API1110a〜1110nは、ウェブベースのアプリケーションまたはウェブツールにアクセスするための命令および/または基準をプログラミングすることを含むことができる。API1110a〜1110nは、安全なカメラ、安全なUSB、安全なクリップボード、安全なドライブ、安全なオース(Auth)(例えば、クライアント証明書、スマートカードトランザクション)、および/または安全なボールトを含むことができるが、それらに限定されない。
【0147】
クライアントアプリケーション1104は、管理セッション1130a〜1130nのためのポリシーをネットワークアプリケーション1120a〜1120nに適用または別様に提供するため、ネットワークアプリケーション1120a〜1120nを管理するため、および/またはAPI1110a〜1110nを管理するために、ポリシーマネージャー1108を含むことができる。例えば、ポリシーマネージャー1108は、クライアントアプリケーション1104のために複数のポリシーを生成および/または格納することができる。ポリシーは、API1110a〜1110nの使用を制御および/または強化するために使用されることができる。ポリシーは、アクセスポリシーおよび/またはセキュリティポリシーを含むことができる。ポリシーは、それぞれのネットワークアプリケーション1120のサービスレベルを管理するために、特定のセッション1130のトラフィックレベルおよび/またはトラフィック種類を制御するように使用されることができる。ポリシーマネージャー1108は、セッション1130を暗号化するか別様に安全化するためのポリシーを適用することができる。ポリシーは、ネットワークアプリケーション1120a〜1120n、API1110a〜1110n、セッション1130a〜1130n、クライアントデバイス1102、またはクライアントデバイス1102もしくはネットワークアプリケーション1120のユーザーのうちの各々に割り当てられることができる。
【0148】
クライアントデバイス1102は、本明細書において説明される任意のクライアントデバイスの例であり得る。例えば、クライアントデバイス1102は、図2に関して上記で説明されたクライアントデバイス202、204と、図3に関して上記で説明されたクライアントデバイス302と、および/または図4に関して上記で説明されたクライアントデバイス402aと同様であり得るかまたは実質的に類似し得る。
【0149】
ネットワーク104は、ワイドエリアネットワーク(WAN)またはインターネットなどのパブリックネットワークであり得る。いくつかの実施形態において、ネットワーク104は、ローカルエリアネットワーク(LAN)または企業イントラネットなどのプライベートネットワークであり得る。ネットワーク104は、(有線および/または無線ネットワークなど)1つ以上の種類の物理ネットワークおよび/またはネットワークトポロジーを採用し得、(伝送制御プロトコル(transmission control protocol;TCP)、インターネットプロトコル(IP)、ユーザーデータグラムプロトコル(UDP)、または他の類似のプロトコルなど)1つ以上の通信トランスポートプロトコルを採用し得る。
【0150】
1つ以上の実施形態において、上記の要素またはエンティティのうちの各々は、ハードウェア、またはハードウェアとソフトウェアとの組み合わせにおいて実装される。クライアントアプリケーション1104の各構成要素は、図1と関連して上記で詳細に説明されたハードウェアまたはハードウェアもしくはソフトウェアの組み合わせを使用することによって実装され得る。例えば、これらの要素またはエンティティのうちの各々は、クライアントデバイスのハードウェア上において稼働する任意のアプリケーション、プログラム、ライブラリ、スクリプト、タスク、サービス、プロセス、または、任意の種類および形態の実行可能な命令(例えば、クライアントアプリケーション1102)を含むことができる。ハードウェアは、1つ以上の実施形態において、1つ以上のプロセッサなどの回路を含む。
【0151】
図12を参照すると、クライアントデバイス1102のためにAPIを提供するクライアントアプリケーション1104内における組み込みブラウザ1106のブロック図の例示的実施形態が提供されている。図12において、クライアントアプリケーション1104は、第1のネットワークアプリケーション1120aと第2のネットワークアプリケーション1120bとにセッションを提供する組み込みブラウザ1106を含むことができる。第2のネットワークアプリケーションは、クライアントアプリケーション1104の第1のAPI1110を実行中であることができる。
【0152】
第1のネットワークアプリケーション1120aは、第1のAPIのための第1の呼び出し1220aを作成することができ、第2のネットワークアプリケーション1120bは、第2のAPIのための第2の呼び出し1220bを作成することができる。クライアントアプリケーション1104は、第1のAPIへの第1の呼び出し1220aと、第2のAPIへの第2の呼び出し1220bとを傍受することができる。いくつかの実施形態において、呼び出し1220a、1220bは、クライアントアプリケーションのAPIレイヤー1210によって傍受されることができる。クライアントアプリケーション1104は、複数のAPI1110a〜1110bを格納するためのAPIレイヤー1210を含むことができる。API1110a〜1110bは、増大させられたセキュリティの機能性、アクセス制御、および/または認証ツールを提供することができる。
【0153】
クライアントアプリケーション1104は、第1の呼び出し1220aと第2の呼び出し1220bとにそれぞれ対応するデータまたは情報に基づいて、第1のネットワークアプリケーション1120aと第2のネットワークアプリケーション1120bとのためにAPIを決定することができる。例えば、クライアントアプリケーションは、クライアントデバイス1102の1つ以上のリソース、ドライブ、またはデバイスへのアクセスを提供するためにデバイスAPI1240を識別することができる。デバイスAPI1240は、ネットワークアプリケーション1120a、1120bの異なるユーザーおよび/または異なるネットワークアプリケーション1120a、1120bへの異なるレベルのアクセスを提供するためのアクセス制御を含むことができる。デバイスAPI1240は、どのネットワークアプリケーション1120a、1120bおよび/またはネットワークアプリケーション1120a、1120bのどのユーザーがクライアントデバイス1102のリソース、ドライブまたはデバイスにアクセスすることができるかを識別することができる。
【0154】
クライアントアプリケーションは、第1および/もしくは第2のネットワークアプリケーション1120a、1120b、または第1および/もしくは第2のネットワークアプリケーション1120a、1120bのユーザーのための認証1250を提供するために、認証API1250を識別することができる。例えば、認証API1250は、スマートカード認証、マルチファクター認証、および/またはシングルサインオン認証についての機能性を提供することができる。
【0155】
クライアントアプリケーションは、アップロードイベントの間に増大させられたセキュリティ機能性を提供するために、アップロードAPI1260を識別することができる。例えば、アップロードAPI1260は、スキャンされたドキュメント、スキャンされた画像、またはビデオ呼び出しにおけるカメラプレビューのためにウォーターマークを実装するための機能性を提供することができる。従って、クライアントアプリケーション1104は、ネットワークアプリケーション1120a、1120bによる異なるAPIへの呼び出し1220a、1220bを傍受することができ、APIを異なるAPIに置き換えることができる。例えば、クライアントアプリケーション1104は、元のAPIと比べてより高い機能性もしくは異なる機能性を有する強化バージョンを有する呼び出されたAPIの強化バージョン、または元のAPIと比べてより高い機能性もしくは異なる機能性を有する異なるAPIを提供することができる。
【0156】
図13を参照すると、組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース(API)を呼び出す方法の1つの実施形態のフロー図が示されている。方法の機能性は、図1〜12に関連して本明細書において詳細に説明された構成要素を使用することによって実装され得るか、当該構成要素によって実施され得る。概略として、セッションが、ネットワークアプリケーション(1305)に対して確立されることができる。ネットワークアプリケーションによる第1のAPIへの呼び出しが、傍受されることができる(1310)。ポリシーが、クライアントアプリケーションのAPIを使用するために識別されることができる(1315)。第2のAPIが、識別されたポリシーに基づいて決定されることができる(1320)。第2のAPIが、実行されることができる(1325)。
【0157】
オペレーション(1305)を参照すると、いくつかの実施形態において、クライアントアプリケーションは、1つ以上のネットワークアプリケーションに対して1つ以上のセッションを確立することができる。クライアントアプリケーションは、クライアントデバイス上において稼働中であることができ、複数のAPIを提供することができる。例えば、クライアントアプリケーションは、クライアントデバイスのユーザーのために、組み込みブラウザを介して1つ以上のサーバーから提供されかつ/または1つ以上のサーバー上でホストされるネットワークアプリケーションへのアクセスを提供することができる。組み込みブラウザは、クライアントアプリケーションを通してクライアントデバイスのユーザーによってアクセスまたは要請されるネットワークアプリケーションをレンダリングするために、クライアントアプリケーションに統合されることができるか、または組み込まれることができる。例えば、組み込みブラウザは、ネットワークアプリケーションに関するアクセスまたはトラフィックを制御するために、およびクライアントアプリケーションを通してトラフィックを経路決定するために、クライアントアプリケーションと統合されることができる。ネットワークアプリケーションへのアクセスは、クライアントアプリケーションの組み込みブラウザを通してクライアントデバイスのためにネットワークアプリケーションへのセッションを確立することを含むことができる。ネットワークアプリケーションは、ウェブアプリケーション、SaaSアプリケーション、および/またはネットワークを通じてクライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを含むことができるが、それらに限定されない。組み込みブラウザは、クライアントデバイスのユーザーとネットワークアプリケーションとの間における相互作用を可能にすることができるか、または提供することができる。いくつかの実施形態において、クライアントアプリケーションは、ユーザーがクライアントデバイスおよび組み込みブラウザを使用してネットワークアプリケーションにアクセスするためのアプリケーションセッションを提供するために、1つ以上のサーバーへの安全な接続を確立することができる。
【0158】
オペレーション(1310)を参照すると、いくつかの実施形態において、クライアントアプリケーションは、1つ以上のネットワークアプリケーションのネットワークアプリケーションによって呼び出された第1のAPIを傍受することができる。ネットワークアプリケーションは、クライアントアプリケーションの組み込みブラウザ内部におけるAPIを呼び出すことができる。例えば、ネットワークアプリケーションは、クライアントアプリケーションの組み込みブラウザにおけるネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語(hypertext markup language;HTML)APIを有する第1のAPIを呼び出すことができる。クライアントアプリケーションは、APIへの呼び出しを傍受することができ、呼び出されたAPIを強化、最適化、または別様に修正することができる。1つの実施形態において、HTML APIは、印刷機能(例えば、ウィンドウプリント(window.print)を含むことができ、当該印刷機能に対応することができる。クライアントアプリケーションは、典型的なブラウザ印刷フローを使用する代わりにAPIがクライアントアプリケーションにおいて直接印刷するように、印刷機能に対応するHTML API呼び出しを傍受することができ、APIを修正することができる。
【0159】
オペレーション(1315)を参照すると、いくつかの実施形態において、クライアントアプリケーションは、ネットワークアプリケーションのために、クライアントアプリケーションの複数のAPIを使用するためのポリシーを識別することができる。例えば、1つ以上のポリシーは、ネットワークアプリケーション、クライアントデバイス、API、および/またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられることができる。クライアントアプリケーションは、ネットワークアプリケーションによって呼び出された第1のAPIに対応するポリシー、ネットワークアプリケーションに対応するポリシー、またはクライアントデバイスに対応するポリシーを識別することができる。ポリシーは、ネットワークアプリケーションもしくはクライアントデバイスに誰が、または何のデバイスがアクセスすることができるかについての命令、ネットワークアプリケーションもしくはクライアントデバイスへの異なるレベルのアクセス、および/またはネットワークアプリケーションもしくはクライアントデバイスのためのセキュリティ特徴を含むことができる。
【0160】
ポリシーは、ネットワークアプリケーションもしくはクライアントデバイスへのアクセス、またはネットワークアプリケーションもしくはクライアントデバイスの使用を制御するために使用されることができる。ポリシーは、1つ以上のネットワークアプリケーションに対するログインイベントの間の認証技術に対応することができる。例えば、クライアントアプリケーションは、(ネットワークアプリケーションのためのスマートカード認証または生体認証などであるがそれらに限定されない)認証技術を実行するためにポリシーを使用することができる。ポリシーは、セキュリティまたは暗号化技術に対応することができる。例えば、クライアントアプリケーションは、マーク(例えば、ウォーターマーク)またはネットワークアプリケーションにアップロードされたスキャン済みドキュメントもしくはピクチャ上のパターンを識別することの他の形態を適用するためのポリシーを識別することができる。ポリシーを使用することによって、クライアントアプリケーションは、例えば、ユーザー場所および/または挙動(これらに限定されない)に基づいてクライアントデバイスリソースのリスクベースの動的なアクセスおよびポリシーを提供することができる。
【0161】
ポリシーは、クライアントアプリケーションのポリシーマネージャーから得られることができる。例えば、クライアントアプリケーションは、ポリシーマネージャーから1つ以上のポリシーを検索することができ、ネットワークアプリケーションを制御および/または管理するために1つ以上のポリシーを使用することができる。いくつかの実施形態において、クライアントアプリケーションは、ポリシーマネージャーから1つ以上のポリシーを検索することができ、クライアントアプリケーションと異なるエンティティからネットワークアプリケーションを制御および/または管理するために1つ以上のポリシーを使用することができ、そのような制御および/または管理機能性は、ネットワークアプリケーションが起こった異なるエンティティ上において利用可能でない。
【0162】
ポリシーは、クライアントアプリケーションによって、クライアントアプリケーションと異なるエンティティまたはネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られることができる。例えば、クライアントアプリケーションは、ネットワークを通して、ネットワークアプリケーション、クライアントデバイス、API、および/またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを格納するポリシーサーバーまたはサードパーティーサーバーに連結されることができる。クライアントアプリケーションは、クライアントアプリケーションの1つ以上のAPIに対応する1つ以上のポリシーを検索することができる。いくつかの実施形態において、クライアントアプリケーションは、サードパーティーサーバーに要請を伝送することができ、サードパーティーサーバーは、要請された1つ以上のポリシーに応答することができる。サードパーティーサーバーは、様々な認証技術のためのポリシーを格納する認証サーバーを含むことができるが、それに限定されない。例えば、認証サーバーは、ネットワークアプリケーションおよび/またはクライアントデバイスにアクセスするための認証ポリシーを含むことができる(例えば、クライアントデバイスの異なる構成要素、ドライブ、またはデバイス)。
【0163】
オペレーション(1320)を参照すると、いくつかの実施形態において、クライアントアプリケーションは、少なくとも1つのポリシーに基づいて、傍受された第1のAPIについて使用するために、クライアントアプリケーションの複数のAPIのうちの第2のAPIを決定することができる。クライアントアプリケーションは、ポリシーを使用して、ネットワークアプリケーションによって呼び出された第1のAPIと異なる第2のAPIを決定することができる。例えば、ポリシーは、第1のAPIが提供しないかまたは含まないある特定の機能性を要求または要請し得る。クライアントアプリケーションは、ポリシーにおいて要求もしくは要請された機能性を含むかまたは提供するクライアントアプリケーションによって提供された複数のAPIからAPI(例えば、第2のAPI)を識別することができる。従って、いくつかの実施形態において、第2のAPIは、第1のAPIと異なる(例えば、より高い)機能性を提供することができる。例えば、ネットワークアプリケーションは、当該ネットワークアプリケーションが使用するAPIの限定によって制約され得る。従って、第1のAPIを介して利用可能でない機能性またはAPIが以前に含んでいなかった機能性を提供するために、またはネイティブエンドポイントアプリケーション、クライアントデバイス、および/または周辺デバイスとの統合を提供または構築するために呼び出されたAPIより高い機能性を有する異なるAPIを提供するために、クライアントアプリケーションは、異なるAPIへの呼び出しを傍受して、当該APIを強化することができる。
【0164】
オペレーション(1325)を参照すると、いくつかの実施形態において、クライアントアプリケーションは、クライアントアプリケーションの複数のAPIのうちの第2のAPIを実行することができる。クライアントアプリケーションは、ネットワークアプリケーションによって呼び出された第1のAPIの代わりに第2のAPIを実行することができる。クライアントアプリケーションは、組み込みブラウザによってクライアントアプリケーション内において第2のAPIを実行することができる。第2のAPIは、第1のAPIの強化バージョンを含むことができる。例えば、第2のAPIは、第1のAPIと異なる機能性、または第1のAPIより高い機能性を提供することができる。
【0165】
クライアントアプリケーションは、APIへの呼び出しを傍受することができ、当該APIを異なるAPIに置き換えることができる。例えば、クライアントアプリケーションは、呼び出されたAPIを、呼び出された第1のAPIの安全なバージョンに置き換えることができる。従って、第2のAPIは、第1のAPIの安全なバージョンを含み得る。クライアントアプリケーションは、呼び出されたAPIを、元のAPIと比べてより高い機能性または異なる機能性を有する強化バージョンを有する、呼び出されたAPIの強化バージョンに置き換えることができる。例えば、強化されたAPIは、元々呼び出されたAPIが以前は実施することができなかったデータ損失防止措置などであるがそれに限定されない機能性を含むことができる。第2の安全なバージョンのAPIは、スキャンされたドキュメント、スキャンされた画像、またはビデオコールにおけるカメラプレビューのためのウォーターマークなどの追加的な保護を提供することができる。クライアントアプリケーションは、スキャンされたドキュメント、スキャンされた画像、またはビデオコールにおけるカメラプレビューのためのウォーターマークを提供するために、第2のAPIを実行することができる。
【0166】
呼び出された第1のAPIがシングルサインオン機能性を含んでいなかったとしても、第2のAPIは、ネットワークアプリケーションへのシングルサインオン機能性を含むことができる。クライアントアプリケーションは、ネットワークアプリケーションについてシングルサインオン機能性を提供するために、第2のAPIを実行することができる。例えば、第2のAPIは、ネットワークアプリケーションに対する特定の種類のログイン(スマートカード認証および/またはマルチファクター認証などであるがそれらに限定されない)を実行または提供するために使用されることができる。いくつかの実施形態において、第2のAPIは、ドキュメントのアップロード、ファイルのダウンロード、および/または印刷などであるがそれらに限定されないアクションについてマルチファクター認証を提供するために、ユーザー署名機能(例えば、デジタル署名)に対応することができる。
【0167】
クライアントアプリケーションは、ログインイベント後またはログイン後において、ネットワークアプリケーションへの呼び出しを傍受することができる。第2のAPIは、クライアントデバイスと相互作用するネットワークアプリケーションの機能性(イベントのアップロード、イベントのダウンロード、印刷、および/または写真撮影などであるがそれらに限定されない)に対応することができる。クライアントアプリケーションは、クライアントデバイスの異なるリソース、クライアントドライブ、もしくはデバイスへのアクセスを提供または制御するために、第2のAPIを実行することができる。第2のAPIは、ログインイベント後に様々なタイミングにおいて、コンテクスト的認証を実行または提供することができる。いくつかの実施形態において、クライアントアプリケーションは、組み込みブラウザを介してクライアントアプリケーション内において稼働する場合にネットワークアプリケーションが使用することができるジャバスクリプトAPIを提供することができる。ネットワークアプリケーションへのアクセスは、ネットワークアプリケーションに割り当てられたポリシーに基づいて与えられることができる。
【0168】
クライアントアプリケーションは、クライアントデバイスの異なるリソース、ドライブまたはデバイスにアクセスするためにネットワークアプリケーションが直接呼び出すことができるウェブAPIを提供することができる。例えば、第2のAPIは、機能、またはUSBデバイス、生体認証へのアクセス、および/またはクライアントデバイス上におけるネイティブもしくはローカルな他のアプリケーションとの通信を提供することができる。従って、クライアントアプリケーション内において組み込みブラウザを通じてクライアントデバイスの異なるリソース、ドライブまたはデバイスにアクセスするためにネットワークアプリケーションが直接呼び出すことができるように、クライアントアプリケーションは、第2のAPIを実行することができる。
【0169】
クライアントアプリケーションは、クライアントデバイスのユーザーにアクセス制御を提供するために、第2のAPIを実行することができる。アクセスの種類またはレベルは、ユーザーおよび/またはユーザーが相互作用している特定のネットワークアプリケーションに部分的に基づくことができる。例えば、クライアントアプリケーションは、クライアントアプリケーションが組み込みブラウザを通してクライアントデバイス上において現在稼働している提供されたネットワークアプリケーションのうちの全てを制御することを可能にするポリシーを識別することができる。クライアントアプリケーションの組み込みブラウザは、ポリシーを読むことができ、それぞれのユーザーによるクライアントデバイス上における様々なアクセス制御を提供するために、1つ以上のネットワークアプリケーションにポリシーを適用することができる。
【0170】
図14を参照すると、クライアントアプリケーションの組み込みブラウザにおけるネットワークアプリケーションを介してクライアントアプリケーションのAPIを呼び出す方法の1つの実施形態のフロー図が示されている。方法の機能性は、図1〜12に関連して本明細書において詳細に説明された構成要素を使用することによって実装され得るか、または当該構成要素によって実施され得る。概略として、セッションが、ネットワークアプリケーションに対して確立されることができる(1405)。ネットワークアプリケーションのウェブページが受け取られることができる(1410)。ポリシーが、クライアントアプリケーションのAPIを使用するために識別されることができる(1415)。第2のAPIが、識別されたポリシーに基づいて決定されることができる(1420)。第2のAPIが実行されることができる(1425)。
【0171】
オペレーション(1405)を参照すると、いくつかの実施形態において、クライアントアプリケーションは、ネットワークアプリケーションへのセッションを確立することができる。クライアントアプリケーションは、クライアントデバイス上に拡張することができ、組み込みブラウザを介してクライアントアプリケーションによって実行可能な複数のAPIを提供することができる。ネットワークアプリケーションへのセッションは、クライアントアプリケーションの組み込みブラウザを介してアクセスされることができる。ネットワークアプリケーションは、ウェブアプリケーション、SaaSアプリケーション、および/またはネットワークを通じてクライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを含むことができるが、それらに限定されない。組み込みブラウザは、クライアントデバイスのユーザーとネットワークアプリケーションとの間における相互作用を可能にすることができるか、または提供することができる。いくつかの実施形態において、クライアントアプリケーションは、ネットワークアプリケーションへの安全なセッションまたは安全な接続を確立することができる。
【0172】
オペレーション(1410)を参照すると、いくつかの実施形態において、組み込みブラウザは、ネットワークアプリケーションのウェブページを受け取ることができる。ウェブページは、クライアントアプリケーションの複数のAPIのうちのAPIを含むことができる。組み込みブラウザは、ウェブページによって呼び出されているAPIがクライアントアプリケーションによって提供される複数のAPIのうちの少なくとも1つのAPIであると決定することができる。組み込みブラウザは、呼び出されたAPIを、クライアントアプリケーションによって提供された複数のAPIと比較して、ウェブページによって呼び出されているAPIがクライアントアプリケーションによって提供された複数のAPIのうちの少なくとも1つのAPIであると決定することができる。
【0173】
オペレーション(1415)を参照すると、いくつかの実施形態において、クライアントアプリケーションは、クライアントアプリケーションのAPIを使用するためのポリシーをネットワークアプリケーションのために識別することができる。ポリシーは、ネットワークアプリケーション、クライアントデバイス、API、および/またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられることができる。クライアントアプリケーションは、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを識別することができる。クライアントアプリケーションは、ネットワークアプリケーションのウェブページによって呼び出されたAPIに対応するポリシー、ネットワークアプリケーションに対応するポリシー、またはクライアントデバイスに対応するポリシーを識別することができる。ポリシーは、ウェブページ、ネットワークアプリケーションもしくはクライアントデバイスに誰が、または何のデバイスがアクセスすることができるかについての命令、ウェブページ、ネットワークアプリケーションもしくはクライアントデバイスへの異なるレベルのアクセス、および/またはウェブページ、ネットワークアプリケーションもしくはクライアントデバイスのためのセキュリティ特徴を含むことができる。
【0174】
いくつかの実施形態において、ポリシーは、クライアントアプリケーションによって、ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られることができる。例えば、クライアントアプリケーションは、ネットワークを通して、ネットワークアプリケーション、クライアントデバイス、API、および/またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを格納するポリシーサーバーまたはサードパーティーサーバーに連結されることができる。クライアントアプリケーションは、クライアントアプリケーションの1つ以上のAPIに対応する1つ以上のポリシーを検索することができる。いくつかの実施形態において、クライアントアプリケーションは、サードパーティーサーバーに要請を伝送することができ、サードパーティーサーバーは、要請された1つ以上のポリシーに応答することができる。サードパーティーサーバーは、様々な認証技術のためのポリシーを格納する認証サーバーを含むことができるが、それに限定されない。例えば、認証サーバーは、ネットワークアプリケーションおよび/またはクライアントデバイスにアクセスするための認証ポリシーを含むことができる(例えば、クライアントデバイスの異なる構成要素、ドライブ、またはデバイス)。
【0175】
オペレーション(1420)を参照すると、いくつかの実施形態において、クライアントアプリケーションは、ポリシーに基づいて、クライアントアプリケーションのAPIを実行するためのアクセスをネットワークアプリケーションが有していると決定することができる。ポリシーは、API、ネットワークアプリケーション、またはクライアントデバイスへのアクセスについての命令を含むことができる。クライアントアプリケーションは、1つ以上のポリシーを使用して、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーがアクセスすることができるか、またはAPIを実行するためにアクセスするための適切な許可レベルを有しているか決定することができる。クライアントアプリケーションは、APIを実行するためのアクセスを決定するために、ポリシーと、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーのクレデンシャルとを比較することができる。
【0176】
ポリシーは、1つ以上のネットワークアプリケーションへのログインイベントの間の認証技術に対応することができる。例えば、クライアントアプリケーションは、(ネットワークアプリケーションのためのスマートカード認証または生体認証などであるがそれらに限定されない)認証技術を実行するためにポリシーを使用することができる。ポリシーは、セキュリティまたは暗号化技術に対応することができる。例えば、クライアントアプリケーションは、マーク(例えば、ウォーターマーク)またはネットワークアプリケーションにアップロードされたスキャン済みドキュメントもしくはピクチャ上のパターンを識別することの他の形態を適用するためのポリシーを識別することができる。ポリシーを使用することによって、クライアントアプリケーションは、例えば、ユーザー場所および/または挙動(これらに限定されない)に基づいてクライアントデバイスリソースのリスクベースの動的なアクセスおよびポリシーを提供することができる。
【0177】
オペレーション(1425)を参照すると、いくつかの実施形態において、クライアントアプリケーションは、ネットワークアプリケーションのウェブページのために、クライアントアプリケーションのAPIを実行することができる。クライアントアプリケーションは、組み込みブラウザを通してネットワークアプリケーションのウェブページのためにAPIを実行することができる。クライアントアプリケーションのAPIは、ネットワークアプリケーションのAPIより高い機能性を提供することができる。クライアントアプリケーションは、ウェブページが以前に含んでいなかった機能性をネットワークアプリケーションのウェブページに提供するか、または当該機能性を強化するために、APIを実行することができる。例えば、APIは、ネイティブエンドポイントアプリケーション、クライアントデバイス、および/または周辺デバイスとの統合を提供または構築することができる。
【0178】
いくつかの実施形態において、クライアントアプリケーションは、クライアントデバイスの異なるリソース、ドライブまたはデバイスにアクセスするためにネットワークアプリケーションのウェブページが直接呼び出すことができるウェブAPIを提供することができる。例えば、APIは、機能、またはUSBデバイス、生体認証へのアクセス、および/またはクライアントデバイス上におけるネイティブもしくはローカルな他のアプリケーションとの通信を提供することができる。従って、クライアントアプリケーション内において組み込みブラウザを通じてクライアントデバイスの異なるリソース、ドライブまたはデバイスにアクセスするためにネットワークアプリケーションのウェブページが直接呼び出すことができるように、クライアントアプリケーションは、APIを実行することができる。クライアントアプリケーションは、クライアントデバイスのユーザーにアクセス制御を提供するために、APIを実行することができる。アクセスの種類またはレベルは、ユーザーおよび/またはユーザーがウェブページを介して相互作用している特定のネットワークアプリケーションに部分的に基づくことができる。
【0179】
上記において説明されたシステムは、それらの構成要素のうちの任意の構成要素または各々の構成要素のうちの複数を提供し得、これらの構成要素は、独立型機械上に提供され得、またはいくつかの実施形態において分散型システムにおける複数の機械上に提供され得るということが理解されるべきである。上記において説明されたシステムおよび方法は、ソフトウェア、ファームウェア、ハードウェアまたはそれらの任意の組み合わせを作るためのプログラミングおよび/またはエンジニアリング技術を使用する、方法、装置、または製品として実装され得る。追加的に、上記において説明されたシステムおよび方法は、1つ以上の製品上において組み込まれるかまたは1つ以上の製品において組み込まれる1つ以上のコンピューター可読プログラムとして提供され得る。本明細書において、「製品」という用語は、1つ以上のコンピューター可読デバイス、ファームウェア、プログラミング可能なロジック、メモリデバイス(例えば、EEPROM、ROM、PROM、RAM、SRAMなど)、ハードウェア(例えば、集積回路チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(Application Specific Integrated Circuit;ASIC)など)、電子デバイス、コンピューター可読不揮発性記憶ユニット(例えば、CD−ROM、USBフラッシュメモリ、ハードディスクドライブなど)からアクセス可能であるかまたはそれらに組み込まれたコードまたはロジックを包含することを意図されている。製品は、ネットワーク伝送線、無線伝送媒体、空間を通って伝播する信号、電波、赤外線信号などを介したコンピューター可読プログラムへのアクセスを提供するファイルサーバーからアクセス可能であり得る。製品は、フラッシュメモリカードまたは磁気テープであり得る。製品は、ハードウェアロジック、およびプロセッサによって実行されるコンピューター可読媒体に組み込まれたプログラミング可能なコードまたはソフトウェアを含む。概して、コンピューター可読プログラムは、LISP、PERL、C、C++、C#、PROLOGなど任意のプログラミング言語で、またはジャバなど任意のバイトコード言語で実装され得る。ソフトウェアプログラムは、オブジェクトコードとして1つ以上の製品上に格納され得るか、または1つ以上の製品において格納され得る。
【0180】
方法およびシステムの様々な実施形態が説明されたが、これらの実施形態は、例示的であり、説明された方法またはシステムの範囲を限定しない。当業者は、説明された方法およびシステムの最も広い範囲から逸脱することなく、説明された方法およびシステムの形態ならびに詳細に対して変更を行うことができる。従って、本明細書において説明された方法およびシステムの範囲は、例示的な実施形態のうちのいかなる実施形態によっても限定されるべきでなく、添付の特許請求の範囲およびその同等物に従って定義されるべきである。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【手続補正書】
【提出日】20200213
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
法であって、該方法は、
(a)クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされる1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することであって、該クライアントアプリケーションは、複数のアプリケーションプログラムインターフェース(API)を提供する、ことと、
(b)該クライアントアプリケーションによって、該1つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第1のアプリケーションプログラミングインターフェース(API)を傍受することと、
(c)該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のAPIを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
(d)少なくとも該ポリシーに基づいて、傍受された該第1のAPIについて使用するために該クライアントアプリケーションの該複数のAPIのうちの第2のAPIを該クライアントアプリケーションによって決定することと、
(e)傍受された該第1のAPI呼び出しについて、該クライアントアプリケーションの該複数のAPIのうちの該第2のAPIを該クライアントアプリケーションによって実行することと
を含む、方法。
【請求項2】
前記組み込みブラウザは、前記クライアントアプリケーションに統合されている、請求項1に記載の方法。
【請求項3】
前記1つ以上のネットワークアプリケーションは、ネットワークを介して前記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、請求項1に記載の方法。
【請求項4】
(b)は、前記クライアントアプリケーションによって、該クライアントアプリケーションの前記組み込みブラウザにおいて前記ネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語APIを備えている前記第1のAPIを傍受することをさらに含む、請求項1に記載の方法。
【請求項5】
(c)は、前記ネットワークアプリケーション、前記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別することをさらに含む、請求項1に記載の方法。
【請求項6】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項1に記載の方法。
【請求項7】
(e)は、前記組み込みブラウザによって、前記クライアントアプリケーション内において前記第2のAPIを実行することをさらに含む、請求項1に記載の方法。
【請求項8】
前記クライアントアプリケーションの前記第2のAPIは、前記ネットワークアプリケーションの前記第1のAPIを介して利用可能でない機能性を提供する、請求項1に記載の方法。
【請求項9】
ステムであって、該システムは、
クライアントデバイス上において実行可能なクライアントアプリケーションを備え、該クライアントアプリケーションは、組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス(API)を提供し、該クライアントアプリケーションは、
該クライアントアプリケーションの該組み込みブラウザを介してアクセスされる1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することと、
該1つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第1のアプリケーションプログラミングインターフェース(API)を傍受することと、
該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のAPIを使用するためのポリシーを識別することと、
少なくとも該ポリシーに基づいて、傍受された該第1のAPIについて使用するための該クライアントアプリケーションの該複数のAPIのうちの第2のAPIを決定することと、
傍受された該第1のAPI呼び出しについて、該クライアントアプリケーションの該複数のAPIのうちの該第2のAPIを実行することと
を行うように構成されている、システム。
【請求項10】
前記組み込みブラウザは、前記クライアントアプリケーションに統合されている、請求項9に記載のシステム。
【請求項11】
前記1つ以上のネットワークアプリケーションは、ネットワークを介して前記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、請求項9に記載のシステム。
【請求項12】
前記クライアントアプリケーションは、該クライアントアプリケーションの前記組み込みブラウザにおいて前記1つ以上のネットワークアプリケーションのうちの少なくとも1つのネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語APIを備えている前記第1のAPIを傍受するようにさらに構成されている、請求項9に記載のシステム。
【請求項13】
前記クライアントアプリケーションは、前記1つ以上のネットワークアプリケーションのうちの少なくとも1つのネットワークアプリケーション、前記クライアントデバイス、または該少なくとも1つのネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別するようにさらに構成されている、請求項9に記載のシステム。
【請求項14】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項9に記載のシステム。
【請求項15】
前記クライアントアプリケーションは、前記組み込みブラウザによって、該クライアントアプリケーション内において前記第2のAPIを実行するようにさらに構成されている、請求項9に記載のシステム。
【請求項16】
前記クライアントアプリケーションの前記第2のAPIは、前記ネットワークアプリケーションの前記第1のAPIを介して利用可能でない機能性を提供する、請求項9に記載のシステム。
【請求項17】
法であって、該方法は、
(a)クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することであって、該クライアントアプリケーションは、該組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス(API)を提供する、ことと、
(b)該組み込みブラウザによって、該ネットワークアプリケーションのウェブページを受け取ることであって、該ウェブページは、該クライアントアプリケーションの該複数のAPIのうちのAPIを備えている、ことと、
(c)該ネットワークアプリケーションのために、該クライアントアプリケーションの該APIを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
(d)該ポリシーに基づいて、該クライアントアプリケーションの該APIを実行するためのアクセスを該ネットワークアプリケーションが有していることを該クライアントアプリケーションによって決定することと、
(e)該クライアントアプリケーションによって、該ネットワークアプリケーションの該ウェブページのために該クライアントアプリケーションの該APIを実行することと
を含む、方法。
【請求項18】
(b)は、前記ウェブページによって呼び出されている前記APIが前記クライアントアプリケーションの前記APIであることを前記組み込みブラウザによって決定することをさらに含む、請求項17に記載の方法。
【請求項19】
(c)は、前記ネットワークアプリケーション、前記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別することをさらに含む、請求項17に記載の方法。
【請求項20】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項17に記載の方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0013
【補正方法】変更
【補正の内容】
【0013】
方法は、ウェブページによって呼び出されているAPIがクライアントアプリケーションのAPIであることを組み込みブラウザによって決定することを含むことができる。方法は、ネットワークアプリケーション、クライアントデバイス、またはクライアントデバイスもしくはネットワークアプリケーションのユーザーに割り当てられたポリシーを識別することを含むことができる。
(項目1)
クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのために該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法であって、該方法は、
(a)クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされる1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することであって、該クライアントアプリケーションは、複数のアプリケーションプログラムインターフェース(API)を提供する、ことと、
(b)該クライアントアプリケーションによって、該1つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第1のアプリケーションプログラミングインターフェース(API)を傍受することと、
(c)該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のAPIを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
(d)少なくとも該ポリシーに基づいて、傍受された該第1のAPIについて使用するために該クライアントアプリケーションの該複数のAPIのうちの第2のAPIを該クライアントアプリケーションによって決定することと、
(e)傍受された該第1のAPI呼び出しについて、該クライアントアプリケーションの該複数のAPIのうちの該第2のAPIを該クライアントアプリケーションによって実行することと
を含む、方法。
(項目2)
上記組み込みブラウザは、上記クライアントアプリケーションに統合されている、項目1に記載の方法。
(項目3)
上記1つ以上のネットワークアプリケーションは、ネットワークを介して上記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、項目1に記載の方法。
(項目4)
(b)は、上記クライアントアプリケーションによって、該クライアントアプリケーションの上記ブラウザにおいて上記ネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語APIを備えている上記第1のAPIを傍受することをさらに含む、項目1に記載の方法。
(項目5)
(c)は、上記ネットワークアプリケーション、上記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた上記ポリシーを識別することをさらに含む、項目1に記載の方法。
(項目6)
上記ポリシーは、上記クライアントアプリケーションによって、上記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、項目1に記載の方法。
(項目7)
(e)は、上記組み込みブラウザによって、上記クライアントアプリケーション内において上記第2のAPIを実行することをさらに含む、項目1に記載の方法。
(項目8)
上記クライアントアプリケーションの上記第2のAPIは、上記ネットワークアプリケーションの上記第1のAPIを介して利用可能でない機能性を提供する、項目1に記載の方法。
(項目9)
クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのために該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出すシステムであって、該システムは、
クライアントデバイス上において実行可能なクライアントアプリケーションを備え、該クライアントアプリケーションは、組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス(API)を提供し、該クライアントアプリケーションは、
該クライアントアプリケーションの該組み込みブラウザを介してアクセスされる1つ以上のネットワークアプリケーションへの1つ以上のセッションを確立することと、
該1つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第1のアプリケーションプログラミングインターフェース(API)を傍受することと、
該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のAPIを使用するためのポリシーを識別することと、
少なくとも該ポリシーに基づいて、傍受された該第1のAPIについて使用するための該クライアントアプリケーションの該複数のAPIのうちの第2のAPIを決定することと、
傍受された該第1のAPI呼び出しについて、該クライアントアプリケーションの該複数のAPIのうちの該第2のAPIを実行することと
を行うように構成されている、システム。
(項目10)
上記組み込みブラウザは、上記クライアントアプリケーションに統合されている、項目9に記載のシステム。
(項目11)
上記1つ以上のネットワークアプリケーションは、ネットワークを介して上記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、項目9に記載のシステム。
(項目12)
上記クライアントアプリケーションは、該クライアントアプリケーションの上記ブラウザにおいて上記1つ以上のネットワークアプリケーションのうちの少なくとも1つのネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語APIを備えている上記第1のAPIを傍受するようにさらに構成されている、項目9に記載のシステム。
(項目13)
上記クライアントアプリケーションは、上記1つ以上のネットワークアプリケーションのうちの少なくとも1つのネットワークアプリケーション、上記クライアントデバイス、または該少なくとも1つのネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた上記ポリシーを識別するようにさらに構成されている、項目9に記載のシステム。
(項目14)
上記ポリシーは、上記クライアントアプリケーションによって、上記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、項目9に記載のシステム。
(項目15)
上記クライアントアプリケーションは、上記組み込みブラウザによって、該クライアントアプリケーション内において上記第2のAPIを実行するようにさらに構成されている、項目9に記載のシステム。
(項目16)
上記クライアントアプリケーションの上記第2のAPIは、上記ネットワークアプリケーションの上記第1のAPIを介して利用可能でない機能性を提供する、項目9に記載のシステム。
(項目17)
クライアントアプリケーションの組み込みブラウザにおいてネットワークアプリケーションを介して該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法であって、該方法は、
(a)クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することであって、該クライアントアプリケーションは、該組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス(API)を提供する、ことと、
(b)該組み込みブラウザによって、該ネットワークアプリケーションのウェブページを受け取ることであって、該ウェブページは、該クライアントアプリケーションの該複数のAPIのうちのAPIを備えている、ことと、
(c)該ネットワークアプリケーションのために、該クライアントアプリケーションの該APIを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
(d)該ポリシーに基づいて、該クライアントアプリケーションの該APIを実行するためのアクセスを該ネットワークアプリケーションが有していることを該クライアントアプリケーションによって決定することと、
(e)該クライアントアプリケーションによって、該ネットワークアプリケーションの該ウェブページのために該クライアントアプリケーションの該APIを実行することと
を含む、方法。
(項目18)
(b)は、上記ウェブページによって呼び出されている上記APIが上記クライアントアプリケーションの上記APIであることを上記組み込みブラウザによって決定することをさらに含む、項目17に記載の方法。
(項目19)
(c)は、上記ネットワークアプリケーション、上記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた上記ポリシーを識別することをさらに含む、項目17に記載の方法。
(項目20)
上記ポリシーは、上記クライアントアプリケーションによって、上記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、項目17に記載の方法。
【国際調査報告】