以下の説明において、上述のとおり特定し、本明細書の一部をなし、例示により本明細書で説明する側面を実施する様々な実施形態を示す添付の図面を参照する。本明細書で説明する範囲を逸脱することなく、他の実施形態を利用し、構造および機能の変形を行えることは理解されるべきである。本発明のさまざまな側面は他の実施形態での実施が可能であり、さまざまな異なる方法で実施または実行することが可能である。
以下詳細に説明する主題の概要紹介として、本明細書で説明する発明の側面は、特に複数の操作モードで実行することが可能なアプリケーションとともに使用されるモバイルコンピューティングデバイスの管理対象モバイルアプリケーションを使用して、企業コンピューティングシステムのリソースへのリモートアクセスを制御することに向けられる。
アクセスマネージャは、企業リソースへのアクセスを要求するモバイルアプリケーションが正確に確認され、モバイルコンピューティングデバイスへのインストール後に後で改変されていないかどうかを判定する検証プロセスを行う。このように、アクセスマネージャは企業リソースへのアクセスを要求するモバイルアプリケーションが信頼でき、その企業リソースを保護するために使用されるセキュリティメカニズムを回避しようとしていないことを保証する。その結果、企業に関連する個人は、事前承認されたアプリケーションを使用して自分の私用モバイルデバイスで企業リソースを有利に利用することができる。
本明細書で使用される表現および用語は、説明目的であり、制限と見なしてはならないことは理解されるべきである。むしろ、本明細書で使用される表現および用語には、そのもっとも広い解釈および意味が与えられるべきである。「含み」および「備え」ならびにその変形の使用は、これ以降で挙げられるアイテムおよびその等価物ならびに追加アイテムおよびその等価物を包含することが意図されている。「取り付けられている」、「接続されている」、「連結されている」、「位置付けられている」、「係合されている」および同様な用語の使用は、直接および間接的な両方の取り付け、接続、連結、位置付けおよび係合を含むことが意図されている。
〈コンピューティングアーキテクチャ〉
コンピュータのソフトウェア、ハードウェアおよびネットワークは、特に、スタンドアロン、ネットワーク化、リモートアクセス(別称、リモートデスクトップ)、仮想化および/またはクラウドベースの環境を含め、多様な異なるシステム環境で利用される。
図1は、本明細書で説明する1つ以上の例示的な側面を、スタンドアロンおよび/またはネットワーク化環境で実装するために使用されるシステムアーキテクチャならびにデータ処理装置の一実施例を示す。
さまざまなネットワークノード103,105,107および109は、インターネットなどの広域ネットワーク(WAN)101を介して相互接続されている。プライベートイントラネット、企業ネットワーク、LAN、メトロポリタンエリアネットワーク(MAN)、ワイヤレスネットワーク、パーソナルネットワーク(PAN)等を含む、他のネットワークもまた、または代わりに使用してもよい。ネットワーク101は例示目的であり、より少ないか、または追加のコンピュータネットワークと取り替えてもよい。ローカルエリアネットワーク(LAN)はあらゆる周知のLANトポロジーのうちの1つ以上を有してもよく、イーサーネットなどの多様な異なるプロトコルのうちの1つ以上を使用してもよい。デバイス103,105,107,109および他のデバイス(図示せず)は、撚り対線、同軸ケーブル、光ファイバ、電波または他の通信媒体を介してネットワークのうちの1つ以上に接続される。
本明細書で使用し、図面に図示する「ネットワーク」とは、遠隔記憶装置が1つ以上の通信パスを介して互いに連結されているシステムだけではなく、記憶容量を有する当該システムにそのときどきで連結してもよいスタンドアロンデバイスのこともいう。そのため、「ネットワーク」とは、「物理的ネットワーク」だけでなく、すべての物理的ネットワークに常駐する(単一のエンティティに帰属する)データから構成される「コンテンツネットワーク」も含む。
コンポーネントは、データサーバ103、ウェブサーバ105およびクライアントコンピュータ107,109を含んでいる。
データサーバ103は、本明細書で説明する1つ以上の例示的な側面を実施するために、データベースおよび制御ソフトウェアの全体的なアクセス、制御および管理(administration)を提供する。データサーバ103はウェブサーバ105に接続されており、それによりユーザは必要なデータとインタラクトし、必要なデータを取得する。あるいは、データサーバ103はウェブサーバ自体としてふるまってもよく、インターネットに直接接続してもよい。データサーバ103は、直接もしくは間接的な接続を介して、または何らかの他のネットワークを介して、ネットワーク101(例、インターネット)経由でウェブサーバ105に接続されていてもよい。
ユーザはリモートコンピュータ107,109を使用して、たとえばウェブサーバ105がホストする1つ以上の外部に露出するウェブサイトを介してデータサーバ103に接続するためのウェブブラウザを使用して、データサーバ103とインタラクトしてもよい。クライアントコンピュータ107,109はデータサーバ103とともに使用して、そこに格納されているデータにアクセスしてもよく、または他の目的で使用してもよい。たとえば、クライアントデバイス107から、ユーザは当業界で周知のインターネットブラウザを使用して、またはコンピュータネットワーク(インターネットなど)上でウェブサーバ105および/またはデータサーバ103と通信するソフトウェア・アプリケーションを実行することにより、ウェブサーバ105にアクセスする。
サーバおよびアプリケーションは同じ物理的マシン上に組み合わせて、個別の仮想アドレスもしくは論理アドレスを保持してもよく、または個別の物理的マシンに常駐していてもよい。図1は、使用されるネットワークアーキテクチャのほんの一実施例を示しており、当業者は、使用される特定のネットワークアーキテクチャおよびデータ処理装置を変更してもよいこと、ならびに、本明細書で詳細に説明するように、それが提供する機能に二次的なものであることを認識するであろう。たとえば、ウェブサーバ105およびデータサーバ103が提供するサービスは単一のサーバに組み合わせてもよい。
各コンポーネント103,105,107,109は、あらゆるタイプの周知のコンピュータ、サーバまたはデータ処理装置であってもよい。たとえば、データサーバ103はデータサーバ103の動作全体を制御するプロセッサ111を含んでいてもよい。
データサーバ103は、RAM113、ROM115、ネットワークインターフェース117、入出力インターフェース119(例、キーボード、マウス、ディスプレイ、プリンタ等)およびメモリ121をさらに含んでいてもよい。I/O119は、データまたはファイルを読み込み、書き込み、表示し、および/または印刷する多様なインターフェースユニットおよびドライブを含んでいてもよい。
メモリ121はデータ処理装置103、本明細書で説明する側面を行うようデータサーバ103に指示する制御ロジック125、ならびに本明細書で説明する側面と合わせて使用してもしなくてもよい二次的、サポートおよび/または他の機能を提供する他のアプリケーションソフトウェア127の動作全体を制御するオペレーティングシステム・ソフトウェア123をさらに格納していてもよい。
制御ロジックは本明細書ではデータサーバソフトウェア125ともいう。データサーバソフトウェアの機能は、制御ロジックに符号化され、システムに入力を提供するユーザによって手動で作成されるルールに基づいて自動的に行われる動作もしくは決定、および/またはユーザ入力(例、問合わせ、データのアップデート等)に基づく自動処理の組合せをいう。
メモリ121は、第1データベース129および第2データベース131を含め、本明細書で説明する1つ以上の側面の実施で使用されるデータも格納している。いくつかの実施形態では、第1データベースは第2データベースを含んでもよい(例、個別のテーブル、レポート等として)。すなわち、情報は、システムの設計により、単一のデータベースに格納されることができ、または別々の論理データベース、仮想データベースもしくは物理的データベースに分けられることができる。デバイス105,107,109はデバイス103に関して説明したのと同様なアーキテクチャを有してもよく、または異なるアーキテクチャを有してもよい。当業者には、本明細書で説明するデータ処理装置103(またはデバイス105,107,109)の機能を複数のデータ処理装置に分散して、たとえば、複数のコンピュータに処理ロードを分散し、地理的な場所、ユーザのアクセスレベル、サービスの質(QoS)等に基づいてトランザクションを分けてもよい。
1つ以上の側面は、1つ以上のプログラムモジュールなど、1つ以上のコンピュータまたは本明細書で説明される他のデバイスによって実行されるコンピュータ使用可能もしくは読取可能データおよび/またはコンピュータ実行可能命令に具現化してもよい。一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサによって実行されるとき、特定のタスクを行うかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。モジュールは実行のために後でコンパイルされるソースコードプログラミング言語で書き込んでもよく、またはHTMLもしくはXMLなどの(ただし、これだけに限定されない)スクリプト言語で書き込んでもよい。
コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ読取可能媒体に格納される。ハードディスク、CD−ROM、光学記憶装置、磁気記憶装置、および/またはそのあらゆる組合せを含め、あらゆる適したコンピュータ読取可能記憶媒体を利用してもよい。さらに、本明細書で説明するデータまたはイベントを表すさまざまな伝送(非記憶)媒体は、金属ワイヤ、光ファイバ、ならびに/またはワイヤレス伝送媒体(例、空気および/もしくは空間)など、信号伝達媒体を通して移動する電磁波の形で、送信元と宛先との間を転送してもよい。
本明細書で説明するさまざまな側面は、方法、データ処理システム、またはコンピュータプログラム製品として具現してもよい。そのため、さまざまな機能は、集積回路、フィールドプログラマブル・ゲートアレイ(FPGA)等といった、ソフトウェア、ファームウェアおよび/またはハードウェアもしくはハードウェア等価物に全部または一部を具現してもよい。本明細書で説明する1つ以上の側面をより効果的に実装するために特定のデータ構造を使用してもよく、当該データ構造は本明細書で説明するコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内に企図される。
図2をさらに参照して、本明細書で説明する1つ以上の側面がリモートアクセス環境に実装される。図2は、本明細書で説明する1つ以上の側面に従って使用されるコンピューティング環境200の汎用コンピューティングデバイス201を含む例示的なシステムアーキテクチャを示す。汎用コンピューティングデバイス201は、クライアントアクセスデバイスに仮想マシンを提供するように構成されている単一サーバまたはマルチサーバのデスクトップ仮想化システム(例、リモートアクセスもしくはクラウドシステム)内のサーバ206aとして使用される。汎用コンピューティングデバイス201は、ランダムアクセスメモリ(RAM)205、読取専用メモリ(ROM)207、入出力(I/O)モジュール209およびメモリ215を含め、サーバおよびその関連コンポーネントの動作全体を制御するプロセッサ203を有している。
I/Oモジュール209は、汎用コンピューティングデバイス201のユーザが入力を提供するマウス、キーパッド、タッチスクリーン、スキャナ、光学リーダ、および/またはスタイラス(もしくは他の入力デバイス)を含んでもよく、また音声出力を提供するスピーカと、テキスト、オーディオビジュアルおよび/またはグラフィカル出力を提供するビデオディスプレイデバイスとのうちの1つ以上を含んでもよい。
ソフトウェアはメモリ215および/または他のストレージ内に格納されて、本明細書で説明するさまざまな機能を実施するために汎用コンピューティングデバイス201を専用コンピューティングデバイスに構成するプロセッサ203に命令を与える。たとえば、メモリ215は、オペレーティングシステム217、アプリケーションプログラム219および関連データベース221など、コンピューティングデバイス201が使用するソフトウェアを格納していてもよい。
コンピューティングデバイス201は、端末240(クライアントデバイスともいう)などの1つ以上のリモートコンピュータへの接続をサポートするネットワーク化環境で動作する。端末240は、汎用コンピューティングデバイス103もしくは201に関して上述した要素の多くもしくはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってもよい。
図2に図示するネットワーク接続はローカルエリアネットワーク(LAN)225および広域ネットワーク(WAN)229を含むが、他のネットワークを含んでもよい。LANネットワーク化環境で使用される場合、コンピューティングデバイス201はネットワークインターフェースまたはアダプタ223経由でLAN225に接続してもよい。WANネットワーク化環境で使用される場合、コンピューティングデバイス201は、コンピュータネットワーク230(例、インターネット)など、WAN229上で通信を確立するモデム227または他の広域ネットワークインターフェースを含んでもよい。図示するネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段も使用してもよいことは認識されるであろう。コンピューティングデバイス201および/または端末240は、バッテリ、スピーカおよびアンテナ(図示せず)などのさまざまな他のコンポーネントを含めて、モバイル端末(例、携帯電話、スマートフォン、PDA、ノートブック等)であってもよい。
本明細書で説明する側面は、複数の他の汎用もしくは専用コンピューティングシステムの環境または構成と併用して動作可能であってもよい。本明細書で説明する側面と併用するのに適する他のコンピューティングシステム、環境および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたはデバイスのいずれかを含む分散コンピューティング環境を含むが、これだけに限定されない。
図2に図示するように、1つ以上のクライアントデバイス240は1つ以上のサーバ206a〜206n(総称的に、本明細書では「サーバ206」という)と通信可能な状態である。一つの実施形態では、コンピューティング環境200は、サーバ206とクライアントマシン240との間にインストールされているネットワーク・アプライアンスを含んでいる。ネットワーク・アプライアンスはクライアント/サーバ接続を管理してもよく、ある場合には複数のバックエンドサーバ206間のクライアント接続の負荷分散をすることができる。
クライアントマシン240は、いくつかの実施形態では、単一クライアントマシン240またはクライアントマシンの単一グループ240と称されることがあり、サーバ206は単一サーバ206またはサーバの単一グループ206と称されることがある。一つの実施形態では、単一クライアントマシン240は2つ以上のサーバ206と通信し、別の実施形態では単一サーバ206は2つ以上のクライアントマシン240と通信する。さらに別の実施形態では、単一クライアントマシン240は単一サーバ206と通信する。
クライアントマシン240は、いくつかの実施形態では、次の非網羅的な用語のうちのいずれか1つによって言及される。すなわち、クライアントマシン、クライアント、クライアントコンピュータ、クライアントデバイス、クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノード。サーバ206は、いくつかの実施形態では、次の非網羅的な用語のうちのいずれか1つによって言及される。すなわち、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティングデバイス。
一つの実施形態では、クライアントマシン240は仮想マシンであってもよい。仮想マシンはあらゆる仮想マシンであってもよいが、いくつかの実施形態では、仮想マシンはタイプ1またはタイプ2のハイパーバイザ、たとえば、サイトリックス・システムズ、IBM、ヴイエムウェアによって開発されるハイパーバイザ、またはあらゆる他のハイパーバイザによって管理されるあらゆる仮想マシンであってもよい。いくつかの側面において、仮想マシンはハイパーバイザによって管理してもよいが、いくつかの側面では、仮想マシンはサーバ206上で実行するハイパーバイザまたはクライアント240上で実行するハイパーバイザによって管理してもよい。
いくつかの実施形態は、サーバ206または遠隔設置された他のマシン上で遠隔実行するアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス240を含む。これらの実施形態では、クライアントデバイス240は仮想マシンの受信機プログラムまたはアプリケーションを実行して、アプリケーションウインドウ、ブラウザ、または他の出力ウインドウに出力を表示してもよい。ある実施例では、アプリケーションはデスクトップであるが、他の実施例では、アプリケーションはデスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび/またはリモート・アプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでもよい。本明細書で使用するアプリケーションとは、オペレーティングシステム(および、任意で、デスクトップも)のインスタンスがロードされた後に実行するプログラムである。
サーバ206は、いくつかの実施形態では、クライアント上で実行するシンクライアントまたはリモートディスプレイ・アプリケーションにデータを送信するリモートプレゼンテーションプロトコルまたは他のプロトコルを使用して、サーバ206上で実行するアプリケーションによって生成されるディスプレイ出力を表示する。シンクライアントまたはリモートディスプレイ・プロトコルは、次の非網羅的なプロトコルリストのうちのいずれか1つとすることができる。すなわち、フロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクが開発したインディペンデント・コンピューティング・アーキテクチャ(ICA)プロトコル、またはワシントン州レドモンドのマイクロソフト・コーポレーションが製造するリモートデスクトッププロトコル(RDP)。
リモートコンピューティング環境は、サーバ206a〜206nが、たとえばクラウドコンピューティング環境のサーバファーム206に論理的にまとめられるように、2つ以上のサーバ206a〜206nを含んでもよい。サーバファーム206は論理的にまとめられながらも地理的に分散されているサーバ206、または論理的にまとめられながらも互いに近接して配置されているサーバ206を含んでもよい。サーバファーム206内の地理的に分散したサーバ206a〜206nは、いくつかの実施形態では、WAN(広域)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信することができ、異なる地理的地域は、異なる大陸、大陸の中の異なる地域、異なる国、異なる州、異なる都市、異なる大学、異なる部屋、または前述の地理的な場所のあらゆる組合せとして特徴付けることができる。いくつかの実施形態では、サーバファーム206は単一エンティティとして管理されてもよいが、他の実施形態では、サーバファーム206は複数のサーバファームを含むことができる。
いくつかの実施形態では、サーバファームは、実質的に同じようなタイプのオペレーティングシステムのプラットフォーム(例、WINDOWS(登録商標)、UNIX(登録商標)、LINUX(登録商標)、iOS、ANDROID(登録商標)、SYMBIAN等)を実行するサーバ206を含んでもよい。他の実施形態では、サーバファーム206は、第1タイプのオペレーティングシステムのプラットフォームを実行する1つ以上のサーバからなる第1グループと、第2タイプのオペレーティングシステムのプラットフォームを実行する1つ以上のサーバからなる第2グループとを含んでもよい。
サーバ206は、必要なあらゆるタイプのサーバとして、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワーク・アプライアンス、ゲートウェイ、アプリケーション・ゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、SSL VPNサーバ、ファイヤウォール、ウェブサーバ、アプリケーションサーバ、またはマスターアプリケーションサーバ、アクティブディレクトリを実行するサーバ、またはファイヤウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション高速化プログラムを実行するサーバとして構成されていてもよい。他のサーバのタイプも使用してもよい。
いくつかの実施形態は、クライアントマシン240からの要求を受信し、要求を第2サーバ106bに転送し、第2サーバ106bからの応答により、クライアントマシン240により生成される要求に応答する第1サーバ106aを含む。第1サーバ106aはクライアントマシン240に利用できるアプリケーションの一覧表、およびアプリケーションの一覧表内で特定されるアプリケーションをホストするアプリケーションサーバ206に関連するアドレス情報を取得してもよい。それから、第1サーバ106aは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、クライアント240と直接通信して、特定されたアプリケーションへのアクセスをクライアント240に提供することができる。1つ以上のクライアント240および/または1つ以上のサーバ206は、ネットワーク230、たとえばネットワーク101上でデータを伝送してもよい。
図2は、例示的なデスクトップ仮想化システムの高レベルアーキテクチャを示す。図示するように、デスクトップ仮想化システムは、1つ以上のクライアントアクセスデバイス240に仮想デスクトップおよび/または仮想アプリケーションを提供するように構成されている少なくとも1つの仮想化サーバ206を含め、単一サーバもしくはマルチサーバシステムまたはクラウドシステムであってもよい。
本明細書で使用されるデスクトップとは、1つ以上のアプリケーションをホストおよび/または実行してもよいグラフィカル環境またはスペースをいう。デスクトップは、ローカルおよび/またはリモート・アプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでもよい。アプリケーションは、オペレーティングシステムのインスタンス(および、任意でデスクトップも)をロードした後に実行するプログラムを含んでもよい。オペレーティングシステムのインスタンスは物理的(例、1デバイスにつき1つのオペレーティングシステム)または仮想的(例、単一デバイス上で稼動するOSの多くのインスタンス)であってもよい。各アプリケーションはローカルデバイス上で実行してもよく、または遠隔設置されたデバイス上で実行(例、遠隔操作)してもよい。
図3をさらに参照して、コンピュータデバイス301は、仮想化環境の仮想サーバとして、たとえば、単一サーバ、マルチサーバ、またはクラウドコンピューティング環境として構成されている。図3に示される仮想化サーバ301は、図2に図示したサーバ206の1つ以上の実施形態もしくは他の周知のコンピューティングデバイスとして配置(deploy)することができ、および/またはそれにより実装することができる。仮想化サーバ301に含まれるのが、1つ以上の物理的ディスク304、1つ以上の物理的デバイス306、1つ以上の物理的プロセッサ308および1つ以上の物理的メモリ316を含むことができるハードウェアレイヤである。
いくつかの実施形態では、ファームウェア312を物理的メモリ316のメモリ素子内に格納することができ、物理的プロセッサ308のうちの1つ以上によって実行することができる。仮想化サーバ301はさらに物理的メモリ316のメモリ素子内に格納されて、物理的プロセッサ308のうちの1つ以上によって実行されるオペレーティングシステム314をさらに含んでもよい。さらに、ハイパーバイザ302を物理的メモリ316のメモリ素子内に格納してもよく、物理的プロセッサ308のうちの1つ以上によって実行することができる。
物理的プロセッサ308のうちの1つ以上で実行するのは、1つ以上の仮想マシン332A〜332C(総称的に332)である。各仮想マシン332は仮想ディスク326A〜326Cおよび仮想プロセッサ328A〜328Cを有していてもよい。いくつかの実施形態では、第1仮想マシン332Aは、仮想プロセッサ328Aを使用して、ツールスタック324を含む制御プログラム320を実行してもよい。制御プログラム320は制御仮想マシン、Dom0、ドメイン0、またはシステムの管理および/もしくは制御に使用される他の仮想マシンと称されることがある。いくつかの実施形態では、1つ以上の仮想マシン332B〜332Cは、仮想プロセッサ328B〜328Cを使用して、ゲストオペレーティングシステム330A〜330Bを実行することができる。
仮想化サーバ301は、仮想化サーバ301と通信する1つ以上のハードウェアを備えるハードウェアレイヤ310を含んでいる。いくつかの実施形態では、ハードウェアレイヤ310は、1つ以上の物理的ディスク304、1つ以上の物理的デバイス306、1つ以上の物理的プロセッサ308、および1つ以上のメモリ216を含むことができる。物理的コンポーネント304,306,308および316は、たとえば、上述したコンポーネントのいずれを含んでもよい。
物理的デバイス306は、たとえば、ネットワーク・インターフェース・カード、ビデオカード、キーボード、マウス、入力デバイス、モニタ、ディスプレイデバイス、スピーカ、光学ドライブ、記憶装置、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク素子(例、ルータ、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル(DHCP)ルータ等)、または仮想化サーバ301に接続されているかもしくは仮想化サーバ301と通信するあらゆるデバイスを含んでいる。
ハードウェアレイヤ310の物理的メモリ316はあらゆるタイプのメモリを含んでもよい。物理的メモリ316はデータを格納してもよく、いくつかの実施形態では、1つ以上のプログラム、または実行可能命令のセットを格納してもよい。
図3は、仮想化サーバ301の物理的メモリ316内にファームウェア312が格納されている実施形態を示す。物理的メモリ316に格納されているプログラムまたは実行可能命令は、仮想化サーバ301の1つ以上のプロセッサ308によって実行することができる。
仮想化サーバ301はハイパーバイザ302も含んでいてもよい。いくつかの実施形態では、ハイパーバイザ302は仮想化サーバ301のプロセッサ308によって実行されて、あらゆる数の仮想マシン332を作成して管理するプログラムであってもよい。ハイパーバイザ302は仮想マシンモニタ、またはプラットフォーム仮想化ソフトウェアと称されることもある。いくつかの実施形態では、ハイパーバイザ302は実行可能命令と、コンピューティングマシン上で実行する仮想マシンを監視するハードウェアとのあらゆる組合せとすることができる。
ハイパーバイザ302はタイプ2ハイパーバイザであってもよく、当該ハイパーバイザは仮想化サーバ301上で実行するオペレーティングシステム314内で実行する。それから、仮想マシンはハイパーバイザより上のレベルで実行する。いくつかの実施形態では、タイプ2ハイパーバイザは、タイプ2ハイパーバイザがユーザのオペレーティングシステムとインタラクトするように、ユーザのオペレーティングシステムのコンテキスト内で実行する。
他の実施形態では、仮想環境内の1つ以上の仮想化サーバ201は、代わりにタイプ1ハイパーバイザ(図示せず)を含んでもよい。タイプ1ハイパーバイザは、ハードウェアレイヤ310内のハードウェアおよびリソースに直接アクセスすることによって、仮想化サーバ301上で実行してもよい。すなわち、タイプ2ハイパーバイザ302は図示するようにホストオペレーティングシステム314経由でシステムのリソースにアクセスするのに対し、タイプ1ハイパーバイザはホストオペレーティングシステム314がなくてもすべてのシステムのリソースに直接アクセスする。タイプ1ハイパーバイザは仮想化サーバ301の1つ以上の物理的プロセッサ308上で直接実行してもよく、物理的メモリ316に格納されているプログラムデータを含んでもよい。
いくつかの実施形態では、ハイパーバイザ302はオペレーティングシステム330または仮想マシン332上で実行する制御プログラム320に、システムのリソースに直接アクセスできるオペレーティングシステム330または制御プログラム320をシミュレートするいずれの方法でも仮想リソースを提供することができる。システムのリソースは、物理的デバイス306、物理的ディスク304、物理的プロセッサ308、物理的メモリ316および仮想化サーバ301のハードウェアレイヤ310に含まれているあらゆる他のコンポーネントを含むことができるが、これだけに限定されない。ハイパーバイザ302を使用して、仮想ハードウェアをエミュレートし、物理的ハードウェアを分割し、物理的ハードウェアを仮想化し、および/またはコンピューティング環境へのアクセスを提供する仮想マシンを実行してもよい。
さらに他の実施形態では、ハイパーバイザ302は仮想化サーバ301上で実行する仮想マシン332のプロセッサのスケジューリングおよびメモリの分割を制御する。ハイパーバイザ302はカリフォルニア州パロアルトのヴイエムウェア・インクが製造するもの、オープンソースのXen.orgコミュニティが開発を監督するオープンソース製品のXENハイパーバイザ、マイクロソフトが提供するHyperV、VirtualServerまたは仮想PCハイパーバイザ、または他のものを含んでもよい。いくつかの実施形態では、仮想化サーバ301は、その上でゲストオペレーティングシステムが実行してもよい仮想マシンプラットフォームを作成するハイパーバイザ302を実行する。これらの実施形態では、仮想化サーバ301はホストサーバと称されることがある。このような仮想化サーバの一例が、フロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクが提供するXEN SERVERである。
ハイパーバイザ302は、その中でゲストオペレーティングシステム330が実行する1つ以上の仮想マシン332B〜332C(総称的に332)を作成してもよい。いくつかの実施形態では、ハイパーバイザ302は仮想マシンイメージをロードして、仮想マシン332を作成してもよい。他の実施形態では、ハイパーバイザ302は仮想マシン332内のゲストオペレーティングシステム330を実行してもよい。さらに他の実施形態では、仮想マシン332はゲストオペレーティングシステム330を実行してもよい。
仮想マシン332を作成することに加えて、ハイパーバイザ302は少なくとも1つの仮想マシン332の実行を制御してもよい。他の実施形態では、ハイパーバイザ302は少なくとも1つの仮想マシン332に、仮想化サーバ301が提供する少なくとも1つのハードウェアリソース(例、ハードウェアレイヤ310内で利用できるあらゆるハードウェアリソース)の抽象化を提示してもよい。他の実施形態では、ハイパーバイザ302は、仮想マシン332が仮想化サーバ301で利用できる物理的プロセッサ308にアクセスする態様を制御してもよい。物理的プロセッサ308へのアクセスを制御することは、仮想マシン332がプロセッサ308にアクセスできるべきかどうかと、物理的プロセッサの能力をどのように仮想マシン332に提示するかと、を判定することを含んでもよい。
図3に図示するように、仮想化サーバ301は1つ以上の仮想マシン332をホストまたは実行する。仮想マシン332は、プロセッサ308によって実行されるとき、仮想マシン332が物理的コンピューティングデバイスと同様にプログラムおよびプロセスを実行することができるように、物理的コンピュータの動作を模倣する実行可能命令のセットである。
図3は仮想化サーバ301が3つの仮想マシン332をホストする実施形態を示しているが、他の実施形態では、仮想化サーバ301はあらゆる数の仮想マシン332をホストすることができる。
いくつかの実施形態では、ハイパーバイザ302は各仮想マシン332に、その仮想マシン332に利用できる物理的ハードウェア、メモリ、プロセッサおよび他のシステム・リソースの固有の仮想ビューを提供する。いくつかの実施形態では、固有の仮想ビューは、仮想マシンの許可、1つ以上の仮想マシン識別子へのポリシーエンジンの適用、仮想マシンにアクセスするユーザ、仮想マシン上で実行するアプリケーション、仮想マシンによってアクセスされるネットワーク、または他の所望の基準に基づくことができる。たとえば、ハイパーバイザ302は1つ以上のセキュリティ保護されない(unsecure)仮想マシン332と、1つ以上のセキュリティ保護された(secure)仮想マシン332とを作成してもよい。セキュリティ保護されない仮想マシン332には、セキュリティ保護された仮想マシン332がアクセスを許可されるリソース、ハードウェア、メモリ場所およびプログラムを禁止してもよい。他の実施形態では、ハイパーバイザ302は各仮想マシン332に、仮想マシン332に利用できる物理的ハードウェア、メモリ、プロセッサおよび他のシステム・リソースの実質的に同様な仮想ビューを提供してもよい。
各仮想マシン332は仮想ディスク326A〜326C(総称的に326)と、仮想プロセッサ328A〜328C(総称的に328)とを含んでいる。いくつかの実施形態では、仮想ディスク326は仮想化サーバ301の1つ以上の物理的ディスク304の仮想化ビュー、または仮想化サーバ301の1つ以上の物理的ディスク304の一部である。物理的ディスク304の仮想化ビューはハイパーバイザ302によって生成、提供および管理することができる。いくつかの実施形態では、ハイパーバイザ302は各仮想マシン332に物理的ディスク304の固有の(unique)ビューを提供する。したがって、これらの実施形態では、各仮想マシン332に含まれる特定の仮想ディスク326は、他の仮想ディスク326と比べたときにユニークになることができる。
仮想プロセッサ328は仮想化サーバ301の1つ以上の物理的プロセッサ308の仮想化ビューとすることができる。いくつかの実施形態では、物理的プロセッサ308の仮想化ビューはハイパーバイザ302によって生成、提供および管理することができる。いくつかの実施形態では、仮想プロセッサ328は少なくとも1つの物理的プロセッサ308の同じ特徴の実質的にすべてを有する。他の実施形態では、仮想プロセッサ308は、仮想プロセッサ328の特徴の少なくともいくつかが対応する物理的プロセッサ308の特徴とは異なるように、物理的プロセッサ308の修正ビューを提供する。
図4をさらに参照し、本明細書で説明するいくつかの側面は、クラウドベースの環境に実装される。図4はクラウドコンピューティング環境(またはクラウドシステム)400の実施例を示す。図4から分かるように、クライアントコンピュータ411〜414はクラウド管理サーバ410と通信して、クラウドシステムのコンピューティングリソース(例、ホストサーバ403、ストレージリソース404およびネットワークリソース405)にアクセスする。
管理サーバ410は1つ以上の物理的サーバ上に実装される。管理サーバ410は、たとえば、特にフロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクのCLOUDSTACK、またはOPENSTACKを稼動する。管理サーバ410は、たとえば、ホストコンピュータ403、データ記憶装置404およびネットワーキングデバイス405など、クラウド・ハードウェアおよびソフトウェア・リソースを含め、様々なコンピューティングリソースを管理してもよい。クラウド・ハードウェアおよびソフトウェア・リソースは非公開および/または公開コンポーネントを含んでもよい。たとえば、クラウドは1つ以上の特定のカスタマもしくはクライアントコンピュータ411〜414によって、および/またはプライベートネットワーク上で使用されるプライベートクラウドとして構成していてもよい。他の実施形態では、パブリッククラウドまたはハイブリッドパブリック−プライベートクラウドが、オープンまたはハイブリッドネットワーク上で他のカスタマによって使用されてもよい。
管理サーバ410は、クラウドオペレータおよびクラウドカスタマがクラウドシステムとインタラストしてもよいユーザインターフェースを提供するように構成されていてもよい。たとえば、管理サーバ410はユーザインターフェースにAPIのセットおよび/または1つ以上のクラウドオペレータコンソール・アプリケーション(例、ウェブベースのスタンドアロンアプリケーション)を提供して、クラウドオペレータがクラウドリソースを管理し、仮想化レイヤを構成し、カスタマアカウントを管理し、他のクラウド管理タスクを行うことができるようにしてもよい。管理サーバ410は、クライアントコンピュータ411〜414を介してエンドユーザからのクラウドコンピューティング要求、たとえば、クラウド内で仮想マシンを作成、修正または破棄する要求を受信するように構成されているユーザインターフェースを備えるAPIのセットおよび/または1つ以上のカスタマコンソール・アプリケーションを含んでもよい。クライアントコンピュータ411〜414はインターネットまたは他の通信ネットワークを介して管理サーバ410に接続してもよく、管理サーバ410が管理するコンピューティングリソースのうちの1つ以上へのアクセスを要求してもよい。
クライアントの要求に応答して、管理サーバ410は、クライアント要求に基づいて、クラウドシステムのハードウェアレイヤの物理的リソースを選択し、プロビジョニングするように構成されているリソース・マネージャを含んでもよい。たとえば、管理サーバ410およびクラウドシステムの追加コンポーネントは、カスタマに計算リソース、データストレージサービス、ネットワーク能力、ならびにコンピュータプラットフォームおよびアプリケーションサポートを提供しながら、ネットワーク(例、インターネット)上で、クライアントコンピュータ411〜414のカスタマのために、仮想マシンおよびその動作環境(例、ハイパーバイザ、ストレージリソース、ネットワーク素子が提供するサービス等)をプロビジョニングし、作成し、管理するように構成されていてもよい。クラウドシステムはまた、セキュリティシステム、開発環境、ユーザインターフェース等を含め、さまざまな特定のサービスを提供するように構成されていてもよい。
たとえば、同じエンドユーザのために仮想マシンを作成する異なるクライアントコンピュータ、または同じ会社もしくは組織に関連する異なるユーザなど、一定のクライアント411〜414は関係があってもよい。他の実施例では、異なる会社もしくは組織に関連するユーザなど、一定のクライアント411〜414は関係がなくてもよい。関係のないクライアントの場合、いずれかのユーザの仮想マシンまたはストレージ上の情報は他のユーザから隠してもよい。
ここでクラウドコンピューティング環境の物理的ハードウェアレイヤを参照すると、アベイラビリティゾーン401〜402(またはゾーン)は物理的コンピューティングリソースのひとまとまりのセットといえる。ゾーンはコンピューティングリソースのクラウド全体において他のゾーンとは地理的に分離していてもよい。たとえば、ゾーン401はカリフォルニア州に配置されている第1クラウド・データセンターであってもよく、ゾーン402はフロリダ州に配置されている第2クラウド・データセンターであってもよい。
管理サーバ410はアベイラビリティゾーンのうちの1つ、または別の場所に配置されていてもよい。各ゾーンは、ゲートウェイ経由で、管理サーバ410などのゾーン外にあるデバイスとインターフェースする内部ネットワークを含んでもよい。クラウドのエンドユーザ(例、クライアント411〜414)は、ゾーン間の区別に気付くかもしれないし、または気づかないかもしれない。たとえば、エンドユーザは指定される量のメモリ、処理能力、およびネットワーク能力を有する仮想マシンの作成を要求してもよい。管理サーバ410はユーザの要求に応答してもよく、ゾーン401またはゾーン402のリソースを使用して仮想マシンが作成されたかどうかをユーザが知ることなく、仮想マシンを作成するためにリソースを割り当ててもよい。他の実施例では、クラウドシステムは、エンドユーザが特定のゾーンまたはゾーン内の特定のリソース403〜405に仮想マシン(または他のクラウドリソース)を割り当てるよう要求できるようにしてもよい。
この実施例では、各ゾーン401〜402はさまざまな物理的ハードウェアコンポーネント(またはコンピューティングリソース)403〜405の配列、たとえば、物理的ホスティングリソース(またはプロセッシングリソース)、物理的ネットワークリソース、物理的ストレージリソース、スイッチ、および、カスタマにクラウドコンピューティングサービスを提供するために使用してもよい追加のハードウェアリソースを含んでもよい。クラウドゾーン401〜402の物理的ホスティングリソースは、上述した仮想化サーバ301など、仮想マシンのインスタンスを作成しホストするように構成されていてもよい1つ以上のコンピュータサーバ403を含んでもよい。
クラウドゾーン401または402の物理的ネットワークリソースは、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル(DHCP)ルータ等といった、クラウドカスタマにネットワークサービスを提供するように構成されているハードウェアおよび/またはソフトウェアを備える1つまたは複数のネットワーク素子405(例、ネットワークサービスプロバイダ)を含んでもよい。クラウドゾーン401〜402のストレージリソースは、ストレージディスク(例、ソリッドステートドライブ(SSD)、磁気ハードディスク等)および他の記憶装置を含んでもよい。
図4に示す例示的なクラウドコンピューティング環境は、クラウドの物理的リソースを使用して仮想マシンを作成して管理し、カスタマに他のサービスを提供するように構成されている追加のハードウェアおよび/またはソフトウェア・リソースを備えた仮想化レイヤ(例、図1〜図3に図示するもの)も含んでいてもよい。仮想化レイヤは、ネットワーク仮想化、ストレージ仮想化等を提供する他のコンポーネントとともに、上述の図3で説明したハイパーバイザを含んでもよい。仮想化レイヤは物理的リソースレイヤとは別のレイヤとしてもよく、または物理的リソースレイヤと同じハードウェアおよび/もしくはソフトウェア・リソースのいくつかもしくはすべてを共有してもよい。たとえば、仮想化レイヤは物理的コンピューティングリソースを有する仮想化サーバ403のそれぞれにインストールされているハイパーバイザを含んでもよい。あるいは、たとえば、WINDOWS(登録商標) AZURE(ワシントン州レドモンドのマイクロソフト・コーポレーション)、AMAZON EC2(ワシントン州シアトルのアマゾン・ドット・コム・インク)、IBM BLUE CLOUD(ニューヨーク州アーモンクのIBMコーポレーション)、または他のものなど、周知のクラウドシステムを使用してもよい。
〈企業モビリティ管理アーキテクチャ〉
図5は、BYOD環境で使用するための企業モビリティ技術アーキテクチャ500を示す。このアーキテクチャはモバイルデバイス502のユーザがモバイルデバイス502から企業リソースまたは個人リソースにアクセスすることと、モバイルデバイス502を個人利用に使用することと、の両方を可能にする。ユーザは、当該企業リソース504または企業サービス508へのアクセスを、ユーザが購入したモバイルデバイス502を使用して行ってもよく、または企業がユーザに支給するモバイルデバイス502を使用して行ってもよい。ユーザはモバイルデバイス502をビジネス専用で利用しても、またはビジネスと個人兼用で利用してもよい。モバイルデバイスはiOSオペレーティングシステム、およびアンドロイド・オペレーティングシステム等を稼動してもよい。企業はモバイルデバイス502を管理するポリシーを実装することを選んでもよい。
ポリシーは、ファイヤウォールまたはゲートウェイにより、モバイルデバイスを特定し、セキュリティ保護もしくはセキュリティ検証し、企業リソースへの選択的アクセスもしくは完全なアクセスをモバイルデバイスに提供できるように埋め込んでもよい。ポリシーはモバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーションおよびデータ管理ポリシーのなんらかの組合せとしてもよい。モバイルデバイス管理ポリシーの適用により管理されるモバイルデバイス504は管理対象デバイスということがある。
いくつかの実施形態では、モバイルデバイスのオペレーティングシステムは、管理対象パーティション510と非管理対象パーティション512とに分離されていてもよい。管理対象パーティション510は管理対象パーティション上で稼動しているアプリケーションおよび管理対象パーティションに格納されているデータをセキュリティ保護された状態にするために、ポリシーをそれに適用させてもよい。管理対象パーティション上で稼動しているアプリケーションはセキュリティ保護されたアプリケーションであってもよい。
他の実施形態では、すべてのアプリケーションはアプリケーションとは別に受信される1つ以上のポリシーファイルのセットに従って実行してもよく、このポリシーファイルのセットはデバイス上でアプリケーションが実行しているときに、モバイルデバイス管理システムによって強制される1つ以上のセキュリティパラメータ、特徴、リソース制限および/または他のアクセス制御を定義する。それぞれのポリシーファイルに従って操作することにより、各アプリケーションは1つ以上の他のアプリケーションおよび/もしくはリソースとの通信を許可または制限されてもよく、それによって仮想パーティションを作成する。
このように、本明細書で使用するパーティションとは、物理的に分割されたメモリの部分(物理的パーティション)、論理的に分割されたメモリの部分(論理的パーティション)ならびに/または本明細書で説明する複数のアプリにわたり1つ以上のポリシーおよび/もしくはポリシーファイルの強制の結果として作成される仮想パーティション(仮想パーティション)といえる。言い換えると、管理対象アプリにポリシーを強制することにより、そのアプリは他の管理対象アプリおよび信頼される企業リソースとのみ通信できるように制限してもよく、それによって非管理対象アプリおよびデバイスが入れない仮想パーティションを作成する。
セキュリティ保護されたアプリケーションは、電子メール・アプリケーション、ウェブブラウザ・アプリケーション、サービスとしてのソフトウェア(SaaS)アクセス・アプリケーション、Windows(登録商標) Applicationアクセス・アプリケーション等であってもよい。セキュリティ保護されたアプリケーションは、セキュリティ保護されたネイティブアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ518が実行するセキュリティ保護されたリモート・アプリケーション522、セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526等であってもよい。
セキュリティ保護されたネイティブアプリケーション514はセキュリティ保護されたアプリケーション・ラッパー520によってラッピングしてもよい。セキュリティ保護されたアプリケーション・ラッパー520は、セキュリティ保護されたネイティブアプリケーションがデバイス上で実行されるときに、モバイルデバイス502上で実行される統合ポリシーを含んでもよい。セキュリティ保護されたアプリケーション・ラッパー520は、モバイルデバイス502上で稼動するセキュリティ保護されたネイティブアプリケーション514を、セキュリティ保護されたネイティブアプリケーション514の実行時に要求されるタスクを完了するようにセキュリティ保護されたネイティブアプリケーション514が要求してもよい企業でホストされるリソースに差し向けるメタデータを含んでもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行するセキュリティ保護されたリモート・アプリケーション522は、セキュリティ保護されたアプリケーション・ランチャ・アプリケーション518内で実行してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526は、企業リソース504等で、モバイルデバイス502のリソースを利用してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526によってモバイルデバイス502で使用されるリソースは、ユーザ相互作用リソース、プロセッシングリソース等を含んでもよい。
ユーザ相互作用リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、オーディオ入力、ビジュアル入力、ジェスチャ入力等を収集して、伝送するために使用してもよい。プロセッシングリソースはユーザインターフェースを提示し、企業リソース504等から受信されるデータを処理するために使用してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526によって企業リソース504で使用されるリソースは、ユーザインターフェース生成リソース、プロセッシングリソース等を含んでもよい。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブルし、ユーザインターフェースを修正し、ユーザインターフェースをリフレッシュする等のために使用してもよい。
プロセッシングリソースは情報を作成し、情報を読み取り、情報を更新し、情報を削除する等のために使用してもよい。たとえば、仮想化アプリケーションはGUIに関連するユーザ相互作用を記録し、それをサーバ・アプリケーションに伝えてもよく、当該サーバ・アプリケーションはユーザ相互作用データをサーバで動作するアプリケーションへの入力として使用する。この構成では、企業は、アプリケーションに関連するデータ、ファイル等と同様に、サーバ側のアプリケーションを維持する選択をしてもよい。企業はモバイルデバイスへのデプロイメントのためにそれをセキュリティ保護された状態にすることにより本明細書の原理に従っていくつかのアプリケーションを「モバイル化」する選択をしてもよいが、この構成は一定のアプリケーションのためにも選択してもよい。たとえば、いくつかのアプリケーションはモバイルデバイスで使用するためにセキュリティ保護された状態にしてもよいが、他のものはモバイルデバイスへのデプロイメントの準備がされていないかまたはデプロイメントに適切ではない可能性があるので、企業は仮想化技術により準備されていないアプリケーションへのアクセスをモバイルユーザに提供する選択をしてもよい。
別の実施例として、企業は大量の複雑なデータセットを有する大きく複雑なアプリケーション(例、資材所要量計画アプリケーション)を有することがあり、当該モバイルデバイスのアプリケーションをカスタマイズするのは非常に難しく、またはその他望ましくないので、企業は仮想化技術によりアプリケーションへのアクセスを提供する選択をしてもよい。さらに別の実施例として、企業は、セキュリティ保護化したモバイル環境であっても扱いに非常に注意を要すると企業に見なされて、企業が当該アプリケーションおよびデータへのモバイルアクセスを許可するために仮想化技術を選択してもよい高セキュリティ保護化データ(例、人事データ、顧客データ、エンジニアリングデータ)を維持するアプリケーションを有してもよい。企業はサーバ側でより適切に動作すると見なされるアプリケーションへのアクセスを許可するために、仮想化アプリケーションとともに、モバイルデバイス上の完全にセキュリティ保護化しかつ完全に機能するアプリケーションを提供する選択をしてもよい。実施形態では、仮想化アプリケーションは、携帯電話のセキュリティ保護された記憶場所のうちの1つに、いくつかのデータ、ファイル等を格納してもよい。たとえば、企業は一定の情報を電話に格納させるが、他の情報を許可しない選択をしてもよい。
本明細書で説明するように、仮想化アプリケーションに関連して、モバイルデバイスは、GUIを提示し、さらにGUIとのユーザ相互作用を記録/パススルーするように設計されている仮想化アプリケーションを有してもよい。アプリケーションは、アプリケーションとのユーザ相互作用として、サーバ側アプリケーションが使用するサーバ側とのユーザ相互作用を伝えてもよい。応答して、サーバ側のアプリケーションはモバイルデバイスに新たなGUIを送り戻してもよい。たとえば、新たなGUIは静的ページ、動的ページ、アニメーションまたは同様な他のものであってもよく、それによって遠隔設置されたリソースへのアクセスを提供する。
セキュリティ保護されたアプリケーションは、モバイルデバイスの管理対象パーティション510のセキュリティ保護されたデータコンテナ528に格納されているデータにアクセスしてもよい。セキュリティ保護されたデータコンテナにセキュリティ保護化されているデータは、セキュリティ保護されたラッピングされたアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ522が実行するアプリケーション、セキュリティ保護されたアプリケーション・ランチャ522が実行する仮想化アプリケーション526等によってアクセスしてもよい。セキュリティ保護されたデータコンテナ528に格納されているデータはファイル、データベース等を含んでもよい。セキュリティ保護されたデータコンテナ528に格納されているデータはセキュリティ保護されたアプリケーション532の中で共有される特定のセキュリティ保護されたアプリケーション530等に制限されるデータを含んでもよい。セキュリティ保護されたアプリケーションに制限されるデータは、セキュリティ保護された一般データ534および高セキュリティ保護されたデータ538を含んでもよい。セキュリティ保護された一般データはAES 128ビット暗号化等の強力な暗号化方式を使用してもよいが、高セキュリティ保護されたデータ538はAES 254ビット暗号化などの非常に強力な暗号化方式を使用してもよい。セキュリティ保護されたデータコンテナ528に格納されているデータは、デバイスマネージャ524からのコマンドを受信すると、デバイスから削除してもよい。
セキュリティ保護されたアプリケーションはデュアルモードオプション540を有してもよい。デュアルモードオプション540は、非セキュリティ保護化モードで、セキュリティ保護されたアプリケーションを動作させるオプションをユーザに提示してもよい。非安全化モードでは、セキュリティ保護されたアプリケーションはモバイルデバイス502の非管理対象パーティション512の非セキュリティ保護化データコンテナ542に格納されているデータにアクセスしてもよい。非セキュリティ保護化データコンテナに格納されているデータは個人データ544であってもよい。非セキュリティ保護化データコンテナ542に格納されているデータは、モバイルデバイス502の非管理対象パーティション512上で稼動している非セキュリティ保護化アプリケーション548によってアクセスしてもよい。非セキュリティ保護化データコンテナ542に格納されているデータは、セキュリティ保護されたデータコンテナ528に格納されているデータがモバイルデバイス502から削除されるとき、モバイルデバイス502上に残してもよい。
企業は、ユーザが所有、ライセンスもしくは制御する個人データ、ファイルおよび/もしくはアプリケーション(個人データ)を残しながら、またはその他存続させながら、企業が所有、ライセンスまたは制御する選択されたもしくはすべてのデータ、ファイル、および/またはアプリケーション(企業データ)をモバイルデバイスから削除したいことがある。この動作を選択的消去ということがある。本明細書で説明する側面に従って分類される企業データおよび個人データを用いて、企業は選択的ワイプを行ってもよい。
モバイルデバイスは企業の企業リソース504および企業サービス508と、公衆インターネット548等とに接続してもよい。モバイルデバイスは仮想プライベートネットワーク接続を介して企業リソース504および企業サービス508に接続してもよい。仮想プライベートネットワーク接続は、マイクロVPNまたは特定アプリケーション専用VPNとも言われ、モバイルデバイスの特定のアプリケーション550、特定のデバイス、特定のセキュリティ保護化エリア等552に特定的なものにしてもよい。たとえば、電話のセキュリティ保護化エリア内にラッピングされたアプリケーションのそれぞれは、VPNへのアクセスが、おそらくユーザまたはデバイスの属性情報と合わせて、アプリケーションに関連する属性に基づいて付与されるように、アプリケーション特定VPN経由で企業リソースにアクセスしてもよい。
仮想プライベートネットワーク接続はMicrosoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、HTTPトラフィック、HTTPSトラフィック、アプリケーション管理トラフィック等を伝送してもよい。仮想プライベートネットワーク接続はシングルサインオン認証プロセス554をサポートし、これを有効にしてもよい。シングルサインオンプロセスは、ユーザが、後で認証サービス558によって検証される単一セットの認証資格情報を提供できるようにしてもよい。それから、認証サービス558は、各個々の企業リソース504に認証資格情報を提供するようユーザに要求しなくても、ユーザに複数の企業リソース504へのアクセス権を付与してもよい。
仮想プライベートネットワーク接続は、アクセス・ゲートウェイ560によって確立されて、管理される。アクセス・ゲートウェイ560は企業リソース504のモバイルデバイス502への配信を管理し、高速化しおよび改善するパフォーマンス向上特徴を含んでもよい。アクセス・ゲートウェイはモバイルデバイス502から公衆インターネット548にトラフィックを経路切替えしてもよく、モバイルデバイス502が公衆インターネット548で稼動している公開利用できる非セキュリティ保護化アプリケーションにアクセスすることを可能にする。モバイルデバイスは転送ネットワーク562を介してアクセス・ゲートウェイに接続してもよい。転送ネットワーク562はワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等でもよい。
企業リソース504は電子メールサーバ、ファイル共有サーバ、SaaSアプリケーション、ウェブアプリケーションサーバ、Windows(登録商標)アプリケーションサーバ等を含んでもよい。電子メールサーバはExchangeサーバ、Lotus Notesサーバ等を含んでもよい。ファイル共有サーバはShareFileサーバ等を含んでもよい。SaaSアプリケーションはSalesforce等を含んでもよい。Windows(登録商標)アプリケーションサーバはローカルなWindows(登録商標)オペレーティングシステム上で稼動するように意図されたアプリケーションを提供するために構築されているあらゆるアプリケーションサーバ等を含んでもよい。企業リソース504はプレミスベースのリソース、クラウドベースのリソース等であってもよい。企業リソース504はモバイルデバイス502から直接、またはアクセス・ゲートウェイ560経由でアクセスしてもよい。企業リソース504はモバイルデバイス502から転送ネットワーク562を介してアクセスしてもよい。転送ネットワーク562はワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
企業サービス508は認証サービス558、脅威検出サービス564、デバイスマネージャサービス524、ファイル共有サービス568、ポリシーマネージャサービス570、ソーシャル統合サービス572、アプリケーションコントローラサービス574等を含んでもよい。認証サービス558はユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービス等を含んでもよい。認証サービス558は証明書を使用してもよい。証明書は企業リソース504等によりモバイルデバイス502に格納してもよい。モバイルデバイス502に格納されている証明書は、モバイルデバイスの暗号化された場所に格納してもよく、証明書は認証時点で使用する等のためにモバイルデバイス502に一時的に格納してもよい。脅威検出サービス564は侵入検出サービス、不正アクセス試行検出サービス等を含んでもよい。不正アクセス試行検出サービスはデバイス、アプリケーション、データ等への不正アクセスの試行を含んでもよい。
デバイス管理サービス524は構成サービス、プロビジョニングサービス、セキュリティサービス、サポートサービス、監視サービス、レポーティングサービスおよびデコミッショニングサービスを含んでもよい。ファイル共有サービス568はファイル管理サービス、ファイルストレージサービス、ファイルコラボレーションサービス等を含んでもよい。ポリシーマネージャサービス570はデバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含んでもよい。ソーシャル統合サービス572は連絡先統合サービス、コラボレーションサービス、Facebook、TwitterおよびLinkedInなどのソーシャル・ネットワークとの統合等を含んでもよい。アプリケーションコントローラサービス574は管理サービス、プロビジョニングサービス、デプロイメントサービス、割り当てサービス、失効サービス、ラッピングサービス等を含んでもよい。
企業モビリティ技術アーキテクチャ500は、アプリケーションストア578を含んでもよい。アプリケーションストア578はラッピングされていないアプリケーション580、予めラッピングされたアプリケーション582等を含んでもよい。アプリケーションはアプリケーションコントローラ574からアプリケーションストア578に移植してもよい。アプリケーションストア578はモバイルデバイス502からアクセス・ゲートウェイ560、公衆インターネット548等経由でアクセスしてもよい。アプリケーションストアには直観的に理解でき、使いやすいユーザインターフェースを備えてもよい。アプリケーションストア578はソフトウェア開発キット584へのアクセス権を提供してもよい。ソフトウェア開発キット584は、本明細書で上述したようにアプリケーションをラッピングすることにより、ユーザが選択したアプリケーションをセキュリティ保護化する機能をユーザに提供してもよい。ソフトウェア開発キット584を用いてラッピングされたアプリケーションは、さらにアプリケーションコントローラ574を用いてアプリケーションストア578にそれを移植することにより、モバイルデバイス502に利用できるようにしてもよい。
企業モビリティ技術アーキテクチャ500は、管理解析機能588を含んでもよい。管理解析機能588はリソースの使用方法、リソースの使用頻度等に関連する情報を提供してもよい。リソースはデバイス、アプリケーション、データ等を含んでもよい。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか等を含んでもよい。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションが特定のデータセットにアクセスした回数等を含んでもよい。
図6は、別の例示的な企業モビリティ管理システム600を示す。図5を参照して上述したモビリティ管理システム500の構成要素のうちのいくつかは、簡略化するために省略している。図6に図示するシステム600のアーキテクチャは、図5を参照して上述したシステム500のアーキテクチャと多くの点で類似しており、上述していない追加の特徴を含んでもよい。
この場合、左側はクライアントエージェント604とともに管理対象モバイルデバイス602を表しており、これがゲートウェイサーバ606(アクセス・ゲートウェイおよびアプリコントローラ機能を含む)とインタラクトして、右側に示すExchange、Sharepoint、PKIリソース、Kerberosリソース、証明書発行サービスなどの様々な企業リソース608およびサービス609にアクセスする。具体的には図示していないが、モバイルデバイス602はアプリケーションの選択とダウンロードのために、企業アプリケーションストア(StoreFront)とインタラクトしてもよい。
クライアントエージェント604はEnterpriseデータセンターでホストされるWindows(登録商標)アプリ/デスクトップのUI(ユーザインターフェース)媒介装置として機能し、EnterpriseデータセンターはHDX/ICA表示リモーティングプロトコルを使用してアクセスされる。クライアントエージェント604は、ネイティブiOSまたはAndroidアプリケーションなどのモバイルデバイス602のネイティブアプリケーションのインストールおよび管理もサポートする。
たとえば、上述の図面に図示する管理対象アプリケーション610(メール、ブラウザ、ラッピングされたアプリケーション)はすべてデバイス上でローカルに実行するネイティブアプリケーションである。このアーキテクチャのクライアントエージェント604およびアプリケーション管理フレームワークは、企業リソース/サービス608との接続性およびSSO(シングルサインオン)などのポリシーによる管理の機能および特徴を提供するように機能する。クライアントエージェント604は企業への、通常は他のゲートウェイサーバコンポーネントに対するSSOによるアクセス・ゲートウェイ(AG)への、一次ユーザ認証を扱う。クライアントエージェント604はゲートウェイサーバ606からポリシーを取得して、モバイルデバイス602上の管理対象アプリケーション610の挙動を制御する。
ネイティブアプリケーション610とクライアントエージェント604とのセキュリティ保護されたIPCリンク612は管理チャネルを表し、これによりクライアントエージェントは各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク614によって強制されるポリシーを供給することができる。IPCチャネル612により、クライアントエージェント604はまた、企業リソース608との接続性およびSSOを有効にする資格情報および認証情報を供給することができる。最後に、IPCチャネル612により、アプリケーション管理フレームワーク614は、オンラインおよびオフラインによる認証など、クライアントエージェント604が実装するユーザインターフェース機能を呼び出すことができる。
クライアントエージェント604とゲートウェイサーバ606との通信は、本質的に、各ネイティブ管理対象アプリケーション610をラッピングするアプリケーション管理フレームワーク614からの管理チャネルの拡張である。アプリケーション管理フレームワーク614はクライアントエージェント604からポリシー情報を要求し、これがさらにゲートウェイサーバ606からそれを要求する。アプリケーション管理フレームワーク614は認証を要求し、クライアントエージェント604はゲートウェイサーバ606のゲートウェイサービス部(NetScaler Access Gatewayとしても知られる)にログインする。クライアントエージェント604はゲートウェイサーバ606上のサポートサービスも呼び出してもよく、それが、以下詳細に説明するように、ローカルデータボルト616の暗号化鍵を導出するための入力成分を生成するか、または直接認証を可能にするクライアント証明書をPKI保護リソースに提供してもよい。
さらに詳しく、アプリケーション管理フレームワーク614は各管理対象アプリケーション610を「ラッピング」する。これは明確なビルドステップ、またはビルド後処理ステップを介して組み込んでもよい。アプリケーション管理フレームワーク614は、セキュリティ保護IPCチャンネルを初期化し、そのアプリケーションのポリシーを取得するために、アプリケーション610の最初の起動時にクライアントエージェント604と「ペア」にしてもよい。アプリケーション管理フレームワーク614は、クライアントエージェントのログイン・ディペンデンシーおよび、ローカルOSサービスをどのように使用してよいか、またはローカルOSサービスがアプリケーション610とどのようにインタラクトしてよいかを制限する閉じ込めポリシーのうちのいくつかなど、ローカルに適用するポリシーの関連部分を強制してもよい。
アプリケーション管理フレームワーク614はセキュリティ保護IPCチャネル612上でクライアントエージェント604が提供するサービスを使用して、認証および内部ネットワークアクセスを促進してもよい。プライベート・共有データボルト616(コンテナ)の鍵管理も、管理対象アプリケーション610とクライアントエージェント604との適切なインタラクションにより管理してもよい。ボルト616はオンライン認証後にのみ利用できてもよく、またはポリシーが許可する場合にはオフライン認証後に利用できるようにしてもよい。ボルト616の初めての使用にはオンライン認証を要求してもよく、オフラインアクセスは最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に制限してもよい。
内部リソースへのネットワークアクセスは、個々の管理対象アプリケーション610からアクセス・ゲートウェイ606に直接行ってもよい。アプリケーション管理フレームワーク614は各アプリケーション610のためにネットワークアクセスのオーケストレーションを担う。クライアントエージェント604は、オンライン認証後に取得される適切な時間制限付きの二次資格情報を提供することにより、これらのネットワーク接続を促進してもよい。リバースウェブプロキシ接続およびエンドツーエンドVPN型トンネル618など、ネットワーク接続の複数のモードを使用してもよい。
メール・ブラウザ管理対象アプリケーション610は特別なステータスを有し、任意にラッピングされたアプリケーションには一般に利用できない可能性のあるファシリティを利用できるようにしてもよい。たとえば、メール・アプリケーションは、フルAGログオンを要求せずに、長時間Exchangeへのアクセスを可能にする特別なバックグラウンドネットワークアクセスメカニズムを使用してもよい。ブラウザ・アプリケーションは異なる種類のデータを分ける複数のプライベートデータボルトを使用してもよい。
このアーキテクチャは、さまざまな他のセキュリティ特徴の組み込みをサポートする。たとえば、ある場合にはゲートウェイサーバ606(そのゲートウェイ・サービスを含む)はADパスワードの妥当性確認をする必要がない。ある状況においてADパスワードをあるユーザの認証因子として使用するかどうかは、企業の裁量に任すことができる。ユーザがオンラインまたはオフラインである(つまり、ネットワークに接続されている場合または接続されていない場合)、異なる認証方法を使用してもよい。
ステップアップ認証は、ゲートウェイサーバ606が強力な認証が必要な極秘データへアクセスすることが認められている管理対象ネイティブアプリケーション610を識別し、以前の弱いレベルのログイン後にユーザにより再認証が要求されることになるとしても、これらのアプリケーションへのアクセスが適切な認証を行った後にのみ許可されることを確保してもよい。
このソリューションの別のセキュリティ特徴は、モバイルデバイス602でのデータボルト(data vaults)616(コンテナ)の暗号化である。ボルト616は、ファイル、データベースおよび構成を含むすべてのオンデバイスデータが保護されるように暗号化してもよい。オンラインボルトの場合、鍵はサーバ(ゲートウェイサーバ606)に格納してもよく、オフラインボルトの場合、鍵のローカルコピーをユーザ・パスワードによって保護してもよい。セキュリティ保護されたコンテナ616でデータがデバイス602にローカルに格納される場合、最低でもAES256暗号化アルゴリズムを利用するのが好ましい。
他のセキュリティ保護されたコンテナの特徴も実装してもよい。たとえば、ロギング特徴を含めてもよく、アプリケーション610内で起こるすべてのセキュリティイベントを記録して、バックエンドに報告する。アプリケーション610が改ざんを検出する場合など、データ消去をサポートしてもよく、ユーザデータが破棄されたことの手がかりをファイルシステムに残さずに、関連暗号化鍵をランダムデータで上書きしてもよい。スクリーンショットの保護は別の特徴で、アプリケーションはデータをスクリーンショットに格納させないようにしてもよい。たとえば、鍵ウインドウの隠しプロパティをYESに設定してもよい。これにより、どのようなコンテンツが現在スクリーンに表示されていてもそれを隠せるので、通常いずれかのコンテンツが常駐するスクリーンショットがブランクになる。
たとえば、データを外部のアプリケーションにコピーまたは送信するなど、アプリケーション・コンテナ外にローカルにデータを転送することを一切させないなどして、ローカルなデータ転送を防止してもよい。キーボードのキャッシュ特徴は扱いに注意を要するテキストフィールドのオートコレクト機能を使用不可にするように動作してもよい。SSL証明書の妥当性検証を使用可能にしてもよいので、キーチェーンに格納する代わりに、アプリケーションはサーバSSL証明書を特別に妥当性検証する。デバイスのデータを暗号化するために使用する鍵をユーザによって供給されるパスフレーズを使用して生成するように(オフラインアクセスが要求される場合)、暗号化鍵生成特徴を使用してもよい。オフラインアクセスが要求されない場合、サーバ側でランダムに生成し、格納される別の鍵を用いてXORをとってもよい。鍵導出関数は、ユーザ・パスワードから生成される鍵が、その暗号学的ハッシュを作成するのではなく、KDF(鍵導出関数、特にPBKDF2)を使用するように動作してもよい。前者では、鍵が総当たり攻撃または辞書攻撃を受けやすくなる。
さらに、暗号化方法に1つ以上の初期化ベクトルを使用してもよい。初期化ベクトルは同じ暗号化データの複数のコピーに異なる暗号文出力を生じ、再生およびと暗号解読攻撃の両方を防止する。これは攻撃者がデータの暗号化に使用する特定の初期化ベクトルが不明な場合に盗んだ暗号鍵を用いた場合であっても、データの解読を防止する。また、認証後の解読を使用してもよく、ユーザがアプリケーション内で認証された後でしかアプリケーションデータは解読されない。別の特徴はメモリ内の扱いに注意を要するデータに関係してもよく、それが必要なときにのみ、メモリ(ディスクではない)に保管されてもよい。たとえば、ログイン資格情報はログイン後にメモリから消去されて、オブジェクティブCインスタンス変数内の暗号化鍵および他のデータは、簡単に参照される可能性があるため格納されない。代わりに、これらのためにメモリを手動で割り当ててもよい。
ポリシーで定義した無活動期間の経過後に、ユーザのセッションを終了する無活動タイムアウトを実装してもよい。
アプリケーション管理フレームワーク614からのデータ漏えいは、他の方法で防止してもよい。たとえば、アプリケーション610がバックグラウンドに入る場合、所定(構成可能な)期間後にメモリをクリアにしてもよい。バックグラウンドに移るとき、アプリケーションの最後に表示されたスクリーンのスクリーンショットを取得して、フォアグラウンドに出すプロセスを迅速化してもよい。スクリーンショットは機密データを含むことがあり、そのためクリアにされるべきである。
別のセキュリティ特徴は、1つ以上のアプリケーションにアクセスするためにAD(アクティブディレクトリ)622のパスワードを使用せずに、OTP(ワンタイムパスワード)620の使用に関係する。ある場合には、あるユーザは自身のADパスワードを知らず(または知ることを許可されておらず)、そのためこれらユーザはSecurIDなどのハードウェアOTPシステムを使用するなど、OTP620を使用して認証してもよい(OTPは、エントラストまたはジェムアルトなど、異なるベンダも提供する)。ある場合には、ユーザがユーザIDで認証した後、OTP620を用いてユーザにテキストが送信される。ある場合には、これはオンライン利用の場合のみ実施してもよく、プロンプトは単一フィールドである。
企業ポリシーによるオフライン使用が許可されるアプリケーション610については、オフライン認証のためにオフラインパスワードを実装してもよい。たとえば、企業はStoreFrontにこの方法でアクセスしてもらいたい可能性がある。この場合、クライアントエージェント604はユーザにカスタムオフラインパスワードの設定を要求してもよく、ADパスワードは使用されない。ゲートウェイサーバ606は、標準的なWindows(登録商標) Serverパスワードの複雑さの要件で記述されるなど、パスワードの最低長さ、文字種の組合せおよび有効期限に関するパスワード標準を制御し、強制するポリシーを提供してもよい。ただし、これらの要件は修正してもよい。
別の特徴は、二次資格情報として一定のアプリケーション610のクライアント側証明の有効化に関する(アプリケーション管理フレームワークのマイクロVPN特徴を介してPKI保護ウェブリソースにアクセスするため)。たとえば、@WorkMailなどのアプリケーションはこのような証明書を利用することがある。この場合、ActiveSyncプロトコルを使用した証明書による認証をサポートしてもよく、クライアントエージェント604からの証明書はゲートウェイサーバ606によって検索されて、キーチェーンで使用してもよい。各管理対象アプリケーションは、ゲートウェイサーバ606で定義されるラベルによって識別される1つの関連クライアント証明書を有してもよい。
ゲートウェイサーバ606は企業専用ウェブサービスとインタラクトして、該当の管理対象アプリケーションが内部PKI保護リソースに認証を行うことを可能にするクライアント証明書の発行をサポートしてもよい。
クライアントエージェント604およびアプリケーション管理フレームワーク614は、内部PKI保護ネットワークリソースに認証を行うために、クライアント証明書の取得および使用をサポートするように増強してもよい。さまざまなレベルのセキュリティおよび/または隔離の要求事項に応じるためなど、2つ以上の証明書をサポートしてもよい。証明書はメール・ブラウザ管理対象アプリケーション、および最終的には任意にラッピングされたアプリケーションが使用してもよい(ただし、アプリケーション管理フレームワークがhttps要求を仲介するのが合理的な場合、これらのアプリケーションはウェブサービス型の通信パターンを使用する)。
iOSのアプリケーション管理クライアント証明書サポートは、各使用期間中、各管理対象アプリケーションのiOSキーチェーンへのPKCS 12 BLOB(バイナリ・ラージ・オブジェクト)のインポートに依拠してもよい。アプリケーション管理フレームワークのクライアント証明書サポートは、プライベートメモリ内キーストレージとともにHTTPS実装を使用してもよい。クライアント証明書はiOSキーチェーンには絶対に存在することはなく、強力に保護されている「オンライン限定の」データ値を潜在的に除き、存続させない。
相互SSLも実装して、企業に対してモバイルデバイス602が認証され、かつその逆を要求することにより、追加のセキュリティを提供してもよい。ゲートウェイサーバ606に対する認証用の仮想スマートカードも実装してもよい。
限定およびフル両方のケルベロスサポートを追加の特徴としてもよい。フルサポート特徴は、ADパスワードまたは信頼できるクライアント証明書を使用したAD622へのフルケルベロスログインを行い、HTTP Negotiate認証チャレンジにレスポンスするためにケルベロスサービスチケットを取得する能力に関係する。限定サポート特徴はAFEEでの制約付き委任に関係し、当該AFEEサポートはケルベロスプロトコル遷移の呼び出しをサポートするので、HTTP Negotiate認証チャレンジにレスポンスしてケルベロスサービスチケット(制約付き委任を条件とする)を取得して使用することができる。このメカニズムはリバースウェブプロキシ(別名CVPN)モードで機能し、http(ただし、httpsではない)接続はVPNおよびマイクロVPNモードでプロキシされる。
別の特徴はアプリケーション・コンテナのロックおよび消去に関係し、これはジェイルブレイクまたはルート化検出時には自動的に行われ、管理コンソールからプッシュされるコマンドとして発生し、たとえアプリケーション610が稼動していないときでも、遠隔消去機能を含んでもよい。
障害のある場合に、いくつかの異なる場所のうちの1つからユーザがサービスを受けられるStoreFrontおよびApp Controllerのマルチサイト・アーキテクチャまたは構成をサポートしてもよい。
ある場合には、管理対象アプリケーション610には、API(例、OpenSSL)を介して証明書および秘密鍵にアクセスが許可されてもよい。企業の信頼できる管理対象アプリケーション610は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵動作を行うことが認められてもよい。アプリケーションがブラウザのように挙動し、証明書アクセスが要求されない場合、アプリケーションが「who am I」証明書を読み取るとき、アプリケーションが証明書を使用してセキュリティ保護されたセッション・トークンを構築するとき、およびアプリケーションが重要なデータのデジタル署名のため(例、トランザクションログ)または一時データ暗号化のために秘密鍵を使用するときなど、さまざまな使用のケースが識別され、それに応じて扱われてもよい。
〈具体的な実施形態〉
図7はモバイルデバイスのサンプルインターフェースを示し、図8〜図14はアプリケーションの操作モードを判定する方法のサンプル実施形態を示す。図8〜図14に図示する方法は、さまざまな実施形態においてあらゆる適した形態で組み合わせてもよい。図7に図示するサンプルインターフェースは、デバイス107,109,240,502および/または602などのモバイルデバイスに表示してもよく、図8〜図14に図示する方法はこのようなモバイルデバイスによって実装してもよい。
図8は、アプリケーションのアプリケーションモードを判定する方法ステップを示すフローチャートである。図8の方法はステップ802から始まり、複数のアプリケーションが提示される。たとえば、複数のアプリケーションはモバイルデバイス上でユーザに提示してもよい。図7は、モバイルデバイス(例、タブレット、スマートフォン等)に表示されるユーザインターフェース700がユーザにアプリケーションA700,B701,C702およびE703を提示する実施形態を示す。これは単なる一実施例であり、複数のアプリケーションはあらゆる適切な態様で提示してもよい。一つの実施形態において、複数のアプリケーションは電子メール・アプリケーション、ウェブブラウジング・アプリケーション、サービスとしてのソフトウェア(SaaS)アクセス・アプリケーション等を備えてもよい。
図8のステップ802からステップ804に進み、複数のアプリケーションのうちの1つの選択が受信される。図7に図示する実施形態を参照すると、モバイルデバイスのユーザは、たとえばアプリケーションを選択するためにモバイルデバイスのディスプレイを押して、提示されるアプリケーションのうちの1つを選択してもよい。これは単なる一実施例であり、アプリケーションはあらゆる適した態様で選択してもよい。
図8のステップ804からステップ806に進み、選択されたアプリケーションのコンテキストが、選択されたアプリケーションを実行するデバイスの1つ以上の動作パラメータに基づいて判定される。たとえば、コンテキストはアプリケーションによりアクセスされるアカウント、モバイルデバイスの場所もしくはアプリケーションを実行するモバイルデバイスのネットワーク接続性ステータスに基づいてもよく、または他の動作パラメータに基づいてもよい。以下詳しく説明する図9〜図13の方法は、例示的なコンテキストが説明されるさまざまな実施形態を例示する。
図8のステップ804からステップ806に進み、選択されたアプリケーションの操作モードがコンテキストに基づいて判定される。一つの実施形態では、操作モードは管理モードおよび非管理モードを備え、たとえば、ユーザがそれぞれ業務関連の活動対個人的な活動を行っているときのデバイスの仕事モードおよび非仕事モードを表す。仕事モードは企業リソースへのアクセスを提供し、1つ以上のコンテンツフィルタおよび/または制約を含んでもよいのに対し、非仕事モードは非企業関連のリソースにしかアクセスを許可しないポリシー(もしくはポリシーなし)および/またはコンテンツフィルタ/制約(もしくはなし)を適用してもよいであろう。
さらに、たとえば、さまざまなユーザの異なるセキュリティレベルもしくはユーザが提供する資格情報のセット、資格情報のセットにより特定される異なるユーザの役割(例、管理職対スタッフ従業員)、デバイスが操作される地理的な場所、ネットワークの場所、動作環境(例、医療関連の管理モード対金融業界の管理モード)、またはあらゆる他のコンテキストの判定に基づいて、複数の異なる管理モードがあってもよい。
いくつかのモードは、たとえば場所と役割など複数のコンテキストに基づいていてもよい。このような1つの組合せでは、第1管理モードは医療プロバイダに適用されるポリシーを提供するのに対し、第2管理モードは患者に適用されるポリシーを適用してもよい。デバイスが2つのユーザ間で渡されるとき、ユーザ(またはユーザアクションに基づくソフトウェア)は異なる役割をもつユーザにデバイスを渡すときに、モードの変更を起こしてもよい。新たなユーザには、モードを変更するために、たとえばよりセキュリティ保護されたモードに変更するときに、適切な資格情報の入力を要求してもよい。医療プロバイダモードは多岐にわたる患者の記録、リソース、スケジューリングの詳細、財務記録および他の情報へのアクセスを提供してもよいのに対し、患者モードは、たとえば医療保険の相互運用性と説明責任に関する法律(HIPPA)および他のプライバシーへの配慮に基づいて、その患者の情報のみに制限してもよい。コンテキストの判定の他の組合せも使用してもよい。
一つの実施形態において、操作モードを判定するために、判定されたコンテキストを格納されているポリシーと比較してもよい。モバイルデバイス502などのモバイルデバイスはアプリケーションの操作モードを判定するために使用される1つ以上のポリシーを格納してもよい。
一つの実施形態では、ポリシーは、図5を参照して上述したポリシーマネージャ570などにリモートに格納してもよく、またはデバイスにローカルに格納してもよい。一実施例では、コンテキストは、セキュリティ保護された電子メールアカウントにアクセスするように構成されている電子メール・アプリケーションなど、セキュリティ保護されたアカウントにアクセスするように構成されている選択されたアプリケーションを備えてもよい。このコンテキストを格納されているポリシーと比較してもよい。たとえば、格納されているポリシーは、セキュリティ保護された電子メールアカウントにアクセスするように構成されている電子メール・アプリケーションが管理対象アプリケーションとして稼動すべきと定義してもよい。格納されているポリシーは、デバイスのユーザの個人アカウントにアクセスするように構成されているとき、電子メール・アプリケーションが非管理モードで動作してもよいことをさらに示してもよい。追加のコンテキストおよびポリシーは図9〜図13を参照して説明する。
図8のステップ806からステップ808に進み、選択されたアプリケーションは判定された操作モードで稼動する。たとえば、操作モードは非管理モードとして、または複数の管理モードのうちの1つとして判定されてもよく、選択されたアプリケーションは判定されたモードで稼動してもよい。
一つの実施形態において、管理操作モードは、図5を参照して上述したように、モバイルデバイス502の管理対象パーティション510の一部としてアプリケーションを稼動することを含んでもよい。このように、管理対象アプリケーションはセキュリティ保護されたネイティブアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ518が実行するセキュリティ保護されたリモート・アプリケーション522、安全なアプリケーション・ランチャ518が実行する仮想化アプリケーション526等として稼動してもよい。
一つの実施形態において、管理モードで稼動しているアプリケーションは、モバイルデバイスの管理対象パーティション510(物理的、論理的、または仮想)のセキュリティ保護されたデータコンテナ528に格納されているデータにアクセスしてもよい。セキュリティ保護されたデータコンテナ528に格納されているデータは他のセキュリティ保護された/管理対象アプリケーション間で共有される特定のセキュリティ保護された/管理対象アプリケーション530等に制限されるデータを含んでもよい。セキュリティ保護されたアプリケーションに制限されるデータはセキュリティ保護された一般データ534および高セキュリティ保護されたデータ538を含んでもよい。セキュリティ特徴の異なるレベルおよび種類を使用して、セキュリティ保護されたデータのレベルを区別してもよい。一つの実施形態では、管理モードで稼動しているアプリケーションは、セキュリティ保護されたデータコンテナ528にデータを保存、修正または削除してもよい。保存または修正されたデータは、セキュリティ保護されたデータコンテナ528に格納されている他のデータと同様に暗号化してもよい。
一つの実施形態において、管理モードで稼動しているアプリケーションは、図5を参照して上述したように、仮想プライベートネットワーク接続により企業リソース504および企業サービス508に接続してもよい。仮想プライベートネットワーク接続はマイクロVPNとしてもよく、これは選択されたアプリケーション、特定のデバイス、モバイルデバイスの特定のセキュリティ保護化エリア等といった、特定のアプリケーションに固有のものである。たとえば、電話のセキュリティ保護化エリア内のラッピングされたアプリケーションは、VPNへのアクセスが、おそらくはユーザまたはデバイス属性情報およびポリシー情報と合わせて、アプリケーションに関連する属性に基づいて付与されるように、アプリケーション固有のVPN経由で企業リソースにアクセスしてもよい。
一つの実施形態では、管理モードで稼動しているアプリケーションは、アプリケーションから送信されるデータを暗号化してもよい。たとえば、管理モードで稼動しているアプリケーションはネットワーク上でコンピューティングデバイスと通信していてもよく、アプリケーションからデバイスに送信されるデータを暗号化してもよい。さらに、コンピューティングデバイスからアプリケーションに通信されるデータも暗号化してもよく、管理モードで稼動しているアプリケーションは受信したデータを解読するように構成していてもよい。
一つの実施形態において、管理モードで稼動しているアプリケーションはセキュリティ保護されたポータルにアクセスしてもよい。たとえば、アプリケーションはネットワーク、たとえば、マイクロVPN上でコンピューティングデバイスに接続してもよく、非管理モードで稼動しているアプリケーションなど、非セキュリティ保護化アプリケーションではアクセスできない可能性があるセキュリティ保護されたポータルにアクセスしてもよい。
一つの実施形態において、非管理操作モードは、図5を参照して上述したように、モバイルデバイス502の非管理対象パーティション512(物理的、論理的、または仮想)の一部としてアプリケーションを稼動することを含んでもよい。非管理モードでは、アプリケーションはモバイルデバイス502の非管理対象パーティション512の非セキュリティ保護化データコンテナ542に格納されているデータにアクセスしてもよい。非セキュリティ保護化データコンテナに格納されているデータは個人データ544であってもよい。
一つの実施形態において、2つ以上の管理モードが可能な場合、低セキュリティ保護管理モードで稼動しているアプリケーションは高セキュリティ保護管理モードで稼動しているアプリケーションと同様に稼動してもよいが、後者のすべての側面を含めなくてもよいだろう。たとえば、低セキュリティ保護管理モードで稼動しているアプリケーションは情報を暗号化されたネットワーク上でアプリケーションから送信させてもよいが、アプリケーションは、図5を参照して説明したように、セキュリティ保護されたデータコンテナ528にはアクセスできなくてもよい。
別の実施例では、低セキュリティ保護管理モードで稼動しているアプリケーションはセキュリティ保護されたデータコンテナ528にアクセスできてもよいが、仮想プライベートネットワーク接続により企業リソース504および企業サービス508に接続することはできなくてもよい。したがって、判定されるコンテキストに応じて、低セキュリティ保護管理モードで稼動しているアプリケーションは高セキュリティ保護管理モードで稼動しているアプリケーションの側面および非管理モードで稼動しているアプリケーションの側面を含んでもよい。
図9〜図13は、アプリケーションのコンテキストおよび操作モードを判定するための方法ステップのフローチャートを示す。一つの実施形態において、図8のステップ806および808は、図9〜図13のいずれか1つ以上の方法ステップを備えてもよい。
図9の方法はステップ902で始まり、選択されたアプリケーションによってアクセスされるアカウントが検出される。たとえば、選択されたアプリケーションは電子メール・アプリケーションを備えてもよく、電子メール・アプリケーションがアクセスするように構成されている電子メールアカウントが検出される可能性がある。この実施例では、電子メール・アプリケーションは、企業用電子メールアカウントおよび個人用電子メールアカウントなど複数の電子メールアカウントにアクセスできてもよく、電子メール・アプリケーションが稼動している時点でアクセスするように構成されているアカウントは、アクセスされるコンテキストアカウントとして判定されてもよい。
図9においてステップ902からステップ904に進み、アクセスされるアカウントのアカウントタイプが判定される。アカウントタイプは選択されたアプリケーションのコンテキストを備えてもよい。たとえば、選択されたアプリケーションは電子メール・アプリケーションを備えてもよく、電子メール・アプリケーションは企業用アカウントにアクセスするように構成されていてもよい。別の実施例では、電子メール・アプリケーションは個人用アカウントにアクセスするように構成されていてもよい。
図9においてステップ904からステップ906に進み、アカウントタイプがアカウントタイプ・ポリシーと比較される。たとえば、ポリシーは企業用アカウントにアクセスする予定の電子メール・アプリケーションが管理モードで稼動するべきであり、個人用アカウントにアクセスする予定の電子メール・アプリケーションは非管理モードで稼動すべきと定義してもよい。図9の方法はステップ906からステップ908に進み、比較に基づいて操作モードが判定される。
図10では、ステップ1002から始まり、モバイルデバイスの場所が判定される。たとえば、モバイルデバイス502などのモバイルデバイスは図10の方法を実施してもよく、モバイルデバイスの場所が判定されてもよい。場所はGPS、信号三角測量またはあらゆる他の適した態様もしくはその他周知の態様で判定してもよい。場所は選択されたアプリケーションのコンテキストを備えてもよい。
図10のステップ1002からステップ1004に進み、判定された場所を場所ポリシーと比較する。たとえば、ポリシーは、選択されたアプリケーションは一定の場所、たとえば、会社の構内にあるとき、高セキュリティ保護管理モードで稼動すると定義してもよい。一つの実施形態では、ポリシーは、選択されたアプリケーションが、一定の場所にあるとき、たとえば、判定された場所が米国内であるが、会社の構内の外にあるときに、低セキュリティ保護管理モードで稼動すると定義してもよい。たとえば、低セキュリティ保護管理モードは選択されたアプリケーションとの通信を暗号化してもよいが、リソース504などの企業リソースへのアクセスを許可しなくてもよいだろう。別の実施形態では、ポリシーは、選択されたアプリケーションが、一定の場所にあるとき、たとえば、判定された場所が米国外であるとき、非管理モードで稼動すると定義してもよい。図10のステップ1004からステップ1006に進み、比較に基づいて操作モードが判定される。
あるいは、または物理的場所に加えて、アクセスを許可するかどうかの判定にネットワークの場所も使用してもよく、または代わりに使用してもよい。たとえば、ネットワークの場所は、ユーザがデータセンター(もしくは事前承認されたWifiアクセスポイント)の内部であるか、または外部であるかを参照してもよい。適切なアクセスモードはこのような判定に基づいてもよい。
図11の方法ではステップ1102から始まり、所定のアプリケーションがデバイス上で稼動しているかどうかが監視される。たとえば、モバイルデバイス502などのモバイルデバイスは図11の方法を実施してもよく、モバイルデバイスは所定のアプリケーションが稼動しているかどうかを判定するために監視されてもよい。所定のアプリケーションは、図6を参照して説明したクライアントエージェント604など、モバイルデバイスで稼動することのできるあらゆるアプリケーションを備えてもよい。監視される所定のアプリケーションは選択されたアプリケーションのコンテキストを備えてもよい。
図11のステップ1102からステップ1104に進み、監視されるアプリケーションをポリシーと比較する。たとえば、ポリシーは、クライアントエージェント604などの所定のアプリケーションが稼動しているとき、選択されたアプリケーションは管理モードで稼動し、所定のアプリケーションが稼動していないとき、選択されたアプリケーションは非管理モードで稼動すると定義してもよい。図11の方法はステップ1104からステップ1106に進み、比較に基づいて操作モードが判定される。
図12の方法ではステップ1202から始まり、1つ以上のネットワーク接続が検出される。たとえば、モバイルデバイス502などのモバイルデバイスは図12の方法を実施してもよく、モバイルデバイスが行うネットワーク接続を検出してもよい。一実施例において、ネットワーク接続はセルラーネットワークへの接続、WIFIネットワークへの接続、もしくはワイヤレスローカルエリアネットワーク(WLAN)への接続等を備えてもよい。1つ以上のネットワーク接続は選択されたアプリケーションのコンテキストを備えてもよい。
図12のステップ1202からステップ1204に進み、検出されたネットワーク接続をネットワーク接続ポリシーと比較する。たとえば、ポリシーは、モバイルデバイスがたとえば会社の内部のWLANなどの内部ネットワークに接続されているとき、選択されたアプリケーションは管理モードで稼動し、モバイルデバイスがセルラーネットワークまたはWIFIネットワークなどのワイヤレスネットワークにしか接続されていないときは、選択されたアプリケーションは非管理モードで稼動すると定義してもよい。図12の方法はステップ1204からステップ1206に進み、比較に基づいて操作モードが判定される。
図13の方法ではステップ1302から始まり、モバイルデバイスの1つ以上の設定が検出される。たとえば、モバイルデバイス502などのモバイルデバイスは図13の方法を実施してもよく、モバイルデバイスの1つ以上の設定を検出してもよい。一実施例において、モバイルデバイスが、モバイルデバイスを使用するために必要なPINなど、ロックスクリーンを有するかどうかを検出してもよく、またはモバイルデバイスがジェイルブレイク/ルート化されているかどうか、たとえば販売後の修正を受けたかどうかを検出してもよい。1つ以上の設定は選択されたアプリケーションのコンテキストを備えてもよい。
図13のステップ1302からステップ1304に進み、検出された設定が設定ポリシーと比較される。たとえば、ポリシーは、モバイルデバイスがロックスクリーンを有していない場合、またはモバイルデバイスがジェイルブレイク/ルート化されている場合、選択されたアプリケーションは管理モードで稼動できないと定義してもよい。図13の方法はステップ1304からステップ1306に進み、比較に基づいて操作モードを判定する。一つの実施形態において、判定されたモードで選択されたアプリケーションを稼動しているとき、モバイルデバイスが管理モードで選択されたアプリケーションの稼動を許可される前に、モバイルデバイスがロックスクリーンを有するようにとの要求事項など、一定のポリシーをユーザに通知するインジケータをモバイルデバイスに表示してもよい。図9〜図13は複数のコンテキストを示しており、あらゆる他の適したコンテキストおよび対応するポリシーが実施されてもよい。
一つの実施形態において、図9〜図13で説明したコンテキストのうちの1つ以上を組み合わせてもよく、これらのコンテキストを、選択されたアプリケーションのポリシーと比較してもよい。たとえば、選択されたアプリケーションのコンテキストは企業用電子メールアカウントとしてアクセスされるアカウントタイプと、セルラーネットワークとして検出されたネットワーク接続とを備えてもよい。この実施例では、ポリシーは、企業用アカウントがセルラーネットワーク上でアクセスを試みられるとき、選択されたアプリケーションは管理モードで稼動するべきと定義してもよい。選択されたアプリケーションが企業用電子メールアカウントとの通信を暗号化してもよく、それによりセルラーネットワーク上でセキュリティ保護されたトラフィックを送信するリスクが軽減する可能性があるので、ポリシーをこのように定義してもよい。
別の実施例では、選択されたアプリケーションのコンテキストは米国以外の判定場所と、会社の内部のWLANとのネットワーク接続とを備えてもよい。ポリシーは、判定された場所が米国外で、ネットワーク接続が会社の内部のWLANであるとき、選択されたアプリケーションは管理モードで稼動するべきと定義してもよい。会社の内部のWLANとのネットワーク接続が米国外でのセキュリティ保護された通信に関連するリスクを軽減するので、ポリシーをこのように定義してもよい。
一つの実施形態において、図9〜図13で説明した1つ以上のコンテキストは優先順位を含めてもよい。たとえば、選択されたアプリケーションのコンテキストは、モバイルデバイスがジェイルブレイク/ルート化されているとの判定を備えてもよく、ポリシーは、他のコンテキストが何を示すかに関係なく、コンテキストがジェイルブレイク/ルート化されたモバイルデバイスを示すときには、選択されたアプリケーションは非管理モードでのみ稼動するべきと定義してもよい。したがって、ジェイルブレイク/ルート化されたモバイルデバイスは、モバイルデバイスが会社の内部のWLANに接続されているときでも、または選択されたアプリケーションが企業用アカウントへのアクセスを試みている場合も、選択されたアプリケーションを非管理モードで稼動させる。
一つの実施形態において、ポリシーは、図9〜図13で説明した複数のコンテキストに基づいて、選択されたアプリケーションを低セキュリティ保護管理モードで稼動するべきと示してもよい。たとえば、選択されたアプリケーションのコンテキストは企業用電子メールアカウントとしてアクセスされるアカウントタイプと、セルラーネットワークとして検出されるネットワーク接続とを備えてもよい。この実施例では、ポリシーは、企業用アカウントがセルラーネットワーク上でアクセスを試みられるとき、選択されたアプリケーションは低セキュリティ保護管理モードで稼動するべきと定義してもよい。低セキュリティ保護管理モードは選択されたアプリケーションとの通信を暗号化するが、リソース504などの企業リソースへのアクセスは許可しなくてもよい。企業用電子メールアカウントとの暗号化された通信はリスクの低い通信で、企業リソースにアクセスさせることはリスクの高い通信であるため、ポリシーをこのように定義してもよい。
図14は、アプリケーションの操作モードを切り替えるための方法ステップのフローチャートを示す。たとえば、図14の方法ステップは、図8の方法ステップの後に続けてもよい。図14の方法はステップ1402から始まり、選択されたアプリケーションの稼動中に、1つ以上のコンテキストを監視してもよい。一つの実施形態において、図9〜図13を参照して説明したコンテキストのうちの1つ以上を監視してもよい。たとえば、選択されたアプリケーションを稼動するモバイルデバイスはセルラーネットワークに接続されてもよく、選択されたアプリケーションの稼動中に、モバイルデバイスは会社の内部のWLANとの新たなネットワーク接続を確立してもよい。
図14のステップ1402からステップ1404に続き、監視に基づいて、選択されたアプリケーションの操作モードの変更が検出される。言い換えると、モバイルデバイスは特定の操作モードを選択するための根拠を成した情報の変化を検出する。たとえば、選択されたアプリケーションは非管理モードで稼動していて、選択されたアプリケーションを稼動するモバイルアプリケーションが会社の内部のWLANに一旦接続されると、ポリシーは、選択されたアプリケーションの操作モードを管理モードに切り替えるべきと定義してもよい。図14のステップ1404からステップ1406に進み、選択されたアプリケーションの操作モードが切り替えられる。
一つの実施形態において、モバイルデバイスマネージャなどのマネージャは、1つ以上のモバイルデバイスを管理してもよい。この実施例では、モバイルデバイスは登録済みデバイスと呼ばれることがある。一つの実施形態では、モバイルデバイスは、図6のクライアントエージェント604などの管理対象にインストールされているソフトウェアに基づいて管理してもよい。
一実施例において、クライアントエージェント604は、接続管理ソフトウェア開発キット(SDK)、接続マネージャ520、接続/ステータス・アプリケーション・プログラミング・インターフェース(API)、仮想化サービスのセット、ランタイムSDK、プラットフォームSDK、およびクライアントコアをさらに含んでもよい。
クライアントエージェント・アーキテクチャの仮想化サービスは、たとえば、グラフィクスサービス、デスクトップ統合サービス、マルチメディアサービス、入出力サービス、スマートカードサービス、印刷サービス等を含んでもよい。ランタイムSDKは、たとえば、ICAエンジンを含め、インディペンデント・コンピューティング・アーキテクチャ(ICA)ランタイムSDKであってもよい。プラットフォームSDKは、たとえば、ICAプラットフォームSDKまたは他のプラットフォームSDKであってもよく、仮想チャネルSDK、構成・ロードマネージャ、トレース・サブコンポーネント、プラットフォーム抽象化SDK等といったさまざまなサブコンポーネントを含んでもよい。
クライアントコアは、たとえば、ターミナルサービスへのリモートアクセスのコアプロトコル(例、コアICAプロトコルを有するWinstationドライバ)、圧縮および優先順位付けを行うように構成されているリデューサ・サブコンポーネント、マルチストリームICA、セッション信頼性、プロキシおよびSSLを有するTCPスタック、ならびにUDPサブコンポーネントを含んでもよい。クライアントコアは、グラフィクス・スマートカードおよびスレッドサポート、構成・ロードマネージャライブラリ、SSL SDK等といった、プラットフォーム固有のサブコンポーネントの実施態様も含んでもよい。
モバイルデバイスは、たとえば、クライアントエージェント604を使用して、企業システムに登録してもよい。たとえば、登録済みクライアントデバイス602では、クライアントエージェント604はゲートウェイサーバ606または他のアクセス・ゲートウェイとインタラクトして、さまざまな企業リソース608およびサービス609にアクセスしてもよい。デバイスの登録は、私物デバイスの業務利用(BYOD)および関連技術、ならびにMDMまたは同様なシステムに対するオプトインを伴ってもよい。会社のアカウント(または他の組織のアカウント)を用いたデバイスの登録は、デバイスへの証明書のプッシュ送信、および企業システムのデバイス管理サーバへのデバイスの登録を伴ってもよい。登録後、デバイスは、デバイスにプッシュ送信されるモバイルデバイス管理(MDM)および/またはモバイルデバイスエクスペリエンス技術(アプリケーション管理フレームワーク)ポリシーを用いて、会社のアドミニストレータ(または他の組織のアドミニストレータ)によって「管理」してもよい。登録済みデバイスは管理対象デバイスということもある。言い換えると、登録後、デバイスは本明細書で説明する管理対象デバイスになる。一定の実施例では、企業システムにデバイスを登録するために、クライアントエージェント604および/またはアプリケーション登録トークンをダウンロードしてデバイスにインストールしてもよい。アプリケーション登録トークンは、デバイスの登録先となる会社または他の組織の証明書から導出してもよい。クライアントエージェント604およびアプリケーション登録トークンのダウンロード後、デバイスのユーザに対して、トークンを開いて会社のアカウント(または他の組織のアカウント)をデバイスに追加するように促してもよい。
一つの実施形態において、図5のモバイルデバイス502などの登録済みモバイルデバイスは、図5のデバイスマネージャ524などのサービスによって管理してもよい。デバイスマネージャ524は、構成、プロビジョニング、セキュリティ、サポート、監視、レポーティングおよびデコミッショニングを含むサービスを提供してもよい。たとえば、デバイスマネージャ524は、登録済み/管理対象モバイルデバイスにどのアプリケーションがインストールされるかを監視してもよい。
この実施例では、デバイスマネージャ524はブラックリストアプリケーションのリストの格納/アクセスを行ってもよく、さらに登録済み/管理対象モバイルデバイスへのブラックリストアプリケーションのインストールを判断してもよい。ブラックリストアプリケーションはマルウェアまたは他の適したアプリケーションと疑われるアプリケーションを備えてもよい。別の実施例では、デバイスマネージャ524は登録済みモバイルデバイスの動作状態を監視してもよい。この実施例では、デバイスマネージャ524は、登録済みモバイルデバイスがジェイルブレイク/ルート化されたことを判定してもよい。デバイスマネージャ524はこれらの判定に基づいて、登録済みデバイスでさまざまな管理活動を行ってもよい。
別の実施例では、デバイスマネージャ524はモバイルデバイスのネットワーク接続を監視してもよい。この実施例では、デバイスマネージャ524は、登録済みモバイルデバイスがセルラーネットワーク、ワイヤレスローカルエリアネットワーク(WLAN)、ローカルエリアネットワーク(LAN)、これらの組合せ、または他のあらゆる適したネットワークに接続されていることを判定してもよい。別の実施例では、デバイスマネージャ524はモバイルデバイスの場所を監視してもよい。この実施例では、デバイスマネージャ524は、モバイルデバイスの緯度と経度、国、州、あらゆる適した地域、または他のあらゆる適した場所など、モバイルデバイスの地理的な場所を判定してもよい。
別の実施例では、デバイスマネージャ524は、モバイルデバイスで特定のアプリケーションが稼動しているかどうかを監視してもよい。この実施例では、デバイスマネージャ524は、図6のクライアントエージェント604などの特定のアプリケーションがモバイルデバイスで稼動しているかどうかを判定してもよい。デバイスマネージャ524はこれらの判定に基づいて、登録済みデバイスでさまざまな管理活動を行ってもよい。
一つの実施形態において、登録済みモバイルデバイスにインストールされているアプリケーションは、上述したように、管理モードまたは非管理モードで稼動してもよい。一つの実施形態において、管理操作モードは、図5を参照して上述したように、モバイルデバイス502の管理対象パーティション510の一部としてアプリケーションを稼動することを含んでもよい。一つの実施形態において、管理モードで稼動しているアプリケーションは、モバイルデバイスの管理対象パーティション510のセキュリティ保護されたデータコンテナ528に格納されているデータにアクセスしてもよい。セキュリティ保護されたデータコンテナ528に格納されているデータは、他のセキュリティ保護されたアプリケーション間で共有される特定のセキュリティ保護されたアプリケーション530等に制限されるデータを含んでもよい。セキュリティ保護されたアプリケーションに制限されるデータはセキュリティ保護された一般データ534および高セキュリティ保護データ538を含んでもよい。セキュリティ保護された一般データはAES128ビット暗号または同様な他のものなどの強力な暗号形態を使用してもよいのに対し、高セキュリティ保護されたデータ538はAES254ビット暗号などの非常に強力な暗号形態を使用してもよい。他のタイプの暗号を使用してもよく、所望のセキュリティレベルおよび/またはタイプ、ならびにさまざまな鍵リカバリ特徴に基づいて、セキュリティ手段の他のレベルおよびタイプを適用してもよい。一つの実施形態において、管理モードで稼動しているアプリケーションは、セキュリティ保護されたデータコンテナ528内でデータを保存、修正、または削除してもよい。保存または修正されたデータは、セキュリティ保護されたデータコンテナ528に格納されている他のデータと同様に暗号化してもよい。
一つの実施形態において、管理モードは企業モードを備えてもよく、非管理モードは個人モードを備えてもよい。たとえば、アプリケーションが管理モード、または企業モードで稼動しているとき、アプリケーションはセキュリティ保護されたサーバに格納されているリソース(例、企業データ)にアクセスができてもよい。デバイスを管理するデバイスマネージャ524は企業に関連付けてもよい。この実施例では、管理モードで稼動しているアプリケーションは、アプリケーションに企業データへのアクセス権を付与する1つ以上のサーバ(例、ゲートウェイサーバ606)と通信することができてもよい。アプリケーションが非管理モード、または個人モードで稼動しているとき、アプリケーションは企業データにアクセスできなくてもよい。
一つの実施形態において、管理モードまたは非管理モードで稼動することの可能なアプリケーションは、アプリケーションに関連するデータを格納するためのストレージポリシーを利用してもよい。
図15に、複数のモードで稼動するアプリケーションを管理するための方法ステップのフローチャートを示す。図15のステップ1502から始まり、アプリケーションはモバイルデバイスで管理モードまたは非管理モードのうちの一方で稼動する。たとえば、上述したように、管理モードまたは非管理モードで稼動することの可能なアプリケーションは、これらのモードのうちの1つで稼動してもよい。
図15のステップ1502からステップ1504に進み、アプリケーションに関連するデータを格納するための要求を受信する。たとえば、アプリケーションが管理モードで稼動しているとき、セキュリティ保護化サーバ(例、ゲートウェイサーバ606)からアクセスされるセキュリティ保護化データなどのデータを格納するための要求が受信されてもよい。このような実施例では、セキュリティ保護化データは上述したような企業データを備えてもよい。別の実施例では、アプリケーションが非管理モードで稼動しているとき、個人データなどのデータを格納するための要求が受信されてもよい。
図15のステップ1504からステップ1506に進み、ストレージプロトコルに従ってデータがモバイルデバイスに格納される。ストレージプロトコルは、要求されるデータをモバイルデバイスに格納する態様を定義してもよい。たとえば、アプリケーションが管理モードで稼動しているとき、データは第1プロトコルに従って格納してもよく、アプリケーションが非管理モードで稼動しているとき、データは第2プロトコルに従って格納してもよい。
一つの実施形態において、第1ストレージプロトコルは、要求されるデータをセキュリティ保護化データコンテナ(例、セキュリティ保護化データコンテナ528)などの第1データコンテナに格納すると定義してもよい。この実施例では、第1データコンテナに格納されるデータは、アプリケーションが非管理モードで稼動している間、アプリケーションにアクセス可能でなくてもよい。一つの実施形態において、第2ストレージプロトコルは、要求されるデータを第1データコンテナとは異なる第2データコンテナに格納すると定義してもよい。第2データコンテナは、たとえば個人データを格納する一般データコンテナを備えてもよい。
一つの実施形態において、第1ストレージプロトコルは、要求されるデータを格納する前に暗号化すると定義してもよい。この実施例では、データは第1鍵を使用して暗号化してもよく、いくつかの実施形態では、第1鍵はデバイスを管理するデバイスマネージャ(例、デバイスマネージャ524)に関連付けてもよい。一つの実施形態において、第2ストレージプロトコルは、格納する前に、第1鍵とは異なる第2鍵を使用して、要求されるデータを暗号化すると定義してもよい。別の実施例では、第1ストレージプロトコルは要求されるデータを暗号化せずに格納すると定義してもよい。
格納されたデータは、ストレージプロトコルが変更するか、または修正されるときに自動的に更新してもよい。たとえば、データストレージに使用される暗号化スキームを第1タイプの暗号から第2タイプの暗号に変更するポリシーが更新されてもよい。これが発生するとき、モバイルデバイスは第1タイプの暗号に基づいて、格納されているデータを自動的に解読して、新たなまたは改定されたポリシーを使用して、第2タイプの暗号に基づいて、格納されているデータを再び暗号化してもよい。このように、格納されているデータは常に現行のストレージポリシーに準拠する。
一つの実施形態において、第1ストレージプロトコルは、要求されるデータを管理対象アカウントに関連付けて格納すると定義してもよい。管理モードで稼動しているアプリケーションは管理対象アカウントに関連付けてもよい。たとえば、管理モードで稼動している間、セキュリティ保護化データへのアクセスを許可するクラウドストレージ・アプリケーションは、セキュリティ保護化データへのアクセスの取得に使用される管理対象アカウントに関連付けてもよい。要求されるデータはこの管理対象アカウントに関連付けて格納してもよい。一つの実施形態において、第1ストレージプロトコルは、要求される格納されているデータをデバイスマネージャ524によって管理すると定義してもよい。
したがって、アプリケーションが管理モードで稼動している間、上述したように、データは第1プロトコルに従って格納されてもよい。アプリケーションが非管理モードで稼動している間、上述したように、データは第2プロトコルに従って格納してもよい。
いくつかの実施形態では、ストレージのタイプおよび/または場所は使用中の操作モードに従属してもよい。たとえば、ストレージプロトコルまたはポリシーは、データをクラウドベースのストレージに格納すると指定してもよい。ストレージプロトコルまたはポリシーはさらに、操作モードに基づいて、企業または非企業のいずれのクラウドストレージを使用するべきかを指定してもよい。管理モードのとき、データは、企業またはポリシーによって選択される所定のセキュリティレベルが提供される企業または他のクラウドストレージに保存してもよい。あるいは、非管理モードのとき、データは、たとえばユーザが選択する、低セキュリティ保護クラウドストレージサービスまたは場所に保存または格納してもよい。実施形態では、モバイルデバイスまたはアプリケーションの一定の状況に基づいて、アプリが非管理で稼動しているときデータをローカルに格納し、アプリが管理モードで稼動しているときデータをクラウドストレージに格納する、またはその逆である、ハイブリッドストレージポリシーを含んでもよい。
図15のステップ1506からステップ1508に進み、アプリケーションのモードを使用不可にするための信号が受信される。たとえば、アプリケーションの管理モードを使用不可にするための信号が受信されてもよい。一つの実施形態において、デバイスマネージャ524は登録済みモバイルデバイスを監視し、モバイルデバイスの状態を検出し、モバイルデバイスにインストールされているアプリケーションの管理モードを使用不可にする信号を送信してもよい。たとえば、デバイスマネージャ524は登録済みモバイルデバイスがジェイルブレイク/ルート化されていることを検出し、その検出に基づいてアプリケーションの管理モードを使用不可にする判断をしてもよい。別の実施形態では、デバイスマネージャ524は登録済みモバイルデバイスにブラックリストアプリケーションがインストールされていることを検出し、その検出に基づいてアプリケーションの管理モードを使用不可にする判断をしてもよい。
別の実施形態において、デバイスマネージャ524はアプリケーションに関連する管理対象アカウントが失効しているかまたは削除されていることを検出し、その検出に基づいてアプリケーションの管理モードを使用不可にする判断をしてもよい。たとえば、管理モードで稼動している間、セキュリティ保護化データへのアクセスを許可するクラウドストレージ・アプリケーションは、セキュリティ保護化データへのアクセスを取得するために使用される管理対象アカウントに関連付けてもよい。デバイスマネージャ524は管理対象アカウントが失効しているかまたは削除されていることを検出し、その検出に基づいてクラウドストレージ・アプリケーションの管理モードを使用不可にする信号を送信してもよい。一つの実施形態において、アプリケーションの管理モードを使用不可にする信号を受信すると、アプリケーションは、管理モードで稼動しないアプリケーションに変換されてもよい。
一つの実施形態において、アプリケーションの管理モードを使用不可にする受信信号に基づいて、第1プロトコルに従って格納されているデータを選択的に削除することを判断してもよい。たとえば、第1プロトコルに従って格納されているデータは使用不可にされることになる管理モードに関連付けてもよく、第1プロトコルに従って格納されているデータは管理モードを使用不可にする一部として選択的に削除してもよい。
図15のステップ1508からステップ1510に続き、プロトコルに従ってモバイルデバイスに格納されているデータの位置を特定する。たとえば、デバイスマネージャ524は登録済みモバイルデバイスを監視して、第1プロトコルに従って格納されているデータの位置を特定してもよい。第1プロトコルに従って格納されているデータは、管理モードで稼動しているアプリケーションなど、第1モードで稼動している特定のアプリケーションに関連するデータを備えてもよい。一つの実施形態において、位置特定されたデータはアプリケーションの企業データを備えてもよい。
一つの実施形態において、第1プロトコルに従って格納されているデータはアカウントに基づいて位置特定してもよい。たとえば、アカウントは管理対象アカウントに関連付けられてもよい。アプリケーションは管理モードで稼動し、格納されているデータは管理対象アカウントに関連付けられてもよい。この実施形態では、第1プロトコルに従って格納されているデータは管理対象アカウントに関連付けられてもよく、第1プロトコルに従って格納されているデータは管理対象アカウントに基づいて位置特定してもよい。
別の実施形態では、第1プロトコルに従って格納されているデータは、ストレージコンテナに基づいて位置特定してもよい。たとえば、図5のセキュリティ保護されたデータコンテナ528などのセキュリティ保護されたストレージコンテナを、第1プロトコルに従って格納されているデータに関連付けてもよい。アプリケーションは管理モードで稼動してもよく、第1プロトコルに従って格納されているデータはセキュリティ保護されたデータコンテナに格納してもよい。この実施形態では、第1プロトコルに従って格納されているデータはセキュリティ保護されたデータコンテナに格納してもよく、第1プロトコルに従って格納されているデータはセキュリティ保護されたストレージコンテナのストレージに基づいて位置特定してもよい。
別の実施形態において、第1プロトコルに従って格納されているデータは暗号化に基づいて位置特定してもよい。たとえば、第1プロトコルに従って格納されているデータは、第1鍵を使用した暗号化など、特定の暗号化を用いて暗号化してもよい。アプリケーションは管理モードで稼動してもよく、第1プロトコルに従って格納されているデータは特定の暗号化に基づいて暗号化してもよい。この実施形態では、第1プロトコルに従って格納されているデータはデータの暗号化に基づいて位置特定してもよい。一実施例では、第1鍵はデバイスマネージャ524に関連付けてもよい。
図15のステップ1510からステップ1512に続き、位置特定されたデータを選択的に削除する。たとえば、デバイスマネージャ524は登録済みモバイルデバイスを監視し、第1プロトコルに従って登録済みモバイルデバイスに格納されているデータの位置を特定し、位置特定されたデータを選択的に削除してもよい。一つの実施形態において、位置特定されたデータの選択的な削除は、モバイルデバイスに格納されている他のデータを削除しない。たとえば、位置特定されたデータがアプリケーションの企業データを備える場合、アプリケーションの個人データは削除しなくてもよいだろう。あるいは、第1プロトコルに従って格納されているデータへのアクセスは、デバイスが再び登録するまで、またはアプリケーションが再び管理モードで稼動することが可能になるまで、ロックまたはブロックしてもよい。
図16は、複数のモードで実行することの可能なアプリケーションのアカウントを管理するための方法ステップのフローチャートを示す。図16のプロセスは、インストールされているアプリケーションが複数のモードで実行することが可能なことを検出したときに、管理モードで実行するアプリケーションによる企業リソースへのアクセスを構成するために使用してもよい。さらに、リソースは一定のイベントに基づいて予めプロビジョニングしてもよく(例、新たな従業員が会社に入社し、新入従業員の手続の一環としてリソースを予めプロビジョニングする)、それによって管理対象アプリの初回の実行をスピードアップする。
図16はステップ1602から始まり、モバイルデバイスを新たなアプリケーションについて監視する。たとえば、デバイスマネージャ524は、上述したように、モバイルデバイス502などの登録済みモバイルデバイスを監視してもよい。デバイスマネージャはモバイルデバイスにインストールされているアプリケーションを監視してもよい。一つの実施形態において、デバイスマネージャは新たなアプリケーションのインストールがないか、モバイルデバイスを定期的に監視してもよい。
図16のプロセスは、ステップ1602からステップ1604に進み、管理モードおよび非管理モードで稼動することが可能なアプリケーションがモバイルデバイスにインストールされていることを検出する。たとえば、デバイスマネージャ524は登録済みモバイルデバイスを監視し、管理モードおよび非管理モードで稼動することが可能なアプリケーションがモバイルデバイスにインストールされていることを判定する。デバイスマネージャはインストールされているアプリケーションが管理モードおよび非管理モードで稼動することが可能であることを、アプリケーションに関連するメタデータまたは他のあらゆる適した検出方法で検出してもよい。
図16のステップ1604からステップ1606に進み、検出されたアプリケーションと通信するようにリソースがプロビジョニングされる。たとえば、アプリケーションが管理モードで稼動しているとき、検出されたアプリケーションと通信するために、ゲートウェイサーバ(例、ゲートウェイサーバ560)などのリソースをプロビジョニングしてもよい。
一つの実施形態において、リソースはクラウドストレージリソースを備えてもよい。クラウドストレージリソースは企業データなどのセキュリティ保護されたデータを格納してもよい。この実施例では、クラウドストレージリソースは、管理モードで稼動している検出されたアプリケーションがクラウドストレージリソースに格納されているセキュリティ保護されたデータにプロビジョニング後にアクセスするように、管理モードで稼動している検出されたアプリケーションと通信するためにプロビジョニングしてもよい。
一つの実施形態において、リソースのプロビジョニングは、アプリケーションのアカウントの作成を備えてもよい。このような実施形態では、図16のステップ1604からステップ1606に進み、モバイルデバイスからの識別情報に関連するアプリケーションのためにアカウントが作成される。たとえば、登録済みモバイルデバイスはモバイルデバイスに関連する識別情報、および/またはモバイルデバイスのユーザに関連する識別情報を有してもよい。一つの実施形態において、識別情報は、企業のアクティブディレクトリのログインおよびパスワードなど、企業資格情報を備えてもよい。
別の実施形態では、識別情報は企業に関連するトークンを備えてもよい。たとえば、登録済みモバイルデバイスは、登録済みモバイルデバイスおよび/または登録済みモバイルデバイスのユーザを識別する企業サーバから、セキュリティ・アサーション・マークアップ言語(SAML)トークンまたは他のあらゆる適したトークンなどのトークンを受信してもよい。識別情報は他のあらゆる適した識別情報を備えてもよい。デバイスマネージャ(例、デバイスマネージャ524)は、トークンなど、モバイルデバイスの識別子にアクセスしてもよく、またはモバイルデバイスは識別情報を提供してもよい。
一つの実施形態において、管理モードおよび非管理モードで実行することが可能であって識別情報に関連するアプリケーションのために、アカウントを作成してもよい。この実施例では、識別情報はユーザ資格情報、たとえば企業資格情報、トークン、または他のあらゆる適した識別情報を備えてもよい。一つの実施形態において、アカウントは、そのアプリケーションについて識別情報に関連するアカウントがまだ存在していないとの判定に基づいて作成してもよい。たとえば、サーバは識別情報に基づいてアプリケーションのアカウントを検索してもよく、サーバがアカウントを見つけられないことに基づいてアカウントを作成してもよい。
一つの実施形態において、作成されたアカウントは、管理モードで稼動しているアプリケーションと通信するように構成されているリソースに関連付けてもよい。たとえば、作成されたアカウントは、管理モードで稼動しているアプリケーションと通信するように構成されているクラウドストレージリソースに関連付けてもよい。
図16のステップ1606からステップ1608に進み、識別情報に基づいてアカウントが識別される。たとえば、企業に関連するユーザなど、ユーザのアカウントは、ユーザの資格情報などの識別情報に基づいて識別してもよい。識別されたアカウントは企業アクティブディレクトリ・アカウント、企業リソース権に属するアカウント、または他のあらゆる適した企業用アカウントを備えてもよい。一つの実施形態において、上述したように、識別されたアカウントにサインオンすることにより、登録済みモバイルデバイスで企業リソースにアクセスしてもよい。
図16のステップ1608からステップ1610に進み、作成されたアカウントを識別されたアカウントにリンクさせてもよい。たとえば、管理モードおよび非管理モードで稼動することが可能なアプリケーションのために作成されたアカウントは、アクティブディレクトリ・アカウントなどの企業用アカウントにリンクさせてもよい。リンクを使用して、管理モードで稼動しているアプリケーションは、識別されたアカウントのアクセス権に基づいて、システムのリソースにアクセスすることができてもよい。たとえば、管理モードで稼動しているアプリケーションと通信するように構成されているリソースがクラウドストレージリソースを備える場合、管理モードで稼動しているアプリケーションはリンクに基づいてクラウドストレージリソースのセキュリティ保護されたデータにアクセスしてもよい。
一つの実施形態において、図16に従い管理モードで稼動することの可能なアプリケーションのためにアカウントを作成した後、アプリケーションは作成されたアカウントに基づきセキュリティ保護されたデータにアクセスしてもよい。たとえば、ユーザは、管理モードで稼動しているアプリケーションおよび、ログインとパスワードまたはトークンなど、ユーザの資格情報を使用して、作成されたアカウントにログインしてもよい。ゲートウェイサーバ560などのサーバは、提供されるユーザの資格情報に基づいて、管理モードで稼動しているアプリケーションに対し、作成されたアカウントにログインすることを許可してもよい。アプリケーションは、ユーザの電子メールまたはセキュリティ保護されたドキュメントなど、企業データへのアクセスを要求してもよい。サーバはリンクされたアカウントに基づいて、アプリケーションへのアクセスを許可してもよい。たとえば、リンクされたアカウントはアクティブディレクトリ・アカウントおよび/またはユーザのアクセス権を備えるアカウントを備えてもよい。リンクされたアカウントが備えるアクセス権に従って、アプリケーションに企業データへのアクセスが許可されてもよい。
一つの実施形態において、アプリケーションは私物アプリの業務利用を備えてもよく、デバイスマネージャ524はアプリケーションを改変および/または構成してもよい。たとえば、改変および/または構成は、アプリケーションが管理モードで稼動するような、アプリケーションの調整を備えてもよい。たとえば、アプリケーションは、管理モードで稼動している間にアプリケーションによって格納されたデータを暗号化し、もしくはセキュリティ保護されたデータコンテナに格納するように改変および/または構成してもよい。別の実施例では、アプリケーションは、管理モードで稼動している間にアプリケーションが1つ以上のセキュリティ保護されたリソース(例、ゲートウェイサーバ560)と通信するように改変および/または構成してもよい。この実施例では、セキュリティ保護されたリソースは、上述したように、管理モードで稼動しているアプリケーションと通信するようにプロビジョニングされたクラウドストレージリソースを備えてもよい。
一つの実施形態において、アプリケーションストアは、複数の操作モードで実行することが可能なアプリケーションを提供してもよい。アプリケーションストアはモバイルデバイスにダウンロード可能なアプリケーションを提供してもよい。たとえば、モバイルデバイスはダウンロード可能なアプリケーションのリストを要求してもよく、アプリケーションストアは要求されたリストを提供してもよい。それから、モバイルデバイスはアプリケーションストアから一覧表示されたアプリケーションのうちの1つをダウンロードし、ダウンロードしたアプリケーションをインストールしてもよい。
一つの実施形態において、アプリケーションストアは一アプリケーションの複数のバージョンを提供してもよく、複数の操作モードで稼動することが可能なバージョンを提供してもよい。たとえば、アプリケーションストアは、上述したように、管理モードまたは非管理モードで稼動することが可能なアプリケーションのバージョンを提供してもよい。
図17に、一つの実施形態に従い、複数のモードで実行することができるダウンロード可能なアプリケーションを提供するための方法ステップのフローチャートを示す。図17はステップ1702から始まり、ダウンロード可能なアプリケーションに関する要求を受信する。たとえば、モバイルデバイス502などのモバイルデバイスは、アプリケーションストアからダウンロード可能なアプリケーションのリストを要求してもよい。
図17のプロセスは、ステップ1702からステップ1704に進み、モバイルデバイスが複数のモードでアプリケーションを実行するように構成されているかどうかが判定される。たとえば、モバイルデバイスは管理モードおよび非管理モードでアプリケーションを実行するように構成されているかどうかを判定してもよい。
一つの実施形態において、モバイルデバイスが、管理モードおよび非管理モードでアプリケーションを実行することが可能なアプリケーション管理フレームワークを用いて構成されているかどうかを判定してもよい。モバイルデバイスは、アプリケーション管理フレームワーク614などのアプリケーション管理フレームワークを用いて構成されているかどうかを判定してもよい。
一つの実施形態において、モバイルデバイスが管理モードおよび非管理モードでアプリケーションを実行することが可能なアプリケーション管理フレームワークを用いて構成されているかどうかの判定は、アプリケーション管理フレームワークに関連する管理対象アプリケーションがモバイルデバイスにインストールされていることの検出を備えてもよい。たとえば、アプリケーション管理フレームワーク614などのアプリケーション管理フレームワークに関連するクライアントエージェント604などの管理対象アプリケーションが、モバイルデバイスにインストールされているかどうかを検出してもよい。クライアントエージェント604などのアプリケーションがモバイルデバイスにインストールされていることの検出は、モバイルデバイスが管理モードおよび非管理モードでアプリケーションを実行することが可能なアプリケーション管理フレームワークを用いて構成されているという判定を認めてもよい。
一つの実施形態において、モバイルデバイスが管理モードおよび非管理モードでアプリケーションを実行することが可能なアプリケーション管理フレームワークを用いて構成されているかどうかの判定は、アプリケーション管理フレームワークに関連するデバイスマネージャによってモバイルデバイスが管理されていることの検出を備えてもよい。たとえば、アプリケーション管理フレームワーク614などのアプリケーション管理フレームワークに関連するデバイスマネージャ524などのデバイスマネージャが、モバイルデバイスを管理しているかどうかを検出してもよい。デバイスマネージャ524などのデバイスマネージャがモバイルデバイスを管理していることの検出は、管理モードおよび非管理モードでアプリケーションを実行することが可能なアプリケーション管理フレームワークを用いてモバイルデバイスが構成されていることの判定を認めてもよい。
図17のステップ1704からステップ1706に進み、判定に基づいて、ダウンロード可能なアプリケーションのリストがモバイルデバイスに送信される。たとえば、モバイルデバイスが管理モードおよび非管理モードでアプリケーションを実行することが可能なアプリケーション管理フレームワークを用いて構成されていると判定される場合、管理モードおよび非管理モードの両方で実行可能なアプリケーションの第1バージョンを含むダウンロード可能なアプリケーションのリストを提供してもよい。別の実施例では、モバイルデバイスが管理モードおよび非管理モードでアプリケーションを実行することが可能なアプリケーション管理フレームワークを用いて構成されていないと判定される場合、管理モードおよび非管理モードの両方で実行可能なアプリケーションの第1バージョンを除外したダウンロード可能なアプリケーションのリストを提供してもよい。たとえば、アプリケーションはファイル共有アプリケーションを備えてもよく、ファイル共有アプリケーションの第1バージョンは、上述したように、管理モードおよび非管理モードの両方で実行可能なアプリケーションを備えてもよい。
一つの実施形態において、管理モードおよび非管理モードの両方で実行可能なアプリケーションの第1バージョンは、アプリケーション管理フレームワーク614など、モバイルデバイスのアプリケーション管理フレームワークに関連付けてもよい。アプリケーションの第1バージョンは、モバイルデバイスによって実装されているアプリケーション管理フレームワークとの関連に基づいて選択してもよい。
たとえば、アプリケーションストアは、管理モードおよび非管理モードで実行可能なアプリケーションの複数のバージョンを備えてもよく、アプリケーションの第1バージョンがアプリケーション管理フレームワークによる実行および/または管理のために構成されているので、アプリケーションの第1バージョンを一覧表示のために選択してもよい。所定のモバイルデバイスのアプリケーション管理フレームワークに基づいてアプリケーションの適切なバージョンを選択することにより、デバイスによって実装されているアプリケーション管理フレームワークに関係なく、単一のアプリケーションストアが多様なモバイルデバイスにアプリケーションを提供してもよい。このように、各アプリケーション管理フレームワークのプロバイダは専用のアプリケーションストアを維持する必要がなく、アプリケーション開発者は配信のために単に単一のアプリケーションストアにアプリケーションの1つ以上のバージョンを供給することができる。
一つの実施形態において、非管理モードおよび管理モードの両方で実行可能なアプリケーションの第1バージョンは、デバイスマネージャ524など、モバイルデバイスを管理するデバイスマネージャに関連付けてもよい。アプリケーションの第1バージョンはデバイスマネージャとの関連に基づいて選択してもよい。たとえば、アプリケーションストアは管理モードおよび非管理モードで実行可能なアプリケーションの複数のバージョンを備えてもよく、アプリケーションの第1バージョンはモバイルデバイスを管理するデバイスマネージャとの関連に基づいて一覧表示のために選択してもよい。
一つの実施形態において、ダウンロード可能なアプリケーションのリストに基づいて、モバイルデバイスはアプリケーションをダウンロードしてインストールしてもよい。たとえば、リストが管理モードおよび非管理モードで実行可能なアプリケーションのバージョンを備える実施形態では、モバイル機はアプリケーションのそのバージョンをダウンロードし、アプリケーションのそのバージョンをインストールしてもよい。それから、モバイルデバイスはインストールしたアプリケーションを管理モードまたは非管理モードで実行してもよい。
別の実施形態では、登録済みモバイルデバイスにインストールされるアプリケーションは、外部アプリケーションを備えてもよい。たとえば、登録済みモバイルデバイスは、企業アプリケーションストアなどの登録済みモバイルデバイスのデバイスマネージャ(例、デバイスマネージャ524)に属する企業ソースではなく、一般アプリケーションストアなど、モバイルデバイスのデバイスマネージャ(例、デバイスマネージャ524)に属さない外部ソースからアプリケーションを受信してもよい。一つの実施形態において、外部アプリケーションは、企業アプリケーションストアとは関連のない一般アプリケーションを備えてもよい。
一つの実施形態において、外部アプリケーションは企業用アカウントおよび/または企業サーバへのサインオンを要求してもよい。企業用アカウントは、企業のアクティブディレクトリに関連するアカウントなど、企業に関連するアカウントを備えてもよい。たとえば、外部アプリケーションは電子メール・クライアントを備えてもよく、電子メール・クライアントは企業電子メールアカウントへのサインオンを要求してもよい。別の実施例では、外部アプリケーションはクラウドストレージ・アプリケーションを備えてもよく、クラウドストレージ・アプリケーションは、ゲートウェイサーバなどの企業リソースへのアクセスを許可するサーバへのサインオンを要求してもよい。
一つの実施形態において、図5の登録済みモバイルデバイス502などの登録済みモバイルデバイスは、外部アプリケーションをインストールさせてもよく、外部アプリケーションは、図5のゲートウェイサーバ560などのサーバに、企業用アカウントへのアクセス要求を提出してもよい。これは私物アプリの業務利用(BYOA)実施形態の実施例を備えてもよい。
一つの実施形態において、管理対象モバイルデバイスにインストールされている私物アプリの業務利用は、モバイルデバイスを管理するデバイスマネージャによって改変および/または構成してもよい。たとえば、モバイルデバイス502にインストールされている私物アプリの業務利用は、デバイスマネージャ524によって改変してもよい。改変および/または構成は、アプリケーションが管理モードで稼動するようなアプリケーションの調整を備えてもよい。たとえば、アプリケーションは、管理モードで稼動しているときに、アプリケーションが格納しているデータを暗号化するか、またはセキュリティ保護されたデータコンテナに格納するように改変および/または構成してもよい。別の実施例では、アプリケーションは、管理モードで稼動しているときに、アプリケーションが1つ以上のセキュリティ保護されたリソース(例、ゲートウェイサーバ560)と通信してもよいように改変および/または構成してもよい。
構造的な特徴および/または方法論的な行為に特有の用語で本発明に係る主題を説明してきたが、添付の請求項で定義される主題は必ずしも上述した特有の特徴または行為に制限されるものではないことは理解されるべきである。むしろ、上述した特有の特徴および行為は以下の請求項の例示的な実施態様として説明され、他の実施形態も実施してもよい。たとえば、さまざまな他の実施形態は以下のものを含むが、これだけに制限されるものではない。
本発明の一つの実施形態は、モバイルデバイスで、管理モードである第1モードでアプリケーションを稼動するステップと、モバイルデバイスで、非管理モードである第2モードでアプリケーションを稼動するステップであって、前記アプリケーションは前記アプリケーションが第1モードで稼動しているときとは相互に排他的な時に第2モードで稼動している、前記稼動するステップと、アプリケーションに関連するデータを格納する要求を受信するステップと、アプリケーションが管理モードで稼動しているときに第1プロトコルに従ってデータを格納し、アプリケーションが非管理モードで稼動しているときに第2プロトコルに従ってデータを格納するステップとを備える方法を含んでいてもよい。
このような実施形態では、第1プロトコルは第1データコンテナにデータを格納することを備えてもよく、第2プロトコルは第1データコンテナとは相互に排他的な第2データコンテナにデータを格納することを備えてもよい。このような実施形態は、非管理モードで稼動しているときに、アプリケーションが第1データコンテナにアクセスするのを制限することをさらに含んでもよい。このような実施形態は、そのデータを格納する前に第1鍵でデータを暗号化することを備える第1プロトコルと、データを格納する前に第2鍵でデータを暗号化することおよびデータを暗号化しないで格納することのうちの少なくとも1つを備える第2プロトコルとをさらに含んでもよい。ある場合には、管理モードで稼動しているアプリケーションは、アプリケーションとは別で、複数のアプリケーションに適用可能な1つ以上のポリシーファイルに従って、デバイスマネージャによって管理される。いくつかの側面は、アプリケーションの管理モードを使用不可にする信号をデバイスマネージャから受信することも含んでもよい。それが起こる場合、本発明の実施形態は、受信した信号に応答して、第1プロトコルに従って格納されているデータの位置を特定し、位置特定したデータを選択的に削除してもよい。第1プロトコルに従って格納されているデータの位置を特定することは、アプリケーションに関連する管理対象アカウントを判定することと、管理対象アカウントに基づいてデータの位置を特定することとを含んでもよい。ある場合には、第1プロトコルに従って格納されているデータの位置を特定することは、第1プロトコルに従ってデータを格納しているコンテナの位置を特定することをさらに備えてもよい。ある側面において、第1プロトコルに従って格納されているデータの位置を特定することは、第1プロトコルに関連する暗号化鍵を判定することと、判定された暗号化鍵に基づいてデータの位置を特定することとをさらに備える。いくつかの実施形態において、デバイスマネージャは、モバイルデバイスにインストールされているブラックリストアプリケーションを特定することに応答して、管理モードを使用不可にする。デバイスマネージャは、アプリケーションに関連する管理対象アカウントが失効していることの検出に応答して、管理モードを使用不可にしてもよい。デバイスマネージャは、モバイルデバイスがジェイルブレイクまたはルート化されていることの検出に応答して、管理モードを使用不可にしてもよい。ある場合には、位置特定されたデータを選択的に削除することは、モバイルデバイスに格納されているアプリケーションに関連する個人データを削除しない。
別の実施形態は、プロセッサを備えるコンピューティングデバイスを含んでもよく、前記コンピューティングデバイスは第1モードでアプリケーションを稼動するように構成されており、前記第1モードはアプリケーションとは別で、コンピューティングデバイス上で実行する複数のアプリケーションの動作を管理するために使用できる1つ以上のポリシーファイルの制御下で動作する管理モードであり、さらに第2モードでアプリケーションを稼動するように構成されており、前記アプリケーションは前記アプリケーションが第1モードで稼動しているときとは相互に排他的な時に第2モードで稼動し、さらにアプリケーションに関連したデータを格納する要求を受信するように構成されており、さらにアプリケーションが第1モードで稼動しているときに第1プロトコルに従ってデータを格納し、アプリケーションが第2モードで稼動しているときに第2プロトコルに従ってデータを格納するように構成されている。いくつかの側面において、第1プロトコルは第1データコンテナにデータを格納することを備えており、第2プロトコルは第1データコンテナとは異なる第2データコンテナにデータを格納することを備える。いくつかの実施形態では、コンピューティングデバイスは、第2モードで稼動しているときにアプリケーションが第1データコンテナにアクセスするのを制限するようにさらに構成されている。いくつかの実施形態では、第1プロトコルは、そのデータを格納する前に第1鍵でデータを暗号化することを備え、第2プロトコルは、データを格納する前に第2鍵でデータを暗号化すること、およびデータを暗号化しないで格納することのうちの少なくとも1つを備える。いくつかの実施形態では、第1モードは第1管理モードであり、第2モードは第1管理モードとは異なる少なくとも1つのポリシーファイルに従って管理される第2の管理モードである。
さらに別の実施形態では、データ処理システムの1つ以上のプロセッサによって実行されるときに、システムに、管理モードである第1モードでアプリケーションを稼動させ、非管理モードである第2モードでアプリケーションを稼動させ、前記アプリケーションは前記アプリケーションが第1モードで稼動しているときとは相互に排他的な時に第2モードで稼動し、アプリケーションに関連するデータを格納する要求を受信させ、アプリケーションが管理モードで稼動しているときには第1プロトコルに従ってデータを格納させ、アプリケーションが非管理モードで稼動しているときには第2プロトコルに従ってデータを格納させる、コンピュータ実行可能な命令を格納する1つ以上の非一時的なコンピュータ読取可能な記憶媒体を含んでもよい。
別の実施形態において、本発明の方法は、モバイルデバイスに新たなソフトウェア・アプリケーションがインストールされていることを判定するためにモバイルデバイスを定期的に監視するステップと、アプリケーションが第1モードおよび第2モードの両方で稼動することが可能であることを検出するステップであって、前記第1モードはアプリケーションとは別で、コンピューティングデバイス上で実行する複数のアプリケーションの動作を管理するために使用可能な1つ以上のポリシーファイルの制御下で動作する管理モードである、前記検出するステップと、アプリケーションが第1モードで稼動しているときにのみリソースがアプリケーションと通信し、アプリケーションが第2モードで稼動しているときにはアプリケーションと通信しないように構成されるように、アプリケーションと通信するリソースをプロビジョニングするステップとを含んでもよい。
いくつかの側面において、リソースはセキュリティ保護されたデータを格納するクラウドストレージリソースを備える。いくつかの側面において、リソースをプロビジョニングすることは、アプリケーションが第1モードで稼動している間に、クラウドデータストレージリソースに格納されているセキュリティ保護されたデータへのアクセスをアプリケーションに許可するように、クラウドデータストレージリソースをプロビジョニングすることを備える。いくつかの側面では、モバイルデバイスはデバイスマネージャによって管理され、デバイスマネージャは1つ以上のポリシーファイルを管理する。いくつかの側面において、リソースをプロビジョニングすることは、モバイルデバイスからの識別情報に関連するアプリケーションのリソースを用いてアカウントを作成することと、識別情報に基づいて管理対象アカウントの位置を特定することと、作成したアカウントに管理対象アカウントをリンクさせることとをさらに備える。いくつかの側面において、第2モードは、第1モードとは異なる1つ以上のポリシーファイルの制御下で動作する第2の管理モードである。いくつかの側面において、第1モードは第1のユーザの役割に関連し、第2モードは第1のユーザの役割とは異なる第2のユーザの役割に関連する。いくつかの側面において、第1モードは第1の職場環境タイプに関連し、第2モードは第2の職場環境タイプに関連する。いくつかの側面において、方法は、アプリケーションが第1モードで稼動していることを検出するステップと、作成したアカウントに基づいてアプリケーションにセキュリティ保護されたデータへのアクセスを許可するステップとを含む。いくつかの側面において、方法は、第1モードで稼動しているアプリケーションから、セキュリティ保護されたデータへのアクセス要求を備える要求を受信するステップと、作成したアカウントに基づいてアプリケーションにセキュリティ保護されたデータへのアクセス権を付与するステップとを含む。いくつかの側面において、アプリケーションは企業によってデバイスに配信される。
別の例示的な実施形態において、プロセッサを備えるデバイスは、新たなソフトウェア・アプリケーションがモバイルデバイスにインストールされていることを判定するためにモバイルデバイスを定期的に監視するように構成され、さらにアプリケーションとは別で、コンピューティングデバイス上で実行する複数のアプリケーションの動作を管理するために使用可能な1つ以上のポリシーファイルの制御下で動作する管理モードである第1モード、および第2モードの両方でアプリケーションが稼動することが可能であることを検出するように構成され、さらにアプリケーションが第1モードで稼動しているときにのみリソースがアプリケーションと通信し、アプリケーションが第2モードで稼動しているときにはアプリケーションと通信しないように構成されるようにアプリケーションと通信するリソースをプロビジョニングするように構成されている。いくつかの側面において、リソースはセキュリティ保護されたデータを格納するクラウドストレージリソースを備える。
いくつかの側面において、リソースをプロビジョニングすることは、アプリケーションが第1モードで稼動している間に、クラウドデータストレージリソースに格納されているセキュリティ保護されたデータへのアクセスをアプリケーションに許可するようにクラウドデータストレージリソースをプロビジョニングすることを備える。いくつかの側面において、モバイルデバイスはデバイスマネージャによって管理され、デバイスマネージャは1つ以上のポリシーファイルを管理する。いくつかの側面において、リソースをプロビジョニングすることは、モバイルデバイスからの識別情報に関連するアプリケーションのリソースを用いてアカウントを作成することと、識別情報に基づいて管理対象アカウントの位置を特定することと、作成したアカウントに管理対象アカウントをリンクさせることとをさらに備える。いくつかの側面において、第2モードは、第1モードとは異なる1つ以上のポリシーファイルの制御下で動作する第2の管理モードである。いくつかの側面において、第1モードは第1のユーザの役割に関連し、第2モードは第2のユーザの役割に関連する。いくつかの側面において、デバイスはさらに、アプリケーションが第1モードで稼動していることを検出し、作成したアカウントに基づいてセキュリティ保護されたデータへのアクセスをアプリケーションに許可するように構成されている。
別の例示的な実施形態において、1つ以上の非一時的なコンピュータ読取可能な記憶媒体は、データ処理システムの1つ以上のプロセッサで実行したときに、システムに、新たなソフトウェア・アプリケーションがモバイルデバイスにインストールされているかどうかを判定するためにモバイルデバイスを定期的に監視することと、アプリケーションが、アプリケーションとは別で、コンピューティングデバイス上で実行する複数のアプリケーションの動作を管理するために使用可能な1つ以上のポリシーファイルの制御下で動作する管理モードである第1モード、および第2モードの両方で稼動することが可能であることを検出することと、アプリケーションが第1モードで稼動しているときにのみリソースがアプリケーションと通信し、アプリケーションが第2モードで稼動しているときにはアプリケーションと通信しないようにリソースを構成するようにアプリケーションと通信するリソースをプロビジョニングすることとを行わせるコンピュータ実行可能命令を格納する。
本出願は、2013年9月9日に提出された、「Data Management for an Application with Multiple Operation Modes」と題する米国出願第14/021,227号、2013年8月2日に提出された「Policy-Based Application Management」と題する仮出願第61/861,736号、2013年8月2日に提出された「Data Management for an Application with Multiple Operation Modes」と題する仮出願第61/861,758号、2013年3月29日に提出された「Systems and Methods for Enterprise Mobility Management」と題する仮出願第61/806,557号の各優先権を主張するとともに、2013年5月2日に提出された「Application with Multiple Operation Modes」と題する米国特許出願第13/886,889号の一部継続出願であり、それぞれを参照によりそれらの全体を本明細書に組み込む。