(57)【要約】説明された実施形態は、クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出すシステムおよび方法を含む。方法は、クライアントアプリケーションによって、クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することを含む。クライアントアプリケーションは、ネットワークアプリケーションによって呼び出された第１のＡＰＩを傍受し、クライアントアプリケーションの複数のＡＰＩを使用するためのポリシーを識別することができる。クライアントアプリケーションは、傍受された第１のＡＰＩについて使用するために第２のＡＰＩを決定し、当該第１のＡＰＩ呼び出しについて第２のＡＰＩを実行することができる。
2021501381.tif 000002
【特許請求の範囲】
【請求項１】
クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのために該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法であって、該方法は、
（ａ）クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされる１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することであって、該クライアントアプリケーションは、複数のアプリケーションプログラムインターフェース（ＡＰＩ）を提供する、ことと、
（ｂ）該クライアントアプリケーションによって、該１つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を傍受することと、
（ｃ）該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のＡＰＩを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
（ｄ）少なくとも該ポリシーに基づいて、傍受された該第１のＡＰＩについて使用するために該クライアントアプリケーションの該複数のＡＰＩのうちの第２のＡＰＩを該クライアントアプリケーションによって決定することと、
（ｅ）傍受された該第１のＡＰＩ呼び出しについて、該クライアントアプリケーションの該複数のＡＰＩのうちの該第２のＡＰＩを該クライアントアプリケーションによって実行することと
を含む、方法。
【請求項２】
前記組み込みブラウザは、前記クライアントアプリケーションに統合されている、請求項１に記載の方法。
【請求項３】
前記１つ以上のネットワークアプリケーションは、ネットワークを介して前記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、請求項１に記載の方法。
【請求項４】
（ｂ）は、前記クライアントアプリケーションによって、該クライアントアプリケーションの前記ブラウザにおいて前記ネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語ＡＰＩを備えている前記第１のＡＰＩを傍受することをさらに含む、請求項１に記載の方法。
【請求項５】
（ｃ）は、前記ネットワークアプリケーション、前記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別することをさらに含む、請求項１に記載の方法。
【請求項６】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項１に記載の方法。
【請求項７】
（ｅ）は、前記組み込みブラウザによって、前記クライアントアプリケーション内において前記第２のＡＰＩを実行することをさらに含む、請求項１に記載の方法。
【請求項８】
前記クライアントアプリケーションの前記第２のＡＰＩは、前記ネットワークアプリケーションの前記第１のＡＰＩを介して利用可能でない機能性を提供する、請求項１に記載の方法。
【請求項９】
クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのために該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出すシステムであって、該システムは、
クライアントデバイス上において実行可能なクライアントアプリケーションを備え、該クライアントアプリケーションは、組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス（ＡＰＩ）を提供し、該クライアントアプリケーションは、
該クライアントアプリケーションの該組み込みブラウザを介してアクセスされる１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することと、
該１つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を傍受することと、
該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のＡＰＩを使用するためのポリシーを識別することと、
少なくとも該ポリシーに基づいて、傍受された該第１のＡＰＩについて使用するための該クライアントアプリケーションの該複数のＡＰＩのうちの第２のＡＰＩを決定することと、
傍受された該第１のＡＰＩ呼び出しについて、該クライアントアプリケーションの該複数のＡＰＩのうちの該第２のＡＰＩを実行することと
を行うように構成されている、システム。
【請求項１０】
前記組み込みブラウザは、前記クライアントアプリケーションに統合されている、請求項９に記載のシステム。
【請求項１１】
前記１つ以上のネットワークアプリケーションは、ネットワークを介して前記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、請求項９に記載のシステム。
【請求項１２】
前記クライアントアプリケーションは、該クライアントアプリケーションの前記ブラウザにおいて前記１つ以上のネットワークアプリケーションのうちの少なくとも１つのネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語ＡＰＩを備えている前記第１のＡＰＩを傍受するようにさらに構成されている、請求項９に記載のシステム。
【請求項１３】
前記クライアントアプリケーションは、前記１つ以上のネットワークアプリケーションのうちの少なくとも１つのネットワークアプリケーション、前記クライアントデバイス、または該少なくとも１つのネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別するようにさらに構成されている、請求項９に記載のシステム。
【請求項１４】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項９に記載のシステム。
【請求項１５】
前記クライアントアプリケーションは、前記組み込みブラウザによって、該クライアントアプリケーション内において前記第２のＡＰＩを実行するようにさらに構成されている、請求項９に記載のシステム。
【請求項１６】
前記クライアントアプリケーションの前記第２のＡＰＩは、前記ネットワークアプリケーションの前記第１のＡＰＩを介して利用可能でない機能性を提供する、請求項９に記載のシステム。
【請求項１７】
クライアントアプリケーションの組み込みブラウザにおいてネットワークアプリケーションを介して該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法であって、該方法は、
（ａ）クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することであって、該クライアントアプリケーションは、該組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス（ＡＰＩ）を提供する、ことと、
（ｂ）該組み込みブラウザによって、該ネットワークアプリケーションのウェブページを受け取ることであって、該ウェブページは、該クライアントアプリケーションの該複数のＡＰＩのうちのＡＰＩを備えている、ことと、
（ｃ）該ネットワークアプリケーションのために、該クライアントアプリケーションの該ＡＰＩを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
（ｄ）該ポリシーに基づいて、該クライアントアプリケーションの該ＡＰＩを実行するためのアクセスを該ネットワークアプリケーションが有していることを該クライアントアプリケーションによって決定することと、
（ｅ）該クライアントアプリケーションによって、該ネットワークアプリケーションの該ウェブページのために該クライアントアプリケーションの該ＡＰＩを実行することと
を含む、方法。
【請求項１８】
（ｂ）は、前記ウェブページによって呼び出されている前記ＡＰＩが前記クライアントアプリケーションの前記ＡＰＩであることを前記組み込みブラウザによって決定することをさらに含む、請求項１７に記載の方法。
【請求項１９】
（ｃ）は、前記ネットワークアプリケーション、前記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別することをさらに含む、請求項１７に記載の方法。
【請求項２０】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の参照）
本出願は、「ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＩＮＴＥＲＣＥＰＴＩＮＧ  ＡＮＤ  ＥＮＨＡＮＣＩＮＧ  ＳＡＡＳ  ＡＰＰＬＩＣＡＴＩＯＮ  ＣＡＬＬＳ  ＶＩＡ  ＥＭＢＥＤＤＥＤ  ＢＲＯＷＳＥＲ」という名称であり、２０１８年９月２１日に出願された米国特許出願第１６／１３８，０７６号に対する利益および優先権を主張する。前述の特許出願の全内容が、全ての目的のために本明細書において参照によって援用される。
【０００２】
（開示の分野）
本出願は、概して、アプリケーションの管理に関し、アプリケーションの管理は、ウェブおよびサービスとしてのソフトウェア（ｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ；ＳａａＳ）アプリケーションを管理および監視するために組み込みブラウザを使用するシステムおよび方法を含むが、それらに限定されない。
【背景技術】
【０００３】
（背景）
企業の従業員がより移動性を増し様々な条件のもとで働く場合、個人は、ウェブアプリケーションなどのネットワークリソースにアクセスするために、パーソナルデバイスを含む１つ以上のクライアントデバイスを使用することができる。クライアントデバイスとネットワークリソースがアクセスされることのできる様式との間における違いに起因して、ネットワークリソースへのアクセスを管理すること、およびリソースの潜在的な悪用を監視することにおいて、企業にとって重大な課題が存在している。
【発明の概要】
【課題を解決するための手段】
【０００４】
（概要）
本開示は、組み込みブラウザを通してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すことを対象とする。クライアントアプリケーションは、クライアントデバイス上において実行可能であることができ、クライアントアプリケーションの組み込みブラウザを通してクライアントデバイスのために１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することができる。クライアントアプリケーションは、ネットワークアプリケーションによるＡＰＩへの呼び出しを傍受することができ、呼び出されるＡＰＩを強化するか、または、ネットワークアプリケーションによって呼び出されたＡＰＩと比較してより高い機能性を有する異なるＡＰＩを提供することができる。異なるＡＰＩは、元々呼び出されたＡＰＩが含んでいなかった機能性（セキュリティ特徴および／またはアクセス制御などであるがそれらに限定されない）を含むことができる。例えば、セッションの間、ネットワークアプリケーション（例えば、ウェブアプリケーション、サービスとしてのソフトウェア（ｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ；ＳａａＳ）アプリケーション）は、クライアントアプリケーションの組み込みブラウザを介してＡＰＩを呼び出すことができる。ＡＰＩは、印刷ＡＰＩを含み得る。クライアントアプリケーションは、印刷ＡＰＩの機能性を向上させるために、呼び出された印刷ＡＰＩを強化または最適化することができる。例えば、クライアントアプリケーションは、典型的なブラウザ印刷フローを実施する代わりに印刷ＡＰＩが直接印刷するように、印刷ＡＰＩを修正することができる。クライアントアプリケーションは、直接印刷するように構成された第２の異なる印刷ＡＰＩを提供し得る。
【０００５】
クライアントアプリケーションは、（クライアントデバイスと連結されたＵＳＢデバイス、生体認証などであるがそれらに限定されない）クライアントリソース、クライアントドライブ、および／もしくはクライアントデバイスにアクセスするために、ならびに／またはクライアントデバイスにローカルまたはネイティブであるアプリケーションと通信するためにネットワークアプリケーションが呼び出すＡＰＩを提供し得る。いくつかの実施形態において、特定のネットワークアプリケーションがそれぞれの１つ以上のポリシーをサポートしないとしても、クライアントアプリケーションは、ある特定の制限を実行するためにクライアントデバイスとネットワークアプリケーションとの間におけるセッション上において１つ以上のポリシーを適用することができる。例えば、１つの実施形態において、ネットワークアプリケーションがスマートカード認証をサポートしないとしても、クライアントアプリケーションは、ネットワークアプリケーションについてスマートカード認証を実行するためにポリシーを適用することができる。
【０００６】
クライアントアプリケーションは、クライアントデバイスおよび／または周辺デバイスなどであるがそれらに限定されない、ネイティブエンドポイントアプリケーションとの統合を構築するためにネットワークアプリケーションによって作成された呼び出しを傍受することができる。クライアントアプリケーションは、データ損失防止のためのポリシーを実行すること、および／またはネットワークアプリケーションのある特定の部分へのアクセスを制限することができる。クライアントアプリケーションは、ネットワークアプリケーションがどのようにローディングおよび／またはレンダリングするかを制御することによって、ネットワークアプリケーションパフォーマンスを最適化することができ、ネットワークアプリケーション使用にわたってよりきめ細かいアクセス制御を提供することができる。
【０００７】
１つの様態において、本開示は、クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法を対象とする。方法は、クライアントデバイス上におけるクライアントアプリケーションによって、クライアントアプリケーションの組み込みブラウザを介してアクセスされる１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することを含む。複数のアプリケーションプログラムインターフェース（ＡＰＩ）を提供するクライアントアプリケーション。方法は、クライアントアプリケーションによって、１つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を傍受することと、ネットワークアプリケーションのために、クライアントアプリケーションの複数のＡＰＩを使用するためのポリシーをクライアントアプリケーションによって識別することとをさらに含む。方法は、少なくともポリシーに基づいて、傍受された該第１のＡＰＩについて使用するためにクライアントアプリケーションの複数のＡＰＩのうちの第２のＡＰＩをクライアントアプリケーションによって決定することと、傍受された第１のＡＰＩ呼び出しについて、クライアントアプリケーションの複数のＡＰＩのうちの第２のＡＰＩをクライアントアプリケーションによって実行することとをさらに含む。
【０００８】
組み込みブラウザは、クライアントアプリケーションに統合されることができる。１つ以上のネットワークアプリケーションは、ネットワークを介してクライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを含むことができる。方法は、クライアントアプリケーションによって、クライアントアプリケーションのブラウザにおいてネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語ＡＰＩを備えている第１のＡＰＩを傍受することを含むことができる。方法は、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを識別することをさらに含むことができる。ポリシーは、クライアントアプリケーションによって、ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られることができる。
【０００９】
方法は、組み込みブラウザによってクライアントアプリケーション内において第２のＡＰＩを実行することを含むことができる。クライアントアプリケーションの第２のＡＰＩは、ネットワークアプリケーションの第１のＡＰＩを介して利用可能でない機能性を提供する。
【００１０】
別の様態において、本開示は、クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出すシステムを対象とする。システムは、クライアントデバイス上において実行可能なクライアントアプリケーションを含む。組み込みブラウザを介してクライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス（ＡＰＩ）を提供するクライアントアプリケーション。クライアントアプリケーションは、クライアントアプリケーションの組み込みブラウザを介してアクセスされる１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することと、１つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を傍受することとを行うように構成されることができる。クライアントアプリケーションは、ネットワークアプリケーションのために、クライアントアプリケーションの複数のＡＰＩを使用するためのポリシーを識別することと、少なくともポリシーに基づいて、傍受された第１のＡＰＩについて使用するためのクライアントアプリケーションの複数のＡＰＩのうちの第２のＡＰＩを決定することと、傍受された第１のＡＰＩ呼び出しについて、クライアントアプリケーションの複数のＡＰＩのうちの第２のＡＰＩを実行することとを行うようにさらに構成されることができる。
【００１１】
クライアントアプリケーションは、クライアントアプリケーションのブラウザにおいて１つ以上のネットワークアプリケーションのうちの少なくとも１つのネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語ＡＰＩを備えている第１のＡＰＩを傍受するようにさらに構成されることができる。クライアントアプリケーションは、１つ以上のネットワークアプリケーションのうちの少なくとも１つのネットワークアプリケーション、クライアントデバイス、または少なくとも１つのネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを識別するようにさらに構成されることができる。クライアントアプリケーションは、組み込みブラウザによって、クライアントアプリケーション内において第２のＡＰＩを実行するようにさらに構成されることができる。クライアントアプリケーションの第２のＡＰＩは、ネットワークアプリケーションの第１のＡＰＩを介して利用可能でない機能性を提供する。
【００１２】
別の様態において、本開示は、クライアントアプリケーションの組み込みブラウザにおいてネットワークアプリケーションを介してクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法を対象とする。方法は、クライアントデバイス上におけるクライアントアプリケーションによって、クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することを含む。組み込みブラウザを介してクライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス（ＡＰＩ）を提供するクライアントアプリケーション。方法は、組み込みブラウザによって、ネットワークアプリケーションのウェブページを受け取ることをさらに含む。クライアントアプリケーションの複数のＡＰＩのうちのＡＰＩを含むウェブページ。方法は、ネットワークアプリケーションのために、クライアントアプリケーションのＡＰＩを使用するためのポリシーをクライアントアプリケーションによって識別することと、ポリシーに基づいて、クライアントアプリケーションのＡＰＩを実行するためのアクセスをネットワークアプリケーションが有していることをクライアントアプリケーションによって決定することとをさらに含む。方法は、クライアントアプリケーションによって、ネットワークアプリケーションのウェブページのためにクライアントアプリケーションのＡＰＩを実行することをさらに含む。
【００１３】
方法は、ウェブページによって呼び出されているＡＰＩがクライアントアプリケーションのＡＰＩであることを組み込みブラウザによって決定することを含むことができる。方法は、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを識別することを含むことができる。
【００１４】
前述の事項、ならびに本解決手段の他の目的、様態、特徴および利点は、添付の図面とともに以下の記載を参照することによってより明らかになり、より理解されるであろう。添付の図面は、以下の通りである。
【図面の簡単な説明】
【００１５】
【図１】図１は、コンピューティングデバイスの実施形態のブロック図である。
【図２】図２は、リソースにアクセスすることにおける使用のためのクラウドサービスの例示的な実施形態のブロック図である。
【図３】図３は、企業移動性管理システムの例示的実施形態のブロック図である。
【図４】図４は、組み込みブラウザのシステム４００のブロック図である。
【図５】図５は、安全なブラウザを使用するシステムの例示的実施形態のブロック図である。
【図６】図６は、安全なブラウザプラグインを使用するブラウザリダイレクトについての実装の例示的表現である。
【図７】図７は、安全なブラウザを使用するシステムの例示的実施形態のブロック図である。
【図８】図８は、１つ以上のローカル組み込みブラウザと１つ以上のホストされ安全化されたブラウザとを使用するシステムの例示的実施形態のブロック図である。
【図９】図９は、１つ以上のローカル組み込みブラウザと１つ以上のホストされ安全化されたブラウザとを使用するための例示的過程フローである。
【図１０】図１０は、ウェブページへのユーザーアクセスを管理するシステムの例示的実施形態である。
【図１１】図１１は、組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すシステムの例示的実施形態のブロック図である。
【図１２】図１２は、クライアントデバイスのためにＡＰＩを提供するクライアントアプリケーション内における組み込みブラウザのブロック図の例示的実施形態である。
【図１３】図１３は、組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法の例示的実施形態のフロー図である。
【図１４】図１４は、クライアントアプリケーションの組み込みブラウザにおいてネットワークアプリケーションを介してクライアントアプリケーションのＡＰＩを呼び出す方法の例示的実施形態のフロー図である。
【発明を実施するための形態】
【００１６】
本解決手段の特徴および利点は、図面とともに参照した場合、下記の詳細な説明からより明らかになるであろう。詳細な説明全体を通して、同じ参照符号は、対応する要素を特定する。図面において、同じ参照番号は、概して、同一の、機能的に類似した、および／または構造上類似した要素を示す。
【００１７】
（詳細な説明）
下記の様々な実施形態の説明を読解する目的のために、以下の明細書の節およびそれぞれの内容の説明が役立ち得る。
【００１８】
第Ａ節は、本明細書において説明される実施形態を実施するために有用であり得るコンピューティング環境を説明する。
【００１９】
第Ｂ節は、組み込みブラウザについてのシステムおよび方法を説明する。
【００２０】
第Ｃ節は、組み込みブラウザを通してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すシステムおよび方法を説明する。
【００２１】
Ａ．コンピューティング環境
本明細書において第Ｂ節で詳細に述べられるシステムおよび方法の実施形態の詳細を論じる前に、そのような実施形態がデプロイされ得るコンピューティング環境を論じることが、役立ち得る。
【００２２】
図１に示されるように、コンピューター１０１は、１つ以上のプロセッサ１０３と、揮発性メモリ１２２（例えば、ランダムアクセスメモリ（ＲＡＭ））と、不揮発性メモリ１２８（例えば、１つ以上のハードディスクドライブ（ＨＤＤ）または他の磁気もしくは光学記憶媒体、フラッシュドライブもしくは他のソリッドステート記憶媒体などの１つ以上のソリッドステートドライブ（ＳＳＤ）、１つ以上のハイブリッド磁気ソリッドステートドライブ、および／またはクラウドストレージなどの１つ以上の仮想ストレージボリューム、またはそのような物理ストレージボリュームおよび仮想ストレージボリュームの組み合わせ、またはそれらのアレイ）と、ユーザーインターフェース（ＵＩ）１２３と、１つ以上の通信インターフェース１１８と、通信バス１５０とを含み得る。ユーザーインターフェース１２３は、グラフィカルユーザーインターフェース（ＧＵＩ）１２４（例えば、タッチスクリーン、ディスプレイなど）と、１つ以上の入力／出力（ｉｎｐｕｔ／ｏｕｔｐｕｔ；Ｉ／Ｏ）デバイス１２６（例えば、マウス、キーボード、マイク、１つ以上のスピーカー、１つ以上のカメラ、１つ以上の生体スキャナー、１つ以上の環境センサー、１つ以上の加速度計など）とを含み得る。不揮発性メモリ１２８は、例えばオペレーティングシステム１１５のコンピューター命令および／またはアプリケーション１１６が揮発性メモリ１２２から１つ以上のプロセッサ１０３によって実行されるように、オペレーティングシステム１１５と、１つ以上のアプリケーション１１６と、データ１１７とを格納する。いくつかの実施形態において、揮発性メモリ１２２は、メインメモリよりも速い応答時間を提供し得る１つ以上の種類のＲＡＭおよび／またはキャッシュメモリを含み得る。データは、ＧＵＩ１２４の入力デバイスを使用することによって入れられ得るか、または１つ以上のＩ／Ｏデバイス１２６から受け取られ得る。コンピューター１０１の様々な要素が、通信バス１５０として示される、１つ以上の通信バスを介して通信し得る。
【００２３】
図１に示されるようなコンピューター１０１は、例として（クライアント、サーバー、中間体、および他のネットワークデバイスとして）示されているに過ぎず、任意のコンピューティング環境または処理環境によって実装され得、本明細書において説明されるように作動することが可能な適したハードウェアおよび／またはソフトウェアを有し得る任意の種類の機械または機械一式とともに実装され得る。１つ以上のプロセッサ１０３は、システムの機能を実施するために、コンピュータープログラムなどの１つ以上の実行可能な命令を実行するように１つ以上のプログラミング可能なプロセッサによって実装され得る。本明細書において、「プロセッサ」という用語は、機能、オペレーション、または一連のオペレーションを実施する回路を指す。機能、オペレーション、または一連のオペレーションは、回路の中へハードコード化され得るか、またはメモリデバイスにおいて保持され回路によって実行される命令としてソフトコード化され得る。「プロセッサ」は、デジタル値を使用して、および／またはアナログ信号を使用して、機能、オペレーション、または一連のオペレーションを実施し得る。いくつかの実施形態において、「プロセッサ」は、１つ以上の特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ；ＡＳＩＣｓ）、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、グラフィックスプロセッシングユニット（ＧＰＵ）、マイクロコントローラー、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）、マルチコアプロセッサ、または関連づけられたメモリを有する汎用コンピューターに組み込まれることができる。「プロセッサ」は、アナログ、デジタル、または混合信号であり得る。いくつかの実施形態において、「プロセッサ」は、１つ以上の物理プロセッサまたは１つ以上の「仮想」（例えば、リモートに場所決定されているか、もしくは「クラウド」）プロセッサであり得る。複数のプロセッサコアを含むプロセッサおよび／または複数のプロセッサ複数のプロセッサは、１つ以上のデータ上において１つの命令を並列かつ同時に実行することについて、または複数の命令を並列かつ同時に実行することについて、機能性を提供し得る。
【００２４】
通信インターフェース１１８は、コンピューター１０１がローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、または様々な有線および／もしくは無線またはセルラー接続を通したインターネットなどのコンピューターネットワークにアクセスすることを可能にするための１つ以上のインターフェースを含み得る。
【００２５】
説明される実施形態において、コンピューティングデバイス１０１は、クライアントコンピューティングデバイスのユーザーに代わってアプリケーションを実行し得る。例えば、コンピューティングデバイス１０１は、ホストされたデスクトップセッションなどの実行セッションを提供する仮想マシンを実行し得、当該実行セッション内において、ユーザーまたはクライアントコンピューティングデバイスに代わってアプリケーションが稼働する。また、コンピューティングデバイス１０１は、ホストされたデスクトップ環境を提供するために、端末サービスセッションも実行し得る。コンピューティングデバイス１０１は、１つ以上のアプリケーション、１つ以上のデスクトップアプリケーション、および１つ以上のアプリケーションが稼働し得る１つ以上のデスクセッションのうちの１つ以上を含むコンピューティング環境へのアクセスを提供し得る。
【００２６】
ネットワーク環境、コンピューター１０１、クライアントコンピューターおよびサーバーコンピューターの実装ならびにオペレーションの追加的な詳細は、フロリダ州フォートローダーデールのサイトリックスシステムズ，インコーポレイテッドに対して２０１７年１月３日に発行された米国特許第９，５３８，３４５号において説明される通りであり得る。前述の特許の教示が、本明細書において参照によって援用される。
【００２７】
Ｂ．組み込みブラウザについてのシステムおよび方法
本開示は、組み込みブラウザのシステムおよび方法を対象とする。クライアントデバイス上において稼働するクライアントアプリケーションは、ユーザーが、ウェブアプリケーションおよびサービスとしてのソフトウェア（ｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ；ＳａａＳ）アプリケーション（以下、時に、総合的にネットワークアプリケーションという）などの、１つ以上のサーバーから提供されかつ／または１つ以上のサーバー上でホストされるアプリケーション（アプリ）にアクセスすることを可能にすることができる。クライアントアプリケーションと組み込まれているか統合されているブラウザは、クライアントアプリケーションを介してアクセスされるか要請されるネットワークアプリケーションをユーザーに与えることができ、ユーザーとネットワークアプリケーションとの間における相互作用を可能にすることができる。ブラウザは、時に、組み込みブラウザといい、組み込みブラウザを有するクライアントアプリケーション（ＣＥＢ）は、時に、作業空間アプリケーションという。クライアントアプリケーションは、ユーザーがクライアントデバイスおよび組み込みブラウザを使用することによってネットワークアプリケーションにアクセスするためのアプリケーションセッションを提供するために、１つ以上のサーバーへの安全な接続を確立することができる。組み込みブラウザは、ネットワークアプリケーションに関するトラフィックが確実にクライアントアプリケーションを通って経路決定、かつ／またはクライアントアプリケーションにおいて処理されるように、クライアントアプリケーションと統合されることができ、それは、（例えば、クライアントアプリケーションを通して復号化されるときに）トラフィックに対するリアルタイムでの可視性、ユーザーの相互作用および挙動をクライアントアプリケーションに提供することができる。組み込みブラウザは、ネットワークアプリケーションがユーザーインターフェースを介して要請され（クライアントアプリケーションおよび組み込みブラウザによって共有され）、同じユーザーインターフェース内における組み込みブラウザを通して与えられた場合、シームレスな操作性をユーザーに提供することができる。
【００２８】
クライアントアプリケーションは、セキュアソケットレイヤー（ＳＳＬ）バーチャルプライベートネットワーク（ＶＰＮ）接続など、ネットワークアプリケーションのサーバーとともに確立された安全化された接続の一端を終了させることができる。クライアントアプリケーションは、ネットワークアプリケーションから暗号化されたトラフィックを受け取ることができ、さらなる処理の前にトラフィックを復号化することができる（例えば、組み込みブラウザによって与える）。クライアントアプリケーションは、受け取られたトラフィックを（例えば、暗号化されたパケットの形態において）監視することができ、また、復号化データストリームおよび／またはＳＳＬスタックへの完全な可視性を有することもできる。この可視性は、クライアントアプリケーションがポリシーベース管理（例えば、データ損失防止（ｄａｔａ  ｌｏｓｓ  ｐｒｅｖｅｎｔｉｏｎ；ＤＬＰ）能力を含む）、アプリケーション制御（例えば、パフォーマンス、サービスレベルを向上させること）、ならびに解析の収集および生成を実施するかまたは容易にすることを可能にすることができる。例えば、ローカルＣＥＢは、ＣＥＢを通してウェブおよびＳａａＳアプリケーションをデプロイするための制御されたシステムを有する情報技術（ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ；ＩＴ）管理者を提供することができ、前述のアクティビティのうちの任意のアクティビティを実施するためにＩＴ管理者がＣＥＢを介してポリシーまたは構成を設定することを可能にすることができる。
【００２９】
多くのウェブおよびＳａａＳ伝達アプリケーションは、ウェブサーバーからユーザーの一般的なブラウザ（例えば、インターネットエクスプローラー、ファイヤーフォックスなど）に接続する。認証されると、そのようなネットワークアプリケーションのセッション全体が暗号化される。しかし、このシナリオにおいて、管理者は、ユーザーのデジタル作業空間からネットワークアプリケーションに入るコンテンツ、またはネットワークアプリケーションから出てユーザーのデジタル作業空間に入るコンテンツの可視性、解析、または制御を有さない場合がある。さらに、一般的なブラウザにおいて閲覧されるネットワークアプリケーションのコンテンツは、潜在的に、（例えば、ユーザーまたはプログラムによって）任意の恣意的なアプリケーションまたはデバイスにコピーまたはダウンロードされることができ、その結果、データセキュリティに違反する可能性がある。
【００３０】
本システムおよび方法は、ネットワークアプリケーションと関連づけられるトラフィックが確実にＣＥＢを通って送られるようにすることができる。例示として、例えばセキュリティアサーションマークアップランゲージ（ＳＡＭＬ）が許可されたＳａａＳウェブサービスにユーザーがアクセスする場合、対応するアクセス要請は、アクセス要請を作成するためにＣＥＢが使用されたかどうか決定、チェック、および検証する指定されたゲートウェイサービスに転送されることができる。アクセス要請を作成するためにＣＥＢが使用されたことを決定することに応答して、ゲートウェイサービスは、認証またはシングルサインオン（ＳＳＯ）を実施または提供することができ、ＣＥＢがＳａａＳウェブサービスに直接接続することを可能にすることができる。暗号化（例えば、標準的な暗号化）は、ＣＥＢとＳａａＳウェブサービスとの間におけるアプリケーションセッションのために使用されることができる。組み込みブラウザを介して閲覧されるようにＣＥＢにおいてウェブサービスからのコンテンツが暗号化されていない場合、および／またはＣＥＢを介して入力がなされる場合、ＣＥＢは、例えば制御および解析のために、選択的アプリケーション関連情報上で追加されたサービスを提供することができる。例えば、解析エージェントまたはアプリケーションプログラミングインターフェース（ＡＰＩ）は、追加されたサービスを提供または実施するために、ＣＥＢに組み込まれることができる。
【００３１】
ＣＥＢ（時に、作業空間アプリケーションまたはレシーバーという）は、ネットワークアプリケーションへのアクセスを提供するために、１つ以上のゲートウェイサービス、中間体、および／またはネットワークサービス（時に、まとめてクラウドサービスまたはサイトリックスクラウドという）と相互作動することができる。クラウドサービスの実施形態のオペレーションに関する環境の特徴および要素は、以下で説明される。
【００３２】
図２は、ネットワークアプリケーションを含むリソースにアクセスすることにおける使用のためのクラウドサービスの実施形態を例示する。クラウドサービスは、企業移動性技術アーキテクチャ２００を含むことができ、それは、１つの例示的な実施形態において、アクセスゲートウェイ２６０を含むことができる。アーキテクチャは、例えば、私的デバイスの持ち込み（ｂｒｉｎｇ−ｙｏｕｒ−ｏｗｎ−ｄｅｖｉｃｅ；ＢＹＯＤ）環境において使用されることができる。アーキテクチャは、クライアントデバイス２０４（例えば、携帯または他のデバイス）のユーザーがクライアントデバイス２０２からの企業リソースまたは個人リソースにアクセスすることと、クライアントデバイス２０４を個人的な用途のために使用することとの両方を可能にすることができる。ユーザーは、クライアントデバイス２０４上において稼働するクライアントアプリケーションを介してそのような企業リソース２０４または企業サービス２０８にアクセスし得る。ユーザーは、ユーザーによって購入されたクライアントデバイス２０４、または企業によってユーザーに提供されたクライアントデバイス２０２を使用することによって、そのような企業リソース２０４または企業サービス２０８にアクセスし得る。ユーザーは、ビジネス用途のみのために、またはビジネス用途および個人的な用途のためにクライアントデバイス２０２を利用し得る。クライアントデバイスは、ｉＯＳオペレーティングシステムおよびＡｎｄｒｏｉｄ（登録商標）オペレーティングシステムなどを動作させ得る。企業は、クライアントデバイス２０４を管理するために、ポリシーを実装することを選び得る。ポリシーは、クライアントデバイスが識別、安全化、またはセキュリティ検証され得、企業リソースへの選択的または完全なアクセスを提供され得るように、ファイヤーウォールまたはゲートウェイを通して埋め込まれ得る。ポリシーは、クライアントデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはクライアントデバイス、アプリケーション、およびデータ管理ポリシーの何らかの組み合わせであり得る。クライアントデバイス管理ポリシーのアプリケーションを通して管理されるクライアントデバイス２０４は、登録済みデバイスという場合がある。クライアントデバイス管理ポリシーは、例えばクライアントアプリケーションを介して適用されることができる。
【００３３】
いくつかの実施形態において、クライアントデバイスのオペレーティングシステムは、管理対象パーティション２１０と、非管理対象パーティション２１２とに分離され得る。管理対象パーティション２１０は、管理対象パーティション上で動作するアプリケーションと管理対象パーティションに格納されるデータとを安全化するために、管理対象パーティション２１０に適用されるポリシーを有し得る。管理対象パーティション上で動作するアプリケーションは、安全なアプリケーションであり得る。他の実施形態において、全てのアプリケーションは、アプリケーションから分離して受け取られる１つ以上のポリシーファイル一式に従って稼働し得、当該ポリシーファイルは、アプリケーションがデバイス上で稼働しているときにクライアントデバイス管理システムによって行われる１つ以上のセキュリティパラメーター、特徴、リソース制限、および／または他のアクセス制御を定義する。それぞれの１つ以上のポリシーファイルに従って作動することによって、各アプリケーションは、１つ以上の他のアプリケーションおよび／またはリソースとの通信を許可され得るか、または１つ以上の他のアプリケーションおよび／またはリソースとの通信を制限され得、それによって、仮想パーティションを作成する。従って、本明細書において、パーティションは、物理的に区切られたメモリの部分（物理パーティション）、論理上区切られたメモリの部分（論理パーティション）、ならびに／または本明細書において説明されるような１つ以上のポリシーおよび／もしくは複数のアプリにわたるポリシーファイルを実行した結果作成される仮想パーティション（仮想パーティション）を指し得る。言い換えれば、管理されたアプリ上でポリシーを実行することによって、それらのアプリは、他の管理されたアプリおよび信用される企業リソースと通信することのみが可能であるように制限され得、それによって、非管理対象のアプリおよびデバイスによってアクセス可能でない仮想パーティションを作成する。
【００３４】
安全なアプリケーションは、メールアプリケーション、ウェブブラウジングアプリケーション、サービスとしてのソフトウェア（ｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ；ＳａａＳ）アクセスアプリケーション、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションアクセスアプリケーションなどであり得る。クライアントアプリケーションは、安全なアプリケーションランチャー２１８を含むことができる。安全なアプリケーションは、安全なネイティブアプリケーション２１４、安全なアプリケーションランチャー２１８によって実行される安全なリモートアプリケーション２２２、安全なアプリケーションランチャー２１８によって実行される仮想化アプリケーション２２６などであり得る。安全なネイティブアプリケーション２１４は、安全なアプリケーションラッパー２２０によってラッピングされ得る。安全なアプリケーションラッパー２２０は、安全なネイティブアプリケーションがデバイス上で実行されるときにクライアントデバイス２０２上で実行される統合されたポリシーを含み得る。安全なアプリケーションラッパー２２０は、メタデータを含み得、当該メタデータは、クライアントデバイス２０２上で動作する安全なネイティブアプリケーション２１４を、安全なネイティブアプリケーション２１４が安全なネイティブアプリケーション２１４の実行中に要請されるタスクを完了することを要求し得る企業においてホストされるリソースに差し向ける。安全なアプリケーションランチャー２１８によって実行される安全なリモートアプリケーション２２２は、安全なアプリケーションランチャーアプリケーション２１８内において実行され得る。安全なアプリケーションランチャー２１８によって実行される仮想化アプリケーション２２６は、クライアントデバイス２０２上のリソース、企業リソース２０４におけるリソースなどを利用し得る。安全なアプリケーションランチャー２１８によって実行される仮想化アプリケーション２２６によってクライアントデバイス２０２上で使用されるリソースは、ユーザー相互作用リソース、処理リソースなどを含み得る。ユーザー相互作用リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、視覚入力、ジェスチャー入力などを収集および伝送するために使用され得る。処理リソースは、ユーザーインターフェース、企業リソース２０４から受け取られるプロセスデータなどを提示するために使用され得る。安全なアプリケーションランチャー２１８によって実行される仮想化アプリケーション２２６によって企業リソース２０４において使用されるリソースは、ユーザーインターフェース生成リソース、処理リソースなどを含み得る。ユーザーインターフェース生成リソースは、ユーザーインターフェースを組み立てること、ユーザーインターフェースを修正すること、ユーザーインターフェースをリフレッシュすることなどのために使用され得る。処理リソースは、情報を作成すること、情報を読むこと、情報を更新すること、情報を削除することなどのために使用され得る。例えば、仮想化アプリケーションは、グラフィカルユーザーインターフェース（ＧＵＩ）と関連づけられるユーザー相互作用を記録し得、仮想化アプリケーションは、サーバーアプリケーションがユーザー相互作用データをサーバー上で作動するアプリケーションへの入力として使用し得るサーバーアプリケーションに、それらのユーザー相互作用を通信し得る。この配置において、企業は、アプリケーションに関連づけられたデータ、ファイルなどと同様に、アプリケーションをサーバー側において維持すると選択し得る。クライアントデバイス上でのデプロイメント（例えば、クライアントアプリケーションを介して）のためにいくつかのアプリケーションを安全化することによって企業が本明細書における原理に従ってそれらのアプリケーションを「モバイル化する」と選択し得る一方で、この配置は、ある特定のアプリケーションのためにも選択され得る。例えば、いくつかのアプリケーションがクライアントデバイス上での使用のために安全化され得る一方で、他のアプリケーションは、クライアントデバイス上でのデプロイメントに適さないかまたは準備されていない場合があり、従って、企業は、仮想化技術を通して準備されていないアプリケーションへのモバイルユーザーアクセスを提供することを選択し得る。別の例として、企業は、大量の複雑なデータセット（例えば、資材所要量計画アプリケーション）を有する大量の複雑なアプリケーションを有し得るが、この場合、クライアントデバイスのためにアプリケーションをカスタマイズするのが非常に困難であるかまたは望ましくないので、企業は、仮想技術を通してアプリケーションへのアクセスを提供することを選択し得る。さらに別の例として、企業は、安全化されたモバイル環境であっても扱いに非常に注意を要すると企業に見なされ得るがゆえに企業がそのようなアプリケーションおよびデータへのモバイルアクセスを許可するために仮想化技術を使用することを選択し得る、高度に安全化されたデータ（例えば、人事データ、顧客データ、エンジニアリングデータ）を維持するアプリケーションを有し得る。企業は、クライアントデバイス上において、完全に安全化されたアプリケーションと完全に機能的なアプリケーションとの両方を提供することを選択し得る。企業は、サーバー側でより適切に作動させられると見なされるアプリケーションへのアクセスを可能にするために、仮想化アプリケーションを含むことができるクライアントアプリケーションを使用することができる。実施形態において、仮想化アプリケーションは、安全な格納場所のうちの１つの場所における携帯電話上に、いくつかのデータ、ファイルなどを格納し得る。企業は、例えば、ある特定の情報が電話に格納されることを可能にするが他の情報を許可しないことを選択し得る。
【００３５】
本明細書において説明するように、仮想化アプリケーションに関連して、クライアントデバイスは、ＧＵＩを提示しそしてＧＵＩとのユーザー相互作用を記録するように設計された仮想化アプリケーションを有し得る。仮想化アプリケーションは、サーバー側アプリケーションによって使用されるサーバー側に、ユーザー相互作用を、アプリケーションとのユーザー相互作用として通信し得る。応答して、サーバー側のアプリケーションは、新しいＧＵＩをクライアントデバイスに伝送し返し得る。例えば、新しいＧＵＩは、静的ページ、動的ページ、アニメーションなどであり得、それによってリモートに場所決定されたリソースへのアクセスを提供する。
【００３６】
安全なアプリケーションは、クライアントデバイスの管理対象パーティション２１０における安全なデータコンテナ２２８に格納されたデータにアクセスし得る。安全なデータコンテナにおいて安全化されたデータは、安全なラッピングされたアプリケーション２１４、安全なアプリケーションランチャー２２２によって実行されるアプリケーション、安全なアプリケーションランチャー２１８によって実行される仮想化アプリケーション２２６などによってアクセスされ得る。安全なデータコンテナ２２８に格納されたデータは、ファイル、データベースなどを含み得る。安全なデータコンテナ２２８に格納されたデータは、安全なアプリケーション２３２の中で共有される特定の安全なアプリケーション２３０に制限されたデータなどを含み得る。安全なアプリケーションに制限されたデータは、安全な一般データ２３４と、高度に安全なデータ２３８とを含み得る。安全な一般データは、高度暗号化標準（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ；ＡＥＳ）１２８ビット暗号化などの強力な暗号化方式を使用し得るが、高度に安全なデータ２３８は、ＡＥＳ２５６ビット暗号化などの非常に強力な暗号化方式を使用し得る。安全なデータコンテナ２２８に格納されたデータは、デバイスマネージャー２２４からのコマンドを受け取ると、デバイスから削除され得る。安全なアプリケーションは、デュアルモードオプション２４０を有し得る。デュアルモードオプション２４０は、安全化されていないモードまたは非管理対象モードにおいて、安全化されたアプリケーションを作動させるオプションをユーザーに提示し得る。安全化されていないモードまたは非管理対象モードにおいて、安全なアプリケーションは、クライアントデバイス２０２の非管理対象パーティション２１２上の安全化されていないデータコンテナ２４２に格納されたデータにアクセスし得る。安全化されていないデータコンテナに格納されたデータは、個人データ２４４であり得る。安全化されていないデータコンテナ２４２に格納されたデータは、クライアントデバイス２０２の非管理対象パーティション２１２上で動作している安全化されていないアプリケーション２４８によってアクセスされ得る。安全化されていないデータコンテナ２４２に格納されたデータは、安全なデータコンテナ２２８に格納されたデータがクライアントデバイス２０２から削除されるときに、クライアントデバイス２０２上に残っていてもよい。企業は、ユーザーによって所有、ライセンス取得、もしくは制御される個人データ、ファイル、および／またはアプリケーション（個人データ）を存続させながら、または別様に保存しながら、企業によって所有、ライセンス取得、もしくは制御される、選択されたデータ、ファイル、および／またはアプリケーション、または全てのデータ、ファイル、および／またはアプリケーション（企業データ）をクライアントデバイスから削除することを望む場合がある。このオペレーションは、選択的消去という場合がある。本明細書において説明される様態に従って配置された企業データおよび個人データを使用して、企業は、選択的消去を実施し得る。
【００３７】
クライアントデバイス２０２は、企業における企業リソース２０４および企業サービス２０８をパブリックインターネット２４８などに接続し得る。クライアントデバイスは、バーチャルプライベートネットワーク接続を通して、企業リソース２０４および企業サービス２０８に接続し得る。バーチャルプライベートネットワーク接続（マイクロＶＰＮまたはアプリケーション固有ＶＰＮともいう）は、特定のアプリケーション（例えば、マイクロＶＰＮ２５０に例示されるように）、特定のデバイス、クライアントデバイス上の特定の安全化されたエリア（例えば、Ｏ／Ｓ  ＶＰＮ２５２に例示されるように）などに特有のものであり得る。例えば、電話の安全化されたエリアにおけるラッピングされたアプリケーションのうちの各々は、ＶＰＮへのアクセスが、おそらくユーザーまたはデバイス属性情報と合わせて、アプリケーションに関連づけられる属性に基づいて付与されるように、アプリケーション固有ＶＰＮを通して企業リソースにアクセスし得る。バーチャルプライベートネットワーク接続は、Ｍｉｃｒｏｓｏｆｔ（登録商標）エクスチェンジトラフィック、Ｍｉｃｒｏｓｏｆｔ（登録商標）アクティブディレクトリトラフィック、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）トラフィック、ハイパーテキストトランスファープロトコルセキュア（ＨＴＴＰＳ）トラフィック、アプリケーション管理トラフィックなどを運搬し得る。バーチャルプライベートネットワーク接続は、シングルサインオン認証プロセス２５４を支援し、可能にし得る。シングルサインオンプロセスは、ユーザーが単一のセットの認証クレデンシャルを提供することを可能にし、当該認証クレデンシャルは、認証サービス２５８によってその後検証される。そして、認証サービス２５８は、個々の企業リソース２０４に認証クレデンシャルを提供することをユーザーに要求することなく、複数の企業リソース２０４へのアクセスをユーザーに付与し得る。
【００３８】
バーチャルプライベートネットワーク接続は、アクセスゲートウェイ２６０によって確立され、管理され得る。アクセスゲートウェイ２６０は、クライアントデバイス２０２への企業リソース２０４の伝達を管理し、高速化し、かつ向上させるパフォーマンス強化特徴を含み得る。アクセスゲートウェイは、クライアントデバイス２０２からパブリックインターネット２４８にトラフィックを経路切替し得、クライアントデバイス２０２が、パブリックインターネット２４８上で動作する公に利用可能で安全化されていないアプリケーションにアクセスすることを可能にする。クライアントデバイスは、トランスポートネットワーク２６２を介してアクセスゲートウェイに接続し得る。トランスポートネットワーク２６２は、１つ以上のトランスポートプロトコルを使用し得、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、プライベートネットワークなどであり得る。
【００３９】
企業リソース２０４は、電子メールサーバー、ファイル共有サーバー、ＳａａＳ／ウェブアプリケーション、ウェブアプリケーションサーバー、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバーなどを含み得る。電子メールサーバーは、エクスチェンジサーバー、ロータスノーツサーバーなどを含み得る。ファイル共有サーバーは、シェアファイルサーバーなどを含み得る。ＳａａＳアプリケーションは、セールスフォースなどを含み得る。Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバーは、ローカルなＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム上で動作することを意図されているアプリケーションを提供するために構築される任意のアプリケーションサーバーなどを含み得る。企業リソース２０４は、プレミスベースのリソース、クラウドベースのリソースなどであり得る。企業リソース２０４は、直接、またはアクセスゲートウェイ２６０を通してクライアントデバイス２０２によってアクセスされ得る。企業リソース２０４は、トランスポートネットワーク２６２を介してクライアントデバイス２０２によってアクセスされ得る。トランスポートネットワーク２６２は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、プライベートネットワークなどであり得る。
【００４０】
クラウドサービスは、アクセスゲートウェイ２６０および／または企業サービス２０８を含み得る。企業サービス２０８は、認証サービス２５８、脅威検出サービス２６４、デバイスマネージャーサービス２２４、ファイル共有サービス２６８、ポリシーマネージャーサービス２７０、ソーシャル統合サービス２７２、アプリケーションコントローラーサービス２７４などを含み得る。認証サービス２５８は、ユーザー認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービスなどを含み得る。認証サービス２５８は、証明書を使用し得る。証明書は、企業リソース２０４などによってクライアントデバイス２０２上に格納され得る。クライアントデバイス２０２上に格納された証明書は、クライアントデバイス上の暗号化された場所に格納され得、証明書は、認証時の使用などのためにクライアントデバイス２０２上に一時的に格納され得る。脅威検出サービス２６４は、侵入検出サービス、不正アクセス試行検出サービスなどを含み得る。不正アクセス試行検出サービスは、デバイス、アプリケーション、データなどへの不正アクセス試行を含み得る。デバイス管理サービス２２４は、構成サービス、プロビジョニングサービス、セキュリティサービス、サポートサービス、監視サービス、報告サービス、および閉鎖サービスを含み得る。ファイル共有サービス２６８は、ファイル管理サービス、ファイル格納サービス、ファイル共同サービスなどを含み得る。ポリシーマネージャーサービス２７０は、デバイスポリシーマネージャーサービス、アプリケーションポリシーマネージャーサービス、データポリシーマネージャーサービスなどを含み得る。ソーシャル統合サービス２７２は、連絡先統合サービス、共同サービス、Ｆａｃｅｂｏｏｋ、Ｔｗｉｔｔｅｒ、およびＬｉｎｋｅｄＩｎなどのソーシャルネットワークとの統合などを含み得る。アプリケーションコントローラーサービス２７４は、管理サービス、プロビジョニングサービス、デプロイメントサービス、割り当てサービス、取消サービス、ラッピングサービスなどを含み得る。
【００４１】
企業移動性技術アーキテクチャ２００は、アプリケーションストア２７８を含み得る。アプリケーションストア２７８は、ラッピングされていないアプリケーション２８０、予めラッピングされたアプリケーション２８２などを含み得る。アプリケーションは、アプリケーションコントローラー２７４からアプリケーションストア２７８にポピュレートされ得る。アプリケーションストア２７８は、アクセスゲートウェイ２６０、パブリックインターネット２４８などを通してクライアントデバイス２０２によってアクセスされ得る。アプリケーションストアは、直感的で使いやすいユーザーインターフェースを提供され得る。
【００４２】
ソフトウェア開発キット２８４は、アプリケーションの周りに安全なラッパーを提供することによって、ユーザーによって選択されるアプリケーションを安全化する性能をユーザーに提供し得る。その後、ソフトウェア開発キット２８４を使用することによってラッピングされたアプリケーションは、アプリケーションコントローラー２７４を使用して当該アプリケーションをアプリケーションストア２７８にポピュレートすることによって、クライアントデバイス２０２に利用可能にされ得る。
【００４３】
企業移動性技術アーキテクチャ２００は、管理および解析性能を含み得る。管理および解析性能は、リソースがどのように使用されるか、リソースがどのくらいの頻度で使用されるかなどに関する情報を提供し得る。リソースは、デバイス、アプリケーション、データなどを含み得る。リソースがどのように使用されるかということは、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするかなどを含み得る。リソースがどのくらいの頻度で使用されるかということは、アプリケーションがどのくらいの頻度でダウンロードされたか、特定のデータのセットがアプリケーションによって何回アクセスされたかなどを含み得る。
【００４４】
図３は、企業移動性管理システム３００の例示的な実施形態を示す。図２を参照して上記で説明された移動性管理システム２００の構成要素のうちのいくつかは、簡易化のために省略されている。図３に示されるシステム３００のアーキテクチャは、図２を参照して上記で説明されたシステム２００のアーキテクチャと多くの点において類似しており、上述されていない追加的な特徴を含み得る。
【００４５】
この場合、左側は、クライアントエージェント３０４とともに登録済みクライアントデバイス３０２を表し、クライアントエージェント３０４は、ゲートウェイサーバー３０６と相互作用して、右側の上に示されるようなＷｅｂまたはＳａａＳアプリケーション、エクスチェンジ、シェアポイント、パブリックキーインフラストラクチャ（ＰＫＩ）リソース、ケルベロスリソース、証明書発行（Ｃｅｒｔｉｆｉｃａｔｅ  Ｉｓｓｕａｎｃｅ）サービスなどの様々な企業リソース３０８およびサービス３０９にアクセスする。ゲートウェイサーバー３０６は、アクセスゲートウェイ２６０およびアプリケーションコントローラー機能性などのクラウドサービスの特徴および機能性の実施形態を含むことができる。具体的に示されていないものの、クライアントエージェント３０４は、ネットワークアプリケーションの選択および／またはダウンロードのために、企業アプリケーションストア（ストアフロント）として作動することができるクライアントアプリケーションの一部であり得、かつ／または、当該クライアントアプリケーションと相互作用し得る。
【００４６】
クライアントエージェント３０４は、高解像度ユーザーエクスペリエンス（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｕｓｅｒ  Ｅｘｐｅｒｉｅｎｃｅ；ＨＤＸ）または独立コンピューティングアーキテクチャ（Ｉｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ；ＩＣＡ）ディスプレイリモーティングプロトコルを使用することによってアクセスされる、エンタープライズデータセンターにおいてホストされたＷｉｎｄｏｗｓ（登録商標）アプリ／デスクトップのためのＵＩ（ユーザーインターフェース）中間体として機能することができる。クライアントエージェント３０４は、ネイティブｉＯＳまたはＡｎｄｒｏｉｄ（登録商標）アプリケーションなどの、クライアントデバイス３０２上のネイティブアプリケーションのインストールおよび管理もサポートすることができる。例えば、上記の図に示される管理対象アプリケーション３１０（メール、ブラウザ、ラッピングされたアプリケーション）は、デバイス上でローカルに稼働するネイティブアプリケーションである。このアーキテクチャのクライアントエージェント３０４およびアプリケーション管理フレームワークは、企業リソース／サービス３０８への接続性およびＳＳＯ（シングルサインオン）などのポリシーによって駆動される管理性能および特徴を提供するために機能する。クライアントエージェント３０４は、企業への（例えば、他のゲートウェイサーバー構成要素に対するＳＳＯによるアクセスゲートウェイ（ＡＧ）への）一次ユーザー認証を扱う。クライアントエージェント３０４は、クライアントデバイス３０２上の管理対象アプリケーション３１０の挙動を制御するために、ゲートウェイサーバー３０６からポリシーを取得する。
【００４７】
ネイティブアプリケーション３１０とクライアントエージェント３０４との間におけるセキュアインタープロセスコミュニケーション（ＩＰＣ）リンク３１２は、管理チャネルを表し、管理チャネルは、各アプリケーションを「ラッピングする」アプリケーション管理フレームワーク３１４によって実行されるポリシーをクライアントエージェントが供給することを可能にする。ＩＰＣチャネル３１２は、企業リソース３０８への接続性およびＳＳＯを可能にするクレデンシャルならびに認証情報を、クライアントエージェント３０４が供給することも可能にする。最後に、ＩＰＣチャネル３１２は、アプリケーション管理フレームワーク３１４が、オンライン認証およびオフライン認証などのクライアントエージェント３０４によって実装されるユーザーインターフェース機能を起動することを可能にする。
【００４８】
クライアントエージェント３０４とゲートウェイサーバー３０６との間における通信は、本質的に、各ネイティブ管理対象アプリケーション３１０をラッピングするアプリケーション管理フレームワーク３１４からの管理チャネルの拡張である。アプリケーション管理フレームワーク３１４は、クライアントエージェント３０４からポリシー情報を要請し、クライアントエージェント３０４は、次に当該ポリシー情報をゲートウェイサーバー３０６から要請する。アプリケーション管理フレームワーク３１４は、認証を要求し、クライアントエージェント３０４は、ゲートウェイサーバー３０６のゲートウェイサービス部分（ＮｅｔＳｃａｌｅｒアクセスゲートウェイとしても知られる）にログインする。クライアントエージェント３０４は、ゲートウェイサーバー３０６上でサポートサービスも呼び出し得、それは、下記でより完全に説明されるように、ローカルデータボールト３１６のための暗号化キーを導き出すための入力材料を生成し得るか、または、ＰＫＩ保護化リソースへの直接認証を可能にし得るクライアント証明書を提供し得る。
【００４９】
より詳細には、アプリケーション管理フレームワーク３１４は、各管理対象アプリケーション３１０を「ラッピングする」。これは、明示的な構築ステップを介して、または構築後処理ステップを介して、組み入れられ得る。アプリケーション管理フレームワーク３１４は、アプリケーション３１０の最初の起動においてクライアントエージェント３０４と「ペアリング」し得て、安全なＩＰＣチャネルを初期化し、そのアプリケーションのためのポリシーを取得する。アプリケーション管理フレームワーク３１４は、（クライアントエージェントログイン依存性、およびローカルＯＳサービスがどのように使用され得るか、または当該サービスがどのようにアプリケーション３１０と相互作用し得るかを制限する制約ポリシーのうちのいくつかなど）ローカル適用するポリシーの関連部分を実行し得る。
【００５０】
アプリケーション管理フレームワーク３１４は、認証および内部ネットワークアクセスを容易にするために、安全なＩＰＣチャネル３１２を経由してクライアントエージェント３０４によって提供されるサービスを使用し得る。プライベートおよび共有データボールト３１６（コンテナ）のためのキー管理は、管理対象アプリケーション３１０とクライアントエージェント３０４との間における適切な相互作用によっても管理され得る。ボールト３１６は、オンライン認証後にのみ利用可能であり得るか、または、ポリシーによって許可された場合、オフライン認証の後に利用可能にされ得る。ボールト３１６の最初の使用は、オンライン認証を要求し得、オフラインアクセスは、最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に限定され得る。
【００５１】
内部リソースへのネットワークアクセスは、アクセスゲートウェイ３０６を通して個別の管理対象アプリケーション３１０から直接起こり得る。アプリケーション管理フレームワーク３１４は、各アプリケーション３１０のためにネットワークアクセスを編成することを担う。クライアントエージェント３０４は、オンライン認証に続いて取得される適切な時間制限付き二次的クレデンシャルを提供することによって、これらのネットワーク接続を容易にし得る。リバースウェブプロキシ接続およびエンドツーエンドＶＰＮ形式トンネル３１８など、ネットワーク接続の複数のモードが使用され得る。
【００５２】
メールおよびブラウザ管理対象アプリケーション３１０は、特別な状態を有することができ、任意にラッピングされたアプリケーションにとって通常利用可能でないであろうファシリティを利用し得る。例えば、メールアプリケーションは、メールアプリケーションが完全なＡＧログオンを要求することなく延長された期間にわたってエクスチェンジにアクセスすることを可能にする特別なバックグラウンドネットワークアクセス機構を使用し得る。ブラウザアプリケーションは、異なる種類のデータを分離するために、複数のプライベートデータボールトを使用し得る。
【００５３】
このアーキテクチャは、様々な他のセキュリティ特徴の組み入れをサポートすることができる。例えば、いくつかの場合におけるゲートウェイサーバー３０６（そのゲートウェイサービスを含む）は、アクティブディレクトリ（ＡＤ）パスワードを確認する必要がないかもしれない。ある状況においてＡＤパスワードがあるユーザーのための認証ファクターとして使用されるかどうかは、企業の裁量に任せることができる。ユーザーがオンラインまたはオフラインである（すなわち、ネットワークに接続されているかまたは接続されていない）場合、異なる認証方法が使用され得る。
【００５４】
ステップアップ認証は、ゲートウェイサーバー３０６が、強力な認証を使用することによって扱いにより注意を要するデータへのアクセスを有することが許可された管理対象ネイティブアプリケーション３１０を識別し得、かつ、たとえこれが前回のより弱いレベルのログイン後に再認証がユーザーから要請されることを意味するとしても、適切な認証を実施した後にのみこれらのアプリケーションへのアクセスが許可されることを確実にし得る特徴である。
【００５５】
この解決手段の別のセキュリティ特徴は、クライアントデバイス３０２上のデータボールト３１６（コンテナ）の暗号化である。ボールト３１６は、クリップボード／キャッシュデータ、ファイル、データベース、および構成を含む全てのオンデバイスデータが保護されるように、暗号化され得る。オンラインボールトについて、キーは、サーバー（ゲートウェイサーバー３０６）上に格納され得、オフラインボールトについて、キーのローカルコピーがユーザーパスワードまたは生体確認によって保護され得る。データが安全なコンテナ３１６においてデバイス３０２上でローカルに格納される場合、ＡＥＳ２５６暗号化アルゴリズムの最小値が利用されることが好ましい。
【００５６】
他の安全なコンテナ特徴も実装され得る。例えば、ロギング特徴が含まれ得、アプリケーション３１０の内部で起こる全てのセキュリティイベントがログされ、バックエンドに報告される。アプリケーション３１０が改竄を検出した場合などにおいて、データ消去がサポートされ得、ユーザーデータが破壊されたことの手がかりをファイルシステムに何ら残さず、関連づけられた暗号化キーがランダムデータによって上書きされ得る。スクリーンショット保護は、別の特徴であり、アプリケーションは、任意のデータがスクリーンショットにおいて格納されることを防止し得る。例えば、キーウィンドウの隠されたプロパティがＹＥＳに設定され得る。これは、どのようなコンテンツが現在スクリーンに表示されていても、そのコンテンツを隠れさせ得、その結果、通常任意のコンテンツが存在するスクリーンショットが空白になる。
【００５７】
例えば、データを外部のアプリケーションにコピーまたは送信することによって任意のデータがアプリケーションコンテナの外部にローカルに移行されることを防止することなどによって、ローカルなデータ移行が防止され得る。キーボードキャッシュ特徴は、扱いに注意を要するテキストフィールドのために自動修正機能性を無効化するように作動し得る。ＳＳＬ証明書確認は、アプリケーションがサーバーＳＳＬ証明書をキーチェーンにおいて格納する代わりにサーバーＳＳＬ証明書を具体的に確認するように、作動可能であり得る。暗号化キー生成特徴は、（オフラインアクセスが要求された場合）ユーザーによって供給されるパスフレーズまたは生体データを使用することによってデバイス上でデータを暗号化するために使用されるキーが生成されるように、使用され得る。オフラインアクセスが要求されない場合、それは、ランダムに生成されサーバー側で格納される別のキーとＸＯＲされ得る。キー導出関数は、ユーザーパスワードから生成されたキーが、それの暗号ハッシュを作成するのではなく、ＫＤＦ（キー導出関数、とりわけパスワードベースのキー導出関数２（Ｐａｓｓｗｏｒｄ−Ｂａｓｅｄ  Ｋｅｙ  Ｄｅｒｉｖａｔｉｏｎ  Ｆｕｎｃｔｉｏｎ  ２；ＰＢＫＤＦ２））を使用するように作動し得る。暗号ハッシュによって、キーは、総当たり攻撃または辞書攻撃を受けやすくなる。
【００５８】
さらに、暗号化方法において、１つ以上の初期化ベクトルが使用され得る。初期化ベクトルは、同じ暗号化データの複数のコピーに異なる暗号テキスト出力を生じさせ得、反射攻撃と暗号解読攻撃との両方を防止する。これは、攻撃者が盗まれた暗号キーを使用した場合であっても、攻撃者が任意のデータを復号化することも防止し得る。さらに、認証そして復号化が使用され得、アプリケーションデータは、ユーザーがアプリケーション内において認証された後にのみ復号化される。別の特徴は、メモリ内の扱いに注意を要するデータに関連し得、当該データは、必要とされるときのみ（ディスク内でなく）メモリ内に保存され得る。例えば、ログインクレデンシャルは、ログイン後にメモリから消去され得、暗号化キーおよびオブジェクティブ−Ｃインスタンス変数内部の他のデータは、容易に参照され得るので格納されない。代わりに、これらのために、メモリが手動で割り当てられ得る。
【００５９】
ＣＥＢを介して無活動タイムアウトが実装され得、ポリシーによって定義された無活動の期間の後に、ユーザーセッションが終了する。
【００６０】
アプリケーション管理フレームワーク３１４からのデータ漏洩は、他の方法で防止され得る。例えば、アプリケーション３１０がバックグラウンドに置かれる場合、メモリは、所定の（構成可能な）期間後にクリアされ得る。バックグラウンド化される場合、フォアグラウンドプロセスを結びつけるために、アプリケーションの最後に表示されるスクリーンのスナップショットが撮られ得る。スクリーンショットは、機密データを含み得、従って、クリアされるべきである。
【００６１】
別のセキュリティ特徴は、１つ以上のアプリケーションへのアクセスのためのＡＤ（アクティブディレクトリ）３２２パスワードの使用を伴わないＯＴＰ（ｏｎｅ  ｔｉｍｅ  ｐａｓｓｗｏｒｄ；ワンタイムパスワード）３２０の使用に関する。いくつかの場合において、あるユーザーたちは、自分のＡＤパスワードを知らない（または知ることを許されていない）ため、そのユーザーたちは、ＳｅｃｕｒＩＤなどのハードウェアＯＴＰシステムを使用することなどによって、ＯＴＰ３２０を使用することによって認証し得る（ＯＴＰは、ＥｎｔｒｕｓｔまたはＧｅｍａｌｔｏなどの異なるベンダによっても提供され得る）。いくつかの場合において、ユーザーがユーザーＩＤを使用して認証した後、ＯＴＰ３２０によってユーザーにテキストが送信される。いくつかの場合において、これは、単一フィールドであるプロンプトによって、オンライン使用でのみ実装され得る。
【００６２】
オフラインパスワードは、企業ポリシーを介してオフライン使用が許可されるアプリケーション３１０についてのオフライン認証のために実装され得る。例えば、企業は、ストアフロントがこのような態様でアクセスされることを望み得る。この場合、クライアントエージェント３０４は、ユーザーに、カスタムオフラインパスワードを設定することを要求し得、ＡＤパスワードは、使用されない。ゲートウェイサーバー３０６は、標準的なＷｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒパスワード複雑度要件によって記述されるなどの最小の長さ、文字クラス構成、およびパスワードの期限に関するパスワード基準を制御および実行するためのポリシーを提供し得る。ただし、これらの要件は、修正され得る。
【００６３】
別の特徴は、（アプリケーション管理フレームワークマイクロＶＰＮ特徴を介してＰＫＩ保護化ウェブリソースにアクセスする目的のための）二次的クレデンシャルとしてのある特定のアプリケーション３１０用のクライアント側の証明書の有効化に関する。例えば、アプリケーションは、そのような証明書を利用し得る。この場合、ＡｃｔｉｖｅＳｙｎｃプロトコルを使用する証明書ベースの認証がサポートされ得、クライアントエージェント３０４からの証明書がゲートウェイサーバー３０６によって検索され得、キーチェーンにおいて使用され得る。各管理対象アプリケーションは、ゲートウェイサーバー３０６において定義されるラベルによって識別される１つの関連づけられたクライアント証明書を有し得る。
【００６４】
ゲートウェイサーバー３０６は、関連する管理対象アプリケーションが内部ＰＫＩ保護化リソースへ認証することを可能にするためのクライアント証明書の発行をサポートするために、エンタープライズ専用のウェブサービスと相互作用し得る。
【００６５】
クライアントエージェント３０４およびアプリケーション管理フレームワーク３１４は、内部ＰＫＩ保護化ネットワークリソースへの認証のためのクライアント証明書を取得し使用することをサポートするために、強化され得る。様々なレベルのセキュリティおよび／または分離要件に合わせるように、２つ以上の証明書がサポートされ得る。証明書は、メールおよびブラウザ管理対象アプリケーションによって使用され得、最終的に、任意のラッピングされたアプリケーションによって使用され得る（ただし、それらのアプリケーションは、アプリケーション管理フレームワークがｈｔｔｐｓ要求を媒介することが合理的である場合、ウェブサービス形式通信パターンを使用するものとする）。
【００６６】
ｉＯＳ上のアプリケーション管理クライアント証明書サポートは、各使用期間について、各管理対象アプリケーションにおいて公開キー暗号法基準（ｐｕｂｌｉｃ−ｋｅｙ  ｃｒｙｐｔｏｇｒａｐｈｙ  ｓｔａｎｄａｒｄｓ；ＰＫＣＳ）１２  ＢＬＯＢ（バイナリーラージオブジェクト）をｉＯＳキーチェーンにインポートすることに依拠し得る。アプリケーション管理フレームワーククライアント証明書サポートは、プライベートインメモリキーストレージを有するＨＴＴＰＳ実装を使用し得る。クライアント証明書は、ｉＯＳキーチェーンにおいて決して存在し得ず、強力に保護された「オンラインのみ」データ値において潜在的に存在する場合を除いて、存続され得ない。
【００６７】
相互ＳＳＬまたはＴＬＳも、クライアントデバイス３０２が企業に認証されることを要求すること、かつその逆を要求することによって追加的なセキュリティを提供するために実装され得る。ゲートウェイサーバー３０６への認証のための仮想スマートカードも実装され得る。
【００６８】
限定的ケルベロスサポートと完全ケルベロスサポートとの両方が、追加的な特徴であり得る。完全なサポート特徴は、ＡＤパスワードまたは信頼されるクライアント証明書を使用することによってアクティブディレクトリ（ＡＤ）３２２への完全なケルベロスログインを行い、ＨＴＴＰネゴシエイト（Ｎｅｇｏｔｉａｔｅ）認証チャレンジに応答するためのケルベロスサービスチケットを取得する能力に関する。限定的サポート特徴は、サイトリックスアクセスゲートウェイ企業編集（Ｃｉｔｒｉｘ  Ａｃｃｅｓｓ  Ｇａｔｅｗａｙ  Ｅｎｔｅｒｐｒｉｓｅ  Ｅｄｉｔｉｏｎ；ＡＧＥＥ）の制約付き委任に関し、ＡＧＥＥは、ＨＴＴＰネゴシエイト認証チャレンジに応答して（制約付き委任の対象となる）ケルベロスサービスチケットを取得および使用することができるように、ケルベロスプロトコル遷移を起動することをサポートする。この機構は、リバースウェブプロキシ（ａｋａコーポレートバーチャルプライベートネットワークアプリケーション（ＣＶＰＮ））モードで、ｈｔｔｐ（ｈｔｔｐｓではない）接続がＶＰＮおよびマイクロＶＰＮモードでプロキシされるときに、作用する。
【００６９】
別の特徴は、アプリケーションコンテナのロックおよび消去に関し、それらは、ジェイルブレイクまたはルーティング検出の際に自動的に起こり得、管理側コンソールからのプッシュされたコマンドとして起こり得、アプリケーション３１０が動作していないときでもリモート消去機能を含み得る。
【００７０】
企業アプリケーションストアおよびアプリケーションコントローラーのマルチサイトアーキテクチャまたは構成は、サポートされ得、それは、ユーザーが、障害時にいくつかの異なる場所のうちの１つの場所からサービスを受けることを可能にする。
【００７１】
いくつかの場合において、管理対象アプリケーション３１０は、ＡＰＩ（例えば、ＯｐｅｎＳＳＬ）を介して証明書およびプライベートキーにアクセスすることを許可され得る。企業の信頼された管理対象アプリケーション３１０は、アプリケーションのクライアント証明書およびプライベートキーによって特定の公開キーオペレーションを実施することを許可され得る。アプリケーションがブラウザのような挙動をして証明書アクセスが何ら使用されない場合、アプリケーションが「自分が誰なのか」についての証明書を読み取る場合、アプリケーションが証明書を使用して安全なセッショントークンを構築する場合、および、アプリケーションが重要なデータ（例えば、トランザクションログ）のデジタル署名用または一時的なデータ暗号化用のプライベートキーを使用する場合など、様々な使用状況が識別され得、それに応じて取り扱われ得る。
【００７２】
ここで図４を参照すると、組み込みブラウザのシステム４００のブロック図が示されている。概略として、システム４００は、ユーザーのためのデジタル作業空間を有するクライアントデバイス４０２と、クライアントアプリケーション４０４と、少なくとも１つのネットワークデバイス４３２上で作動するクラウドサービス４０８と、１つ以上のサーバー４３０から提供されかつ／または１つ以上のサーバー４３０上でホストされるネットワークアプリケーション４０６とを含み得る。クライアントアプリケーション４０４は、例えば、組み込みブラウザ４１０、ネットワーキングエージェント４１２、クラウドサービスエージェント４１４、リモートセッションエージェント４１６、または安全なコンテナ４１８のうちの少なくとも１つを含むことができる。クラウドサービス４０８は、例えば、１つ以上の安全なブラウザ４２０、アクセスゲートウェイ４２２（または、例えばクライアントアプリケーションおよび／もしくはユーザーを登録ならびに／または認証するためのＣＩＳ）、または解析サービス４２４（または、例えば解析のためにクライアントアプリケーションから情報を受け取るためのＣＡＳ）のうちの少なくとも１つを含むことができる。ネットワークアプリケーション４０６は、承認済みアプリケーション４２６および未承認アプリケーション４２８を含み得る。
【００７３】
上述の要素またはエンティティのうちの各々は、１つ以上の実施形態において、ハードウェアまたはハードウェアとソフトウェアとの組み合わせにおいて実装される。システム２００の各構成要素は、図１に関連して上記で詳細に述べられたハードウェアまたはハードウェアとソフトウェアとの組み合わせを使用して実装され得る。例えば、これらの要素またはエンティティのうちの各々は、クライアントデバイス４０２のハードウェア、少なくとも１つのネットワークデバイス４３２、および／または１つ以上のサーバー４３０上で稼働する任意のアプリケーション、プログラム、ライブラリ、スクリプト、タスク、サービス、プロセスまたは任意の種類および形態の実行可能な命令を含むことができる。ハードウェアは、１つ以上の実施形態において、１つ以上のプロセッサなどの回路を含む。例えば、少なくとも１つのネットワークデバイス４３２および／または１つ以上のサーバー４３０は、例えば少なくとも図１に関連して上記で説明されたコンピューティングデバイスの要素のうちの任意の要素を含むことができる。
【００７４】
クライアントデバイス４０２は、例えば少なくとも図１に関連して上記で説明されたコンピューティングデバイスの任意の実施形態を含むことができる。クライアントデバイス４０２は、デスクトップコンピューター、ラップトップコンピューター、タブレットデバイス、スマートフォン、または任意の他のモバイルもしくはパーソナルデバイスなどの任意のユーザーデバイスを含むことができる。クライアントデバイス４０２は、ユーザーのデジタル作業空間を含むことができ、当該デジタル作業空間は、クライアントデバイス４０２上の１つ以上のファイルシステム、キャッシュもしくはメモリ（例えば、１つ以上の電子クリップボードを含む）、１つ以上のコンテナ、１つ以上のアプリケーション、および／または他のリソースを含むことができる。デジタル作業空間は、クライアントデバイス４０２によってアクセス可能な１つ以上のネットワーク（１つ以上のネットワークを介してアクセス可能な１つ以上のファイルシステムおよび／または他のリソースを含む、イントラネットおよびインターネットなど）を含むことができるか、または当該ネットワークまで拡張することができる。デジタル作業空間の一部は、例えば組み込みブラウザ４１０を有するクライアントアプリケーション４０４（ＣＥＢ）の使用を介して安全化されることができる。デジタル作業空間の安全な部分は、例えば、ＣＥＢに割り当てられかつ／またはＣＥＢを介してアクセスされる１つ以上のネットワークアプリケーション４０６にＣＥＢによって割り当てられる１つ以上のファイルシステム、キャッシュもしくはメモリ（例えば、１つ以上の電子クリップボードを含む）、１つ以上のアプリケーション、１つ以上のコンテナ、および／または他のリソースを含むことができる。デジタル作業空間の安全な部分は、デジタル作業空間の安全な部分を含めるために（１つ以上のポリシーを介して）ＣＥＢによって特定されるリソースを含むこともできる（例えば、特定のローカルアプリケーションは、ポリシーを介して、ネットワークアプリケーションから取得されたデータを受け取ることを許可されていると特定されることができる）。
【００７５】
クライアントアプリケーション４０４は、組み込みブラウザ４１０、ネットワーキングエージェント４１２、クラウドサービス４１４（時に、管理エージェントという）、リモートセッションエージェント４１６（時に、ＨＤＸエンジンという）、および／または安全なコンテナ４１８（時に、安全なキャッシュコンテナという）などの１つ以上の構成要素を含むことができる。構成要素のうちの１つ以上の構成要素は、ＣＥＢまたはクライアントアプリケーション４０４のソフトウェアビルドもしくはリリースの一部としてインストールされることができるか、個別に得られることができるか、または、例えばＣＥＢまたはクライアントアプリケーション４０４の既存のインストールにダウンロードされ、インストールされる／統合されることができる。例えば、クライアントデバイスは、１つ以上のネットワークデバイス４３２からクライアントアプリケーション４０４（または任意の構成要素）をダウンロードし得るか、または別様に受け取り得る。いくつかの実施形態において、クライアントデバイスは、クライアントアプリケーション４０４に対する要請を、１つ以上のネットワークデバイス４３２に送信し得る。例えば、クライアントデバイスのユーザーは、クライアントアプリケーションの要請、ダウンロード、および／またはインストールを開始することができる。次に、１つ以上のネットワークデバイス４３２は、クライアントアプリケーションをクライアントデバイスに送信し得る。いくつかの実施形態において、１つ以上のネットワークデバイス４３２は、クライアントアプリケーションに対するセットアップまたはインストールをクライアントデバイスに送信し得る。受け取りの際、クライアントデバイスは、クライアントデバイスのハードディスクにクライアントアプリケーションをインストールし得る。いくつかの実施形態において、クライアントデバイスは、クライアントアプリケーションのパッケージを復元または解凍するために、セットアップアプリケーションを動作させ得る。いくつかの実施形態において、クライアントアプリケーションは、クライアントデバイスにインストールされた別のアプリケーション（例えば、ネットワーキングエージェント４１４）への拡張（例えば、アドオン、アドイン、アプレットまたはプラグイン）であり得る。クライアントデバイスは、予めインストールされたアプリケーションとインターフェースで接続するか相互作動するために、クライアントアプリケーションをインストールし得る。いくつかの実施形態において、クライアントアプリケーションは、スタンドアローンアプリケーションであり得る。クライアントデバイスは、個別のプロセスとして稼働するために、クライアントアプリケーションをインストールし得る。
【００７６】
組み込みブラウザ４１０は、ウェブブラウザアプリケーションまたはエンジンの要素と機能性とを含むことができる。組み込みブラウザ４１０は、クライアントアプリケーションの構成要素または拡張として１つ以上のネットワークアプリケーションをローカルにレンダリングすることができる。例えば、組み込みブラウザ４１０は、アプリケーションセッションの制御と完全な可視性とをＣＥＢに提供することができる、ＣＥＢ内部のＳａａＳ／Ｗｅｂアプリケーションをレンダリングすることができる。組み込みブラウザは、クライアントアプリケーションの実行可能なコードへの直接統合（例えば、プログラミング言語またはスクリプト挿入）など任意の手段を介して、またはプラグインインストールを介してクライアントアプリケーションに組み込まれることができるか、または組み入れられることができる。例えば、組み込みブラウザは、クロミウムベースのブラウザエンジンまたは他の種類のブラウザエンジンを含むことができ、それらのエンジンは、例えばクロミウム組み込みフレームワーク（Ｃｈｒｏｍｉｕｍ  ｅｍｂｅｄｄｅｄ  ｆｒａｍｅｗｏｒｋ；ＣＥＦ）を使用してクライアントアプリケーションに組み込まれることができる。組み込みブラウザは、ＨＴＭＬ５−ベースのレイアウトグラフィカルユーザーインターフェース（ＧＵＩ）を含むことができる。組み込みブラウザは、様々なプログラミング言語を組み入れるクライアントアプリケーションに、ＨＴＭＬレンダリングおよびジャバスクリプトサポートを提供することができる。例えば、組み込みブラウザの要素は、Ｃ、Ｃ＋＋、デルファイ、Ｇｏ、ジャバ、．ＮＥＴ／Ｍｏｎｏ、ビジュアルベーシック６．０、および／またはパイソンを組み入れるクライアントアプリケーションに結合することができる。
【００７７】
いくつかの実施形態において、組み込みブラウザは、クライアントアプリケーションにインストールされたプラグインを備えている。例えば、プラグインは、１つ以上の構成要素を含むことができる。そのような構成要素の１つは、アクティブエックスコントロールもしくはジャバコントロール、または任意の他の種類および／もしくは形態の、クライアントアプリケーションにローディングされクライアントアプリケーションにおいて稼働することが可能な実行可能な命令であることができる。例えば、クライアントアプリケーションは、クライアントアプリケーションのコンテクストまたはメモリ空間などにおいて、組み込みブラウザのアクティブエックスコントロールをローディングし動作させることができる。いくつかの実施形態において、組み込みブラウザは、クライアントアプリケーション上における拡張としてインストールされることができ、ユーザーは、プラグインまたは拡張を有効化または無効化することを選択することができる。組み込みブラウザ（例えば、プラグインまたは拡張を介して）は、デジタル作業空間の安全化された部分内のリソースを使用することおよび／または当該リソースにアクセスすることによって、安全化のために安全化されたブラウザとして成るか、または作動することができる。
【００７８】
組み込みブラウザは、標準的または典型的なブラウザにおいて利用可能であるか可能であるものを超えるコードおよび機能性を組み入れることができる。例えば、組み込みブラウザは、ユーザーのデジタル空間の安全化された部分の少なくとも一部を定義するために、安全化されたコンテナ４１８と結合することができるか、または当該コンテナを割り当てられることができる。組み込みブラウザは、安全化されたクリップボード（例えば、クライアントデバイスにローカルであるか、または他のデバイスに拡張可能である）を形成するために、クライアントデバイスのキャッシュの一部と結合することができるか、または当該一部を割り当てられることができ、当該一部は、安全化されたコンテナ４１８の少なくとも一部であることができる。組み込みブラウザは、ネットワークアプリケーションに関するトラフィックが確実にクライアントアプリケーションを通って経路決定され、かつ／またはクライアントアプリケーションにおいて処理されるように、クライアントアプリケーションと統合されることができ、それは、（例えば、クライアントアプリケーションを通して復号化されるときに）トラフィックに対するリアルタイムでの可視性をクライアントアプリケーションに提供することができる。トラフィックへのこの可視性は、クライアントアプリケーションがポリシーベースの管理（例えば、データ損失防止（ｄａｔａ  ｌｏｓｓ  ｐｒｅｖｅｎｔｉｏｎ；ＤＬＰ）能力を含む）、アプリケーション制御、ならびに解析の収集および生成を実施するかまたは容易にすることを可能にすることができる。
【００７９】
いくつかの実施形態において、組み込みブラウザは、クラウドサービスエージェント４１４、リモートセッションエージェント４１６、および／または安全なコンテナ４１８など、クライアントアプリケーション４０４の１つ以上の他の構成要素を組み入れる。例えば、ユーザーは、ネットワークアプリケーションにアクセスするために、アクセスゲートウェイ４２２（時に、ＣＩＳという）と相互作動するために、組み込みブラウザのクラウドサービスエージェント４１４を使用することができる。例えば、クラウドサービスエージェント４１４は、組み込みブラウザ内において稼働することができ、組み込みブラウザからナビゲーションコマンドを受け取り、ホストされたネットワークアプリケーションに伝送することができる。クラウドサービスエージェントは、ネットワークアプリケーションによって生成された出力を組み込みブラウザに表示するために、リモートプレゼンテーションプロトコルを使用することができる。例えば、クラウドサービスエージェント４１４は、エンドユーザーが組み込みブラウザ上のアプリケーションおよび／またはリモートデスクトップにアクセスすることを可能にするＨＴＭＬ５ウェブクライアントを含むことができる。
【００８０】
クライアントアプリケーション４０４およびＣＥＢは、クライアントデバイスのオペレーショナル（ＯＳＩ）スタックのアプリケーションレイヤー上で作動する。クライアントアプリケーション４０４は、クラウドサービス４０８と相互作動する１つ以上のエージェントを含むこと、および／または当該エージェントを実行することができる。クライアントアプリケーション４０４は、様々なポリシー（例えば、企業のカスタムポリシーまたはルール、規定のポリシーまたはルール、または内部ポリシーまたはルール）および／または（例えば、アクセスゲートウェイ４２２および／またはクラウドサービス４０８の１つ以上のネットワークデバイス、または企業によって管理され得る１つ以上の他のサーバーからの）データを受け取り、取得し、検索し、または別様に当該ポリシーおよび／またはデータにアクセスすることができる。クライアントアプリケーション４０４は、ネットワークアプリケーション（例えば、ＳａａＳ、ウェブまたはリモートでホストされたアプリケーション）の制御および／または管理のために、ポリシーおよび／またはデータにアクセスすることができる。ネットワークアプリケーション４０６の制御および／または管理は、アクセス制御、セッション伝達、利用可能な特徴または機能、サービスレベル、トラフィック管理および監視など、ネットワークアプリケーション４０６の様々な様態の制御および／または管理を含むことができる。ネットワークアプリケーション４０６は、企業のプロバイダまたはベンダ（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ、ＳＡＰ、Ｍｉｃｒｏｓｏｆｔ（登録商標）オフィス３６５）から、企業自身から、または別のエンティティ（例えば、ドロップボックスまたはＧメールサービス）からのものであり得る。
【００８１】
例えば、クラウドサービスエージェント４１４は、ネットワークアプリケーション４０６の使用および／またはアクセスに関連する、ポリシーによって駆動される管理性能および特徴を提供することができる。例えば、クラウドサービスエージェント４１４は、ネットワークアプリケーション４０６などのリソースへの接続性および／またはアクセス制御を決定するための１つ以上のポリシー（例えば、クラウドサービスから受け取られる）を適用するためのポリシーエンジンを含むことができる。例えば、クライアントアプリケーション４０６とＳａａＳアプリケーションを提供するサーバー４３０との間においてセッションが確立される場合、クラウドサービスエージェント４１４は、例えばＳａａＳアプリケーションのサービスレベルを管理するために、セッションのトラフィックレベルおよび／またはトラフィック種類（もしくは他の様態）を制御するための１つ以上のポリシーを適用することができる。制御または管理されることができるアプリケーショントラフィックの追加的な様態は、トラフィックに適用される暗号化レベルおよび／または暗号化種類、ユーザーに許可される相互作用性のレベル、ネットワークアプリケーションのある特定の特徴への限定されたアクセス（例えば、プリントスクリーン、保存、編集またはコピー機能）、ネットワークアプリケーションから取得されたデータの使用または移行への制限、２つ以上のネットワークアプリケーション４０６への限定的同時アクセス、ある特定のファイルリポジトリまたは他のリソースへの限定的アクセスなどを含むことができる。
【００８２】
クラウドサービスエージェント４１４は、ＣＥＢに可視であるＳａａＳ相互作用イベントについての情報などの情報を、クラウドサービス４０８の解析サービス４２４に伝えるかまたは送ることができる。ＣＥＢを使用するそのような構成は、クライアントデバイス４０２と１つ以上のサーバー４３０との間に場所決定されたプロキシまたはインラインデバイスを有することなく、またはＳａａＳ  ＡＰＩゲートウェイ「帯域外」アプローチを使用することなく、解析用の情報を監視または捕捉することができる。いくつかの実施形態において、クラウドサービスエージェント４１４は、組み込みブラウザ内において稼働しない。これらの実施形態において、ユーザーは、ネットワークアプリケーションにアクセスするために、アクセスゲートウェイ（またはＣＩＳ）４２２と相互作動するために、クラウドサービスエージェント４１４を同様に使用することができる。例えば、クラウドサービスエージェント４１４は、アクセスゲートウェイ（またはＣＩＳ）４２２に登録および／または認証することができ、アクセスゲートウェイ（またはＣＩＳ）４２２からネットワークアプリケーションのリストを取得することができる。クラウドサービスエージェント４１４は、ネットワークアプリケーションのユーザー選択および／またはダウンロードのためのアプリケーションストア（またはストアフロント）を含むこと、および／または当該アプリケーションストア（またはストアフロント）として作動することができる。ネットワークアプリケーションにアクセスするためにログインする際、クラウドサービスエージェント４１４は、組み込みブラウザからナビゲーションコマンドを傍受し、ネットワークアプリケーションに伝送することができる。クラウドサービスエージェントは、ネットワークアプリケーションによって生成された出力を組み込みブラウザに表示するために、リモートプレゼンテーションプロトコルを使用することができる。例えば、クラウドサービスエージェント４１４は、エンドユーザーが組み込みブラウザ上のアプリケーションおよび／またはリモートデスクトップにアクセスすることを可能にするＨＴＭＬ５ウェブクライアントを含むことができる。
【００８３】
いくつかの実施形態において、クラウドサービスエージェント４１４は、ユーザーおよび／またはクライアントデバイス４０２が複数のネットワークアプリケーションにアクセスするためのシングルサインオン（ＳＳＯ）性能を提供する。クラウドサービスエージェント４１４は、例えばアクセスゲートウェイ４２２と通信することによって、他のネットワークリソースおよびサービスならびにネットワークアプリケーションにアクセスするためのユーザー認証を実施することができる。例えば、クラウドサービスエージェント４１４は、ネットワークアプリケーション４０６および／またはクラウドサービス４０８の他の構成要素にアクセスするために、アクセスゲートウェイ４２２に認証または登録することができる。認証または登録に応答して、アクセスゲートウェイ４２２は、ネットワークアプリケーションとともに、ユーザーおよび／またはクライアントアプリケーションのための（または、ユーザーおよび／またはクライアントアプリケーションに代わって）認証および／またはＳＳＯを実施することができる。
【００８４】
クライアントアプリケーション４０４は、ネットワーキングエージェント４１２を含むことができる。ネットワーキングエージェント４１２は、時に、ソフトウェアによって定義されるワイドエリアネットワーク（ｓｏｆｔｗａｒｅ−ｄｅｆｉｎｅｄ  ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ；ＳＤ−ＷＡＮ）エージェント、ｍＶＰＮエージェント、またはマイクロＶＰＮエージェントという。ネットワーキングエージェント４１２は、クライアントアプリケーションと１つ以上のリソース（例えば、ネットワークアプリケーションを提供するサーバー４３０）との間におけるネットワーク接続を確立することができるか、当該ネットワーク接続の確立を容易にすることができる。ネットワーキングエージェント４１２は、ネットワークアプリケーションにアクセスするために、クライアントアプリケーションからの要請された接続についてのハンドシェイクを実施することができ、要請された接続（例えば、安全な接続または暗号化された接続）を確立することができる。ネットワーキングエージェント４１２は、例えばバーチャルプライベートネットワーク（ＶＰＮ）を介して企業リソース（サービスを含む）に接続することができる。例えば、ネットワーキングエージェント４１２は、クライアントアプリケーションとネットワークアプリケーション４０６を提供するサーバー４３０との間においてセキュアソケットレイヤー（ＳＳＬ）ＶＰＮを確立することができる。ＶＰＮ接続は、時に、マイクロＶＰＮまたはアプリケーション専用ＶＰＮといい、例えば図３に関連して上記で論じられたように、特定のネットワークアプリケーション、特定のデバイス、クライアントデバイス上の特定の安全化されたエリアなどに特有であり得る。そのようなＶＰＮ接続は、いくつかの例として、Ｍｉｃｒｏｓｏｆｔ（登録商標）エクスチェンジトラフィック、Ｍｉｃｒｏｓｏｆｔ（登録商標）アクティブディレクトリトラフィック、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）トラフィック、ハイパーテキストトランスファープロトコルセキュア（ＨＴＴＰＳ）トラフィック、アプリケーション管理トラフィックなどを運搬することができる。
【００８５】
リモートセッションエージェント４１６（時に、ＨＤＸエンジンという）は、リモーティングプロトコル（例えば、ＨＤＸまたはＩＣＡ）の表示をサポートするために、例えば図２に関連して上記で論じられたクライアントエージェント３０４の特徴を含むことができる。いくつかの実施形態において、リモートセッションエージェント４１６は、リモートデスクトッププロトコル（ＲＤＰ）、アプライアンスリンクプロトコル（ＡＬＰ）、リモートフレームバッファ（ＲＦＢ）プロトコル、およびＩＣＡプロトコルなどの任意の様々なプロトコルに従ってリモートデスクトッププロトコルおよび／またはリモートアプリケーションセッションを確立することができる。例えば、リモートセッションエージェント４１６は、クライアントデバイスのユーザーが企業ネットワークアプリケーションにアクセスするためのリモートアプリケーションセッションを確立することができる。リモートセッションエージェント４１６は、例えばネットワーキングエージェント４１２によって確立された安全な接続（例えば、ＶＰＮ）内において、または当該接続を通してリモートアプリケーションセッションを確立することができる。
【００８６】
クライアントアプリケーションまたはＣＥＢは、安全なコンテナ４１８を含むことができるか、または当該安全なコンテナと関連づけられることができる。安全なコンテナは、クライアントデバイス内においてアクセス可能な、かつ／またはクライアントデバイスによってアクセス可能な１つ以上の種類のリソースの論理的描写または仮想描写を含むことができる。例えば、安全なコンテナ４１８は、デジタル作業空間の安全化された部分または安全化された部分の１つ以上の特定の様態の全体を指すことができる。いくつかの実施形態において、安全なコンテナ４１８は、安全なキャッシュ（例えば、電子クリップボードまたは仮想クリップボード）に対応し、保護または安全化（例えば、暗号化）された、ユーザーの各クライアントデバイスのローカルキャッシュおよび／またはユーザーのクラウドベースのキャッシュの一部を動的に組み入れることができる。安全なコンテナは、ＣＥＢおよび／もしくはＣＥＢを介してアクセスされるネットワークアプリケーションに割り当てられる描写リソースならびに／または１つ以上のファイルシステムの一部を定義することができる。安全なコンテナは、例えば図２に関連して上記で論じられた安全なデータコンテナ２２８の要素を含むことができる。ＣＥＢは、安全なコンテナ内にあると識別されたリソースおよび／またはデータ上におけるある特定のアクションまたはアクティビティを（例えば、ポリシーを介して）限定、拒否、または無効化するように構成されることができる。安全なコンテナは、安全なコンテナ内におけるリソースおよび／またはデータが悪用、濫用、および／または抜き取りに関して監視されるべきであると特定するように定義されることができる。
【００８７】
ある特定の実施形態において、安全なコンテナは、様々な企業セキュリティ特徴を実装する安全なブラウザ（例えば、組み込みブラウザ４１０または安全なブラウザ４２０）の使用に関するか、または当該使用を伴う。安全なブラウザ内において動作するように構成されたネットワークアプリケーション（または安全なブラウザによってアクセスされるウェブページ）は、安全なブラウザによって実装されたセキュリティ機構を効率的に継承することができる。これらのネットワークアプリケーションは、安全なブラウザ内に含まれると考えられることができる。そのような安全なブラウザの使用は、企業がコンテンツフィルタリングポリシーを実装することを可能にすることができ、当該コンテンツフィルタリングポリシーにおいて、例えば従業員は、自分のクライアントデバイスからある特定のウェブサイトにアクセスすることを遮断される。安全なブラウザは、例えば、クライアントデバイスユーザーがＶＰＮを必要とすることなく企業内イントラネットにアクセスすることを可能にするために使用されることができる。
【００８８】
いくつかの実施形態において、安全なコンテナは、企業リソースを保護するための様々な種類の補修アクションをサポートすることができる。そのような補修の１つは、クライアントデバイスまたは安全なコンテナが、例えば管理者によって提供された有効なコードによってのみ解除されることができるように、クライアントデバイス、または保護されるべきデータを格納するクライアントデバイス上の安全なコンテナをロックすることである。いくつかの実施形態において、これらの補修および他の種類の補修は、（例えばポリシーのアプリケーションを介して）クライアントデバイス上において検出された条件に基づいて自動的に起動されることができるか、または管理者によってリモートで開始されることができる。
【００８９】
いくつかの実施形態において、安全なコンテナは、ドキュメントのための安全なドキュメントコンテナを含むことができる。ドキュメントは、テキスト、音声、ビデオ、および／または他の種類の情報もしくは媒体を含む任意のコンピューター可読ファイルを備えることができる。ドキュメントは、これらの媒体種類のうちの任意の１つまたは組み合わせを備えることができる。本明細書において説明されるように、安全なコンテナは、企業情報が他のデバイスならびにクライアントデバイスの異なるアプリケーションおよび構成要素に広まることを防止することを助けることができる。（部分的または全体的にクラウドネットワーク内に存在することができる）企業システムは、様々なデバイスにドキュメントを伝送することができ、ドキュメントは、安全なコンテナ内に格納されることができる。安全なコンテナは、クライアントデバイスの他の構成要素および不正アプリケーションが安全なコンテナ内の情報にアクセスすることを防止することができる。企業データへのアクセス、企業データの格納、および企業データの使用のためにユーザーが自分のクライアントデバイスを使用することを許可する企業にとって、クライアントデバイス上の安全なコンテナを提供することは、企業データを安全化することの助けとなる。例えば、クライアントデバイス上の安全なコンテナを提供することは、企業データを各クライアントデバイス上の１つの場所に集中させることができ、所望の場合に各クライアントデバイスから企業データを選択的または完全に削除することを容易にすることができる。
【００９０】
安全なコンテナは、ドキュメントおよび／または他の種類のファイルを格納するファイルシステムを実装するアプリケーションを含むことができる。ファイルシステムは、クライアントデバイスのコンピューター可読メモリの一部を備えることができる。ファイルシステムは、クライアントデバイスのコンピューター可読メモリの他の部分から論理的に分離されることができる。このように、企業データは、安全なコンテナにおいて格納されることができ、プライベートデータは、例えばクライアントデバイスのコンピューター可読メモリの個別の部分において格納されることができる。安全なコンテナは、ＣＥＢ、ＣＥＢを介してアクセスされるネットワークアプリケーション、ローカルにインストールされたアプリケーションおよび／またはクライアントデバイスの他の構成要素が、（そのようにすることが認可された場合）ファイルシステムからの情報からの読み取り、当該情報への書き込み、および／または当該情報の削除を行うことを可能にすることができる。安全なコンテナからデータを削除することは、安全なコンテナにおいて格納された実データを削除すること、安全なコンテナにおいて格納されたデータへのポインタを削除すること、安全なコンテナにおいて格納されたデータを復号化するために使用される暗号化キーを削除することなどを含むことができる。安全なコンテナは、例えば、クライアントアプリケーション、管理者、またはクライアントデバイス製造者によってインストールされることができる。安全なコンテナは、安全なコンテナの外部のクライアントデバイス上に格納されたプライベートデータを変更することなく、ファイルシステムにおいて格納された企業データのうちのいくつかまたは全てが削除されることを可能にすることができる。ファイルシステムは、ファイルシステムからのデータの選択的または完全な削除を容易にすることができる。例えば、企業のシステムの認可された構成要素は、例えばコード化されたルールに基づいてファイルシステムからデータを削除することができる。いくつかの実施形態において、クライアントアプリケーションは、企業のシステムからの削除コマンドを受け取ることに応答して、ファイルシステムからデータを削除することができる。
【００９１】
安全なコンテナは、クライアントデバイスのアプリケーションおよび他の構成要素によるファイルシステムへのアクセスを支配するアクセスマネージャーを含むことができる。ファイルシステムへのアクセスは、ドキュメントおよび／またはファイルシステムにおいて、クライアントアプリケーションによって維持されるドキュメントアクセスポリシー（例えば、コード化されたルール）に基づいて支配されることができる。ドキュメントアクセスポリシーは、（１）クライアントデバイスのどのアプリケーションまたは他の構成要素がアクセスを要請しているのか、（２）どのドキュメントが要請されているのか、（３）時間または日付、（４）クライアントデバイスの地理上の位置、（５）要請中のアプリケーションまたは他の構成要素が正しい証明書またはクレデンシャルを提供しているか、（６）クライアントデバイスのユーザーが正しいクレデンシャルを提供しているか、（７）その他の条件またはそれらの任意の組み合わせに基づいて、ファイルシステムへのアクセスを限定することができる。ユーザーのクレデンシャルは、例えば、パスワード、セキュリティ質問（例えば、あなたの高校のマスコットは何か？）への１つ以上の回答、生体情報（例えば、指紋スキャン、眼のスキャン）などを備えることができる。従って、アクセスマネージャーを使用することによって、安全なコンテナは、安全なコンテナにアクセスすることが認可されたアプリケーションのみによってアクセスされるように構成されることができる。１つの例として、アクセスマネージャーは、クライアントデバイスにインストールされた企業アプリケーションが、安全なコンテナにおいて格納されたデータにアクセスすることと、安全なコンテナにおいて格納されたデータへの非企業アプリケーションによるアクセスを防止することとを可能にすることができる。
【００９２】
ドキュメントアクセス上の一時的な制限かつ地理的な制限は、有用であり得る。例えば、管理者は、（安全なコンテナ内に格納された）ドキュメントの利用可能性を特定のタイムウィンドウおよび／または地理ゾーン（例えば、ＧＰＳチップによって決定されるように）に制限するドキュメントアクセスポリシーをデプロイし得、クライアントデバイスは、ドキュメントにアクセスするために当該タイムウィンドウおよび／または地理的ゾーン内に存在しなければならない。また、特定の時間が過ぎた場合、またはクライアントデバイスが定義された地理ゾーンの外側におかれた場合、ドキュメントアクセスポリシーは、安全なコンテナまたはクライアントアプリケーションに対して、安全なコンテナからドキュメントを削除するように指示するか、別様にドキュメントを利用不可にするように指示することができる。
【００９３】
いくつかのドキュメントは、ドキュメントが安全なコンテナ内に保存されることを禁止するアクセスポリシーを有することができる。そのような実施形態において、ドキュメントは、例えばクラウドサービスを介してユーザーがログインされるかまたは認証されるときにのみ、クライアントデバイス上における閲覧について利用可能であることができる。
【００９４】
アクセスマネージャーは、リモートデバイス（例えば、企業リソースまたは他の企業サーバー）と安全なコンテナとの間における接続性のある特定のモードを実行するように構成されることができる。例えば、アクセスマネージャーは、リモートデバイスから安全なコンテナによって受け取られかつ／または安全なコンテナからリモートデバイスに送信されるドキュメントが、例えば安全化されたトンネル／接続を通して伝送されるように要求することができる。アクセスマネージャーは、安全なコンテナに伝送され安全なコンテナから伝送される全てのドキュメントが暗号化されるように要求することができる。クライアントアプリケーションまたはアクセスマネージャーは、安全なコンテナから送信されるドキュメントを暗号化するように、かつ安全なコンテナに送信されるドキュメントを復号化するように構成されることができる。安全なコンテナにおけるドキュメントは、暗号化された形態で格納されることもできる。
【００９５】
安全なコンテナは、ドキュメントまたはドキュメントもしくは安全なコンテナ内に含まれるデータが、クライアントデバイスまたは他のデバイスの不正アプリケーションもしくは構成要素によって使用されることを防止するように構成されることができる。例えば、安全なコンテナからのドキュメントにアクセスするための認可を有するクライアントデバイスアプリケーションは、ユーザーがドキュメントのデータをコピーしてそのデータを別のファイルまたはアプリケーションインターフェースにペーストすること、またはドキュメントもしくはドキュメントデータを安全なコンテナ外に新しいファイルとしてローカルに保存することを防止するようにプログラミングされることができる。同様に、安全なコンテナは、そのようなコピー／ペーストおよびローカルな保存操作を許可しないドキュメントビューアおよび／またはエディタを含むことができる。さらに、アクセスマネージャーは、そのようなコピー／ペーストおよびローカルな保存操作を防止するように構成されることができる。また、安全なコンテナからのドキュメントにアクセスするようにプログラミングされ認可されたアプリケーションおよび安全なコンテナは、ユーザーがそのようなドキュメントを電子メールまたは他の通信形態に添付することを防止するように構成されることができる。
【００９６】
１つ以上のアプリケーション（例えば、クライアントデバイスにインストールされたアプリケーション、および／またはＣＥＢを介してアクセスされるネットワークアプリケーション）は、（例えば、ポリシーベースの実行を介して）企業関連データを安全なコンテナ内のみに書き込むようにプログラミングまたは制御されることができる。例えば、アプリケーションのソースコードは、安全なコンテナのリソース名を提供されることができる。同様に、（例えば、クライアントデバイス以外のデバイス上において稼働する）リモートアプリケーションは、（クライアントデバイスの他の構成要素またはメモリ場所と対照的に）安全なコンテナのみにデータまたはドキュメントを送信するように構成されることができる。安全なコンテナへのデータの格納は、例えば、アプリケーション、クライアントアプリケーション、および／または安全なブラウザの制御のもとで自動的に起こることができる。クライアントアプリケーションは、安全なコンテナ内に格納されたドキュメントまたは安全なコンテナ内に格納されるべきドキュメントを暗号化または復号化するようにプログラミングされることができる。ある特定の実施形態において、安全なコンテナは、安全なコンテナを識別し使用するようにプログラミングされた（クライアントデバイスまたはリモートデバイス上における）アプリケーションによってのみ使用されることができ、当該アプリケーションは、そのようにするための認可を有する。
【００９７】
ネットワークアプリケーション４０６は、承認済みネットワークアプリケーション４２６および未承認ネットワークアプリケーション４２８を含むことができる。非限定的な例として、承認済みネットワークアプリケーション４２６は、ワークデイ、セールスフォース、オフィス３６５、ＳＡＰなどからのネットワークアプリケーションを含むことができる一方で、未承認ネットワークアプリケーション４２６は、ドロップボックス、Ｇメールなどからのネットワークアプリケーションを含むことができる。例えば、図４は、承認済みネットワークアプリケーション４２６がＣＥＢを介してアクセスされる場合を例示している。オペレーション（１）において、クライアントデバイス４０２にインストールされたクライアントアプリケーション４０４のユーザー例は、クラウドサービス４０８のアクセスゲートウェイ４２２に登録または認証することができる。例えば、ユーザーは、ユーザーをクライアントデバイスに認証し、クライアントデバイス４０２にログインすることができる。クライアントアプリケーションは、自動的に稼働することができるか、またはユーザーによって起動されることができる。いくつかの実施形態において、ユーザーは、（例えば、ユーザーをクライアントアプリケーションに認証することによって）クライアントアプリケーションにサインインすることができる。ログインまたはサインインに応答して、クライアントアプリケーションは、ユーザーおよび／またはクライアントアプリケーションをアクセスゲートウェイ４２２に登録または認証することができる。
【００９８】
オペレーション（２）において、登録または認証に応答して、アクセスゲートウェイ４２２は、ユーザーに利用可能であるかまたは予め割り当てられた、列挙されたネットワークアプリケーションのリストを識別するか、または検索することができ、リストをクライアントアプリケーションに提供することができる。例えば、登録または認証に応答して、アクセスゲートウェイは、ユーザーの識別および／またはユーザーのユーザープロフィールの検索を行うことができる。アイデンティティおよび／またはユーザープロフィールに従って、アクセスゲートウェイは、リストを決定することができる（例えば、ユーザーのユーザープロフィールおよび／またはアイデンティティと合致するネットワークアプリケーションの格納されたリストを検索する）。リストは、ユーザーのために承認されたネットワークアプリケーションのリストに対応することができる。アクセスゲートウェイは、リストをクライアントアプリケーションまたは組み込みブラウザに送信することができ、当該リストは、クライアントアプリケーションまたは組み込みブラウザを介して、選択のためにユーザーに（例えば、ストアフロントユーザーインターフェースにおいて）提示されることができる。
【００９９】
オペレーション（３）において、ユーザーは、ユーザーに提示されたネットワークアプリケーションのリストから選択することによって、承認済みネットワークアプリケーション（例えば、ＳａａＳアプリケーション）への接続を開始することができる。例えば、ユーザーは、クライアントアプリケーションまたは組み込みブラウザを介して表示される、承認済みネイティブアプリケーションのアイコンまたは他の表現をクリックすることができる。このユーザーアクションによって、ＣＥＢは、ネットワークアプリケーションを供給するサーバーへの接続要請またはアクセス要請を送信することができる。要請は、ユーザーを認証するために、サーバー（例えば、ＳａａＳプロバイダ）に対する、アクセスゲートウェイと通信することへの要請を含むことができる。サーバーは、例えばユーザーを認証するように、アクセスゲートウェイに要請を送信することができる。
【０１００】
オペレーション（４）において、アクセスゲートウェイは、ユーザーを認証するために、サーバーとともにＳＳＯを実施することができる。例えば、ユーザーを認証するようにというサーバーの要請に応答して、アクセスゲートウェイは、ＳＳＯのために１つ以上のサーバー４３０にユーザーのクレデンシャルを提供して、選択されたネットワークアプリケーションおよび／または他の承認済みネットワークアプリケーションにアクセスすることができる。オペレーション（５）において、ユーザーは、ＳＳＯに基づいて（例えば、クレデンシャルを使用して）、選択されたネットワークアプリケーションにログインすることができる。クライアントアプリケーション（例えば、ネットワーキングエージェント４１２および／またはリモートセッションエージェント４１６）は、選択されたネットワークアプリケーションにアクセスするために、１つ以上のサーバー４３０との安全な接続およびセッションを確立することができる。ＣＥＢは、安全な接続を介して受け取られたアプリケーショントラフィックを復号化することができる。ＣＥＢは、ＣＥＢおよびサーバー４３０への安全な接続を介して送信されたトラフィックを監視することができる。
【０１０１】
オペレーション（６）において、クライアントアプリケーションは、解析処理のために、クラウドサービス４０８の解析サービス４２４に情報を提供することができる。例えば、クライアントアプリケーション４０４のクラウドサービスエージェント４１４は、選択されたネットワークアプリケーションを有するユーザー相互作用イベントについて監視することができるか、または当該イベントを捕捉することができる。クラウドサービスエージェント４１４は、ユーザー相互作用イベントを解析サービス４２４に伝えることができ、当該イベントは、解析を生成するために処理される。
【０１０２】
図５は、安全なブラウザを使用するシステムの例示的実施形態を示す。概略として、システムは、クラウドサービス４０８と、ネットワークアプリケーション４０６と、クライアントデバイス４０２とを含む。いくつかの実施形態において、システムの様々な要素は、図４について上記で説明されたものと類似しているが、（組み込みブラウザを有する）クライアントアプリケーションは、クライアントデバイス４０２において利用可能でない。標準的または典型的なブラウザがクライアントデバイス上において利用可能であり得、ユーザーは、そこから例えば承認済みネットワークアプリケーションにアクセスすることへの要請を開始することができる。ネットワークアプリケーションは、管理者によって設定されることができるかまたは自動的に設定されることができるポリシーを介して承認済みまたは未承認であると特定されることができる（例えば、人工知能を介して）。
【０１０３】
例えば、オペレーション（１）において、ユーザーは、標準的なブラウザを使用することによってネットワークアプリケーションにログインし得る。承認済みネットワークアプリケーションにアクセスするために、ユーザーは、標準的なブラウザを介して、ネットワークアプリケーションを提供するサーバーの予め定義されたＵＲＬおよび／または対応するウェブページにアクセスして、ネットワークアプリケーションにアクセスすることへの要請を開始し得る。いくつかの実施形態において、要請は、（例えば、要請のデータパスにおいて）指定されたゲートウェイサービスに転送されることができるか、指定されたゲートウェイサービスによって傍受されることができる。例えば、ゲートウェイサービスは、クライアントデバイス上に（例えば、実行可能なプログラムとして）存在することができるか、または例えば、クラウドサービス４０８のネットワークデバイス４３２上に存在することができる。いくつかの実施形態において、アクセスゲートウェイは、ゲートウェイサービスに対応することができるか、またはゲートウェイサービスを含むことができる。ゲートウェイサービスは、要請されたネットワークアプリケーションが承認済みネットワークアプリケーションであるかどうか決定することができる。ゲートウェイサービスは、ＣＥＢが要請を開始したかどうか決定することができる。ゲートウェイサービスは、要請がＣＥＢ以外のクライアントデバイスにおけるソースから開始される（例えば、標準的なブラウザによって開始される）ことを検出または別様に決定することができる。いくつかの実施形態において、要請がＣＥＢから開始するかどうかということ（例えば、要請されたネットワークアプリケーションが承認済みであるか）、ユーザーが標準的なブラウザを介して要請を開始していること、ならびに／または予め定義されたＵＲＬおよび／または対応するウェブページがアクセスされることを、指定されたゲートウェイサービスが検出または決定する必要がない。
【０１０４】
オペレーション（２）においてサーバーは、クラウドサービス４０８のアクセスゲートウェイを介してユーザーを認証し得る。サーバーは、要請に応答して、ユーザーを認証するためにアクセスゲートウェイと通信し得る。例えば、要請は、ユーザーを認証するためにアクセスゲートウェイと通信するようにサーバーに対して示すことを含むことができる。いくつかの実施形態において、サーバーは、承認済みネットワークアプリケーションにアクセスする要請について、ユーザーを認証するためにアクセスゲートウェイと通信するように予め構成される。サーバーは、ユーザーを認証するように、アクセスゲートウェイに要請を送信し得る。ユーザーを認証するようにというサーバーの要請に応答して、アクセスゲートウェイは、ユーザーのクレデンシャルをサーバー４３０に提供することができる。
【０１０５】
オペレーション（３）において、ゲートウェイサービスおよび／またはサーバーは、安全なブラウジングサービスを提供する安全なブラウザ４２０に、全てのトラフィックを導く（またはリダイレクトする）ことができる。これは、要請されたネットワークアプリケーションが承認されたネットワークアプリケーションであるという決定、要請がＣＥＢ以外のソースから開始されるという決定、要請されたネットワークアプリケーションが承認されるという決定、ユーザーが標準的なブラウザを介して要請を開始しているという決定、ならびに／または予め定義されたＵＲＬおよび／または対応するウェブページがアクセスされるという決定のうちの少なくとも１つに応答したものであり得る。
【０１０６】
ユーザーのＵＲＬセッションは、安全なブラウザにリダイレクトされることができる。例えば、サーバー、ゲートウェイサービスおよび／またはアクセスゲートウェイは、決定に応答して、ＵＲＬリダイレクトメッセージを生成すること、および／またはＵＲＬリダイレクトメッセージを標準的なブラウザに送信することができる。標準的なブラウザの安全なブラウザプラグインは、ＵＲＬリダイレクトメッセージを受け取ることができ、例えば、未承認ネットワークアプリケーションにアクセスするように、安全なブラウザ４２０に要請を送信することができる。安全なブラウザ４２０は、未承認ネットワークアプリケーションのサーバーに要請を導くことができる。ＵＲＬリダイレクトメッセージは、標準的なブラウザ（および／または安全なブラウザプラグイン）に対して、標準的なブラウザからネットワークデバイス上でホストされた安全なブラウザ４２０にトラフィック（例えば、ネットワークアプリケーションへ向かう）を導くように指示することができる。これは、安全なブラウザサービスを通した動的な経路決定を介して、クライアントレスのアクセスおよび制御を提供することができる。いくつかの実施形態において、全てのトラフィックを安全なブラウザ４２０にリダイレクトすることは、サーバーによるユーザーの認証を（例えば、ＳＳＯを使用することによって）実施する前に開始または構成される。
【０１０７】
いくつかの実施形態において、ゲートウェイサービスは、要請されたネットワークアプリケーションのサーバーに対して、安全なブラウザ４２０と通信するように指令または要請することができる。例えば、ゲートウェイサービスは、ネットワークアプリケーションのためのアプリケーションセッションを確立するために、サービスおよび／または安全なブラウザに対して、サーバーと安全なブラウザとの間における安全化された接続を確立するように指令することができる。
【０１０８】
いくつかの実施形態において、安全化されたブラウザ４２０は、クラウドサービス４０８のネットワークデバイス４３２上においてホストされたブラウザを備えている。安全化されたブラウザ４２０は、例えば少なくとも図４に関連して上記で説明された、安全化されたブラウザ４２０の１つ以上の特徴を含むことができる。ホストされたブラウザは、クライアントデバイス上ではなくネットワークデバイス４３２上においてホストされたＣＥＢの組み込みブラウザを含むことができる。ホストされたブラウザは、ネットワークデバイス４３２上においてホストされたＣＥＢのホストされた仮想化バージョンの組み込みブラウザを含むことができる。クライアントデバイスにインストールされたＣＥＢと同様に、トラフィックは、ネットワークデバイス上においてホストされたＣＥＢを通して経路決定され、それは、管理者が、ＣＥＢを通してトラフィックの可視性を有することと、セキュリティポリシー制御、解析、および／またはパフォーマンスの管理を制御し続けることとを可能にする。
【０１０９】
図６は、安全なブラウザプラグインを使用するブラウザリダイレクトについての例示的実装を例示している。概略として、実装は、クライアントデバイス上において作動する安全なブラウザプラグイン５１６を有するウェブブラウザ５１２と、ネットワークデバイス上に存在するホストされたウェブブラウザ（または安全なブラウザ）５２２とを含む。ウェブブラウザ５１２は、例えば、図４に関連して上記で論じられたような組み込みブラウザの代わりに標準的なブラウザに対応することができる。安全なブラウザプラグイン５１６は、第１のネットワーク５１０内において稼働することができ、第２のネットワーク５３０においてサーバー５３２にアクセスすることができる。第１のネットワーク５１０および第２のネットワーク５３０は、例示目的のためであり、より少ない数のコンピューターネットワークまたは追加的なコンピューターネットワークに置き換えられ得る。安全なブラウザプラグイン５１６は、標準的なブラウザ５１２にインストールされることができる。プラグインは、１つ以上の構成要素を含むことができる。そのような構成要素の１つは、アクティブエックスコントロールもしくはジャバコントロール、または任意の他の種類および／もしくは形態の、標準的なブラウザにローディングされ標準的なブラウザにおいて稼働することが可能な実行可能な命令を含むことができる。例えば、標準的なブラウザは、標準的なブラウザのコンテクストまたはメモリ空間において、標準的なブラウザプラグイン５１６のアクティブエックスコントロールをローディングし動作させることができる。いくつかの実施形態において、安全なブラウザプラグインは、標準的なブラウザ上における拡張としてインストールされることができ、ユーザーは、プラグインまたは拡張を有効化または無効化することを選択することができる。安全なブラウザプラグインは、デジタル作業空間の安全化された部分内のリソースを使用することおよび／または当該リソースにアクセスすることによって、安全化のために安全化されたブラウザ４２０と通信および／または作動することができる。
【０１１０】
標準的なブラウザ５１２内において作動する安全なブラウザプラグイン５１６を使用することによって、標準的なブラウザ５１２を介してアクセスされるネットワークアプリケーションは、ホストされた安全なブラウザにリダイレクトされることができる。例えば、安全なブラウザプラグイン５１６は、ネットワークアプリケーションが標準的なブラウザを介してアクセスされていることを検出するように実装および／または設計されることができ、トラフィックを、ネットワークアプリケーションと関連づけられたクライアントデバイスからホストされた安全なブラウザへ導くこと／リダイレクトすることができる。ホストされた安全なブラウザは、ネットワークアプリケーションから受け取られたトラフィックを、例えばレンダリングおよび／または表示のために、安全なブラウザプラグイン５１６および／またはクライアントエージェント５１４に導くことができる。クライアントエージェント５１４は、ウェブブラウザ５１２および／または安全なブラウザプラグイン内において稼働することができ、例えば少なくとも図４に関連して上記で論じられたクライアントアプリケーション４０４のある特定の要素または特徴を含むことができる。例えば、クライアントエージェント５１４は、ウェブブラウザ５１２においてネットワークアプリケーションをレンダリングするために、リモートセッションエージェント４１８を含むことができる。いくつかの実施形態において、ネットワークアプリケーションは、ホストされた安全なブラウザにおいてレンダリングされ、レンダリングされたデータは、処理および／または表示のために、安全なブラウザプラグイン５１６および／またはクライアントエージェント５１４に伝えられるか、または写し出される。
【０１１１】
例として、ユーザーは、リモートで作業している場合があり、ユーザーが安全でないネットワークに接続されたコンピューティングデバイス上で作業している間に、ユーザーは、安全な企業内ネットワークの内部にあるネットワークアプリケーションにアクセスすることを望む場合がある。この場合、ユーザーは、第１のネットワーク５１０において稼働する標準的なブラウザ５１２を利用している場合があり、第１のネットワーク５１０は、安全でないネットワークを備え得る。ユーザーがアクセスすることを望んでいるサーバー４３０は、第２のネットワーク５３０上に存在し得、第２のネットワーク５３０は、例えば安全な企業内ネットワークを備えている。ユーザーは、安全なウェブサイト５３２についての内部ユニフォームレコードロケーター（ＵＲＬ）をクリックすることによって安全でない第１のネットワーク５３０からサーバー４３０にアクセスできない場合がある。すなわち、ユーザーは、外部の安全でないネットワーク５１０から標準的なブラウザ５１２を実行する一方で異なるＵＲＬ（例えば、外部ＵＲＬ）を利用する必要があり得る。外部ＵＲＬは、第２のネットワーク５３０（例えば、安全なネットワーク）内において１つ以上のサーバー４３０にアクセスするように構成された１つ以上のホストされたウェブブラウザ５２２に導かれ得るか、または当該ウェブブラウザをアドレス指定し得る。安全なアクセスを維持するために、安全なブラウザプラグイン５１６は、ホストされた安全なブラウザについて、内部ＵＲＬを外部ＵＲＬにリダイレクトし得る。
【０１１２】
安全なブラウザプラグイン５１６は、内部ＵＲＬを外部ＵＲＬにリダイレクトするかどうかを識別するために、ネットワーク検出を実装することが可能であり得る。標準的なブラウザ５１２は、安全なネットワーク内において稼働するウェブサイトについての内部ＵＲＬを備えている要請を受け取り得る。例えば、標準的なブラウザ５１２は、ユーザーがウェブアドレス（例えば、安全なウェブサイト５３２についての）を標準的なブラウザに入力することに応答して、要請を受け取り得る。安全なブラウザプラグイン５１６は、ホストされたウェブブラウザアプリケーションについて、ユーザーウェブブラウザアプリケーション５１２を内部ＵＲＬから外部ＵＲＬにリダイレクトし得る。例えば、安全なブラウザプラグイン５１６は、安全なネットワーク５３０内において稼働するホストされたウェブブラウザアプリケーション５２２について、内部ＵＲＬを外部ＵＲＬに置き換え得る。
【０１１３】
安全なブラウザプラグイン５１６は、クライアントエージェント５１４がホストされたウェブブラウザアプリケーション５２２に接続されることを可能にし得る。クライアントエージェント５１４は、プラグイン構成要素（アクティブエックスコントロールもしくはジャバコントロール、または任意の他の種類および／もしくは形態の、標準的なブラウザ５１２にローディングされ標準的なブラウザ５１２において稼働することが可能な実行可能な命令など）を備え得る。例えば、クライアントエージェント５１４は、ユーザーウェブブラウザアプリケーション５１２のコンテクストまたはメモリ空間などにおいて、標準的なブラウザ５１２によってローディングされ動作させられるアクティブエックスコントロールを備え得る。クライアントエージェント５１４は、ユーザーウェブブラウザアプリケーション５１２内において、ホストされたウェブブラウザアプリケーション５２２のコンテンツを提示するように予め構成され得る。
【０１１４】
クライアントエージェント５１４は、サービス５２０上において稼働するホストされたウェブブラウザアプリケーション５２２によって生成された表示出力を提示するために、シンクライアントまたはリモートディスプレイプロトコルを使用することによってサーバーまたはクラウド／ホストされたウェブブラウザサービス５２０に接続し得る。シンクライアントまたはリモートディスプレイプロトコルは、以下のプロトコルの非網羅的なリストのうちの任意の１つであり得る：フロリダ州フォートローダーデールのサイトリックスシステムズ，インコーポレイテッドによって開発されたインディペンデントコンピューティングアーキテクチャ（ＩＣＡ）プロトコル；またはワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ（登録商標）社によって製造されたリモートデスクトッププロトコル（ＲＤＰ）。
【０１１５】
ホストされたウェブブラウザアプリケーション５２２は、フルスクリーンモードで要請されたネットワークアプリケーションにナビゲートし得、要請されたネットワークアプリケーションをレンダリングすることができる。クライアントエージェント５１４は、コンテンツが標準的なブラウザ５１２によって表示されているように見えるように（例えば、フルスクリーンモードで表示されているコンテンツに基づいて）、ウェブブラウザアプリケーション５１２上のネットワークアプリケーションのコンテンツまたはレンディションをシームレスかつトランスペアレントな態様で提示し得る。言い換えると、ユーザーは、ウェブサイトコンテンツがホストされたウェブブラウザアプリケーション５２２によってではなくユーザーウェブブラウザアプリケーション５１２によって表示されているという印象を与えられ得る。クライアントエージェント５１４は、シンクライアントまたはリモートディスプレイプロトコルを使用することによってユーザーウェブブラウザアプリケーション５１２によって生成されたナビゲーションコマンドをホストされたウェブブラウザアプリケーション５２２に伝送し得る。ナビゲーションコマンドによる、ホストされたウェブブラウザアプリケーション５２２の表示出力に対する変更は、クライアントエージェント５１４によってユーザーウェブブラウザアプリケーション５１２に反映され得、ナビゲーションコマンドがユーザーウェブブラウザアプリケーション５１２によって実行されたという印象をユーザーに与える。
【０１１６】
再び図５を参照すると、オペレーション（４）において、安全なブラウザセッションをレンダリングまたは表示するために、新しいブラウザタブが標準的なブラウザ上において開くことができる。新しいブラウザタブは、例えば安全なブラウザプラグインによって確立されるかまたは開かれることができる。例えば図６に関連して上記で論じられたように、安全なブラウザプラグインおよび／またはクライアントエージェントは、安全なブラウザセッションからデータを受け取ることができ、新しいブラウザタブ内においてネットワークアプリケーションをレンダリングすることができる。
【０１１７】
オペレーション（５）において、安全なブラウザは、ネットワークアプリケーションを介して全てのユーザー相互作用イベントを処理のための解析サービスにフィードバックすることができる。安全なブラウザプラグインは、ブラウザタブ内においてネットワークアプリケーションのレンディションに導かれた任意のユーザー相互作用イベントについて監視し傍受することができる。従って、ユーザーは、（クライアントアプリケーションが存在しないとき）安全なブラウザとクラウドサービスとの相互作動を介して、ネットワークアプリケーションのトラフィックへの可視性を可能にする一方で、ネットワークアプリケーションにアクセスするためにネイティブ（または標準的な）ブラウザを使用することができる。
【０１１８】
図７は、安全なブラウザを使用するシステムの別の例示的実施形態を示している。概略として、システムは、クラウドサービス４０８と、ネットワークアプリケーション４０６と、クライアントデバイス４０２とを含む。いくつかの実施形態において、システムの様々な要素は、図５について上記で説明された要素に類似している。組み込みブラウザを有するクライアントアプリケーションは、クライアントデバイス４０２において利用可能でない。標準的または典型的な（例えば、ＨＴＭＬ５）ブラウザがクライアントデバイス上において利用可能であり、ユーザーは、そこから未承認ネットワークアプリケーションにアクセスすることへの要請を開始することができる。ネットワークアプリケーションは、管理者によって設定されることができるかまたは（例えば、人工知能を介して）自動的に設定されることができるポリシーを介して承認済みまたは未承認であると特定されることができる。
【０１１９】
オペレーション（１）において、ユーザーは、標準的なブラウザを使用することによって未承認ネットワークアプリケーションにログインすることを試み得る。ユーザーは、ネットワークアプリケーションを供給するサーバーのウェブページにアクセスすることを試み得、ネットワークアプリケーションにアクセスすることへの要請を開始することを試み得る。いくつかの実施形態において、要請は、指定されたゲートウェイサービスに転送されることができるか、または指定されたゲートウェイサービスによって傍受されることができる（例えば、要請のデータパスにおいて）。例えば、ゲートウェイサービス（時に、ＳＷＧという）は、クライアントデバイス上において（例えば、実行可能なプログラムとして）存在することができるか、または例えば、クラウドサービス４０８のネットワークデバイス４３２上に存在することができる。ゲートウェイサービスは、要請されたネットワークアプリケーションが承認済みネットワークアプリケーションであるかどうか検出または別様に決定することができる。ゲートウェイサービスは、ＣＥＢが要請を開始したかどうか決定することができる。ゲートウェイサービスは、要請がＣＥＢ以外のクライアントデバイスにおけるソースから開始される（例えば、標準的なブラウザによって開始される）ことを検出または別様に決定することができる。
【０１２０】
オペレーション（２）において、ゲートウェイサービスは、要請されたネットワークアプリケーションが未承認ネットワークアプリケーションであることを検出する。ゲートウェイサービスは、例えば要請から情報（例えば、要請されたネットワークアプリケーションの名前、宛先アドレス）を抽出して、当該情報を承認済みおよび／または未承認ネットワークアプリケーションのデータベースからのものと比較することができる。ゲートウェイサービスは、その比較に基づいて、要請されたネットワークアプリケーションが未承認ネットワークアプリケーションであると決定することができる。
【０１２１】
オペレーション（３）において、決定に応答して、ゲートウェイサービスは、例えば要請を遮断することによって、要請されたネットワークアプリケーションへのアクセスを遮断することができる。ゲートウェイサービスは、決定に応答して、ＵＲＬリダイレクトメッセージを生成すること、および／またはＵＲＬリダイレクトメッセージを標準的なブラウザに送信することができる。ＵＲＬリダイレクトメッセージは、オペレーション（３）において図５におけるサーバーから標準的なブラウザに送信されたＵＲＬリダイレクトメッセージに類似し得る。標準的なブラウザの安全なブラウザプラグインは、ＵＲＬリダイレクトメッセージを受け取ることができ、例えば未承認ネットワークアプリケーションにアクセスすることへの要請を安全なブラウザ４２０に送信することができる。安全なブラウザ４２０は、未承認ネットワークアプリケーションのサーバーに要請を導くことができる。
【０１２２】
未承認ネットワークアプリケーションのサーバーは、例えば安全なブラウザから要請を受け取ることに応答して、クラウドサービス４０８のアクセスゲートウェイを介してユーザーを認証し得る。サーバーは、要請に応じて、ユーザーを認証するためにアクセスゲートウェイと通信し得る。サーバーは、ユーザーを認証するように、アクセスゲートウェイに要請を送信し得る。ユーザーを認証するようにというサーバーの要請に応答して、アクセスゲートウェイは、ユーザーのクレデンシャルをサーバー４３０に提供することができる。認証の際、安全なブラウザ（または対応するＣＥＢ）は、安全な接続およびアプリケーションセッションをサービスと確立することができる。
【０１２３】
オペレーション（４）において、安全なブラウザのアプリケーションセッションをレンダリングまたは表示するために、新しいブラウザタブが標準的なブラウザ上において開くことができる。新しいブラウザタブは、例えば安全なブラウザプラグインによって確立されるかまたは開かれることができる。例えば図５〜図６に関連して上記で論じられたように、安全なブラウザプラグインおよび／またはクライアントエージェントは、安全なブラウザセッションからデータを受け取ることができ、新しいブラウザタブ内においてネットワークアプリケーションをレンダリングすることができる。
【０１２４】
オペレーション（５）において、安全なブラウザは、ネットワークアプリケーションを介して全てのユーザー相互作用イベントを処理のための解析サービスにフィードバックすることができる。安全なブラウザプラグインは、ブラウザタブ内におけるネットワークアプリケーションのレンディションに導かれた任意のユーザー相互作用イベントについて監視し傍受することができる。従って、ユーザーは、（クライアントアプリケーションが存在しないとき）安全なブラウザとクラウドサービスとの相互作動を介して、ネットワークアプリケーションのトラフィックへの可視性を可能にする一方で、ネットワークアプリケーションにアクセスするためにネイティブ（または標準的な）ブラウザを使用することができる。
【０１２５】
いくつかの実施形態において、クライアントデバイス上においてＣＥＢが存在しないかまたは利用不可である場合、ブラウザリダイレクトは、単一のホストされた安全なブラウザ（またはホストされたＣＥＢ）を通ってリダイレクトされた全てのトラフィックを有するのではなく扱うために、各要請されたネットワークアプリケーションが対応するホストされた安全なブラウザ（またはホストされたＣＥＢ）を介してアクセスされるように実施される。各専用の安全なブラウザは、区画化および向上させられたセキュリティを提供することができる。
【０１２６】
ＣＥＢの使用は、クライアントデバイスにローカルであろうがホストされていようが、解析、サービスレベル合意（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ；ＳＬＡ）、リソース利用、監査などのために、アプリケーショントラフィックのエンドツーエンドの可視性を可能にすることができる。そのような可視性に加えて、ＣＥＢは、これらの様態のうちの任意の様態および他の様態を管理ならびに制御するためのポリシーとともに構成されることができる。例えば、ＤＬＰ特徴は、「コピーおよびペースト」アクティビティ、ファイルのダウンロード、ファイルの共有を制御するように、かつ例えばウォーターマーキングを実装するようにサポートされることができる。別の例として、ＣＥＢは、周辺機器などローカルデバイスおよび／またはデバイスリソースへのアクセスを管理および制御するためのポリシーとともに構成されることができる。
【０１２７】
図８を参照すると、１つ以上のローカル組み込みブラウザと１つ以上のホストされ安全化されたブラウザとを使用するシステムの例示的実施形態が示されている。一方が適切なＣＥＢをローカルに搭載され得、他方のクライアントデバイスがインストールされた適切なローカルＣＥＢを有し得ないように、異なる種類のクライアントデバイス４０２Ａと４０２Ｂとが使用され得る（例えば、ＢＹＯＤコンテクストにおいて）環境が示されている。そのような環境において、図４、５および７において説明されたシステムは、ローカルにインストールされ適切なＣＥＢの利用可能性に基づいて各クライアントデバイスをサポートするために使用されることができる。
【０１２８】
図９は、１つ以上のローカル組み込みブラウザと１つ以上のホストされ安全化されたブラウザとを使用するための例示的過程フローを示している。各クライアントデバイスがネットワークアプリケーションにアクセスするために組み込みブラウザまたはホストされ安全化されたブラウザが使用されるべきかどうか決定するために、過程フローは、図８において上記で説明された環境において使用されることができる。例えば、オペレーション９０１において、ＨＴＴＰクライアントは、ウェブサービス（例えば、ネットワークアプリケーションのサーバー）にアクセスすることを試みることができる。オペレーション９０３において、ウェブサービスは、認証のためにＨＴＴＰクライアントをゲートウェイサービスにリダイレクトすることができる。オペレーション９０６において、ゲートウェイサービスは、ＨＴＴＰクライアントがＣＥＢであるかどうか決定することができる。ＣＥＢであれば、オペレーション９０９において、ゲートウェイサービスは、ＣＥＢが適切なＣＥＢ（例えば、定義されたアプリケーションポリシーを実行することが可能なＣＥＢ）であるかどうか決定することができる。適切なＣＥＢであれば、オペレーション９１１において、ＣＥＢは、ウェブサービスへのアクセスを許可され、定義されたポリシーを実行することができる。
【０１２９】
ＨＴＴＰクライアントがＣＥＢでないとゲートウェイサービスが決定した場合、オペレーション９０７において、ゲートウェイサービスは、ＣＥＢの仮想化バージョンを初期化させリモートサーバー（例えば、クラウドサービス４０８のネットワークデバイス４３２）上においてホストさせることができる。いくつかの実施形態において、そのようなホストされたＣＥＢは、既にネットワークデバイス４３２上において利用可能であり得、使用のために選択されることができる。例えばオペレーション９１１において、ＣＥＢは、ウェブサービスへのアクセスを許可され、定義されたポリシーを実行することができる。
【０１３０】
ＨＴＴＰクライアントがＣＥＢであるがＣＥＢが適切なＣＥＢでないとゲートウェイサービスが決定した場合、ゲートウェイサービスは、オペレーション９０７において、ＣＥＢの仮想化バージョンを初期化させリモートサーバー（例えば、クラウドサービス４０８のネットワークデバイス４３２）上においてホストさせることができる。いくつかの実施形態において、そのようなホストされたＣＥＢは、既にネットワークデバイス４３２上において利用可能であり得、使用のために選択されることができる。例えばオペレーション９１１において、ＣＥＢは、ウェブサービスへのアクセスを許可され、定義されたポリシーを実行することができる。
【０１３１】
いくつかの実施形態において、ユーザーが企業データセンターに場所決定されたウェブアプリケーションにアクセスすることを要請している場合、ＣＥＢを有するクライアントアプリケーションが検出されたときに（クラウドサービスにおける、またはオンプレミスの）ゲートウェイサービスは、アクセスを許可することができる。別様に、要請は、ＣＥＢのホストされた仮想化バージョンを有するサービスに経路決定されることができ、そして、アクセスが認証され与えられる。
【０１３２】
例えばオペレーション９０５および／またはオペレーション９０９において、ＨＴＴＰクライアントがＣＥＢであるかどうか、およびそれが適切なＣＥＢであるかどうかということに関してなされた決定は、多くのファクターによって決定され得る。例えば、ＨＴＴＰクライアントがＣＥＢであると決定するために、ゲートウェイサービスは、ファクターを考慮し得、当該ファクターは、例えば、以下のうちの少なくとも１つを含む：ユーザーアイデンティティおよび認証の強度、クライアントロケーション、クライアントＩＰアドレス、ユーザーアイデンティティ、クライアントロケーション、クライアントＩＰの信頼性の度合い、クライアントデバイスのジェイルブレイクステータス、アンチマルウェアソフトウェアのステータス、クライアントデバイスの企業内ポリシーに対するコンプライアンス、および／またはクライアントソフトウェアの整合性のリモート証明もしくは他の証拠。
【０１３３】
ＣＥＢが定義されたアプリケーションポリシー（クライアントバージョン、クライアントＯＳプラットフォームおよび他のファクターによって変化し得る）を全て守ることができるかまたはサポートすることができるか決定するために、クライアントデバイスのソフトウェアおよびゲートウェイサービスは、性能ネゴシエーションの実施および／またはバージョン情報の交換を行い得る。いくつかの実施形態において、ゲートウェイサービスは、ＣＥＢが使用に適切なＣＥＢであるかどうか決定するために、ＣＥＢのバージョン番号または識別子について質問又はチェックすることができる。
【０１３４】
ＣＥＢを通って全てのトラフィックを駆動し、そして、ＳａａＳおよびＷｅｂベースのシステムにアクセスするコンテンツの追加的な制御を許可する。ＳａａＳおよびＷｅｂトラフィックのデータ損失防止（ｄａｔａ  ｌｏｓｓ  ｐｒｅｖｅｎｔｉｏｎ；ＤＬＰ）は、他のＣＥＢアクセスアプリケーションまたはＩＴ管理対象デバイスに対するコピーおよびペースト制御を含む特徴を有するＣＥＢアプリを通して適用されることができる。ＤＬＰは、コンテンツがＩＴ制御のもとで指定されたファイルサーバーまたはサービスのみにダウンロードされることを可能にすることによって、実行されることもできる。
【０１３５】
図１０を参照すると、ウェブページへのユーザーアクセスを管理するシステムの例示的実施形態が示されている。安全であると知られているウェブページ（またはウェブサイト）もあるが、疑わしいものであり得るウェブページ（またはウェブサイト）もある。ユーザーは、標準的なブラウザを通して、対応するＵＲＬを介してウェブページにアクセスし得る。例えば、ユーザーは、ＵＲＬに対応するリンクをクリックし得、当該リンクは、メールアプリケーションを使用することによって閲覧されている電子メールに含まれ得る。アクセスゲートウェイ（ＳＷＧ）は、リンクのクリックによって生成されたアクセス要請を傍受し得、対応するＵＲＬが安全か疑わしいか決定することができる。ＵＲＬが安全であると知られている場合、アクセスゲートウェイは、要請が対応するウェブサイトまたはウェブサーバーに進むことを可能にすることができる。ＵＲＬが疑わしい場合、アクセスゲートウェイは、ホストされた安全なブラウザを介して扱われるように要請をリダイレクトすることができる。少なくとも図７および５に関連して論じられたようなブラウザリダイレクトを介したネットワークアプリケーションの扱いと同様に、安全なブラウザは、ウェブページについてのアクセスを要請することができ、（標準的なブラウザの代わりに）ウェブページにアクセスすることができ、ウェブページの情報が標準的なブラウザに伝えられることを可能にすることができる。
【０１３６】
Ｃ．組み込みブラウザを通してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すシステムおよび方法
【０１３７】
本開示は、組み込みブラウザを通してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すことに関する。クライアントアプリケーションは、クライアントデバイス上において実行可能であることができ、クライアントアプリケーションの組み込みブラウザを通してクライアントデバイスのために１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することができる。クライアントアプリケーションは、ネットワークアプリケーションによるＡＰＩへの呼び出しを傍受することができ、呼び出されたＡＰＩを強化するか、または、ネットワークアプリケーションによって呼び出されたＡＰＩと比較して増大させられた機能性を有する異なるＡＰＩを提供することができる。例えば、クライアントアプリケーションによって提供される異なるＡＰＩまたは強化されたＡＰＩは、元々呼び出されたＡＰＩを通じて利用可能でない機能性を含むことができる。
【０１３８】
実施形態において、セッションの間、ネットワークアプリケーション（例えば、サービスとしてのソフトウェア（ｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ；ＳａａＳアプリケーション）は、クライアントアプリケーションの組み込みブラウザを介してＡＰＩを呼び出すことができる。ＡＰＩは、印刷ＡＰＩを含み得る。クライアントアプリケーションは、印刷ＡＰＩの機能性を向上させるために、呼び出された印刷ＡＰＩを強化または最適化することができる。例えば、クライアントアプリケーションは、典型的なブラウザ印刷フローを実施する代わりに印刷ＡＰＩが直接印刷するように、印刷ＡＰＩを修正することができる。クライアントアプリケーションは、直接印刷するように構成された第２の異なる印刷ＡＰＩを提供し得る。
【０１３９】
クライアントアプリケーションは、（クライアントデバイスと連結されたＵＳＢデバイス、生体認証などであるがそれらに限定されない）クライアントリソース、クライアントドライブ、またはクライアントデバイスにアクセスするために、および／またはクライアントデバイスにローカルまたはネイティブであるアプリケーションと通信するためにネットワークアプリケーションが呼び出すことができるＡＰＩを提供し得る。
【０１４０】
いくつかの実施形態において、特定のネットワークアプリケーションがそれぞれの１つ以上のポリシーをサポートしないとしても、クライアントアプリケーションは、ある特定の制限を実行するためにクライアントデバイスとネットワークアプリケーションとの間におけるセッション上において１つ以上のポリシーを適用することができる。例えば、１つの実施形態において、ネットワークアプリケーションがクライアントアプリケーションなしにスマートカード認証をサポートしないとしても、クライアントアプリケーションは、ネットワークアプリケーションについてスマートカード認証を実行するためにポリシーを適用することができる。
【０１４１】
クライアントアプリケーションは、クライアントデバイスおよび／または周辺デバイスなどであるがそれらに限定されない、ネイティブエンドポイントアプリケーションとの統合を構築するためにネットワークアプリケーションによって作成された呼び出しを傍受することができる。クライアントアプリケーションは、データ損失防止のためのポリシーを実行すること、および／またはネットワークアプリケーションのある特定の部分へのアクセスを制限することができる。クライアントアプリケーションは、ネットワークアプリケーションがどのようにローディングおよび／またはレンダリングするかを制御することによって、ネットワークアプリケーションパフォーマンスを最適化することができ、ネットワークアプリケーション使用にわたってよりきめ細かいアクセス制御を提供することができる。
【０１４２】
図１１を参照すると、クライアントアプリケーション１１０４の組み込みブラウザ１１０６を介して１つ以上のネットワークアプリケーション１１２０ａ〜１１２０ｎに対する１つ以上のセッション１１３０ａ〜１１３０ｎ（本明細書において、アプリケーションセッションともいう）を確立するためにクライアントデバイス１１０２上で稼働するクライアントアプリケーション１１０４の１つの実施形態のブロック図が示されている。クライアントアプリケーション１１０４は、組み込みブラウザ１１０６と、ポリシーマネージャー１１０８と、複数のＡＰＩ１１１０ａ〜１１１０ｎとを含む。クライアントアプリケーション１１０４は、本明細書において説明される任意のクライアントアプリケーションの例であり得る。例えば、クライアントアプリケーション１１０４は、図４のクライアントアプリケーション４０４と同様であり得るかまたは実質的に類似し得る。
【０１４３】
組み込みブラウザ１１０６を有するクライアントアプリケーション１１０４（ＣＥＢ）は、本明細書において説明されるようなＣＥＢの任意の要素を含むことができる。例えば、組み込みブラウザ１１０６は、図４に関して上記で説明されたような組み込みブラウザ４１０と同様であり得るかまたは実質的に類似し得る。組み込みブラウザ１１０６は、ウェブブラウザアプリケーションまたはエンジンの要素と機能性とを含むことができる。組み込みブラウザ１１０６は、クライアントアプリケーション１１０４の構成要素または拡張としてネットワークアプリケーション１１２０ａ〜１１２０ｎのうちの１つ以上をローカルにレンダリングすることができる。例えば、組み込みブラウザ１１０６は、アプリケーションセッション１１３０の制御と完全な可視性とをＣＥＢに提供することができる、ＣＥＢ内部のＳａａＳ／Ｗｅｂアプリケーションをレンダリングすることができる。
【０１４４】
クライアントアプリケーション１１０４は、組み込みブラウザ１１０６を通してクライアントデバイス１１０２のためにネットワークアプリケーション１１２０ａ〜１１２０ｎのうちの１つ以上に対するセッション１１３０ａ〜１１３０ｎのうちの１つ以上を確立することができる。セッション１１３０ａ〜１１３０ｎは、本明細書において説明されるような任意の種類または形態のセッションを含むことができる。例えば、セッション１１３０ａ〜１１３０ｎは、アプリケーションセッション、実行セッション、デスクトップセッション、ホストされたデスクトップセッション、端末サービスセッション、ブラウザセッション、リモートデスクトップセッション、およびリモートアプリケーションセッションを含み得るが、それらに限定されない。セッション１１３０ａ〜１１３０ｎは、ネットワークアプリケーション１１２０ａ〜１１２０ｎとクライアントデバイス１１０２との間において確立された、暗号化および／または安全なセッションを含み得る。
【０１４５】
ネットワークアプリケーション１１２０ａ〜１１２０ｎは、本明細書において詳細に説明された任意の種類または形態のネットワークアプリケーションを含み得る。例えば、ネットワークアプリケーション１１２０ａ〜１１２０ｎは、図４に関して上記で説明されたネットワークアプリケーション４０６と同様であり得るかまたは実質的に類似し得る。ネットワークアプリケーション１１２０ａ〜１１２０ｎは、１つ以上のサーバーから提供されかつ／または１つ以上のサーバー上でホストされるアプリケーション（アプリ）を含み得、当該アプリケーションは、ウェブアプリケーション、サービスとしてのソフトウェア（ｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ；ＳａａＳ）アプリケーション、および／またはリモートホストされたアプリケーションなどであるがそれらに限定されない。いくつかの実施形態において、ネットワークアプリケーション１１２０ａ〜１１２０ｎは、ネットワーク１０４を介してクライアントデバイス１１０２によってアクセスされるサーバー上においてホストされたアプリケーションを含むことができる。ネットワークアプリケーション１１２０ａ〜１１２０ｎは、１つ以上のウェブページ１１２２を含むことができるか、当該ウェブページを実行することができる。ネットワークアプリケーションは、１つ以上のＡＰＩ１１２と連結されることができるか、当該ＡＰＩを呼び出すことができる。ＡＰＩ１１１２は、クライアントアプリケーションによって提供される複数のＡＰＩ１１１０ａ〜１１１０ｎと異なることができる。クライアントアプリケーション１１０４は、ネットワークアプリケーション１１２０ａ〜１１２０ｎによって作成されるＡＰＩ１１１２への呼び出しを傍受することができる。
【０１４６】
クライアントアプリケーション１１０４は、複数のＡＰＩ１１１０ａ〜１１１０ｎを含むか、または提供する。ＡＰＩ１１１０ａ〜１１１０ｎは、本明細書において詳細に説明される任意の種類または形態のＡＰＩを含み得る。ＡＰＩ１１１０ａ〜１１１０ｎは、ソフトウェアを構築するためまたは内部システムもしくは外部システム（例えば、ネットワークアプリケーション１１２０）と相互作用するためのコマンドのセット、機能のセット、プロトコルのセット、および／またはオブジェクトのセットを含むことができる。例えば、ＡＰＩ１１１０ａ〜１１１０ｎは、ウェブベースのアプリケーションまたはウェブツールにアクセスするための命令および／または基準をプログラミングすることを含むことができる。ＡＰＩ１１１０ａ〜１１１０ｎは、安全なカメラ、安全なＵＳＢ、安全なクリップボード、安全なドライブ、安全なオース（Ａｕｔｈ）（例えば、クライアント証明書、スマートカードトランザクション）、および／または安全なボールトを含むことができるが、それらに限定されない。
【０１４７】
クライアントアプリケーション１１０４は、管理セッション１１３０ａ〜１１３０ｎのためのポリシーをネットワークアプリケーション１１２０ａ〜１１２０ｎに適用または別様に提供するため、ネットワークアプリケーション１１２０ａ〜１１２０ｎを管理するため、および／またはＡＰＩ１１１０ａ〜１１１０ｎを管理するために、ポリシーマネージャー１１０８を含むことができる。例えば、ポリシーマネージャー１１０８は、クライアントアプリケーション１１０４のために複数のポリシーを生成および／または格納することができる。ポリシーは、ＡＰＩ１１１０ａ〜１１１０ｎの使用を制御および／または強化するために使用されることができる。ポリシーは、アクセスポリシーおよび／またはセキュリティポリシーを含むことができる。ポリシーは、それぞれのネットワークアプリケーション１１２０のサービスレベルを管理するために、特定のセッション１１３０のトラフィックレベルおよび／またはトラフィック種類を制御するように使用されることができる。ポリシーマネージャー１１０８は、セッション１１３０を暗号化するか別様に安全化するためのポリシーを適用することができる。ポリシーは、ネットワークアプリケーション１１２０ａ〜１１２０ｎ、ＡＰＩ１１１０ａ〜１１１０ｎ、セッション１１３０ａ〜１１３０ｎ、クライアントデバイス１１０２、またはクライアントデバイス１１０２もしくはネットワークアプリケーション１１２０のユーザーのうちの各々に割り当てられることができる。
【０１４８】
クライアントデバイス１１０２は、本明細書において説明される任意のクライアントデバイスの例であり得る。例えば、クライアントデバイス１１０２は、図２に関して上記で説明されたクライアントデバイス２０２、２０４と、図３に関して上記で説明されたクライアントデバイス３０２と、および／または図４に関して上記で説明されたクライアントデバイス４０２ａと同様であり得るかまたは実質的に類似し得る。
【０１４９】
ネットワーク１０４は、ワイドエリアネットワーク（ＷＡＮ）またはインターネットなどのパブリックネットワークであり得る。いくつかの実施形態において、ネットワーク１０４は、ローカルエリアネットワーク（ＬＡＮ）または企業イントラネットなどのプライベートネットワークであり得る。ネットワーク１０４は、（有線および／または無線ネットワークなど）１つ以上の種類の物理ネットワークおよび／またはネットワークトポロジーを採用し得、（伝送制御プロトコル（ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ；ＴＣＰ）、インターネットプロトコル（ＩＰ）、ユーザーデータグラムプロトコル（ＵＤＰ）、または他の類似のプロトコルなど）１つ以上の通信トランスポートプロトコルを採用し得る。
【０１５０】
１つ以上の実施形態において、上記の要素またはエンティティのうちの各々は、ハードウェア、またはハードウェアとソフトウェアとの組み合わせにおいて実装される。クライアントアプリケーション１１０４の各構成要素は、図１と関連して上記で詳細に説明されたハードウェアまたはハードウェアもしくはソフトウェアの組み合わせを使用することによって実装され得る。例えば、これらの要素またはエンティティのうちの各々は、クライアントデバイスのハードウェア上において稼働する任意のアプリケーション、プログラム、ライブラリ、スクリプト、タスク、サービス、プロセス、または、任意の種類および形態の実行可能な命令（例えば、クライアントアプリケーション１１０２）を含むことができる。ハードウェアは、１つ以上の実施形態において、１つ以上のプロセッサなどの回路を含む。
【０１５１】
図１２を参照すると、クライアントデバイス１１０２のためにＡＰＩを提供するクライアントアプリケーション１１０４内における組み込みブラウザ１１０６のブロック図の例示的実施形態が提供されている。図１２において、クライアントアプリケーション１１０４は、第１のネットワークアプリケーション１１２０ａと第２のネットワークアプリケーション１１２０ｂとにセッションを提供する組み込みブラウザ１１０６を含むことができる。第２のネットワークアプリケーションは、クライアントアプリケーション１１０４の第１のＡＰＩ１１１０を実行中であることができる。
【０１５２】
第１のネットワークアプリケーション１１２０ａは、第１のＡＰＩのための第１の呼び出し１２２０ａを作成することができ、第２のネットワークアプリケーション１１２０ｂは、第２のＡＰＩのための第２の呼び出し１２２０ｂを作成することができる。クライアントアプリケーション１１０４は、第１のＡＰＩへの第１の呼び出し１２２０ａと、第２のＡＰＩへの第２の呼び出し１２２０ｂとを傍受することができる。いくつかの実施形態において、呼び出し１２２０ａ、１２２０ｂは、クライアントアプリケーションのＡＰＩレイヤー１２１０によって傍受されることができる。クライアントアプリケーション１１０４は、複数のＡＰＩ１１１０ａ〜１１１０ｂを格納するためのＡＰＩレイヤー１２１０を含むことができる。ＡＰＩ１１１０ａ〜１１１０ｂは、増大させられたセキュリティの機能性、アクセス制御、および／または認証ツールを提供することができる。
【０１５３】
クライアントアプリケーション１１０４は、第１の呼び出し１２２０ａと第２の呼び出し１２２０ｂとにそれぞれ対応するデータまたは情報に基づいて、第１のネットワークアプリケーション１１２０ａと第２のネットワークアプリケーション１１２０ｂとのためにＡＰＩを決定することができる。例えば、クライアントアプリケーションは、クライアントデバイス１１０２の１つ以上のリソース、ドライブ、またはデバイスへのアクセスを提供するためにデバイスＡＰＩ１２４０を識別することができる。デバイスＡＰＩ１２４０は、ネットワークアプリケーション１１２０ａ、１１２０ｂの異なるユーザーおよび／または異なるネットワークアプリケーション１１２０ａ、１１２０ｂへの異なるレベルのアクセスを提供するためのアクセス制御を含むことができる。デバイスＡＰＩ１２４０は、どのネットワークアプリケーション１１２０ａ、１１２０ｂおよび／またはネットワークアプリケーション１１２０ａ、１１２０ｂのどのユーザーがクライアントデバイス１１０２のリソース、ドライブまたはデバイスにアクセスすることができるかを識別することができる。
【０１５４】
クライアントアプリケーションは、第１および／もしくは第２のネットワークアプリケーション１１２０ａ、１１２０ｂ、または第１および／もしくは第２のネットワークアプリケーション１１２０ａ、１１２０ｂのユーザーのための認証１２５０を提供するために、認証ＡＰＩ１２５０を識別することができる。例えば、認証ＡＰＩ１２５０は、スマートカード認証、マルチファクター認証、および／またはシングルサインオン認証についての機能性を提供することができる。
【０１５５】
クライアントアプリケーションは、アップロードイベントの間に増大させられたセキュリティ機能性を提供するために、アップロードＡＰＩ１２６０を識別することができる。例えば、アップロードＡＰＩ１２６０は、スキャンされたドキュメント、スキャンされた画像、またはビデオ呼び出しにおけるカメラプレビューのためにウォーターマークを実装するための機能性を提供することができる。従って、クライアントアプリケーション１１０４は、ネットワークアプリケーション１１２０ａ、１１２０ｂによる異なるＡＰＩへの呼び出し１２２０ａ、１２２０ｂを傍受することができ、ＡＰＩを異なるＡＰＩに置き換えることができる。例えば、クライアントアプリケーション１１０４は、元のＡＰＩと比べてより高い機能性もしくは異なる機能性を有する強化バージョンを有する呼び出されたＡＰＩの強化バージョン、または元のＡＰＩと比べてより高い機能性もしくは異なる機能性を有する異なるＡＰＩを提供することができる。
【０１５６】
図１３を参照すると、組み込みブラウザを介してネットワークアプリケーションのためにクライアントアプリケーションのアプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出す方法の１つの実施形態のフロー図が示されている。方法の機能性は、図１〜１２に関連して本明細書において詳細に説明された構成要素を使用することによって実装され得るか、当該構成要素によって実施され得る。概略として、セッションが、ネットワークアプリケーション（１３０５）に対して確立されることができる。ネットワークアプリケーションによる第１のＡＰＩへの呼び出しが、傍受されることができる（１３１０）。ポリシーが、クライアントアプリケーションのＡＰＩを使用するために識別されることができる（１３１５）。第２のＡＰＩが、識別されたポリシーに基づいて決定されることができる（１３２０）。第２のＡＰＩが、実行されることができる（１３２５）。
【０１５７】
オペレーション（１３０５）を参照すると、いくつかの実施形態において、クライアントアプリケーションは、１つ以上のネットワークアプリケーションに対して１つ以上のセッションを確立することができる。クライアントアプリケーションは、クライアントデバイス上において稼働中であることができ、複数のＡＰＩを提供することができる。例えば、クライアントアプリケーションは、クライアントデバイスのユーザーのために、組み込みブラウザを介して１つ以上のサーバーから提供されかつ／または１つ以上のサーバー上でホストされるネットワークアプリケーションへのアクセスを提供することができる。組み込みブラウザは、クライアントアプリケーションを通してクライアントデバイスのユーザーによってアクセスまたは要請されるネットワークアプリケーションをレンダリングするために、クライアントアプリケーションに統合されることができるか、または組み込まれることができる。例えば、組み込みブラウザは、ネットワークアプリケーションに関するアクセスまたはトラフィックを制御するために、およびクライアントアプリケーションを通してトラフィックを経路決定するために、クライアントアプリケーションと統合されることができる。ネットワークアプリケーションへのアクセスは、クライアントアプリケーションの組み込みブラウザを通してクライアントデバイスのためにネットワークアプリケーションへのセッションを確立することを含むことができる。ネットワークアプリケーションは、ウェブアプリケーション、ＳａａＳアプリケーション、および／またはネットワークを通じてクライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを含むことができるが、それらに限定されない。組み込みブラウザは、クライアントデバイスのユーザーとネットワークアプリケーションとの間における相互作用を可能にすることができるか、または提供することができる。いくつかの実施形態において、クライアントアプリケーションは、ユーザーがクライアントデバイスおよび組み込みブラウザを使用してネットワークアプリケーションにアクセスするためのアプリケーションセッションを提供するために、１つ以上のサーバーへの安全な接続を確立することができる。
【０１５８】
オペレーション（１３１０）を参照すると、いくつかの実施形態において、クライアントアプリケーションは、１つ以上のネットワークアプリケーションのネットワークアプリケーションによって呼び出された第１のＡＰＩを傍受することができる。ネットワークアプリケーションは、クライアントアプリケーションの組み込みブラウザ内部におけるＡＰＩを呼び出すことができる。例えば、ネットワークアプリケーションは、クライアントアプリケーションの組み込みブラウザにおけるネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語（ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ；ＨＴＭＬ）ＡＰＩを有する第１のＡＰＩを呼び出すことができる。クライアントアプリケーションは、ＡＰＩへの呼び出しを傍受することができ、呼び出されたＡＰＩを強化、最適化、または別様に修正することができる。１つの実施形態において、ＨＴＭＬ  ＡＰＩは、印刷機能（例えば、ウィンドウプリント（ｗｉｎｄｏｗ．ｐｒｉｎｔ）を含むことができ、当該印刷機能に対応することができる。クライアントアプリケーションは、典型的なブラウザ印刷フローを使用する代わりにＡＰＩがクライアントアプリケーションにおいて直接印刷するように、印刷機能に対応するＨＴＭＬ  ＡＰＩ呼び出しを傍受することができ、ＡＰＩを修正することができる。
【０１５９】
オペレーション（１３１５）を参照すると、いくつかの実施形態において、クライアントアプリケーションは、ネットワークアプリケーションのために、クライアントアプリケーションの複数のＡＰＩを使用するためのポリシーを識別することができる。例えば、１つ以上のポリシーは、ネットワークアプリケーション、クライアントデバイス、ＡＰＩ、および／またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられることができる。クライアントアプリケーションは、ネットワークアプリケーションによって呼び出された第１のＡＰＩに対応するポリシー、ネットワークアプリケーションに対応するポリシー、またはクライアントデバイスに対応するポリシーを識別することができる。ポリシーは、ネットワークアプリケーションもしくはクライアントデバイスに誰が、または何のデバイスがアクセスすることができるかについての命令、ネットワークアプリケーションもしくはクライアントデバイスへの異なるレベルのアクセス、および／またはネットワークアプリケーションもしくはクライアントデバイスのためのセキュリティ特徴を含むことができる。
【０１６０】
ポリシーは、ネットワークアプリケーションもしくはクライアントデバイスへのアクセス、またはネットワークアプリケーションもしくはクライアントデバイスの使用を制御するために使用されることができる。ポリシーは、１つ以上のネットワークアプリケーションに対するログインイベントの間の認証技術に対応することができる。例えば、クライアントアプリケーションは、（ネットワークアプリケーションのためのスマートカード認証または生体認証などであるがそれらに限定されない）認証技術を実行するためにポリシーを使用することができる。ポリシーは、セキュリティまたは暗号化技術に対応することができる。例えば、クライアントアプリケーションは、マーク（例えば、ウォーターマーク）またはネットワークアプリケーションにアップロードされたスキャン済みドキュメントもしくはピクチャ上のパターンを識別することの他の形態を適用するためのポリシーを識別することができる。ポリシーを使用することによって、クライアントアプリケーションは、例えば、ユーザー場所および／または挙動（これらに限定されない）に基づいてクライアントデバイスリソースのリスクベースの動的なアクセスおよびポリシーを提供することができる。
【０１６１】
ポリシーは、クライアントアプリケーションのポリシーマネージャーから得られることができる。例えば、クライアントアプリケーションは、ポリシーマネージャーから１つ以上のポリシーを検索することができ、ネットワークアプリケーションを制御および／または管理するために１つ以上のポリシーを使用することができる。いくつかの実施形態において、クライアントアプリケーションは、ポリシーマネージャーから１つ以上のポリシーを検索することができ、クライアントアプリケーションと異なるエンティティからネットワークアプリケーションを制御および／または管理するために１つ以上のポリシーを使用することができ、そのような制御および／または管理機能性は、ネットワークアプリケーションが起こった異なるエンティティ上において利用可能でない。
【０１６２】
ポリシーは、クライアントアプリケーションによって、クライアントアプリケーションと異なるエンティティまたはネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られることができる。例えば、クライアントアプリケーションは、ネットワークを通して、ネットワークアプリケーション、クライアントデバイス、ＡＰＩ、および／またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを格納するポリシーサーバーまたはサードパーティーサーバーに連結されることができる。クライアントアプリケーションは、クライアントアプリケーションの１つ以上のＡＰＩに対応する１つ以上のポリシーを検索することができる。いくつかの実施形態において、クライアントアプリケーションは、サードパーティーサーバーに要請を伝送することができ、サードパーティーサーバーは、要請された１つ以上のポリシーに応答することができる。サードパーティーサーバーは、様々な認証技術のためのポリシーを格納する認証サーバーを含むことができるが、それに限定されない。例えば、認証サーバーは、ネットワークアプリケーションおよび／またはクライアントデバイスにアクセスするための認証ポリシーを含むことができる（例えば、クライアントデバイスの異なる構成要素、ドライブ、またはデバイス）。
【０１６３】
オペレーション（１３２０）を参照すると、いくつかの実施形態において、クライアントアプリケーションは、少なくとも１つのポリシーに基づいて、傍受された第１のＡＰＩについて使用するために、クライアントアプリケーションの複数のＡＰＩのうちの第２のＡＰＩを決定することができる。クライアントアプリケーションは、ポリシーを使用して、ネットワークアプリケーションによって呼び出された第１のＡＰＩと異なる第２のＡＰＩを決定することができる。例えば、ポリシーは、第１のＡＰＩが提供しないかまたは含まないある特定の機能性を要求または要請し得る。クライアントアプリケーションは、ポリシーにおいて要求もしくは要請された機能性を含むかまたは提供するクライアントアプリケーションによって提供された複数のＡＰＩからＡＰＩ（例えば、第２のＡＰＩ）を識別することができる。従って、いくつかの実施形態において、第２のＡＰＩは、第１のＡＰＩと異なる（例えば、より高い）機能性を提供することができる。例えば、ネットワークアプリケーションは、当該ネットワークアプリケーションが使用するＡＰＩの限定によって制約され得る。従って、第１のＡＰＩを介して利用可能でない機能性またはＡＰＩが以前に含んでいなかった機能性を提供するために、またはネイティブエンドポイントアプリケーション、クライアントデバイス、および／または周辺デバイスとの統合を提供または構築するために呼び出されたＡＰＩより高い機能性を有する異なるＡＰＩを提供するために、クライアントアプリケーションは、異なるＡＰＩへの呼び出しを傍受して、当該ＡＰＩを強化することができる。
【０１６４】
オペレーション（１３２５）を参照すると、いくつかの実施形態において、クライアントアプリケーションは、クライアントアプリケーションの複数のＡＰＩのうちの第２のＡＰＩを実行することができる。クライアントアプリケーションは、ネットワークアプリケーションによって呼び出された第１のＡＰＩの代わりに第２のＡＰＩを実行することができる。クライアントアプリケーションは、組み込みブラウザによってクライアントアプリケーション内において第２のＡＰＩを実行することができる。第２のＡＰＩは、第１のＡＰＩの強化バージョンを含むことができる。例えば、第２のＡＰＩは、第１のＡＰＩと異なる機能性、または第１のＡＰＩより高い機能性を提供することができる。
【０１６５】
クライアントアプリケーションは、ＡＰＩへの呼び出しを傍受することができ、当該ＡＰＩを異なるＡＰＩに置き換えることができる。例えば、クライアントアプリケーションは、呼び出されたＡＰＩを、呼び出された第１のＡＰＩの安全なバージョンに置き換えることができる。従って、第２のＡＰＩは、第１のＡＰＩの安全なバージョンを含み得る。クライアントアプリケーションは、呼び出されたＡＰＩを、元のＡＰＩと比べてより高い機能性または異なる機能性を有する強化バージョンを有する、呼び出されたＡＰＩの強化バージョンに置き換えることができる。例えば、強化されたＡＰＩは、元々呼び出されたＡＰＩが以前は実施することができなかったデータ損失防止措置などであるがそれに限定されない機能性を含むことができる。第２の安全なバージョンのＡＰＩは、スキャンされたドキュメント、スキャンされた画像、またはビデオコールにおけるカメラプレビューのためのウォーターマークなどの追加的な保護を提供することができる。クライアントアプリケーションは、スキャンされたドキュメント、スキャンされた画像、またはビデオコールにおけるカメラプレビューのためのウォーターマークを提供するために、第２のＡＰＩを実行することができる。
【０１６６】
呼び出された第１のＡＰＩがシングルサインオン機能性を含んでいなかったとしても、第２のＡＰＩは、ネットワークアプリケーションへのシングルサインオン機能性を含むことができる。クライアントアプリケーションは、ネットワークアプリケーションについてシングルサインオン機能性を提供するために、第２のＡＰＩを実行することができる。例えば、第２のＡＰＩは、ネットワークアプリケーションに対する特定の種類のログイン（スマートカード認証および／またはマルチファクター認証などであるがそれらに限定されない）を実行または提供するために使用されることができる。いくつかの実施形態において、第２のＡＰＩは、ドキュメントのアップロード、ファイルのダウンロード、および／または印刷などであるがそれらに限定されないアクションについてマルチファクター認証を提供するために、ユーザー署名機能（例えば、デジタル署名）に対応することができる。
【０１６７】
クライアントアプリケーションは、ログインイベント後またはログイン後において、ネットワークアプリケーションへの呼び出しを傍受することができる。第２のＡＰＩは、クライアントデバイスと相互作用するネットワークアプリケーションの機能性（イベントのアップロード、イベントのダウンロード、印刷、および／または写真撮影などであるがそれらに限定されない）に対応することができる。クライアントアプリケーションは、クライアントデバイスの異なるリソース、クライアントドライブ、もしくはデバイスへのアクセスを提供または制御するために、第２のＡＰＩを実行することができる。第２のＡＰＩは、ログインイベント後に様々なタイミングにおいて、コンテクスト的認証を実行または提供することができる。いくつかの実施形態において、クライアントアプリケーションは、組み込みブラウザを介してクライアントアプリケーション内において稼働する場合にネットワークアプリケーションが使用することができるジャバスクリプトＡＰＩを提供することができる。ネットワークアプリケーションへのアクセスは、ネットワークアプリケーションに割り当てられたポリシーに基づいて与えられることができる。
【０１６８】
クライアントアプリケーションは、クライアントデバイスの異なるリソース、ドライブまたはデバイスにアクセスするためにネットワークアプリケーションが直接呼び出すことができるウェブＡＰＩを提供することができる。例えば、第２のＡＰＩは、機能、またはＵＳＢデバイス、生体認証へのアクセス、および／またはクライアントデバイス上におけるネイティブもしくはローカルな他のアプリケーションとの通信を提供することができる。従って、クライアントアプリケーション内において組み込みブラウザを通じてクライアントデバイスの異なるリソース、ドライブまたはデバイスにアクセスするためにネットワークアプリケーションが直接呼び出すことができるように、クライアントアプリケーションは、第２のＡＰＩを実行することができる。
【０１６９】
クライアントアプリケーションは、クライアントデバイスのユーザーにアクセス制御を提供するために、第２のＡＰＩを実行することができる。アクセスの種類またはレベルは、ユーザーおよび／またはユーザーが相互作用している特定のネットワークアプリケーションに部分的に基づくことができる。例えば、クライアントアプリケーションは、クライアントアプリケーションが組み込みブラウザを通してクライアントデバイス上において現在稼働している提供されたネットワークアプリケーションのうちの全てを制御することを可能にするポリシーを識別することができる。クライアントアプリケーションの組み込みブラウザは、ポリシーを読むことができ、それぞれのユーザーによるクライアントデバイス上における様々なアクセス制御を提供するために、１つ以上のネットワークアプリケーションにポリシーを適用することができる。
【０１７０】
図１４を参照すると、クライアントアプリケーションの組み込みブラウザにおけるネットワークアプリケーションを介してクライアントアプリケーションのＡＰＩを呼び出す方法の１つの実施形態のフロー図が示されている。方法の機能性は、図１〜１２に関連して本明細書において詳細に説明された構成要素を使用することによって実装され得るか、または当該構成要素によって実施され得る。概略として、セッションが、ネットワークアプリケーションに対して確立されることができる（１４０５）。ネットワークアプリケーションのウェブページが受け取られることができる（１４１０）。ポリシーが、クライアントアプリケーションのＡＰＩを使用するために識別されることができる（１４１５）。第２のＡＰＩが、識別されたポリシーに基づいて決定されることができる（１４２０）。第２のＡＰＩが実行されることができる（１４２５）。
【０１７１】
オペレーション（１４０５）を参照すると、いくつかの実施形態において、クライアントアプリケーションは、ネットワークアプリケーションへのセッションを確立することができる。クライアントアプリケーションは、クライアントデバイス上に拡張することができ、組み込みブラウザを介してクライアントアプリケーションによって実行可能な複数のＡＰＩを提供することができる。ネットワークアプリケーションへのセッションは、クライアントアプリケーションの組み込みブラウザを介してアクセスされることができる。ネットワークアプリケーションは、ウェブアプリケーション、ＳａａＳアプリケーション、および／またはネットワークを通じてクライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを含むことができるが、それらに限定されない。組み込みブラウザは、クライアントデバイスのユーザーとネットワークアプリケーションとの間における相互作用を可能にすることができるか、または提供することができる。いくつかの実施形態において、クライアントアプリケーションは、ネットワークアプリケーションへの安全なセッションまたは安全な接続を確立することができる。
【０１７２】
オペレーション（１４１０）を参照すると、いくつかの実施形態において、組み込みブラウザは、ネットワークアプリケーションのウェブページを受け取ることができる。ウェブページは、クライアントアプリケーションの複数のＡＰＩのうちのＡＰＩを含むことができる。組み込みブラウザは、ウェブページによって呼び出されているＡＰＩがクライアントアプリケーションによって提供される複数のＡＰＩのうちの少なくとも１つのＡＰＩであると決定することができる。組み込みブラウザは、呼び出されたＡＰＩを、クライアントアプリケーションによって提供された複数のＡＰＩと比較して、ウェブページによって呼び出されているＡＰＩがクライアントアプリケーションによって提供された複数のＡＰＩのうちの少なくとも１つのＡＰＩであると決定することができる。
【０１７３】
オペレーション（１４１５）を参照すると、いくつかの実施形態において、クライアントアプリケーションは、クライアントアプリケーションのＡＰＩを使用するためのポリシーをネットワークアプリケーションのために識別することができる。ポリシーは、ネットワークアプリケーション、クライアントデバイス、ＡＰＩ、および／またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられることができる。クライアントアプリケーションは、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを識別することができる。クライアントアプリケーションは、ネットワークアプリケーションのウェブページによって呼び出されたＡＰＩに対応するポリシー、ネットワークアプリケーションに対応するポリシー、またはクライアントデバイスに対応するポリシーを識別することができる。ポリシーは、ウェブページ、ネットワークアプリケーションもしくはクライアントデバイスに誰が、または何のデバイスがアクセスすることができるかについての命令、ウェブページ、ネットワークアプリケーションもしくはクライアントデバイスへの異なるレベルのアクセス、および／またはウェブページ、ネットワークアプリケーションもしくはクライアントデバイスのためのセキュリティ特徴を含むことができる。
【０１７４】
いくつかの実施形態において、ポリシーは、クライアントアプリケーションによって、ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られることができる。例えば、クライアントアプリケーションは、ネットワークを通して、ネットワークアプリケーション、クライアントデバイス、ＡＰＩ、および／またはネットワークアプリケーションもしくはクライアントデバイスのユーザーに割り当てられたポリシーを格納するポリシーサーバーまたはサードパーティーサーバーに連結されることができる。クライアントアプリケーションは、クライアントアプリケーションの１つ以上のＡＰＩに対応する１つ以上のポリシーを検索することができる。いくつかの実施形態において、クライアントアプリケーションは、サードパーティーサーバーに要請を伝送することができ、サードパーティーサーバーは、要請された１つ以上のポリシーに応答することができる。サードパーティーサーバーは、様々な認証技術のためのポリシーを格納する認証サーバーを含むことができるが、それに限定されない。例えば、認証サーバーは、ネットワークアプリケーションおよび／またはクライアントデバイスにアクセスするための認証ポリシーを含むことができる（例えば、クライアントデバイスの異なる構成要素、ドライブ、またはデバイス）。
【０１７５】
オペレーション（１４２０）を参照すると、いくつかの実施形態において、クライアントアプリケーションは、ポリシーに基づいて、クライアントアプリケーションのＡＰＩを実行するためのアクセスをネットワークアプリケーションが有していると決定することができる。ポリシーは、ＡＰＩ、ネットワークアプリケーション、またはクライアントデバイスへのアクセスについての命令を含むことができる。クライアントアプリケーションは、１つ以上のポリシーを使用して、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーがアクセスすることができるか、またはＡＰＩを実行するためにアクセスするための適切な許可レベルを有しているか決定することができる。クライアントアプリケーションは、ＡＰＩを実行するためのアクセスを決定するために、ポリシーと、ネットワークアプリケーション、クライアントデバイス、またはネットワークアプリケーションもしくはクライアントデバイスのユーザーのクレデンシャルとを比較することができる。
【０１７６】
ポリシーは、１つ以上のネットワークアプリケーションへのログインイベントの間の認証技術に対応することができる。例えば、クライアントアプリケーションは、（ネットワークアプリケーションのためのスマートカード認証または生体認証などであるがそれらに限定されない）認証技術を実行するためにポリシーを使用することができる。ポリシーは、セキュリティまたは暗号化技術に対応することができる。例えば、クライアントアプリケーションは、マーク（例えば、ウォーターマーク）またはネットワークアプリケーションにアップロードされたスキャン済みドキュメントもしくはピクチャ上のパターンを識別することの他の形態を適用するためのポリシーを識別することができる。ポリシーを使用することによって、クライアントアプリケーションは、例えば、ユーザー場所および／または挙動（これらに限定されない）に基づいてクライアントデバイスリソースのリスクベースの動的なアクセスおよびポリシーを提供することができる。
【０１７７】
オペレーション（１４２５）を参照すると、いくつかの実施形態において、クライアントアプリケーションは、ネットワークアプリケーションのウェブページのために、クライアントアプリケーションのＡＰＩを実行することができる。クライアントアプリケーションは、組み込みブラウザを通してネットワークアプリケーションのウェブページのためにＡＰＩを実行することができる。クライアントアプリケーションのＡＰＩは、ネットワークアプリケーションのＡＰＩより高い機能性を提供することができる。クライアントアプリケーションは、ウェブページが以前に含んでいなかった機能性をネットワークアプリケーションのウェブページに提供するか、または当該機能性を強化するために、ＡＰＩを実行することができる。例えば、ＡＰＩは、ネイティブエンドポイントアプリケーション、クライアントデバイス、および／または周辺デバイスとの統合を提供または構築することができる。
【０１７８】
いくつかの実施形態において、クライアントアプリケーションは、クライアントデバイスの異なるリソース、ドライブまたはデバイスにアクセスするためにネットワークアプリケーションのウェブページが直接呼び出すことができるウェブＡＰＩを提供することができる。例えば、ＡＰＩは、機能、またはＵＳＢデバイス、生体認証へのアクセス、および／またはクライアントデバイス上におけるネイティブもしくはローカルな他のアプリケーションとの通信を提供することができる。従って、クライアントアプリケーション内において組み込みブラウザを通じてクライアントデバイスの異なるリソース、ドライブまたはデバイスにアクセスするためにネットワークアプリケーションのウェブページが直接呼び出すことができるように、クライアントアプリケーションは、ＡＰＩを実行することができる。クライアントアプリケーションは、クライアントデバイスのユーザーにアクセス制御を提供するために、ＡＰＩを実行することができる。アクセスの種類またはレベルは、ユーザーおよび／またはユーザーがウェブページを介して相互作用している特定のネットワークアプリケーションに部分的に基づくことができる。
【０１７９】
上記において説明されたシステムは、それらの構成要素のうちの任意の構成要素または各々の構成要素のうちの複数を提供し得、これらの構成要素は、独立型機械上に提供され得、またはいくつかの実施形態において分散型システムにおける複数の機械上に提供され得るということが理解されるべきである。上記において説明されたシステムおよび方法は、ソフトウェア、ファームウェア、ハードウェアまたはそれらの任意の組み合わせを作るためのプログラミングおよび／またはエンジニアリング技術を使用する、方法、装置、または製品として実装され得る。追加的に、上記において説明されたシステムおよび方法は、１つ以上の製品上において組み込まれるかまたは１つ以上の製品において組み込まれる１つ以上のコンピューター可読プログラムとして提供され得る。本明細書において、「製品」という用語は、１つ以上のコンピューター可読デバイス、ファームウェア、プログラミング可能なロジック、メモリデバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＳＲＡＭなど）、ハードウェア（例えば、集積回路チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ；ＡＳＩＣ）など）、電子デバイス、コンピューター可読不揮発性記憶ユニット（例えば、ＣＤ−ＲＯＭ、ＵＳＢフラッシュメモリ、ハードディスクドライブなど）からアクセス可能であるかまたはそれらに組み込まれたコードまたはロジックを包含することを意図されている。製品は、ネットワーク伝送線、無線伝送媒体、空間を通って伝播する信号、電波、赤外線信号などを介したコンピューター可読プログラムへのアクセスを提供するファイルサーバーからアクセス可能であり得る。製品は、フラッシュメモリカードまたは磁気テープであり得る。製品は、ハードウェアロジック、およびプロセッサによって実行されるコンピューター可読媒体に組み込まれたプログラミング可能なコードまたはソフトウェアを含む。概して、コンピューター可読プログラムは、ＬＩＳＰ、ＰＥＲＬ、Ｃ、Ｃ＋＋、Ｃ＃、ＰＲＯＬＯＧなど任意のプログラミング言語で、またはジャバなど任意のバイトコード言語で実装され得る。ソフトウェアプログラムは、オブジェクトコードとして１つ以上の製品上に格納され得るか、または１つ以上の製品において格納され得る。
【０１８０】
方法およびシステムの様々な実施形態が説明されたが、これらの実施形態は、例示的であり、説明された方法またはシステムの範囲を限定しない。当業者は、説明された方法およびシステムの最も広い範囲から逸脱することなく、説明された方法およびシステムの形態ならびに詳細に対して変更を行うことができる。従って、本明細書において説明された方法およびシステムの範囲は、例示的な実施形態のうちのいかなる実施形態によっても限定されるべきでなく、添付の特許請求の範囲およびその同等物に従って定義されるべきである。
【図１】
2021501381.tif 000003
【図２】
2021501381.tif 000004
【図３】
2021501381.tif 000005
【図４】
2021501381.tif 000006
【図５】
2021501381.tif 000007
【図６】
2021501381.tif 000008
【図７】
2021501381.tif 000009
【図８】
2021501381.tif 000010
【図９】
2021501381.tif 000011
【図１０】
2021501381.tif 000012
【図１１】
2021501381.tif 000013
【図１２】
2021501381.tif 000014
【図１３】
2021501381.tif 000015
【図１４】
2021501381.tif 000016
【手続補正書】
【提出日】令和2年2月13日(2020.2.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、該方法は、
（ａ）クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされる１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することであって、該クライアントアプリケーションは、複数のアプリケーションプログラムインターフェース（ＡＰＩ）を提供する、ことと、
（ｂ）該クライアントアプリケーションによって、該１つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を傍受することと、
（ｃ）該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のＡＰＩを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
（ｄ）少なくとも該ポリシーに基づいて、傍受された該第１のＡＰＩについて使用するために該クライアントアプリケーションの該複数のＡＰＩのうちの第２のＡＰＩを該クライアントアプリケーションによって決定することと、
（ｅ）傍受された該第１のＡＰＩ呼び出しについて、該クライアントアプリケーションの該複数のＡＰＩのうちの該第２のＡＰＩを該クライアントアプリケーションによって実行することと
を含む、方法。
【請求項２】
前記組み込みブラウザは、前記クライアントアプリケーションに統合されている、請求項１に記載の方法。
【請求項３】
前記１つ以上のネットワークアプリケーションは、ネットワークを介して前記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、請求項１に記載の方法。
【請求項４】
（ｂ）は、前記クライアントアプリケーションによって、該クライアントアプリケーションの前記組み込みブラウザにおいて前記ネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語ＡＰＩを備えている前記第１のＡＰＩを傍受することをさらに含む、請求項１に記載の方法。
【請求項５】
（ｃ）は、前記ネットワークアプリケーション、前記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別することをさらに含む、請求項１に記載の方法。
【請求項６】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項１に記載の方法。
【請求項７】
（ｅ）は、前記組み込みブラウザによって、前記クライアントアプリケーション内において前記第２のＡＰＩを実行することをさらに含む、請求項１に記載の方法。
【請求項８】
前記クライアントアプリケーションの前記第２のＡＰＩは、前記ネットワークアプリケーションの前記第１のＡＰＩを介して利用可能でない機能性を提供する、請求項１に記載の方法。
【請求項９】
システムであって、該システムは、
クライアントデバイス上において実行可能なクライアントアプリケーションを備え、該クライアントアプリケーションは、組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス（ＡＰＩ）を提供し、該クライアントアプリケーションは、
該クライアントアプリケーションの該組み込みブラウザを介してアクセスされる１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することと、
該１つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を傍受することと、
該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のＡＰＩを使用するためのポリシーを識別することと、
少なくとも該ポリシーに基づいて、傍受された該第１のＡＰＩについて使用するための該クライアントアプリケーションの該複数のＡＰＩのうちの第２のＡＰＩを決定することと、
傍受された該第１のＡＰＩ呼び出しについて、該クライアントアプリケーションの該複数のＡＰＩのうちの該第２のＡＰＩを実行することと
を行うように構成されている、システム。
【請求項１０】
前記組み込みブラウザは、前記クライアントアプリケーションに統合されている、請求項９に記載のシステム。
【請求項１１】
前記１つ以上のネットワークアプリケーションは、ネットワークを介して前記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、請求項９に記載のシステム。
【請求項１２】
前記クライアントアプリケーションは、該クライアントアプリケーションの前記組み込みブラウザにおいて前記１つ以上のネットワークアプリケーションのうちの少なくとも１つのネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語ＡＰＩを備えている前記第１のＡＰＩを傍受するようにさらに構成されている、請求項９に記載のシステム。
【請求項１３】
前記クライアントアプリケーションは、前記１つ以上のネットワークアプリケーションのうちの少なくとも１つのネットワークアプリケーション、前記クライアントデバイス、または該少なくとも１つのネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別するようにさらに構成されている、請求項９に記載のシステム。
【請求項１４】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項９に記載のシステム。
【請求項１５】
前記クライアントアプリケーションは、前記組み込みブラウザによって、該クライアントアプリケーション内において前記第２のＡＰＩを実行するようにさらに構成されている、請求項９に記載のシステム。
【請求項１６】
前記クライアントアプリケーションの前記第２のＡＰＩは、前記ネットワークアプリケーションの前記第１のＡＰＩを介して利用可能でない機能性を提供する、請求項９に記載のシステム。
【請求項１７】
方法であって、該方法は、
（ａ）クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することであって、該クライアントアプリケーションは、該組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス（ＡＰＩ）を提供する、ことと、
（ｂ）該組み込みブラウザによって、該ネットワークアプリケーションのウェブページを受け取ることであって、該ウェブページは、該クライアントアプリケーションの該複数のＡＰＩのうちのＡＰＩを備えている、ことと、
（ｃ）該ネットワークアプリケーションのために、該クライアントアプリケーションの該ＡＰＩを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
（ｄ）該ポリシーに基づいて、該クライアントアプリケーションの該ＡＰＩを実行するためのアクセスを該ネットワークアプリケーションが有していることを該クライアントアプリケーションによって決定することと、
（ｅ）該クライアントアプリケーションによって、該ネットワークアプリケーションの該ウェブページのために該クライアントアプリケーションの該ＡＰＩを実行することと
を含む、方法。
【請求項１８】
（ｂ）は、前記ウェブページによって呼び出されている前記ＡＰＩが前記クライアントアプリケーションの前記ＡＰＩであることを前記組み込みブラウザによって決定することをさらに含む、請求項１７に記載の方法。
【請求項１９】
（ｃ）は、前記ネットワークアプリケーション、前記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた前記ポリシーを識別することをさらに含む、請求項１７に記載の方法。
【請求項２０】
前記ポリシーは、前記クライアントアプリケーションによって、前記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、請求項１７に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
方法は、ウェブページによって呼び出されているＡＰＩがクライアントアプリケーションのＡＰＩであることを組み込みブラウザによって決定することを含むことができる。方法は、ネットワークアプリケーション、クライアントデバイス、またはクライアントデバイスもしくはネットワークアプリケーションのユーザーに割り当てられたポリシーを識別することを含むことができる。
（項目１）
クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのために該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法であって、該方法は、
（ａ）クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされる１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することであって、該クライアントアプリケーションは、複数のアプリケーションプログラムインターフェース（ＡＰＩ）を提供する、ことと、
（ｂ）該クライアントアプリケーションによって、該１つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を傍受することと、
（ｃ）該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のＡＰＩを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
（ｄ）少なくとも該ポリシーに基づいて、傍受された該第１のＡＰＩについて使用するために該クライアントアプリケーションの該複数のＡＰＩのうちの第２のＡＰＩを該クライアントアプリケーションによって決定することと、
（ｅ）傍受された該第１のＡＰＩ呼び出しについて、該クライアントアプリケーションの該複数のＡＰＩのうちの該第２のＡＰＩを該クライアントアプリケーションによって実行することと
を含む、方法。
（項目２）
上記組み込みブラウザは、上記クライアントアプリケーションに統合されている、項目１に記載の方法。
（項目３）
上記１つ以上のネットワークアプリケーションは、ネットワークを介して上記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、項目１に記載の方法。
（項目４）
（ｂ）は、上記クライアントアプリケーションによって、該クライアントアプリケーションの上記ブラウザにおいて上記ネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語ＡＰＩを備えている上記第１のＡＰＩを傍受することをさらに含む、項目１に記載の方法。
（項目５）
（ｃ）は、上記ネットワークアプリケーション、上記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた上記ポリシーを識別することをさらに含む、項目１に記載の方法。
（項目６）
上記ポリシーは、上記クライアントアプリケーションによって、上記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、項目１に記載の方法。
（項目７）
（ｅ）は、上記組み込みブラウザによって、上記クライアントアプリケーション内において上記第２のＡＰＩを実行することをさらに含む、項目１に記載の方法。
（項目８）
上記クライアントアプリケーションの上記第２のＡＰＩは、上記ネットワークアプリケーションの上記第１のＡＰＩを介して利用可能でない機能性を提供する、項目１に記載の方法。
（項目９）
クライアントアプリケーションの組み込みブラウザを介してネットワークアプリケーションのために該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出すシステムであって、該システムは、
クライアントデバイス上において実行可能なクライアントアプリケーションを備え、該クライアントアプリケーションは、組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス（ＡＰＩ）を提供し、該クライアントアプリケーションは、
該クライアントアプリケーションの該組み込みブラウザを介してアクセスされる１つ以上のネットワークアプリケーションへの１つ以上のセッションを確立することと、
該１つ以上のネットワークアプリケーションのうちのネットワークアプリケーションによって呼び出された第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を傍受することと、
該ネットワークアプリケーションのために、該クライアントアプリケーションの該複数のＡＰＩを使用するためのポリシーを識別することと、
少なくとも該ポリシーに基づいて、傍受された該第１のＡＰＩについて使用するための該クライアントアプリケーションの該複数のＡＰＩのうちの第２のＡＰＩを決定することと、
傍受された該第１のＡＰＩ呼び出しについて、該クライアントアプリケーションの該複数のＡＰＩのうちの該第２のＡＰＩを実行することと
を行うように構成されている、システム。
（項目１０）
上記組み込みブラウザは、上記クライアントアプリケーションに統合されている、項目９に記載のシステム。
（項目１１）
上記１つ以上のネットワークアプリケーションは、ネットワークを介して上記クライアントデバイスによってアクセスされるサーバー上においてホストされたアプリケーションを備えている、項目９に記載のシステム。
（項目１２）
上記クライアントアプリケーションは、該クライアントアプリケーションの上記ブラウザにおいて上記１つ以上のネットワークアプリケーションのうちの少なくとも１つのネットワークアプリケーションのウェブページのハイパーテキストマークアップ言語ＡＰＩを備えている上記第１のＡＰＩを傍受するようにさらに構成されている、項目９に記載のシステム。
（項目１３）
上記クライアントアプリケーションは、上記１つ以上のネットワークアプリケーションのうちの少なくとも１つのネットワークアプリケーション、上記クライアントデバイス、または該少なくとも１つのネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた上記ポリシーを識別するようにさらに構成されている、項目９に記載のシステム。
（項目１４）
上記ポリシーは、上記クライアントアプリケーションによって、上記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、項目９に記載のシステム。
（項目１５）
上記クライアントアプリケーションは、上記組み込みブラウザによって、該クライアントアプリケーション内において上記第２のＡＰＩを実行するようにさらに構成されている、項目９に記載のシステム。
（項目１６）
上記クライアントアプリケーションの上記第２のＡＰＩは、上記ネットワークアプリケーションの上記第１のＡＰＩを介して利用可能でない機能性を提供する、項目９に記載のシステム。
（項目１７）
クライアントアプリケーションの組み込みブラウザにおいてネットワークアプリケーションを介して該クライアントアプリケーションのアプリケーションプログラミングインターフェースを呼び出す方法であって、該方法は、
（ａ）クライアントデバイス上におけるクライアントアプリケーションによって、該クライアントアプリケーションの組み込みブラウザを介してアクセスされるネットワークアプリケーションへのセッションを確立することであって、該クライアントアプリケーションは、該組み込みブラウザを介して該クライアントアプリケーションによって実行可能な複数のアプリケーションプログラムインターフェス（ＡＰＩ）を提供する、ことと、
（ｂ）該組み込みブラウザによって、該ネットワークアプリケーションのウェブページを受け取ることであって、該ウェブページは、該クライアントアプリケーションの該複数のＡＰＩのうちのＡＰＩを備えている、ことと、
（ｃ）該ネットワークアプリケーションのために、該クライアントアプリケーションの該ＡＰＩを使用するためのポリシーを該クライアントアプリケーションによって識別することと、
（ｄ）該ポリシーに基づいて、該クライアントアプリケーションの該ＡＰＩを実行するためのアクセスを該ネットワークアプリケーションが有していることを該クライアントアプリケーションによって決定することと、
（ｅ）該クライアントアプリケーションによって、該ネットワークアプリケーションの該ウェブページのために該クライアントアプリケーションの該ＡＰＩを実行することと
を含む、方法。
（項目１８）
（ｂ）は、上記ウェブページによって呼び出されている上記ＡＰＩが上記クライアントアプリケーションの上記ＡＰＩであることを上記組み込みブラウザによって決定することをさらに含む、項目１７に記載の方法。
（項目１９）
（ｃ）は、上記ネットワークアプリケーション、上記クライアントデバイス、または該ネットワークアプリケーションもしくは該クライアントデバイスのユーザーに割り当てられた上記ポリシーを識別することをさらに含む、項目１７に記載の方法。
（項目２０）
上記ポリシーは、上記クライアントアプリケーションによって、上記ネットワークアプリケーションのエンティティと異なるエンティティのサーバーから得られる、項目１７に記載の方法。
【国際調査報告】
2021501381.tif 000017
2021501381.tif 000018