(57)【要約】【課題】企業が制御するモバイルアプリケーション、すなわち非管理対象デバイスで動作するように構成された管理対象モバイルアプリケーションを提供する。【解決手段】アクセスマネージャ724はモバイルデバイス704で動作して、そのモバイルデバイス704でインストールされたモバイルアプリケーション720を検証する。モバイルアプリケーション720の検証に成功しなかった場合は、モバイルアプリケーション720のコンピューティングリソースへのアクセスを阻止する。モバイルアプリケーション720の検証に成功した場合は、モバイルアプリケーション720を信用されたモバイルアプリケーション720として識別する。アクセスマネージャ724はこのようにして、信用されたモバイルアプリケーション720のコンピューティングリソースへのアクセスを許可する。【選択図】図７
2016526223.tif 000002
【特許請求の範囲】
【請求項１】
企業リソースへのアクセスを管理する方法であって、
モバイルコンピューティングデバイスでアクセスマネージャを実行し、
前記アクセスマネージャを使用して前記モバイルコンピューティングデバイスにおいてインストールしたモバイルアプリケーションを検証し、
前記アクセスマネージャによる前記モバイルアプリケーションの検証に成功しなかった場合は前記モバイルアプリケーションのコンピューティングリソースへのアクセスを阻止し、
前記アクセスマネージャによる前記モバイルアプリケーションの検証に成功した場合は前記モバイルアプリケーションを信用されたモバイルアプリケーションとして識別し、
前記信用されたモバイルアプリケーションの前記コンピューティングリソースへのアクセスを許可する方法。
【請求項２】
前記モバイルアプリケーションに関連付けられた識別情報を前記モバイルコンピューティングデバイスに格納することをさらに含み、
前記モバイルアプリケーションを検証することが、前記格納された識別情報に基づいて前記モバイルアプリケーションを検証することを含む、請求項１に記載の方法。
【請求項３】
前記モバイルアプリケーションを検証することが、さらに、
前記モバイルアプリケーションに、前記モバイルアプリケーションを識別するレスポンスを提供するように要求することと、
前記格納された識別情報に基づいて期待されるレスポンスを少なくとも部分的に生成することと、
前記期待されるレスポンスを前記モバイルアプリケーションによって提供された前記レスポンスと比較することと、
前記期待されるレスポンスが前記モバイルアプリケーションによって提供された前記レスポンスと一致する場合は、前記モバイルアプリケーションは有効であると判定することと、
前記期待されるレスポンスが前記モバイルアプリケーションによって提供された前記レスポンスと一致しない場合は、前記モバイルアプリケーションは無効であると判定することと、
を含む、請求項２に記載の方法。
【請求項４】
前記モバイルアプリケーションが前記モバイルコンピューティングデバイスにおいてインストールされる前に、前記モバイルアプリケーション内に識別トークンを組み込むことと、
前記モバイルアプリケーションを前記組み込まれた識別トークンを抽出するように構成することと、
前記期待されるレスポンスが、少なくとも部分的に、前記組み込まれた識別トークンに基づくように、前記格納された識別情報内に前記組み込まれた識別トークンを含めることと、
をさらに含み、
前記モバイルアプリケーションによって提供された前記レスポンスが、少なくとも部分的に、前記モバイルアプリケーションから抽出された前記組み込まれた識別トークンに基づいている、請求項３に記載の方法。
【請求項５】
前記モバイルアプリケーションを検証することが、さらに、
前記アクセスマネージャを使用して前記モバイルアプリケーションから１つ以上の識別トークンを導出することと、
前記組み込まれた識別トークンおよび前記導出された識別トークンの配置に基づいて期待されるアプリケーションの署名を生成することと、
前記期待されるレスポンスをさらに、少なくとも部分的に、前記期待されるアプリケーションの署名に基づいて生成することと、
を含む、請求項４に記載の方法。
【請求項６】
前記モバイルアプリケーションを検証することが、さらに、
前記モバイルアプリケーションにノンス（nonce）を提供することと、
前記期待されるアプリケーションの署名および前記ノンスを使用して期待されるハッシュ値を計算することと、をさらに含み、
前記期待されるレスポンスは前記期待されるハッシュ値である、請求項５に記載の方法。
【請求項７】
前記格納された識別情報は、前記モバイルアプリケーションの作成時に前記モバイルアプリケーションのために生成されるオリジナルデジタル証明書である、請求項２に記載の方法。
【請求項８】
前記モバイルアプリケーションを検証することが、
前記オリジナルデジタル証明書に基づく第一のハッシュ値および前記モバイルコンピューティングデバイスのモバイルオペレーティングシステムから受信したデジタル証明書に基づく第二のハッシュ値を計算することと、
前記第一のハッシュ値を前記第二のハッシュ値と比較することと、
前記第一のハッシュ値が前記第二のハッシュ値と一致する場合は、前記モバイルアプリケーションは有効であると判定することと、
前記第一のハッシュ値が前記第二のハッシュ値と一致しない場合は、前記モバイルアプリケーションは無効であると判定することと、
を含む、請求項７に記載の方法。
【請求項９】
前記アクセスマネージャを使用して前記モバイルコンピューティングデバイスで伝送制御プロトコル（ＴＣＰ）ソケットを開くことと、
前記モバイルアプリケーションが前記ＴＣＰソケットで前記アクセスマネージャとの接続を確立するのを待つことと、をさらに含み、
前記モバイルアプリケーションが前記ＴＣＰソケットで前記アクセスマネージャとの接続を確立すると、前記アクセスマネージャが前記モバイルアプリケーションの検証を始動する、請求項２に記載の方法。
【請求項１０】
前記信用されたモバイルアプリケーションに関連付けられたアプリケーションポリシーを取得することと、
前記アプリケーションポリシーを前記モバイルコンピューティングデバイスで格納することと、
前記アクセスマネージャを使用し、前記アプリケーションポリシーに基づいて前記信用されたモバイルアプリケーションの動作を制御することと、
をさらに含む、請求項１に記載の方法。
【請求項１１】
コンピューティングリソースにアクセスするように構成されたモバイルアプリケーションと、
前記モバイルアプリケーションと関連付けられた格納された識別情報と、
前記格納された識別情報に基づいて前記モバイルアプリケーションを検証するように構成されたアクセスマネージャと、を含み、
前記アクセスマネージャはさらに、
前記モバイルアプリケーションの検証に成功しなかった場合は前記モバイルアプリケーションのコンピューティングリソースへのアクセスを阻止し、
前記モバイルアプリケーションの検証に成功した場合は前記モバイルアプリケーションを信用されたモバイルアプリケーションとして識別し、かつ
前記信用されたモバイルアプリケーションの前記コンピューティングリソースへのアクセスを許可するように構成されている、
モバイルコンピューティングデバイス。
【請求項１２】
前記アクセスマネージャがさらに、
前記モバイルアプリケーションに、前記モバイルアプリケーションを識別するレスポンスを提供するように要請し、
少なくとも部分的に、前記格納された識別情報に基づいて期待されるレスポンスを生成し、
前記期待されるレスポンスを前記モバイルアプリケーションによって提供された前記レスポンスと比較し、
前記期待されるレスポンスが前記モバイルアプリケーションによって提供された前記レスポンスと一致する場合は、前記モバイルアプリケーションは有効であると判定し、かつ
前記期待されるレスポンスが前記モバイルアプリケーションによって提供された前記レスポンスと一致しない場合は、前記モバイルアプリケーションは無効であると判定するように構成されている、
請求項１１に記載のモバイルコンピューティングデバイス。
【請求項１３】
前記モバイルアプリケーションは組み込まれた識別トークンを含み、かつ前記組み込まれた識別トークンを抽出するように構成され、
前記期待されるレスポンスが、少なくとも部分的に、前記組み込まれた識別トークンに基づくように、前記格納された識別情報は前記組み込まれた識別トークンを含み、
前記モバイルアプリケーションによって提供された前記レスポンスは、少なくとも部分的に、前記モバイルアプリケーションから抽出された前記組み込まれた識別トークンに基づく、
請求項１２に記載のモバイルコンピューティングデバイス。
【請求項１４】
前記アクセスマネージャがさらに、
前記モバイルアプリケーションから１つ以上の識別トークンを導出し、
前記組み込まれた識別トークンおよび前記導出された識別トークンの配設に基づいて期待されるアプリケーションの署名を生成し、かつ
前記期待されるレスポンスをさらに、少なくとも部分的に、前記期待されるアプリケーションの署名に基づいて生成するように構成されている、
請求項１３に記載のモバイルコンピューティングデバイス。
【請求項１５】
前記アクセスマネージャがさらに、
前記モバイルアプリケーションにノンス（nonce）を提供し、
前記期待されるアプリケーションの署名および前記ノンスを使用して期待されるハッシュ値を計算するよう構成され、
前記期待されるレスポンスは前記期待されるハッシュ値である、
請求項１４に記載のモバイルコンピューティングデバイス。
【請求項１６】
前記格納された識別情報は、前記モバイルアプリケーションの作成時に前記モバイルアプリケーションのために生成されるオリジナルデジタル証明書である、請求項１１に記載のモバイルコンピューティングデバイス。
【請求項１７】
モバイルオペレーティングシステムをさらに含み、
前記アクセスマネージャがさらに、
前記オリジナルデジタル証明書に基づく第一のハッシュ値および前記モバイルオペレーティングシステムから受信したデジタル証明書に基づく第二のハッシュ値を計算し、
前記第一のハッシュ値を前記第二のハッシュ値と比較し、
前記第一のハッシュ値が前記第二のハッシュ値と一致する場合は、前記モバイルアプリケーションは有効であると判定し、かつ
前記第一のハッシュ値が前記第二のハッシュ値と一致しない場合は、前記モバイルアプリケーションは無効であると判定するように構成された、
請求項１６に記載のモバイルコンピューティングデバイス。
【請求項１８】
前記コンピューティングリソースが少なくとも、
ｉ）  前記モバイルコンピューティングデバイスまたはリモートコンピューティングシステムで動作するソフトウェア・アプリケーション、
ｉｉ）  前記リモートコンピューティングシステムの前記モバイルコンピューティングデバイスによって提供されるサービス、
ｉｉｉ）  前記モバイルコンピューティングデバイスまたは前記リモートコンピューティングシステムで格納されたデータ、
ｉｖ）  前記モバイルコンピューティングデバイスまたは前記リモートコンピューティングシステムのハードウェア、および
ｖ）  それらの組み合わせ
のうちの１つである、
請求項１１に記載のモバイルコンピューティングデバイス。
【請求項１９】
前記モバイルデバイスに関連付けられたアプリケーションポリシーをさらに含み、
前記アクセスマネージャが前記アプリケーションポリシーに基づいて前記信用されたモバイルアプリケーションの動作を制御するように構成された、
請求項１１に記載のモバイルコンピューティングデバイス。
【請求項２０】
モバイルコンピューティングデバイスで動作するように構成されたアクセスマネージャであって、
前記モバイルコンピューティングデバイスでインストールされたモバイルアプリケーションを、前記モバイルコンピューティングデバイスで格納されかつ前記モバイルアプリケーションに関連付けられた識別情報に基づいて検証し、
前記モバイルアプリケーションの検証に成功しなかった場合は前記モバイルアプリケーションのコンピューティングリソースへのアクセスを阻止し、
前記モバイルアプリケーションの検証に成功した場合は前記モバイルアプリケーションを信用されたモバイルアプリケーションとして識別し、
前記信用されたモバイルアプリケーションの前記コンピューティングリソースへのアクセスを許可し、かつ
前記モバイルコンピューティングデバイスで格納されたアプリケーションポリシーに基づいて前記信用されたモバイルアプリケーションの動作を制御するように構成された、
アクセスマネージャ。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に説明する各態様は、全体としてモバイルコンピューティングデバイスにおけるモバイルアプリケーションの管理に関するものである。さらに具体的には、非管理対象デバイスで動作するモバイルアプリケーションを検証し、かつそのモバイルアプリケーションの実行を制御するアプローチを提供するものである。
【背景技術】
【０００２】
モバイルコンピューティングデバイスの使用は増大し続けている。特に、事業体およびその他の企業は様々なコンピューティングリソースへの個人のリモートアクセスを可能にするためにモバイルコンピューティングデバイスに依拠するようになってきている。そのようなリソースは、たとえば、電子メールサービス、ファイルサービス、データ、および企業のコンピュータシステムまたはモバイルデバイス自体によって提供される他の電子リソースを含んでいる。
【０００３】
個人がコンピューティングリソースに対してローカルに位置していても離れて（remote）位置していても、企業はそれらのリソースへのアクセスを保護し制御することを望む可能性がある。したがって、個人がアクセスを承認されかつその資格を付与されたリソースへのアクセスのみを行えることを確実にするために、企業は様々な技術的機構（たとえば、ゲートウェイおよびファイヤウォール）およびアクセス制御機構（たとえば、ユーザ認証および承認）を実装している。そのような機構はまた、承認されていない個人のコンピューティングリソースへのあらゆるアクセスを阻止することができる。
【０００４】
モバイルデバイスに関して、企業はそれらのモバイルデバイスからのコンピューティングリソースへのリモートアクセスを制御するための様々なアプローチを採用することができる。この試みをモバイルデバイス管理と称してもよい。１つのアプローチでは、企業は個人に企業が所有しかつ制御するモバイルデバイスを提供してもよい。そのようなデバイスは企業がモバイルデバイスの構成、機能、動作、およびデータを制御するように構成されていてもよい。この点で、企業が制御するモバイルデバイスを管理対象（managed）デバイスと称する。企業は、たとえばクライアントサーバアーキテクチャを介して管理対象デバイスをリモートコントロールしてもよい。企業のサーバは、管理対象デバイスに存在するクライアントアプリケーションに対してリモートでコマンドを発行してもよい。そのようなコマンドは、たとえば新たなアプリケーションまたは機能をインストールすること、既存のアプリケーションまたは機能を更新すること、環境設定を更新すること、データを提供すること等を含んでいてもよい。管理対象デバイスを紛失またはそれが盗まれた場合は、承認されていない個人がデバイスへのアクセスを獲得すること、またはデバイスを介したリソースへのアクセスを獲得することを阻止するために、企業はデバイスをロックするかまたは消去するコマンドを発行してもよい。
【０００５】
しかし、個人は企業所有のモバイルデバイスおよび個人のモバイルデバイスの両方を維持することを不便であると考える可能性がある。むしろ、個人は自身のパーソナルモバイルデバイスからリソースにアクセスすることのほうを選ぶ可能性がある。これを実践するものをＢＹＯＤ（自分のデバイスを持つ, bring-your-own-device）と称する。これらのパーソナルデバイスは企業が制御できないため、そのようなパーソナルデバイスは非管理対象（unmanaged）デバイスと称する。このような選択に対応するために、非管理対象デバイスをこれらのリソースにアクセスさせるための解決策が現在開発の対象となっている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
たとえば、企業が制御するモバイルアプリケーション、すなわち非管理対象デバイスで動作するように構成された管理対象モバイルアプリケーションを提供することが、現在開発中の１つのアプローチである。
【０００７】
しかし、課題は残っている。非管理対象デバイスで動作する管理対象モバイルアプリケーションを実行可能なアプローチとするためには、管理対象モバイルアプリケーションを介したリソースへの承認されていないアクセスまたはその使用を阻止するための機構が必要となる可能性がある。特に、管理対象モバイルアプリケーションがリソースを保護するセキュリティ機構を回避するように改変されたことを確認するために管理対象モバイルアプリケーションのアイデンティティを検証する需要がある。さらに、非管理対象モバイルデバイスでの管理対象モバイルアプリケーションの動作を制御する需要がある。
【課題を解決するための手段】
【０００８】
以下に、本明細書に説明する様々な発明の態様の簡単な概要を提示する。本概要は広範な全体像ではなく重要なもしくは欠かせない要素を特定すること、または特許請求の範囲を正確に説明することを意図していない。以下の概要は、以下に記載するより詳細な説明の導入として、単にいくつかの概念を簡単な形で提示するにすぎない。
【０００９】
上述の先行技術の限界を克服し、本明細書の読解において明らかになるであろう他の限界を克服するために、本明細書に説明する態様は、モバイルコンピューティングデバイスで管理対象モバイルアプリケーションを用いて企業のコンピューティングシステムに配置されたリモートのコンピューティングリソースへのアクセスを制御することを指向する。さらに、本発明の態様は、モバイルコンピューティングデバイス自体でローカルなコンピューティングリソースへのアクセスを制御することを指向する。アクセスマネージャは、コンピューティングリソースへのアクセスを要求するモバイルアプリケーションが正確にそれ自体を識別しているかどうか、およびその後、インストール後にモバイルコンピューティングデバイスで改変されていないかどうかを判定する検証プロセスを実行してもよい。このようにして、アクセスマネージャは、コンピューティングリソースへのアクセスを要求するモバイルアプリケーションが信用できるものであり、それらのリソースを保護するために使用されるセキュリティ機構を回避することを試みていないことを確実にしてもよい。その結果、企業に関連付けられた個人は自身のパーソナルモバイルデバイスでリモートおよびローカルのコンピューティングリソースを有利に利用してもよい。
【００１０】
本明細書に説明する第一の態様は、コンピューティングリソースへのアクセスを管理する方法である。アクセスマネージャはモバイルデバイスでインストールされたモバイルアプリケーションを検証するためにそのモバイルデバイスで動作してもよい。アクセスマネージャがモバイルアプリケーションの検証に成功しなかった場合は、アクセスマネージャはモバイルアプリケーションのコンピューティングリソースへのアクセスを阻止してもよい。アクセスマネージャがモバイルアプリケーションの検証に成功した場合は、アクセスマネージャはモバイルアプリケーションを信用されたモバイルアプリケーションと識別してもよい。アクセスマネージャはこのように、信用されたモバイルアプリケーションのコンピューティングリソースへのアクセスを許可してもよい。
【００１１】
本明細書に説明する第二の態様は、モバイルコンピューティングデバイスを提供する。モバイルコンピューティングデバイスは、コンピューティングリソース、モバイルアプリケーションに関連付けられた格納された識別情報、およびアクセスマネージャにアクセスするように構成されたモバイルアプリケーションを含んでいてもよい。アクセスマネージャは上述のようにモバイルアプリケーションを検証し、かつコンピューティングリソースへのアクセスを阻止または許可するように構成されていてもよい。
【００１２】
本明細書に説明する第三の態様は、モバイルデバイスで動作するように構成されたアクセスマネージャを提供する。アクセスマネージャはまた、上述のようにモバイルデバイスでモバイルアプリケーションを検証し、かつモバイルアプリケーションを介したコンピューティングリソースへのアクセスを阻止または許可するように構成されていてもよい。アクセスマネージャはさらに、モバイルアプリケーションに格納されたアプリケーションポリシーに基づいてモバイルアプリケーションの動作を制御するように構成されていてもよい。
【００１３】
本明細書に説明するいくつかの態様は、格納された識別情報がモバイルアプリケーションに関連付けられてかつそれと共に作成されたオリジナルのデジタル証明書であってもよいということを提供する。アクセスマネージャは、モバイルアプリケーションのために作成されたオリジナルのデジタル証明書をモバイルオペレーティングシステムから受信したデジタル証明書と比較することによってモバイルコンピューティングデバイスでモバイルアプリケーションを検証してもよい。コンピューティングリソースはモバイルコンピューティングデバイスに対してローカルにまたはリモートに配置されてよい。コンピューティングリソースの例としては、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムで動作するソフトウェア・アプリケーション、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムによって提供されるサービス、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムで格納されたデータ、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムのハードウェア、およびそれらの組み合わせが含まれる。
【００１４】
格納された識別情報はまた、作成後にモバイルアプリケーション内に組み込まれた、あるいはモバイルアプリケーションから導出された識別トークンであってもよい。アプリケーション署名は、組み込まれた識別トークンおよび導出された識別トークンの配設に基づいて構築されていてもよい。アクセスマネージャはまた、検証中にモバイルアプリケーションにノンスを提供してもよく、アプリケーション署名およびノンスを使用する期待されるハッシュ値を計算するためにノンスを使用してもよい。アクセスマネージャは期待されるレスポンス、たとえば期待されるハッシュ値を生成して、期待されるレスポンスをアクセスマネージャからのチャレンジに続いてモバイルアプリケーションから受信したレスポンスと比較してもよい。
【００１５】
以上および追加の態様は、以下のさらに詳細に述べる開示によって十分理解されるであろう。
【００１６】
本明細書で説明する態様およびその利点は、添付の図面を考慮して以下の説明を参照すると、より完全な理解が得られる。図面において、同じ参照番号は同じ特徴を示す。
【図面の簡単な説明】
【００１７】
【図１】本発明の１つ以上の実施形態に従って使用されるコンピュータシステムのアーキテクチャを示す図である。
【図２】リモートアクセスシステムのアーキテクチャを示す図である。
【図３】仮想（ハイパーバイザー）システムのアーキテクチャを示す図である。
【図４】クラウドベースのシステムのアーキテクチャを示す図である。
【図５】企業モビリティ管理システムを示す図である。
【図６】別の企業モビリティ管理システムを示す図である。
【図７】モバイルデバイス管理システムを示す図である。
【図８】管理対象モバイルアプリケーションのためのアプリケーション署名とチャレンジレスポンスを示すブロック図である。
【図９】非管理対象モバイルデバイスでモバイルアプリケーションを管理するための方法の各ステップのフローチャートを示す。
【図１０】非管理対象モバイルデバイスで管理対象オペレーションのための管理対象モバイルアプリケーションを準備するための方法の各ステップのフローチャートを示す。
【図１１】非管理対象モバイルデバイスで管理対象モバイルアプリケーションを初期化するための方法の各ステップのフローチャートを示す。
【図１２】第一のタイプのモバイルオペレーティングシステムを有する非管理対象モバイルデバイスで管理対象モバイルアプリケーションを検証するための方法の各ステップのフローチャートを示す。
【図１３】第二のタイプのモバイルオペレーティングシステムを有する非管理対象モバイルデバイスで管理対象モバイルアプリケーションを検証するための方法の各ステップのフローチャートを示す。
【図１４】管理対象モバイルアプリケーションの動作中にアプリケーションポリシーを実施するための方法の各ステップのフローチャートを示す。
【発明を実施するための形態】
【００１８】
上述のとおり特定され、本明細書の一部をなし、例示により本明細書で説明する本発明の各態様を実施するための様々な実施形態を、添付の図面を参照しながら説明する。本明細書で説明する範囲を逸脱することなく、他の実施形態を利用し、構造および機能に変更を加えてもよいことは理解されるべきである。本発明の各態様は他の実施形態が可能であり、様々な異なる方法で実施または実行することが可能である。
【００１９】
以下詳細に説明する主題の概要紹介として、本明細書で説明する態様は、リモートに配置された企業のコンピューティングシステムまたはモバイルコンピューティングデバイス自体において、コンピューティングリソースへのリモートおよびローカルアクセスを制御することを指向する。
【００２０】
アクセスマネージャは、コンピューティングリソースへのアクセスを要求するモバイルアプリケーションが正確にそれ自体を識別しているかどうか、およびその後、インストール後にモバイルコンピューティングデバイスで改変されていないかどうかを判定する検証プロセスを行う。このように、アクセスマネージャはコンピューティングリソースへのアクセスを要求するモバイルアプリケーションが信頼でき、それらのリソースを保護するために使用されるセキュリティ機構を回避しようとしていないことを確実にすることができる。その結果、企業に関連づけられた個人は、自身のパーソナルモバイルデバイスでコンピューティングリソースを有利に利用することができる。
【００２１】
コンピューティングリソースはモバイルコンピューティングデバイスに対してローカルにまたはリモートに配置されてよい。コンピューティングリソースの例としては、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムで動作するソフトウェア・アプリケーション、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムによって提供されるサービス、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムに格納されたデータ、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムのハードウェア、およびそれらの組み合わせが含まれる。本発明では、企業のコンピューティングシステムにリモートに配置されたコンピューティングリソースを企業リソースと称す。
【００２２】
本明細書で使用される表現および用語は、説明目的であり、制限と見なしてはならないことは理解されるべきである。むしろ、本明細書で使用される表現および用語には、そのもっとも広い解釈および意味が与えられるべきである。「含み」および「備え」ならびにその変形の使用は、これ以降で挙げられるアイテムおよびその等価物ならびに追加アイテムおよびその等価物を包含することが意図されている。「取り付けられている」、「接続されている」、「連結されている」、「位置付けられている」、「係合されている」および同様な用語の使用は、直接的および間接的の両方の取り付け、接続、連結、位置付けおよび係合を含むことが意図されている。
【００２３】
〈コンピューティングアーキテクチャ〉
コンピュータのソフトウェア、ハードウェアおよびネットワークは、特に、スタンドアロン、ネットワーク化、リモートアクセス（別称、リモートデスクトップ）、仮想化および／またはクラウドベースの環境を含め、多様な異なるシステム環境で利用してもよい。
【００２４】
図１は、本発明の１つ以上の例示的な態様に係る、スタンドアロンおよび／またはネットワーク化環境で実装するために使用されるシステムアーキテクチャならびにデータ処理装置の一実施例を示す。様々なネットワークノード１０３，１０５，１０７および１０９は、インターネットなどの広域ネットワーク（ＷＡＮ）１０１を介して相互接続されている。プライベートイントラネット、企業ネットワーク、ＬＡＮ、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイヤレスネットワーク、パーソナルネットワーク（ＰＡＮ）等を含む、他のネットワークもまた、または代わりに使用してもよい。
【００２５】
ネットワーク１０１は例示目的であり、より少ないか、または追加のコンピュータネットワークと取り替えてもよい。ローカルエリアネットワーク（ＬＡＮ）はあらゆる周知のＬＡＮトポロジーのうちの１つ以上を有してもよく、イーサーネット（登録商標）などの多様な異なるプロトコルのうちの１つ以上を使用してもよい。デバイス１０３，１０５，１０７，１０９および他のデバイス（図示せず）は、撚り対線、同軸ケーブル、光ファイバ、電波または他の通信媒体を介してネットワークのうちの１つ以上に接続してもよい。
【００２６】
本明細書で使用し、図面に図示する用語「ネットワーク」とは、遠隔記憶装置が１つ以上の通信パスを介して互いに連結されているシステムだけではなく、記憶容量を有する当該システムにそのときどきで連結してもよいスタンドアロンデバイスのことも含む。そのため、「ネットワーク」とは、「物理的ネットワーク」だけでなく、すべての物理的ネットワークに常駐する（単一のエンティティに帰属する）データから構成される「コンテンツネットワーク」をも含む。
【００２７】
コンポーネントは、データサーバ１０３、ウェブサーバ１０５およびクライアントコンピュータ１０７，１０９を含んでいてもよい。データサーバ１０３は、本明細書で説明する開示の１つ以上の例示的な態様を行うために、データベースおよび制御ソフトウェアの全体的なアクセス、制御および管理を提供する。データサーバ１０３はウェブサーバ１０５に接続されていてもよく、それによりユーザは要求に応じて対話し、データを取得する。あるいは、データサーバ１０３はウェブサーバ自体として作動してもよく、インターネットに直接接続してもよい。
【００２８】
データサーバ１０３は、直接もしくは間接的な接続を介して、または何らかの他のネットワークを介して、ネットワーク１０１（たとえば、インターネット）経由でウェブサーバ１０５に接続されていてもよい。ユーザはリモートコンピュータ１０７，１０９を使用して、たとえばウェブサーバ１０５がホストする１つ以上の外部に露出するウェブサイトを介してデータサーバ１０３に接続するためのウェブブラウザを使用して、データサーバ１０３と対話することができる。クライアントコンピュータ１０７，１０９はデータサーバ１０３とともに使用して、そこに格納されているデータにアクセスしてもよく、または他の目的で使用してもよい。たとえば、クライアントデバイス１０７から、ユーザは当該技術分野で周知のようにインターネットブラウザを使用して、またはコンピュータネットワーク（インターネットなど）上でウェブサーバ１０５および／またはデータサーバ１０３と通信するソフトウェア・アプリケーションを実行することにより、ウェブサーバ１０５にアクセスしてもよい。
【００２９】
サーバおよびアプリケーションは同じ物理マシン上に組み合わされて、個別の仮想アドレスもしくは論理アドレスを保持してもよく、または個別の物理マシンに常駐していてもよい。
【００３０】
図１は、使用され得るネットワークアーキテクチャのほんの一実施例を示しており、当業者は、使用される特定のネットワークアーキテクチャおよびデータ処理装置を変更してもよいこと、ならびに、本明細書で詳細に説明するように、それが提供する機能に対して二次的なものであることを認識するであろう。たとえば、ウェブサーバ１０５およびデータサーバ１０３が提供するサービスは単一のサーバに結合されてもよい。
【００３１】
各コンポーネント１０３，１０５，１０７，１０９は、あらゆるタイプの周知のコンピュータ、サーバまたはデータ処理装置であってもよい。たとえば、データサーバ１０３はレートサーバ１０３のオペレーション全体を制御するプロセッサ１１１を含んでいてもよい。データサーバ１０３は、ＲＡＭ１１３、ＲＯＭ１１５、ネットワークインターフェース１１７、入出力インターフェース１１９（たとえば、キーボード、マウス、ディスプレイ、プリンタ等）およびメモリ１２１をさらに含んでいてもよい。Ｉ／Ｏ１１９は、データまたはファイルを読み込み、書き込み、表示し、および／または印刷する多様なインターフェースユニットおよびドライブを含んでいてもよい。メモリ１２１はデータ処理装置１０３、本明細書で説明する開示の態様を行うようデータサーバ１０３に指図する制御ロジック１２５、ならびに本発明の態様と合わせて使用してもしなくてもよい二次的、サポートおよび／または他の機能を提供する他のアプリケーションソフトウェア１２７のオペレーション全体を制御するオペレーティングシステム・ソフトウェア１２３をさらに格納していてもよい。制御ロジックは本明細書ではデータサーバソフトウェア１２５ともいう。データサーバソフトウェアの機能は、制御ロジックに符号化され、システムに入力を提供するユーザによって手動で作成されるルールに基づいて自動的に行われるオペレーションもしくは決定、および／またはユーザ入力（たとえば、問合わせ、データのアップデート等）に基づく自動処理の組合せをいう。
【００３２】
メモリ１２１は、第１データベース１２９および第２データベース１３１を含め、本発明の１つ以上の態様の実施で使用されるデータも格納していてもよい。いくつかの実施形態では、第１データベースは第２データベースを含んでいてもよい（たとえば、個別のテーブル、レポート等として）。すなわち、情報は、システムの設計により、単一のデータベースに格納することができ、または別々の論理データベース、仮想データベースもしくは物理的データベースに分けることができる。デバイス１０５，１０７，１０９はデバイス１０３に関して説明したのと同様なアーキテクチャを有してもよく、または異なるアーキテクチャを有していてもよい。当業者には、本明細書で説明するデータ処理装置１０３（またはデバイス１０５，１０７，１０９）の機能を複数のデータ処理装置に分散して、たとえば、複数のコンピュータに処理ロードを分散し、地理的な場所、ユーザのアクセスレベル、サービスの質（ＱｏＳ）等に基づいてトランザクションを分けてもよい。
【００３３】
１つ以上の態様は、１つ以上のプログラムモジュールなどで、１つ以上のコンピュータまたは本明細書で説明される他のデバイスによって実行されるコンピュータ使用可能もしくは読取可能データおよび／またはコンピュータ実行可能命令に具現してもよい。一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサによって実行されるとき、特定のタスクを行うかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。モジュールは実行のために後でコンパイルされるソースコードプログラミング言語で書き込んでもよく、またはＨＴＭＬもしくはＸＭＬなどの（ただし、これだけに限定されない）スクリプト言語で書き込んでもよい。
【００３４】
コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ読取可能媒体に格納してもよい。ハードディスク、ＣＤ−ＲＯＭ、光学記憶装置、磁気記憶装置、および／またはそのあらゆる組合せを含め、あらゆる適したコンピュータ読取可能記憶媒体を利用してもよい。さらに、本明細書で説明するデータまたはイベントを表す様々な伝送（非記憶）媒体は、金属ワイヤ、光ファイバ、ならびに／またはワイヤレス伝送媒体（たとえば、空気および／もしくは空間）など、信号伝達媒体を通して移動する電磁波の形で、送信元と宛先との間を転送してもよい。本明細書で説明する様々な態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現してもよい。そのため、様々な機能は、集積回路、フィールドプログラマブル・ゲートアレイ（ＦＰＧＡ）等といった、ソフトウェア、ファームウェアおよび／またはハードウェアもしくはハードウェア等価物に全部または一部を具現してもよい。本発明の１つ以上の態様をより効果的に実装するために特定のデータ構造を使用してもよく、当該データ構造は本明細書で説明するコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内に企図される。
【００３５】
図２をさらに参照して、本明細書で説明する１つ以上の態様はリモートアクセス環境に実装されている。図２は、本明細書で説明する１つ以上の態様に従って使用されるコンピューティング環境２００の汎用コンピューティングデバイス２０１を含むシステムアーキテクチャを示す。
【００３６】
汎用コンピューティングデバイス２０１は、クライアントアクセスデバイスに仮想マシンを提供するように構成されている単一サーバまたはマルチサーバのデスクトップ仮想化システム（たとえば、リモートアクセスもしくはクラウドシステム）内のサーバ２０６ａとして使用されてもよい。汎用コンピューティングデバイス２０１は、ランダムアクセスメモリ（ＲＡＭ）２０５、読取専用メモリ（ＲＯＭ）２０７、入出力（Ｉ／Ｏ）モジュール２０９およびメモリ２１５を含め、サーバおよびその関連コンポーネントのオペレーション全体を制御するプロセッサ２０３を有していてもよい。
【００３７】
Ｉ／Ｏモジュール２０９は、汎用コンピューティングデバイス２０１のユーザが入力を提供するマウス、キーパッド、タッチスクリーン、スキャナ、光学リーダ、および／またはスタイラス（もしくは他の入力デバイス）を含んでいてもよく、また音声出力を提供するスピーカと、テキスト、オーディオビジュアルおよび／またはグラフィカル出力を提供するビデオディスプレイデバイスとのうちの１つ以上を含んでいてもよい。
【００３８】
ソフトウェアはメモリ２１５および／または他のストレージ内に格納され、本明細書で説明する様々な機能を実施するために汎用コンピューティングデバイス２０１を専用コンピューティングデバイスに構成する命令をプロセッサ２０３に与える。たとえば、メモリ２１５は、オペレーティングシステム２１７、アプリケーション・プログラム２１９および関連データベース２２１など、コンピューティングデバイス２０１が使用するソフトウェアを格納していてもよい。
【００３９】
コンピューティングデバイス２０１は、端末２４０（クライアントデバイスともいう）などの１つ以上のリモートコンピュータへの接続をサポートするネットワーク化環境で動作してもよい。端末２４０は、汎用コンピューティングデバイス１０３もしくは２０１に関して上述した要素の多くもしくはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってもよい。
【００４０】
図２に図示するネットワーク接続はローカルエリアネットワーク（ＬＡＮ）２２５および広域ネットワーク（ＷＡＮ）２２９を含むが、他のネットワークを含んでいてもよい。ＬＡＮネットワーク化環境で使用される場合、コンピューティングデバイス２０１はネットワークインターフェースまたはアダプタ２２３経由でＬＡＮ２２５に接続してもよい。ＷＡＮネットワーク化環境で使用される場合、コンピューティングデバイス２０１は、コンピュータネットワーク２３０（たとえば、インターネット）など、ＷＡＮ２２９上で通信を確立するモデム２２７または他の広域ネットワークインターフェースを含んでいてもよい。
【００４１】
図示するネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段も使用してもよいことは認識されるであろう。コンピューティングデバイス２０１および／または端末２４０は、バッテリ、スピーカおよびアンテナ（図示せず）などの様々な他のコンポーネントを含めて、モバイル端末（たとえば、携帯電話、スマートフォン、ＰＤＡ、ノートブック等）であってもよい。
【００４２】
本明細書で説明する態様は、複数の他の汎用もしくは専用コンピューティングシステムの環境または構成と併用して動作可能であってもよい。本明細書で説明する態様と併用するのに適する他のコンピューティングシステム、環境および／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などがあげられるが、これだけに限定されない。
【００４３】
図２に図示するように、１つ以上のクライアントデバイス２４０は１つ以上のサーバ２０６ａ〜２０６ｎ（総称的に、本明細書では「サーバ２０６」という）と通信する状態であってもよい。一実施形態では、コンピューティング環境２００は、サーバ２０６とクライアントマシン２４０との間にインストールされているネットワーク・アプライアンスを含んでいてもよい。ネットワーク・アプライアンスはクライアント／サーバ接続を管理してもよく、ある場合には複数のバックエンドサーバ２０６間のクライアント接続の負荷分散をすることができる。
【００４４】
クライアントマシン２４０は、いくつかの実施形態では、単一クライアントマシン２４０またはクライアントマシンの単一グループ２４０と称されることがあり、サーバ２０６は単一サーバ２０６またはサーバの単一グループ２０６と称されることがある。一実施形態では、単一クライアントマシン２４０は２つ以上のサーバ２０６と通信し、別の実施形態では単一サーバ２０６は２つ以上のクライアントマシン２４０と通信する。さらに別の実施形態では、単一クライアントマシン２４０は単一サーバ２０６と通信する。
【００４５】
クライアントマシン２４０は、いくつかの実施形態では、次の非網羅的な用語のうちのいずれか１つによって言及することができる。すなわち、クライアントマシン、クライアント、クライアントコンピュータ、クライアントデバイス、クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノード。サーバ２０６は、いくつかの実施形態では、次の非網羅的な用語のうちのいずれか１つによって言及してもよい。すなわち、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティングデバイス。
【００４６】
一実施形態では、クライアントマシン２４０は仮想マシンであってもよい。仮想マシンはあらゆる仮想マシンであってもよいが、いくつかの実施形態では、仮想マシンはタイプ１またはタイプ２のハイパーバイザ、たとえば、サイトリックス・システムズ、ＩＢＭ、ヴイエムウェアによって開発されるハイパーバイザ、またはあらゆる他のハイパーバイザによって管理されるあらゆる仮想マシンであってもよい。いくつかの態様において、仮想マシンはハイパーバイザによって管理してもよいが、いくつかの態様では、仮想マシンはサーバ２０６上で実行するハイパーバイザまたはクライアント２４０上で実行するハイパーバイザによって管理してもよい。
【００４７】
いくつかの実施形態は、サーバ２０６または遠隔設置された他のマシン上で遠隔実行するアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス２４０を含む。これらの実施形態では、クライアントデバイス２４０は仮想マシンのレシーバプログラムまたはアプリケーションを実行して、アプリケーションウインドウ、ブラウザ、または他の出力ウインドウに出力を表示してもよい。ある実施例では、アプリケーションはデスクトップであるが、他の実施例では、アプリケーションはデスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび／またはリモート・アプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。本明細書で使用するアプリケーションとは、オペレーティングシステム（および、任意で、デスクトップも）のインスタンスがロードされた後に実行するプログラムである。
【００４８】
サーバ２０６は、いくつかの実施形態では、クライアント上で実行するシンクライアントまたはリモートディスプレイ・アプリケーションにデータを送信するリモートプレゼンテーション・プロトコルまたは他のプロトコルを使用して、サーバ２０６上で実行するアプリケーションによって生成されるディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイ・プロトコルは、次の非網羅的なプロトコルリストのうちのいずれか１つとすることができる。すなわち、フロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクが開発したインディペンデント・コンピューティング・アーキテクチャ（ＩＣＡ）プロトコル、またはワシントン州レドモンドのマイクロソフト・コーポレーションが製造するリモートデスクトッププロトコル（ＲＤＰ）。
【００４９】
リモートコンピューティング環境は、サーバ２０６ａ〜２０６ｎが、たとえばクラウドコンピューティング環境のサーバファーム２０６に論理的にまとめられるように、２つ以上のサーバ２０６ａ〜２０６ｎを含んでいてもよい。サーバファーム２０６は論理的にまとめられながらも地理的に分散しているサーバ２０６、または論理的にまとめられながらも互いに近接して配置されているサーバ２０６を含んでいてもよい。サーバファーム２０６内の地理的に分散したサーバ２０６ａ〜２０６ｎは、いくつかの実施形態では、ＷＡＮ（広域）、ＭＡＮ（メトロポリタン）、またはＬＡＮ（ローカル）を使用して通信することができ、異なる地理的地域は、異なる大陸、大陸の中の異なる地域、異なる国、異なる州、異なる都市、異なる大学、異なる部屋、または前述の地理的な場所のあらゆる組合せとして特徴付けることができる。いくつかの実施形態では、サーバファーム２０６は単一エンティティとして管理されてもよいが、他の実施形態では、サーバファーム２０６は複数のサーバファームを含むことができる。
【００５０】
いくつかの実施形態では、サーバファームは、実質的に同じようなタイプのオペレーティングシステムのプラットフォーム（例、ＷＩＮＤＯＷＳ(登録商標)、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、ｉＯＳ、ＡＮＤＲＯＩＤ（登録商標）、ＳＹＭＢＩＡＮ等）を実行するサーバ２０６を含んでいてもよい。他の実施形態では、サーバファーム２０６は、第１タイプのオペレーティングシステムのプラットフォームを実行する１つ以上のサーバからなる第１グループと、第２タイプのオペレーティングシステムのプラットフォームを実行する１つ以上のサーバからなる第２グループとを含んでいてもよい。
【００５１】
サーバ２０６は、必要なあらゆるタイプのサーバとして、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワーク・アプライアンス、ゲートウェイ、アプリケーション・ゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、ＳＳＬ  ＶＰＮサーバ、ファイヤウォール、ウェブサーバ、アプリケーションサーバ、またはマスターアプリケーションサーバ、アクティブディレクトリを実行するサーバ、またはファイヤウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション高速化プログラムを実行するサーバとして構成されていてもよい。他のサーバのタイプも使用してもよい。
【００５２】
いくつかの実施形態は、クライアントマシン２４０からの要求を受信し、要求を第２サーバ１０６ｂに転送し、第２サーバ１０６ｂからの応答により、クライアントマシン２４０により生成される要求に応答する第１サーバ１０６ａを含む。第１サーバ１０６ａはクライアントマシン２４０に利用できるアプリケーションの一覧表、およびアプリケーションの一覧表内で特定されるアプリケーションをホストするアプリケーションサーバ２０６に関連するアドレス情報を取得してもよい。それから、第１サーバ１０６ａは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、クライアント２４０と直接通信して、特定されたアプリケーションへのアクセスをクライアント２４０に提供することができる。１つ以上のクライアント２４０および／または１つ以上のサーバ２０６は、ネットワーク２３０、たとえばネットワーク１０１上でデータを伝送してもよい。
【００５３】
図２は、デスクトップ仮想化システムの高レベルアーキテクチャを示す。図示するように、デスクトップ仮想化システムは、１つ以上のクライアントアクセスデバイス２４０に仮想デスクトップおよび／または仮想アプリケーションを提供するように構成されている少なくとも１つの仮想化サーバ２０６を含め、単一サーバもしくはマルチサーバシステムまたはクラウドシステムであってもよい。
【００５４】
本明細書で使用されるデスクトップとは、１つ以上のアプリケーションをホストおよび／または実行してもよいグラフィカル環境またはスペースをいう。デスクトップは、ローカルおよび／またはリモート・アプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。アプリケーションは、オペレーティングシステムのインスタンス（および、任意でデスクトップも）をロードした後に実行するプログラムを含んでいてもよい。オペレーティングシステムのインスタンスは物理的（たとえば、１デバイスにつき１つのオペレーティングシステム）または仮想的（たとえば、単一デバイス上で稼動するＯＳの多くのインスタンス）であってもよい。各アプリケーションはローカルデバイス上で実行してもよく、または遠隔設置されたデバイス上で実行（たとえば、遠隔操作）してもよい。
【００５５】
図３をさらに参照すると、コンピュータデバイス３０１は、仮想化環境の仮想化サーバとして、たとえば、単一サーバ、マルチサーバ、またはクラウドコンピューティング環境として構成されていてもよい。
【００５６】
図３に図示する仮想化サーバ３０１は、図２に図示するサーバ２０６の１つ以上の実施形態もしくは他の周知のコンピューティングデバイスとしてデプロイ（deploy）することができ、および／またはそれにより実装することができる。
【００５７】
仮想化サーバ３０１に含まれるのが、１つ以上の物理的ディスク３０４、１つ以上の物理的デバイス３０６、１つ以上の物理的プロセッサ３０８および１つ以上の物理的メモリ３１６を含むことができるハードウェアレイヤである。いくつかの実施形態では、ファームウェア３１２を物理的メモリ３１６のメモリ素子内に格納することができ、物理的プロセッサ３０８のうちの１つ以上によって実行することができる。仮想化サーバ３０１はさらに物理的メモリ３１６のメモリ素子内に格納されて、物理的プロセッサ３０８のうちの１つ以上によって実行されてもよいオペレーティングシステム３１４をさらに含んでいてもよい。さらに、ハイパーバイザ３０２を物理的メモリ３１６のメモリ素子内に格納してもよく、物理的プロセッサ３０８のうちの１つ以上によって実行することができる。
【００５８】
物理的プロセッサ３０８のうちの１つ以上で実行することは、１つ以上の仮想マシン３３２Ａ〜３３２Ｃ（総称的に３３２）であってもよい。各仮想マシン３３２は仮想ディスク３２６Ａ〜３２６Ｃおよび仮想プロセッサ３２８Ａ〜３２８Ｃを有していてもよい。いくつかの実施形態では、第１仮想マシン３３２Ａは、仮想プロセッサ３２８Ａを使用して、ツールスタック３２４を含む制御プログラム３２０を実行してもよい。制御プログラム３２０は制御仮想マシン、Ｄｏｍ０、ドメイン０、またはシステムの管理および／もしくは制御に使用される他の仮想マシンと称されることがある。いくつかの実施形態では、１つ以上の仮想マシン３３２Ｂ〜３３２Ｃは、仮想プロセッサ３２８Ｂ〜３２８Ｃを使用して、ゲストオペレーティングシステム３３０Ａ〜３３０Ｂを実行することができる。
【００５９】
仮想化サーバ３０１は、仮想化サーバ３０１と通信する１つ以上のハードウェアを備えるハードウェアレイヤ３１０を含んでいてもよい。いくつかの実施形態では、ハードウェアレイヤ３１０は、１つ以上の物理的ディスク３０４、１つ以上の物理的デバイス３０６、１つ以上の物理的プロセッサ３０８、および１つ以上のメモリ３１６を含むことができる。物理的コンポーネント３０４，３０６，３０８および３１６は、たとえば、上述したコンポーネントのいずれを含んでいてもよい。物理的デバイス３０６は、たとえば、ネットワーク・インターフェース・カード、ビデオカード、キーボード、マウス、入力デバイス、モニタ、ディスプレイデバイス、スピーカ、光学ドライブ、記憶装置、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク素子（たとえば、ルータ、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク（ＶＰＮ）ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル（ＤＨＣＰ）ルータ等）、または仮想化サーバ３０１に接続されているかもしくは仮想化サーバ３０１と通信するあらゆるデバイスを含んでいてもよい。ハードウェアレイヤ３１０の物理的メモリ３１６はあらゆるタイプのメモリを含んでいてもよい。物理的メモリ３１６はデータを格納してもよく、いくつかの実施形態では、１つ以上のプログラム、または実行可能命令のセットを格納してもよい。
【００６０】
図３は、仮想化サーバ３０１の物理的メモリ３１６内にファームウェア３１２が格納されている実施形態を示す。物理的メモリ３１６に格納されているプログラムまたは実行可能命令は、仮想化サーバ３０１の１つ以上のプロセッサ３０８によって実行することができる。
【００６１】
仮想化サーバ３０１はハイパーバイザ３０２も含んでいてもよい。いくつかの実施形態では、ハイパーバイザ３０２は仮想化サーバ３０１のプロセッサ３０８によって実行されて、あらゆる数の仮想マシン３３２を作成して管理するプログラムであってもよい。ハイパーバイザ３０２は仮想マシンモニタ、またはプラットフォーム仮想化ソフトウェアと称されることもある。いくつかの実施形態では、ハイパーバイザ３０２は実行可能命令と、コンピューティングマシン上で実行する仮想マシンを監視するハードウェアとのあらゆる組合せとすることができる。ハイパーバイザ３０２はタイプ２ハイパーバイザであってもよく、当該ハイパーバイザは仮想化サーバ３０１上で実行するオペレーティングシステム３１４内で実行する。それから、仮想マシンはハイパーバイザより上のレベルで実行する。
【００６２】
いくつかの実施形態では、タイプ２ハイパーバイザは、タイプ２ハイパーバイザがユーザのオペレーティングシステムと対話するように、ユーザのオペレーティングシステムのコンテキスト内で実行する。他の実施形態では、仮想化環境内の１つ以上の仮想化サーバ３０１は、代わりにタイプ１ハイパーバイザ（図示せず）を含んでいてもよい。タイプ１ハイパーバイザは、ハードウェアレイヤ３１０内のハードウェアおよびリソースに直接アクセスすることによって、仮想化サーバ３０１上で実行してもよい。すなわち、タイプ２ハイパーバイザ３０２は図示するようにホストオペレーティングシステム３１４経由でシステムのリソースにアクセスするのに対し、タイプ１ハイパーバイザはホストオペレーティングシステム３１４がなくてもすべてのシステムのリソースに直接アクセスしてもよい。タイプ１ハイパーバイザは仮想化サーバ３０１の１つ以上の物理的プロセッサ３０８上で直接実行してもよく、物理的メモリ３１６に格納されているプログラムデータを含んでいてもよい。
【００６３】
いくつかの実施形態では、ハイパーバイザ３０２はオペレーティングシステム３３０または仮想マシン３３２上で実行する制御プログラム３２０に、システムのリソースに直接アクセスできるオペレーティングシステム３３０または制御プログラム３２０をシミュレートするいずれの方法でも仮想リソースを提供することができる。
【００６４】
システムのリソースは、物理的デバイス３０６、物理的ディスク３０４、物理的プロセッサ３０８、物理的メモリ３１６および仮想化サーバ３０１のハードウェアレイヤ３１０に含まれているあらゆる他のコンポーネントを含むことができるが、これだけに限定されない。ハイパーバイザ３０２を使用して、仮想ハードウェアをエミュレートし、物理的ハードウェアを分割し、物理的ハードウェアを仮想化し、および／またはコンピューティング環境へのアクセスを提供する仮想マシンを実行してもよい。さらに他の実施形態では、ハイパーバイザ３０２は仮想化サーバ３０１上で実行する仮想マシン３３２のプロセッサのスケジューリングおよびメモリの分割を制御する。
【００６５】
ハイパーバイザ３０２はカリフォルニア州パロアルトのヴイエムウェア・インクが製造するもの、オープンソースのＸｅｎ．ｏｒｇコミュニティが開発を監督するオープンソース製品のＸＥＮハイパーバイザ、マイクロソフトが提供するＨｙｐｅｒＶ、ＶｉｒｔｕａｌＳｅｒｖｅｒまたは仮想ＰＣハイパーバイザ、または他のものを含んでいてもよい。いくつかの実施形態では、仮想化サーバ３０１は、その上でゲストオペレーティングシステムが実行してもよい仮想マシンプラットフォームを作成するハイパーバイザ３０２を実行する。これらの実施形態では、仮想化サーバ３０１はホストサーバと称されることがある。このような仮想化サーバの一例が、フロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクが提供するＸＥＮ  ＳＥＲＶＥＲである。
【００６６】
ハイパーバイザ３０２は、その中でゲストオペレーティングシステム３３０が実行する１つ以上の仮想マシン３３２Ｂ〜３３２Ｃ（総称的に３３２）を作成してもよい。いくつかの実施形態では、ハイパーバイザ３０２は仮想マシンイメージをロードして、仮想マシン３３２を作成してもよい。他の実施形態では、ハイパーバイザ３０２は仮想マシン３３２内のゲストオペレーティングシステム３３０を実行してもよい。さらに他の実施形態では、仮想マシン３３２はゲストオペレーティングシステム３３０を実行してもよい。
【００６７】
仮想マシン３３２を作成することに加えて、ハイパーバイザ３０２は少なくとも１つの仮想マシン３３２の実行を制御してもよい。他の実施形態では、ハイパーバイザ３０２は少なくとも１つの仮想マシン３３２に、仮想化サーバ３０１が提供する少なくとも１つのハードウェアリソース（たとえば、ハードウェアレイヤ３１０内で利用できるあらゆるハードウェアリソース）の抽象化を提示してもよい。他の実施形態では、ハイパーバイザ３０２は、仮想マシン３３２が仮想化サーバ３０１で利用できる物理的プロセッサ３０８にアクセスする態様を制御してもよい。物理的プロセッサ３０８へのアクセスを制御することは、仮想マシン３３２がプロセッサ３０８にアクセスできるべきかどうかと、物理的プロセッサの能力をどのように仮想マシン３３２に提示するかと、を判定することを含んでいてもよい。
【００６８】
図３に図示するように、仮想化サーバ３０１は１つ以上の仮想マシン３３２をホストまたは実行してもよい。仮想マシン３３２は、プロセッサ３０８によって実行されるとき、仮想マシン３３２が物理的コンピューティングデバイスと同様にプログラムおよびプロセスを実行することができるように、物理的コンピュータの動作を模倣する実行可能命令のセットである。図３は仮想化サーバ３０１が３つの仮想マシン３３２をホストする実施形態を示しているが、他の実施形態では、仮想化サーバ３０１はあらゆる数の仮想マシン３３２をホストすることができる。
【００６９】
いくつかの実施形態では、ハイパーバイザ３０２は各仮想マシン３３２に、その仮想マシン３３２に利用できる物理的ハードウェア、メモリ、プロセッサおよび他のシステム・リソースの固有の仮想ビューを提供する。いくつかの実施形態では、固有の仮想ビューは、仮想マシンの許可、１つ以上の仮想マシン識別子へのポリシーエンジンの適用、仮想マシンにアクセスするユーザ、仮想マシン上で実行するアプリケーション、仮想マシンによってアクセスされるネットワーク、または他の所望の基準に基づくことができる。たとえば、ハイパーバイザ３０２は１つ以上のセキュリティ保護されていない仮想マシン３３２と、１つ以上のセキュリティ保護された仮想マシン３３２とを作成してもよい。セキュリティ保護されていない仮想マシン３３２には、セキュリティ保護された仮想マシン３３２がアクセスを許可されるリソース、ハードウェア、メモリ場所およびプログラムを禁止してもよい。他の実施形態では、ハイパーバイザ３０２は各仮想マシン３３２に、仮想マシン３３２に利用できる物理的ハードウェア、メモリ、プロセッサおよび他のシステム・リソースの実質的に同様な仮想ビューを提供してもよい。
【００７０】
各仮想マシン３３２は仮想ディスク３２６Ａ〜３２６Ｃ（総称的に３２６）と、仮想プロセッサ３２８Ａ〜３２８Ｃ（総称的に３２８）とを含んでいてもよい。いくつかの実施形態では、仮想ディスク３２６は仮想化サーバ３０１の１つ以上の物理的ディスク３０４の仮想化ビュー、または仮想化サーバ３０１の１つ以上の物理的ディスク３０４の一部である。物理的ディスク３０４の仮想化ビューはハイパーバイザ３０２によって生成、提供および管理することができる。いくつかの実施形態では、ハイパーバイザ３０２は各仮想マシン３３２に物理的ディスク３０４の固有のビューを提供する。したがって、これらの実施形態では、各仮想マシン３３２に含まれる特定の仮想ディスク３２６は、他の仮想ディスク３２６と比べたときに固有にすることができる。
【００７１】
仮想プロセッサ３２８は仮想化サーバ３０１の１つ以上の物理的プロセッサ３０８の仮想化ビューとすることができる。いくつかの実施形態では、物理的プロセッサ３０８の仮想化ビューはハイパーバイザ３０２によって生成、提供および管理することができる。いくつかの実施形態では、仮想プロセッサ３２８は少なくとも１つの物理的プロセッサ３０８の同じ特徴の実質的にすべてを有する。他の実施形態では、仮想プロセッサ３０８は、仮想プロセッサ３２８の特徴の少なくともいくつかが対応する物理的プロセッサ３０８の特徴とは異なるように、物理的プロセッサ３０８の修正ビューを提供する。
【００７２】
図４をさらに参照すると、本明細書で説明するいくつかの態様は、クラウドベースの環境に実装される。図４はクラウドコンピューティング環境（またはクラウドシステム）４００の実施例を示す。図４から分かるように、クライアントコンピュータ４１１〜４１４はクラウド管理サーバ４１０と通信して、クラウドシステムのコンピューティングリソース（たとえば、ホストサーバ４０３、ストレージリソース４０４およびネットワークリソース４０５）にアクセスしてもよい。
【００７３】
管理サーバ４１０は１つ以上の物理的サーバ上に実装してもよい。管理サーバ４１０は、たとえば、特にフロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクのＣＬＯＵＤＳＴＡＣＫ、またはＯＰＥＮＳＴＡＣＫを稼動してもよい。管理サーバ４１０は、たとえば、ホストコンピュータ４０３、データ記憶装置４０４およびネットワーキングデバイス４０５など、クラウド・ハードウェアおよびソフトウェア・リソースを含め、様々なコンピューティングリソースを管理してもよい。クラウド・ハードウェアおよびソフトウェア・リソースは非公開および／または公開コンポーネントを含んでいてもよい。たとえば、クラウドは１つ以上の特定のカスタマもしくはクライアントコンピュータ４１１〜４１４によって、および／またはプライベートネットワーク上で使用されるプライベートクラウドとして構成していてもよい。他の実施形態では、パブリッククラウドまたはハイブリッドパブリック−プライベートクラウドが、オープンまたはハイブリッドネットワーク上で他のカスタマによって使用されてもよい。
【００７４】
管理サーバ４１０は、クラウドオペレータおよびクラウドカスタマがクラウドシステムとやりとりしてもよいユーザインターフェースを提供するように構成されていてもよい。たとえば、管理サーバ４１０はユーザインターフェースにＡＰＩのセットおよび／または１つ以上のクラウドオペレータコンソール・アプリケーション（たとえば、ウェブベースのスタンドアロンアプリケーション）を提供して、クラウドオペレータがクラウドリソースを管理し、仮想化レイヤを構成し、カスタマアカウントを管理し、他のクラウド管理タスクを行うことができるようにしてもよい。
【００７５】
管理サーバ４１０は、クライアントコンピュータ４１１〜４１４を介してエンドユーザからのクラウドコンピューティング要求、たとえば、クラウド内で仮想マシンを作成、修正または破棄する要求を受信するように構成されているユーザインターフェースを備えるＡＰＩのセットおよび／または１つ以上のカスタマコンソール・アプリケーションを含んでいてもよい。クライアントコンピュータ４１１〜４１４はインターネットまたは他の通信ネットワークを介して管理サーバ４１０に接続してもよく、管理サーバ４１０が管理するコンピューティングリソースのうちの１つ以上へのアクセスを要求してもよい。クライアントの要求に応答して、管理サーバ４１０は、クライアント要求に基づいて、クラウドシステムのハードウェアレイヤの物理的リソースを選択し、プロビジョニングするように構成されているリソース・マネージャを含んでいてもよい。たとえば、管理サーバ４１０およびクラウドシステムの追加コンポーネントは、カスタマに計算リソース、データストレージサービス、ネットワーク能力、ならびにコンピュータプラットフォームおよびアプリケーションサポートを提供しながら、ネットワーク（たとえば、インターネット）上で、クライアントコンピュータ４１１〜４１４のカスタマのために、仮想マシンおよびその動作環境（たとえば、ハイパーバイザ、ストレージリソース、ネットワーク素子が提供するサービス等）をプロビジョニングし、作成し、管理するように構成されていてもよい。クラウドシステムはまた、セキュリティシステム、開発環境、ユーザインターフェース等を含め、様々な特定のサービスを提供するように構成されていてもよい。
【００７６】
たとえば、一定のクライアント４１１〜４１４は、同じエンドユーザ、または同じ会社もしくは組織に属する異なるユーザの代わりに仮想マシンを作成する異なるクライアントコンピュータに関連付けられてもよい。他の実施例では、一定のクライアント４１１〜４１４は、異なる会社もしくは組織に属するユーザなどに関連付けられていなくてもよい。関連付けられていないクライアントに対して、いずれかのユーザの仮想マシンまたはストレージ上の情報を他のユーザから隠してもよい。
【００７７】
ここでクラウドコンピューティング環境の物理的ハードウェアレイヤを参照すると、可用性（availability）ゾーン４０１〜４０２（またはゾーン）は物理的コンピューティングリソースのひとまとまりのセットといえる。ゾーンはコンピューティングリソースのクラウド全体において他のゾーンとは地理的に分離していてもよい。たとえば、ゾーン４０１はカリフォルニア州に配置されている第１クラウド・データセンターであってもよく、ゾーン４０２はフロリダ州に配置されている第２クラウド・データセンターであってもよい。管理サーバ４１０は可用性ゾーンのうちの１つ、または別の場所に配置されていてもよい。各ゾーンは、ゲートウェイ経由で、管理サーバ４１０などのゾーン外にあるデバイスとインターフェースする内部ネットワークを含んでいてもよい。クラウドのエンドユーザ（たとえば、クライアント４１１〜４１４）は、ゾーン間の区別に気付くかもしれないし、または気づかないかもしれない。たとえば、エンドユーザは指定される量のメモリ、処理能力、およびネットワーク能力を有する仮想マシンの作成を要求してもよい。
【００７８】
管理サーバ４１０はユーザの要求に応答してもよく、ゾーン４０１またはゾーン４０２のリソースを使用して仮想マシンが作成されたかどうかをユーザが知ることなく、仮想マシンを作成するためにリソースを割り当ててもよい。他の実施例では、クラウドシステムは、エンドユーザが特定のゾーンまたはゾーン内の特定のリソース４０３〜４０５に仮想マシン（または他のクラウドリソース）を割り当てるよう要求できるようにしてもよい。
【００７９】
この実施例では、各ゾーン４０１〜４０２は様々な物理的ハードウェアコンポーネント（またはコンピューティングリソース）４０３〜４０５の配列、たとえば、物理的ホスティングリソース（またはプロセッシングリソース）、物理的ネットワークリソース、物理的ストレージリソース、スイッチ、および、カスタマにクラウドコンピューティングサービスを提供するために使用してもよい追加のハードウェアリソースを含んでいてもよい。
【００８０】
クラウドゾーン４０１〜４０２の物理的ホスティングリソースは、上述した仮想化サーバ３０１など、仮想マシンのインスタンスを作成しホストするように構成されていてもよい１つ以上のコンピュータサーバ４０３を含んでいてもよい。クラウドゾーン４０１または４０２の物理的ネットワークリソースは、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク（ＶＰＮ）ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル（ＤＨＣＰ）ルータ等といった、クラウドカスタマにネットワークサービスを提供するように構成されているハードウェアおよび／またはソフトウェアを備える１つ以上のネットワーク素子４０５（たとえば、ネットワークサービスプロバイダ）を含んでいてもよい。クラウドゾーン４０１〜４０２のストレージリソースは、ストレージディスク（たとえば、ソリッドステートドライブ（ＳＳＤ）、磁気ハードディスク等）および他の記憶装置を含んでいてもよい。
【００８１】
図４に図示するクラウドコンピューティング環境は、クラウドの物理的リソースを使用して仮想マシンを作成して管理し、カスタマに他のサービスを提供するように構成されている追加のハードウェアおよび／またはソフトウェア・リソースを備える仮想化レイヤ（たとえば、図１〜図３に図示するもの）も含んでいてもよい。
【００８２】
仮想化レイヤは、ネットワーク仮想化、ストレージ仮想化等を提供する他のコンポーネントとともに、上述の図３で説明したハイパーバイザを含んでいてもよい。仮想化レイヤは物理的リソースレイヤとは別のレイヤとしてもよく、または物理的リソースレイヤと同じハードウェアおよび／もしくはソフトウェア・リソースのいくつかもしくはすべてを共有していてもよい。たとえば、仮想化レイヤは物理的コンピューティングリソースを有する仮想化サーバ４０３のそれぞれにインストールされているハイパーバイザを含んでいてもよい。あるいは、たとえば、ＷＩＮＤＯＷＳ（登録商標）  ＡＺＵＲＥ（ワシントン州レドモンドのマイクロソフト・コーポレーション）、ＡＭＡＺＯＮ  ＥＣ２（ワシントン州シアトルのアマゾン・ドット・コム・インク）、ＩＢＭ  ＢＬＵＥ  ＣＬＯＵＤ（ニューヨーク州アーモンクのＩＢＭコーポレーション）、または他のものなど、周知のクラウドシステムを使用してもよい。
【００８３】
〈企業モビリティ管理アーキテクチャ〉
図５は、ＢＹＯＤ環境で使用するための企業モビリティ技術アーキテクチャ５００を示す。このアーキテクチャはモバイルデバイス５０２のユーザがモバイルデバイス５０２から企業リソースまたは個人リソースにアクセスすることと、モバイルデバイス５０２を個人利用に使用することと、の両方を可能にする。
【００８４】
ユーザは、当該企業リソース５０４または企業サービス５０８へのアクセスを、ユーザが購入したモバイルデバイス５０２を使用して行ってもよく、または企業がユーザに支給するモバイルデバイス５０２を使用して行ってもよい。ユーザはモバイルデバイス５０２をビジネス専用で利用しても、またはビジネスと個人兼用で利用してもよい。モバイルデバイスはｉＯＳオペレーティングシステム、およびアンドロイド・オペレーティングシステム等を稼動してもよい。企業はモバイルデバイス５０４を管理するポリシーを実装することを選んでもよい。
【００８５】
ポリシーは、ファイヤウォールまたはゲートウェイにより、モバイルデバイスを特定し、セキュリティ保護もしくはセキュリティ検証し、企業リソースへの選択的アクセスもしくは完全なアクセスをモバイルデバイスに提供できるように埋め込んでもよい。ポリシーはモバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーションおよびデータ管理ポリシーのなんらかの組合せとしてもよい。モバイルデバイス管理ポリシーの適用により管理されるモバイルデバイス５０４は登録デバイスということがある。
【００８６】
モバイルデバイスのオペレーティングシステムは、管理対象パーティション５１０と非管理対象パーティション５１２とに分離されていてもよい。管理対象パーティション５１０は管理対象パーティション上で稼動しているアプリケーションおよび管理対象パーティションに格納されているデータをセキュリティ保護された状態にする（secure）ために、ポリシーをそれに適用させてもよい。管理対象パーティション上で稼動しているアプリケーションはセキュリティ保護されたアプリケーションであってもよい。セキュリティ保護されたアプリケーションは、電子メール・アプリケーション、ウェブブラウザ・アプリケーション、サービスとしてのソフトウェア（ＳａａＳ）アクセス・アプリケーション、Ｗｉｎｄｏｗｓ（登録商標）  Ａｐｐｌｉｃａｔｉｏｎアクセス・アプリケーション等であってもよい。セキュリティ保護されたアプリケーションは、セキュリティ保護されたネイティブアプリケーション５１４、セキュリティ保護されたアプリケーション・ランチャ５１８が実行するセキュリティ保護されたリモート・アプリケーション５２２、セキュリティ保護されたアプリケーション・ランチャ５１８が実行する仮想化アプリケーション５２６等であってもよい。
【００８７】
セキュリティ保護されたネイティブアプリケーション５１４はセキュリティ保護されたアプリケーション・ラッパー５２０によってラッピングしてもよい。セキュリティ保護されたアプリケーション・ラッパー５２０は、セキュリティ保護されたネイティブアプリケーションがデバイス上で実行されるときに、モバイルデバイス５０２上で実行される統合ポリシーを含んでいてもよい。セキュリティ保護されたアプリケーション・ラッパー５２０は、モバイルデバイス５０２上で稼動するセキュリティ保護されたネイティブアプリケーション５１４を、セキュリティ保護されたネイティブアプリケーション５１４の実行時に要求されるタスクを完了するようにセキュリティ保護されたネイティブアプリケーション５１４が要求してもよい企業でホストされるリソースに差し向けるメタデータを含んでいてもよい。セキュリティ保護されたアプリケーション・ランチャ５１８が実行するセキュリティ保護されたリモート・アプリケーション５２２は、セキュリティ保護されたアプリケーション・ランチャ・アプリケーション５１８内で実行してもよい。セキュリティ保護されたアプリケーション・ランチャ５１８が実行する仮想化アプリケーション５２６は、企業リソース５０４等で、モバイルデバイス５０２のリソースを利用してもよい。セキュリティ保護されたアプリケーション・ランチャ５１８が実行する仮想化アプリケーション５２６によってモバイルデバイス５０２で使用されるリソースは、ユーザ対話リソース、プロセッシングリソース等を含んでいてもよい。
【００８８】
ユーザ対話リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、オーディオ入力、ビジュアル入力、ジェスチャ入力等を収集して、伝送するために使用してもよい。プロセッシングリソースはユーザインターフェースを提示し、企業リソース５０４等から受信されるデータを処理するために使用してもよい。セキュリティ保護されたアプリケーション・ランチャ５１８が実行する仮想化アプリケーション５２６によって企業リソース５０４で使用されるリソースは、ユーザインターフェース生成リソース、プロセッシングリソース等を含んでいてもよい。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブルし、ユーザインターフェースを修正し、ユーザインターフェースをリフレッシュする等のために使用してもよい。
【００８９】
プロセッシングリソースは情報を作成し、情報を読み取り、情報を更新し、情報を削除する等のために使用してもよい。たとえば、仮想化アプリケーションはＧＵＩに関連するユーザの対話を記録し、それをサーバ・アプリケーションに伝えてもよく、当該サーバ・アプリケーションはユーザ対話データをサーバで動作するアプリケーションへの入力として使用する。
【００９０】
この構成では、企業は、アプリケーションに関連するデータ、ファイル等と同様に、サーバ側のアプリケーションを維持する選択をしてもよい。企業はモバイルデバイスへのデプロイメントのためにそれをセキュリティ保護された状態にすることにより本明細書の原理に従っていくつかのアプリケーションを「モバイル化」する選択をしてもよいが、この構成は一定のアプリケーションのためにも選択してもよい。たとえば、いくつかのアプリケーションはモバイルデバイスで使用するためにセキュリティ保護された状態にしてもよいが、他のものはモバイルデバイスへのデプロイメントの準備がされていないかまたはデプロイメントに適切ではない可能性があるので、企業は仮想化技術により準備されていないアプリケーションへのアクセスをモバイルユーザに提供する選択をしてもよい。
【００９１】
別の実施例として、企業は大量の複雑なデータセットを有する大きく複雑なアプリケーション（たとえば、資材所要量計画アプリケーション）を有することがあり、当該モバイルデバイスのアプリケーションをカスタマイズするのは非常に難しく、またはその他望ましくないので、企業は仮想化技術によりアプリケーションへのアクセスを提供する選択をしてもよい。さらに別の実施例として、企業は、セキュリティ保護化したモバイル環境であっても扱いに非常に注意を要すると企業に見なされて、企業が当該アプリケーションおよびデータへのモバイルアクセスを許可するために仮想化技術を選択してもよい高セキュリティ保護化データ（たとえば、人事データ、顧客データ、エンジニアリングデータ）を維持するアプリケーションを有していてもよい。
【００９２】
企業はサーバ側でより適切に動作すると見なされるアプリケーションへのアクセスを許可するために、仮想化アプリケーションとともに、モバイルデバイス上の完全にセキュリティ保護化しかつ完全に機能するアプリケーションを提供する選択をしてもよい。実施形態では、仮想化アプリケーションは、携帯電話のセキュリティ保護された記憶場所のうちの１つに、いくつかのデータ、ファイル等を格納してもよい。たとえば、企業は一定の情報を電話に格納させるが、他の情報を許可しない選択をしてもよい。
【００９３】
本明細書で説明するように、仮想化アプリケーションに関連して、モバイルデバイスは、ＧＵＩを提示し、さらにＧＵＩとのユーザの対話を記録するように設計されている仮想化アプリケーションを有していてもよい。アプリケーションは、アプリケーションとのユーザインタラクションとして、サーバ側アプリケーションが使用するサーバ側とのユーザインタラクションを伝えてもよい。応答して、サーバ側のアプリケーションはモバイルデバイスに新たなＧＵＩを送り戻してもよい。たとえば、新たなＧＵＩは静的ページ、動的ページ、アニメーションまたは同様な他のものであってもよい。
【００９４】
管理対象パーティション上で稼働するアプリケーションは安定化されたアプリケーションであってもよい。安定化されたアプリケーションはデバイスマネージャ５２４によって管理されてもよい。デバイスマネージャ５２４は安定化されたアプリケーションを監視して、問題を検出して補修する技術が利用されない場合に安定化されていないアプリケーションをもたらすような問題検出および補修のための前記技術を利用してもよい。
【００９５】
セキュリティ保護されたアプリケーションは、モバイルデバイスの管理対象パーティション５１０のセキュリティ保護されたデータコンテナ５２８に格納されているデータにアクセスしてもよい。セキュリティ保護されたデータコンテナにセキュリティ保護化されているデータは、セキュリティ保護されラッピングされたアプリケーション５１４、セキュリティ保護されたアプリケーション・ランチャ５１８が実行するアプリケーション、セキュリティ保護されたアプリケーション・ランチャ５１８が実行する仮想化アプリケーション５２６等によってアクセスされてもよい。セキュリティ保護されたデータコンテナ５２８に格納されているデータはファイル、データベース等を含んでいてもよい。セキュリティ保護されたデータコンテナ５２８に格納されているデータはセキュリティ保護されたアプリケーション５３２の中で共有される特定のセキュリティ保護されたアプリケーション５３０等に制限されるデータを含んでいてもよい。セキュリティ保護されたアプリケーションに制限されるデータは、セキュリティ保護された一般データ５３４および高セキュリティ保護されたデータ５３８を含んでいてもよい。セキュリティ保護された一般データはＡＥＳ  １２８ビット暗号化等の強力な暗号化方式を使用してもよいが、高セキュリティ保護されたデータ５３８はＡＥＳ  ２５４ビット暗号化などの非常に強力な暗号化方式を使用してもよい。セキュリティ保護されたデータコンテナ５２８に格納されているデータは、デバイスマネージャ５２４からのコマンドを受信すると、デバイスから削除してもよい。
【００９６】
セキュリティ保護されたアプリケーションはデュアルモードオプション５４０を有していてもよい。デュアルモードオプション５４０は、非セキュリティ保護化モードで、セキュリティ保護されたアプリケーションを動作させるオプションをユーザに提示してもよい。非セキュリティ保護化モードでは、セキュリティ保護されたアプリケーションはモバイルデバイス５０２の非管理対象パーティション５１２の非セキュリティ保護化データコンテナ５４２に格納されているデータにアクセスしてもよい。
【００９７】
非セキュリティ保護化データコンテナに格納されているデータは個人データ５４４であってもよい。非セキュリティ保護化データコンテナ５４２に格納されているデータは、モバイルデバイス５０２の非管理対象パーティション５１２上で稼動している非セキュリティ保護化アプリケーション５４８によってアクセスしてもよい。非セキュリティ保護化データコンテナ５４２に格納されているデータは、セキュリティ保護されたデータコンテナ５２８に格納されているデータがモバイルデバイス５０２から削除されるとき、モバイルデバイス５０２上に残してもよい。企業は、ユーザが所有、ライセンスもしくは制御する個人データ、ファイルおよび／もしくはアプリケーション（個人データ）を残しながら、またはその他存続させながら、企業が所有、ライセンスまたは制御する選択されたもしくはすべてのデータ、ファイル、および／またはアプリケーション（企業データ）をモバイルデバイスから削除したいことがある。この動作を選択的消去と称すことがある。本明細書で説明する実施例に従って分類される企業データおよび個人データを用いて、企業は選択的消去を行ってもよい。
【００９８】
モバイルデバイスは企業の企業リソース５０４および企業サービス５０８と、公衆インターネット５４８等とに接続してもよい。モバイルデバイスは仮想プライベートネットワーク接続を介して企業リソース５０４および企業サービス５０８に接続してもよい。仮想プライベートネットワーク接続は、モバイルデバイスの特定のアプリケーション５５０、特定のデバイス、特定のセキュリティ保護化エリア等５５２に特定的なものにしてもよい。たとえば、電話のセキュリティ保護化エリア内にラッピングされたアプリケーションのそれぞれは、ＶＰＮへのアクセスが、おそらくユーザまたはデバイスの属性情報と合わせて、アプリケーションに関連する属性に基づいて付与されるように、アプリケーション特定ＶＰＮ経由で企業リソースにアクセスしてもよい。仮想プライベートネットワーク接続はＭｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅトラフィック、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙトラフィック、ＨＴＴＰトラフィック、ＨＴＴＰＳトラフィック、アプリケーション管理トラフィック等を伝送してもよい。仮想プライベートネットワーク接続はシングルサインオン認証プロセス５５４をサポートし、これを有効にしてもよい。シングルサインオンプロセスは、ユーザが、後で認証サービス５５８によって検証される単一セットの認証資格情報を提供できるようにしてもよい。その後、認証サービス５５８は、各個々の企業リソース５０４に認証資格情報を提供するようユーザに要求しなくても、ユーザに複数の企業リソース５０４へのアクセス権を付与してもよい。
【００９９】
仮想プライベートネットワーク接続は、アクセス・ゲートウェイ５６０によって確立され、管理されてもよい。アクセス・ゲートウェイ５６０は企業リソース５０４のモバイルデバイス５０２への配信を管理し、高速化しおよび改善するパフォーマンス向上特徴を含んでいてもよい。アクセス・ゲートウェイはモバイルデバイス５０２から公衆インターネット５４８にトラフィックを経路切替えしてもよく、モバイルデバイス５０２が公衆インターネット５４８で稼動している公開利用できる非セキュリティ保護化アプリケーションにアクセスすることを可能にする。モバイルデバイスは転送ネットワークを介してアクセス・ゲートウェイに接続してもよい。転送ネットワークはワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等でもよい。
【０１００】
企業リソース５０４は電子メールサーバ、ファイル共有サーバ、ＳａａＳアプリケーション、ウェブアプリケーションサーバ、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバ等を含んでいてもよい。電子メールサーバはＥｘｃｈａｎｇｅサーバ、Ｌｏｔｕｓ  Ｎｏｔｅｓサーバ等を含んでいてもよい。ファイル共有サーバはＳｈａｒｅＦｉｌｅサーバ等を含んでいてもよい。ＳａａＳアプリケーションはＳａｌｅｓｆｏｒｃｅ等を含んでいてもよい。Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバはローカルなＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム等上で稼動するように意図されたアプリケーションを提供するために構築されているあらゆるアプリケーションサーバを含んでいてもよい。企業リソース５０４はプレミスベースのリソース、クラウドベースのリソース等であってもよい。企業リソース５０４はモバイルデバイス５０２から直接、またはアクセス・ゲートウェイ５６０経由でアクセスしてもよい。企業リソース５０４はモバイルデバイス５０２から転送ネットワークを介してアクセスしてもよい。転送ネットワークはワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
【０１０１】
企業サービス５０８は認証サービス５５８、脅威検出サービス５６４、デバイスマネージャサービス５２４、ファイル共有サービス５６８、ポリシーマネージャサービス５７０、ソーシャル統合サービス５７２、アプリケーションコントローラサービス５７４等を含んでいてもよい。
【０１０２】
認証サービス５５８はユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービス等を含んでいてもよい。認証サービス５５８は証明書を使用してもよい。証明書は企業リソース５０４等によりモバイルデバイス５０２に格納してもよい。モバイルデバイス５０２に格納されている証明書は、モバイルデバイスの暗号化された場所に格納してもよく、証明書は認証時点で使用する等のためにモバイルデバイス５０２に一時的に格納してもよい。脅威検出サービス５６４は侵入検出サービス、不正アクセス試行検出サービス等を含んでいてもよい。不正アクセス試行検出サービスはデバイス、アプリケーション、データ等への不正アクセスの試行を含んでいてもよい。
【０１０３】
デバイス管理サービス５２４は構成サービス、プロビジョニングサービス、セキュリティサービス、サポートサービス、監視サービス、レポーティングサービスおよびデコミッショニングサービスを含んでいてもよい。ファイル共有サービス５６８はファイル管理サービス、ファイルストレージサービス、ファイルコラボレーションサービス等を含んでいてもよい。ポリシーマネージャサービス５７０はデバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含んでいてもよい。
【０１０４】
ソーシャル統合サービス５７２は連絡先統合サービス、コラボレーションサービス、Ｆａｃｅｂｏｏｋ、ＴｗｉｔｔｅｒおよびＬｉｎｋｅｄＩｎなどのソーシャル・ネットワークとの統合等を含んでいてもよい。アプリケーションコントローラサービス５７４は管理サービス、プロビジョニングサービス、デプロイメントサービス、割り当てサービス、失効サービス、ラッピングサービス等を含んでいてもよい。
【０１０５】
企業モビリティ技術アーキテクチャ５００は、アプリケーションストア５７８を含んでいてもよい。アプリケーションストア５７８はラッピングされていないアプリケーション５８０、予めラッピングされたアプリケーション５８２等を含んでいてもよい。アプリケーションはアプリケーションコントローラ５７４からアプリケーションストア５７８に配置してもよい。アプリケーションストア５７８はモバイルデバイス５０２からアクセス・ゲートウェイ５６０、公衆インターネット５４８等経由でアクセスしてもよい。アプリケーションストアには直観的に理解でき、使いやすいユーザインターフェースを備えてもよい。アプリケーションストア５７８はソフトウェア開発キット５８４へのアクセス権を提供してもよい。
【０１０６】
ソフトウェア開発キット５８４は、本明細書で上述したようにアプリケーションをラッピングすることにより、ユーザが選択したアプリケーションをセキュリティ保護化する機能をユーザに提供してもよい。ソフトウェア開発キット５８４を用いてラッピングされたアプリケーションは、さらにアプリケーションコントローラ５７４を用いてアプリケーションストア５７８にそれを配置することにより、モバイルデバイス５０２に利用できるようにしてもよい。
【０１０７】
企業モビリティ技術アーキテクチャ５００は、管理解析機能５８８を含んでいてもよい。管理解析機能５８８はリソースの使用方法、リソースの使用頻度等に関連する情報を提供してもよい。リソースはデバイス、アプリケーション、データ等を含んでいてもよい。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか等を含んでいてもよい。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションが特定のデータセットにアクセスした回数等を含んでいてもよい。
【０１０８】
図６は、別の企業モビリティ管理システム６００である。図５を参照して上述したモビリティ管理システム５００の構成要素のうちのいくつかは、簡略化するために省略している。図６に図示するシステム６００のアーキテクチャは、図５を参照して上述したシステム５００のアーキテクチャと多くの点で類似しており、上述していない追加の特徴を含んでいる。
【０１０９】
この場合、左側はレシーバ６０４とともに登録モバイルデバイス６０２を表しており、レシーバ６０４は、右側に示すＥｘｃｈａｎｇｅ、Ｓｈａｒｅｐｏｉｎｔ、ＰＫＩリソース、ケルベロスリソース、証明書発行サービス等の様々な企業リソース６０８およびサービス６０９にアクセスするために、クラウドベースのサービスへのゲートウェイ６０６（「クラウド・ゲートウェイ」）と対話する。クラウド・ゲートウェイ６０６は、アクセス・ゲートウェイおよびアプリケーションコントローラ機能も含んでいてもよい。具体的には図示していないが、モバイルデバイス６０２はアプリケーションの選択とダウンロードのために、企業アプリケーションストア（「ｓｔｏｒｅ  ｆｒｏｎｔ」）と対話してもよい。
【０１１０】
レシーバ６０４は企業のデータセンターでホストされるＷｉｎｄｏｗｓ（登録商標）アプリ／デスクトップのＵＩ（ユーザインターフェース）媒介装置として機能し、企業のデータセンターは、たとえばＣｉｔｒｉｘから利用可能なＨＤＸ／ＩＣＡプロトコル等の表示リモーティングプロトコルを使用してアクセスされる。レシーバ６０４は、ネイティブｉＯＳまたはＡｎｄｒｏｉｄ（登録商標）アプリケーション等のモバイルデバイス６０２のネイティブアプリケーションのインストールおよび管理もサポートする。たとえば、上述の図面に図示する管理対象アプリケーション６１０（メール、ブラウザ、ラッピングされたアプリケーション）はすべてデバイス上でローカルに実行するネイティブアプリケーションである。このアーキテクチャの、レシーバ６０４およびモバイルアプリケーション管理プロトコルは、企業リソース／サービス６０８との接続性およびＳＳＯ（シングル・サイン・オン）などのポリシーによる管理の機能および特徴を提供するように機能する。モバイルアプリケーション管理プロトコルの一例は、Ｃｉｔｒｉｘから利用可能なＭＤＸ（モバイル経験技術）である。レシーバ６０４は企業に対する、通常は他のクラウド・ゲートウェイのコンポーネントへのＳＳＯとのアクセス・ゲートウェイ（ＡＧ）に対する、一次ユーザ認証を扱う。レシーバ６０４はクラウド・ゲートウェイ６０６からポリシーを取得して、モバイルデバイス６０２上の管理対象アプリケーション６１０の挙動を制御する。
【０１１１】
ネイティブアプリケーション６１０とレシーバ６０４とのセキュリティ保護されたインタープロセス通信（ＩＰＣ）リンク６１２は管理チャネルを表し、これによりレシーバは各アプリケーションを「ラッピング」する管理フレームワーク６１４によって実施されるポリシーを供給することができる。管理フレームワーク６１４は、たとえばＣｉｔｒｉｘから利用可能なＭＤＸフレームワークであってもよい。ＩＰＣリンク６１２により、レシーバ６０４はまた、企業リソース６０８との接続性およびＳＳＯを有効にする資格情報および認証情報を供給することができる。最後に、ＩＰＣリンク６１２により、管理フレームワーク６１４は、オンラインおよびオフラインによる認証等、レシーバ６０４が実装するユーザインターフェース機能を呼び出すことができる。
【０１１２】
レシーバ６０４とクラウド・ゲートウェイ６０６との通信は、本質的に、各ネイティブ管理対象アプリケーション６１０をラッピングする管理フレームワーク６１４からの管理チャネルの拡張である。管理フレームワーク６１４はレシーバ６０４からのポリシー情報を要求し、これがさらにクラウド・ゲートウェイ６０６からのポリシー情報を要求する。
【０１１３】
管理フレームワーク６１４は認証を要求し、レシーバ６０４は、たとえばＣｉｔｒｉｘから利用可能なＮｅｔＳｃａｌｅｒ  Ａｃｃｅｓｓ  Ｇａｔｅｗａｙでもよい、クラウド・ゲートウェイ６０６のゲートウェイサービス部にログインする。レシーバ６０４はクラウド・ゲートウェイ６０６上のサポートサービスも呼び出してもよく、それにより、以下詳細に説明するように、ローカルデータボルト６１６の暗号化鍵を導出するための入力成分を生成するか、または直接認証を可能にするクライアント証明書をＰＫＩ保護リソースに提供してもよい。
【０１１４】
さらに詳しくは、管理フレームワーク６１４は各管理対象アプリケーション６１０を「ラッピング」する。これは明確なビルドステップ、またはビルド後処理ステップを介して組み込んでもよい。管理フレームワーク６１４は、セキュリティ保護されたＩＰＣリンク６１２を初期化し、そのアプリケーションのポリシーを取得するために、アプリケーション６１０の最初の起動時にレシーバ６０４と「ペア」にしてもよい。管理フレームワーク６１４は、レシーバのログイン・ディペンデンシーおよび、ローカルＯＳサービスをどのように使用してよいか、またはローカルＯＳサービスがアプリケーション６１０とどのように対話してよいかを制限する閉じ込めポリシーのうちのいくつかなど、ローカルに適用するポリシーの関連部分を実施してもよい。
【０１１５】
管理フレームワーク６１４はセキュリティ保護されたＩＰＣリンク６１２上でレシーバ６０４が提供するサービスを使用して、認証および内部ネットワークアクセスを促進してもよい。プライベート・共有データボルト６１６（コンテナ）の鍵管理も、管理対象アプリケーション６１０とレシーバ６０４との適切なインタラクションにより管理してもよい。ボルト６１６はオンライン認証後にのみ利用できてもよく、またはポリシーが許可する場合にはオフライン認証後に利用できるようにしてもよい。ボルト６１６の初めての使用にはオンライン認証を要求してもよく、オフラインアクセスは最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に制限してもよい。
【０１１６】
内部リソースへのネットワークアクセスは、個々の管理対象アプリケーション６１０からクラウド・ゲートウェイ６０６のアクセス・ゲートウェイ機能を介して直接行ってもよい。管理フレームワーク６１４は各アプリケーション６１０に代わってネットワークアクセスの統合を担う。レシーバ６０４は、オンライン認証後に取得される適切な時間制限付きの二次資格情報を提供することにより、これらのネットワーク接続を促進してもよい。リバースウェブプロキシ接続およびエンドツーエンドＶＰＮ型トンネル６１８など、ネットワーク接続の複数のモードを使用してもよい。
【０１１７】
メール・ブラウザ管理対象アプリケーション６１０は特別なステータスを有し、任意にラッピングされたアプリケーションには一般に利用できない可能性のあるファシリティを利用できるようにしてもよい。たとえば、メール・アプリケーションは、フルＡＧログオンを要求せずに、メールサーバ（たとえば、Ｅｘｃｈａｎｇｅ）へのアクセスを長時間可能にする特別なバックグラウンドネットワークアクセス機構を使用してもよい。ブラウザ・アプリケーションは異なる種類のデータを分ける複数のプライベートデータボルトを使用してもよい。
【０１１８】
このアーキテクチャは、様々な他のセキュリティ特徴の組み込みをサポートする。たとえば、ある場合にはクラウド・ゲートウェイ６０６（そのゲートウェイ・サービスを含む）はディレクトリサービスのパスワード（たとえばアクティブディレクトリ（ＡＤ）パスワード）の妥当性検証をする必要がない。ある状況においてディレクトリサービスのパスワードをあるユーザの認証因子として使用するかどうかは、企業の裁量に任せることができる。ユーザがオンラインまたはオフラインである（たとえば、ネットワークに接続されている場合または接続されていない場合）、異なる認証方法を使用してもよい。
【０１１９】
ステップアップ認証は、クラウド・ゲートウェイ６０６が強力な認証が必要な極秘データへアクセスすることが認められている管理対象ネイティブアプリケーション６１０を識別し、以前の弱いレベルのログイン後にユーザにより再認証が要求されることになるとしても、これらのアプリケーションへのアクセスが適切な認証を行った後にのみ許可されることを確保してもよい。
【０１２０】
このソリューションの別のセキュリティ特徴は、モバイルデバイス６０２でのデータボルト（data vaults）６１６（コンテナ）の暗号化である。ボルト６１６は、ファイル、データベースおよび構成を含むすべてのオンデバイスデータが保護されるように暗号化してもよい。オンラインボルトの場合、鍵はサーバ（たとえば、クラウド・ゲートウェイ）に格納してもよく、オフラインボルトの場合、鍵のローカルコピーをユーザ・パスワードによって保護してもよい。セキュリティ保護されたコンテナ６１６でデータがデバイス６０２にローカルに格納される場合、最低でもＡＥＳ２５６暗号化アルゴリズムを利用するのが好ましい。
【０１２１】
他のセキュリティ保護されたコンテナの特徴も実装してもよい。たとえば、ロギング特徴を含めてもよく、アプリケーション６１０内で起こるすべてのセキュリティイベントを記録して、バックエンドに報告する。アプリケーション６１０が改ざんを検出する場合など、データ消去をサポートしてもよく、ユーザデータが破棄されたことの手がかりをファイルシステムに残さずに、関連暗号化鍵をランダムデータで上書きしてもよい。スクリーンショットの保護は別の特徴であり、アプリケーションはデータをスクリーンショットに格納させないようにしてもよい。たとえば、鍵ウインドウの隠しプロパティをＹＥＳに設定してもよい。これにより、どのようなコンテンツが現在スクリーンに表示されていてもそれを隠せるので、通常いずれかのコンテンツが常駐するスクリーンショットがブランクになる。
【０１２２】
たとえば、データを外部のアプリケーションにコピーまたは送信するなど、アプリケーション・コンテナ外にローカルにデータを転送することを一切させないなどして、ローカルなデータ転送を防止してもよい。キーボードのキャッシュ特徴は扱いに注意を要するテキストフィールドのオートコレクト機能を使用不可にするように動作してもよい。ＳＳＬ証明書の妥当性検証を使用可能にしてもよいので、キーチェーンに格納する代わりに、アプリケーションはサーバＳＳＬ証明書を特別に妥当性検証する。デバイスのデータを暗号化するために使用する鍵をユーザによって供給されるパスフレーズを使用して生成するように（オフラインアクセスが要求される場合）、暗号化鍵生成特徴を使用してもよい。オフラインアクセスが要求されない場合、サーバ側でランダムに生成し、格納される別の鍵を用いてＸＯＲをとってもよい。鍵導出関数は、ユーザ・パスワードから生成される鍵が、その暗号学的ハッシュを作成するのではなく、ＫＤＦ（鍵導出関数、特にＰＢＫＤＦ２）を使用するように動作してもよい。前者では、鍵が総当たり攻撃または辞書攻撃を受けやすくなる。
【０１２３】
さらに、暗号化方法に１つ以上の初期化ベクトルを使用してもよい。初期化ベクトルは同じ暗号化データの複数のコピーに異なる暗号文出力を生じ、再生および暗号解読攻撃の両方を防止する。これは攻撃者がデータの暗号化に使用する特定の初期化ベクトルが不明な場合に盗んだ暗号鍵を用いた場合であっても、データの解読を防止する。また、認証後の解読を使用してもよく、ユーザがアプリケーション内で認証された後でしかアプリケーションデータは解読されない。別の特徴はメモリ内の扱いに注意を要するデータに関係してもよく、それが必要なときにのみ、メモリ（ディスクではない）に保管されてもよい。たとえば、ログイン資格情報はログイン後にメモリから消去されて、オブジェクティブＣインスタンス変数内の暗号化鍵および他のデータは、簡単に参照される可能性があるため格納されない。代わりに、これらのためにメモリを手動で割り当ててもよい。
【０１２４】
ポリシーで定義した無活動期間の経過後に、ユーザのセッションを終了する無活動タイムアウトを実装してもよい。
【０１２５】
管理フレームワーク６１４からのデータ漏えいは、他の方法で阻止してもよい。たとえば、アプリケーション６１０がバックグラウンドに入る場合、所定（構成可能な）期間後にメモリをクリアにしてもよい。バックグラウンドに移るとき、アプリケーションの最後に表示されたスクリーンのスナップショットを取得して、フォアグラウンドに出すプロセスを迅速化してもよい。スクリーンショットは機密データを含むことがあり、そのためクリアにされるべきである。
【０１２６】
別のセキュリティ特徴は、１つ以上のアプリケーションにアクセスするためにディレクトリサービス６２２のパスワードを使用しない、ＯＴＰ（ワンタイムパスワード）６２０の使用に関係する。ある場合には、あるユーザは自身のディレクトリサービスのパスワードを知らず（または知ることを許可されておらず）、そのためこれらユーザはＳｅｃｕｒＩＤなどのハードウェアＯＴＰシステムを使用するなど、ＯＴＰ６２０を使用して認証してもよい（ＯＴＰは、エントラストまたはジェムアルトなど、異なるベンダによっても提供されてよい）。ある場合には、ユーザがユーザＩＤで認証した後、ＯＴＰ６２０を用いてユーザにテキストが送信される。ある場合には、これはオンライン利用の場合のみ実施してもよく、プロンプトは単一フィールドである。
【０１２７】
企業ポリシーによりオフライン使用が許可されるアプリケーション６１０については、オフライン認証のためにオフラインパスワードを実装してもよい。たとえば、企業はｓｔｏｒｅ  ｆｒｏｎｔにこの方法でアクセスしてもらいたい可能性がある。この場合、レシーバ６０４はユーザにカスタムオフラインパスワードの設定を要求してもよく、ディレクトリサービスのパスワードは使用されない。クラウド・ゲートウェイ６０６は、標準的なＷｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒパスワードの複雑さの要件で記述されるなど、パスワードの最低長さ、文字種の組合せおよび有効期限に関するパスワード標準を制御し、実施するポリシーを提供してもよい。ただし、これらの要件は修正してもよい。
【０１２８】
別の特徴は、二次資格情報として一定のアプリケーション６１０のクライアント側証明書の有効化に関する（管理フレームワークのマイクロＶＰＮ特徴を介してＰＫＩ保護ウェブリソースにアクセスするため）。たとえば、電子メールのアプリケーションはこのような証明書を利用することがある。この場合、モバイルデータ同期プロトコル（たとえば、ＡｃｔｉｖｅＳｙｎｃが採用するプロトコル）を使用した証明書による認証をサポートしてもよく、レシーバ６０４からの証明書はクラウド・ゲートウェイ６０６によって検索されて、キーチェーンで使用してもよい。各管理対象アプリケーションは、クラウド・ゲートウェイで定義されるラベルによって識別される１つの関連クライアント証明書を有していてもよい。
【０１２９】
クラウド・ゲートウェイ６０６は企業専用ウェブサービスと対話して、該当の管理対象アプリケーションが内部ＰＫＩ保護リソースに認証を行うことを可能にするクライアント証明書の発行をサポートしてもよい。
【０１３０】
レシーバ６０４および管理フレームワーク６１４は、内部ＰＫＩ保護ネットワークリソースに認証を行うために、クライアント証明書の取得および使用をサポートするように増強してもよい。様々なレベルのセキュリティおよび／または隔離の要求事項に応じるためなど、２つ以上の証明書をサポートしてもよい。証明書はメール・ブラウザ管理対象アプリケーション、および最終的には任意にラッピングされたアプリケーションが使用してもよい（ただし、管理フレームワークがｈｔｔｐｓ要求を仲介するのが合理的な場合、これらのアプリケーションはウェブサービス型の通信パターンを使用する）。
【０１３１】
ｉＯＳの管理フレームワークのクライアント証明書サポートは、各使用期間中、各管理対象アプリケーションのｉＯＳキーチェーンへのＰＫＣＳ  １２  ＢＬＯＢ（バイナリ・ラージ・オブジェクト）のインポートに依拠してもよい。管理フレームワークのクライアント証明書サポートは、プライベートメモリ内キーストレージとともにＨＴＴＰＳ実装を使用してもよい。クライアント証明書はｉＯＳキーチェーンには存在してはならず、強力に保護されている「オンライン限定の」データ値を潜在的に除き、存続させてはならない。
【０１３２】
相互ＳＳＬも実装して、企業に対してモバイルデバイス６０２が認証されること、およびその逆を要求することにより、追加のセキュリティを提供してもよい。クラウド・ゲートウェイ６０６に対する認証用の仮想スマートカードも実装してもよい。
【０１３３】
限定およびフル両方のケルベロスサポートを追加の特徴としてもよい。フルサポート特徴は、ディレクトリサービスのパスワードまたは信頼できるクライアント証明書を使用したディレクトリサービス６２２へのフルケルベロスログインを行い、ＨＴＴＰ  Ｎｅｇｏｔｉａｔｅ認証チャレンジにレスポンスするためにケルベロスサービスチケットを取得する能力に関係する。限定サポート特徴はＡＦＥＥでの制約付き委任に関係し、当該ＡＦＥＥサポートはケルベロスプロトコル遷移の呼び出しをサポートするので、ＨＴＴＰ  Ｎｅｇｏｔｉａｔｅ認証チャレンジにレスポンスしてケルベロスサービスチケット（制約付き委任を条件とする）を取得して使用することができる。この機構はリバースウェブプロキシ（別名ＣＶＰＮ）モードで機能し、ｈｔｔｐ（ただし、ｈｔｔｐｓではない）接続はＶＰＮおよびマイクロＶＰＮモードでプロキシされる。
【０１３４】
別の特徴はアプリケーション・コンテナのロックおよび消去に関係し、これはジェイルブレイクまたはルート化検出時には自動的に行われ、管理コンソールからプッシュされるコマンドとして発生し、たとえアプリケーション６１０が稼動していないときでも、遠隔消去機能を含んでいてもよい。
【０１３５】
障害のある場合に、いくつかの異なる場所のうちの１つからユーザがサービスを受けられるｓｔｏｒｅ  ｆｒｏｎｔおよびアプリケーションコントローラのマルチサイト・アーキテクチャまたは構成をサポートしてもよい。
【０１３６】
ある場合には、管理対象アプリケーション６１０には、ＡＰＩ（たとえば、ＯｐｅｎＳＳＬ）を介して証明書および秘密鍵にアクセスが許可されてもよい。企業の信頼できる管理対象アプリケーション６１０は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵オペレーションを行うことが認められてもよい。アプリケーションがブラウザのように挙動し、証明書アクセスが要求されない場合、アプリケーションが「ｗｈｏ  ａｍ  Ｉ」証明書を読み取るとき、アプリケーションが証明書を使用してセキュリティ保護されたセッション・トークンを構築するとき、およびアプリケーションが重要なデータのデジタル署名のため（たとえば、トランザクションログ）または一時データ暗号化のために秘密鍵を使用するときなど、様々な使用のケースが識別され、それに応じて扱われてもよい。
【０１３７】
〈管理対象モバイルアプリケーションの識別〉
図７は、例示的なモバイルデバイス管理システム７００を示す。システム７００は図５および図６をそれぞれ参照して上述したシステム５００およびシステム６００に多くの点で類似している。システム７００はまた、簡素化のために上述の一定のコンポーネントを省略してもよく、上述していない追加の特徴を備えていてもよい。
【０１３８】
モバイルデバイス管理システム７００は、ネットワーク７０６を介した１つ以上のモバイルデバイス７０４との信号通信状態にある企業システム７０２を含んでいる。企業システムは、企業アプリケーションサーバ７０８、アクセス・ゲートウェイ７１０、および１つ以上の企業リソース７１２等のコンピューティングリソースを含んでいてもよい。
【０１３９】
企業アプリケーションサーバ７０８は図５を参照して上述したアプリケーションストア５７８に多くの点で類似している。企業アプリケーションサーバ７０８は、モバイルデバイス、たとえばモバイルデバイス７０４でインストールするために利用可能なモバイルアプリケーション７１４へのアクセスを提供してもよい。
【０１４０】
上述のように、モバイルアプリケーション７１４は、セキュリティ保護化されたモバイルアプリケーションとセキュリティ保護化されていないモバイルアプリケーションの両方を含んでいてもよい。したがって、モバイルアプリケーション７１４は、図５を参照して上述したラッピングされていないアプリケーション１８０および予めラッピングされたアプリケーション１８２に対応していてもよい。また上述のように、セキュリティ保護化されたモバイルアプリケーションは、セキュリティ保護化されたモバイルアプリケーションの実行の管理および制御を可能にするセキュリティ保護されたアプリケーション・ラッパーでラッピングしてもよい。この点で、セキュリティ保護化されたモバイルアプリケーション、ラッピングされたモバイルアプリケーション、または登録されたモバイルアプリケーションもまた、管理対象モバイルアプリケーションと称してもよい。
【０１４１】
企業アプリケーションサーバ７０８はまた、それぞれモバイルアプリケーション７１４に関連付けられたアプリケーションポリシー７１６およびアプリケーションメタデータ７１８へのアクセスを提供してもよい。アプリケーションポリシー７１６は、それを介してモバイルアプリケーションの管理が達成される機構のうちの１つを表してもよい。上述のように、アプリケーションポリシー７１６は、それに関してユーザが管理対象モバイルアプリケーションを利用してもよい権利および資格、管理対象モバイルアプリケーションはどのコンピューティングリソースにアクセスしてもよいのか、モバイルデバイスで実行したときに管理対象モバイルアプリケーションで利用可能な特徴、ならびにそれらの組み合わせを定義してもよい。
【０１４２】
アプリケーションメタデータ７１８は、モバイルアプリケーションを説明および／または識別する情報を参照する。アプリケーションメタデータ７１８は、新たなモバイルアプリケーションの構築プロセス中に生成されてもよく、新たなモバイルアプリケーションが企業アプリケーションサーバに発行されるときに企業アプリケーションサーバ７０８を介して利用可能になるようにしてもよい。アプリケーションメタデータ７１８は、たとえばモバイルアプリケーションの名称、モバイルアプリケーションのサイズ、モバイルアプリケーションの一意的な識別子、モバイルアプリケーションのバージョン等を含んでいてもよい。以下にさらに説明するように、アプリケーションメタデータ７１８はまた、モバイルアプリケーションのアイデンティティの検証に役立つ情報を含んでいてもよい。
【０１４３】
アクセス・ゲートウェイ７１０は、モバイルデバイス（たとえばモバイルデバイス７０４）で動作する管理対象モバイルアプリケーションからの企業リソース７１２へのアクセスを促進してもよい。アクセス・ゲートウェイ７１０は、図５および図６をそれぞれ参照して上述したアクセス・ゲートウェイ１６０およびクラウド・ゲートウェイ６０６に多くの点で類似していてもよい。企業リソース７１２は、図５および図６をそれぞれ参照して上述した企業リソース５０４および６０８ならびに企業サービス５０８および６０９に対応していてもよい。検証され、認証され、かつ承認されると、モバイルアプリケーションは、上述のようにアクセス・ゲートウェイ７１０を介して企業リソース７１２にアクセスしてもよい。
【０１４４】
管理対象モバイルアプリケーション７２０および非管理対象モバイルアプリケーション７２２の両方がモバイルデバイス７０４に存在してもよい。アクセスマネージャアプリケーション７２４もまた、モバイルデバイス７０４に存在してもよく、モバイルデバイス上の管理対象モバイルアプリケーション７２０の実行を管理してもよい。管理対象および非管理対象両方のモバイルアプリケーションを含むモバイルデバイスを非管理対象モバイルデバイスと称してもよい。これは、企業がそのモバイルデバイスで管理対象モバイルアプリケーションに対する制御を実行する能力のみを有し、他の態様のモバイルデバイス（たとえば非管理対象アプリケーション）に対する制御を実行する能力を有していない可能性があるためである。モバイルデバイス７０４は管理対象モバイルアプリケーション７２０および非管理対象モバイルアプリケーション７２２を含んでいるため、図７の実施例で示すモバイルデバイスは非管理対象モバイルデバイスと称してもよく、個人のパーソナルモバイルデバイスを表してもよい。
【０１４５】
アクセスマネージャアプリケーション７２４（「アクセスマネージャ」）は、図６を参照して上述したレシーバ６０４に多くの点で類似していてもよい。以下にさらに説明するように、アクセスマネージャ７２４はユーザ認証、モバイルアプリケーションのアイデンティティの検証、およびモバイルアプリケーションのポリシーの実施を管理してもよい。ユーザは、モバイルデバイス７０４でアクセスマネージャ７２４を最初にダウンロードしてインストールするために（たとえば、ウェブブラウザを介して）企業アプリケーションサーバ７０８にアクセスしてもよい。上述のように、アクセスマネージャ７２４はまた、企業アプリケーションサーバ７０８へのインターフェースとして機能して、ユーザが企業システム７０２から利用可能なモバイルアプリケーションのブラウズ、ダウンロード、およびインストールを行えるようにしてもよい。
【０１４６】
ユーザが管理対象モバイルアプリケーション７２０をモバイルデバイス７０４にダウンロードすると、アクセスマネージャ７２４もまた、管理対象モバイルアプリケーション７２０に関連付けられたアプリケーションメタデータ７１８および管理対象モバイルアプリケーションに関連付けられたあらゆるアプリケーションポリシー７１６をダウンロードしてもよい。上述のように、アクセスマネージャ７２４は企業アプリケーションサーバ７０８からモバイルアプリケーション７２０のためのアプリケーションメタデータ７１８を受信してもよい。いくつかの例示的な実施態様では、アクセスマネージャ７２４はモバイルデバイス７０４のセキュリティ保護された場所、たとえば図５のセキュリティ保護されたデータコンテナ５２８および／または図６のセキュリティ保護されたデータボルト６１６に、アプリケーションメタデータ７１８およびアプリケーションポリシー７１６を格納してもよい。
【０１４７】
アクセスマネージャ７２４はまた、モバイルデバイス７０４に現在インストールされており、アクセスマネージャの管理下にある管理対象モバイルアプリケーションのリスト７２６を維持していてもよい。新たな管理対象モバイルアプリケーションのインストール時、アクセスマネージャ７２４は管理対象モバイルアプリケーションのリスト７２６に新たなエントリを追加してもよい。リスト７２６の新たなエントリはモバイルデバイス７０４でインストールされた新たな管理対象モバイルアプリケーションに対応していてもよい。
【０１４８】
上述のように、アクセスマネージャ７２４は管理対象モバイルアプリケーション７２０のアイデンティティを検証する、たとえば管理対象モバイルアプリケーションがそれ自体を正確に識別したことを確実にするおよび／または管理対象モバイルアプリケーションがインストレーションの後にモバイルデバイス７０４において改変されていないことを確実にするように構成されていてもよい。アクセスマネージャは、管理対象モバイルアプリケーション７２０のアイデンティティを検証するために、アプリケーションメタデータ７１８に含まれる識別情報７２８に依拠してもよい。
【０１４９】
いくつかの例示的な実施形態では、アクセスマネージャ７２４は管理対象モバイルアプリケーションのアイデンティティの検証を行うために、管理対象モバイルアプリケーション７２０が動作するモバイルプラットフォームに依拠してもよい。モバイルプラットフォームのオペレーティングシステムは、アクセスマネージャ７２４が管理対象モバイルアプリケーションのために格納された識別情報と比較してもよい識別情報を作成してもよい。格納された識別情報がオペレーティングシステムから受信した識別情報と一致する場合は、アクセスマネージャ７２４は管理対象モバイルアプリケーション７２０を信用されたモバイルアプリケーションとして識別し、企業リソース７１２へのアクセスを許可してもよい。管理対象モバイルアプリケーションのために格納された識別情報がオペレーティングシステムから受信した識別情報と一致しない場合は、アクセスマネージャ７２４は管理対象モバイルアプリケーション７２０を疑わしいまたは信用できないモバイルアプリケーションとして識別し、企業リソース７１２へのアクセスを拒否してもよい。上述のように、アクセスマネージャ７２４はまた、モバイルデバイス７０４自体のローカルコンピューティングリソースへのアクセスを許可または拒絶してもよい。モバイルデバイス７０４のローカルコンピューティングリソースは、たとえば、カメラまたは他の記録用ハードウェア、ＧＰＳ等の位置サービス、セルラーサービスまたはインターネットサービス等のネットワークサービス、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の通信サービス、カットアンドペーストおよびスクリーンショットの機能等のインターフェースコマンドを含んでいてもよい。
【０１５０】
他の例示的な実施形態では、アクセスマネージャ７２４はそれ自体を識別するために管理対象モバイルアプリケーション７２０にチャレンジしてもよい。アクセスマネージャ７２４は管理対象モバイルアプリケーション７２０にチャレンジ要求を発行し、期待されるチャレンジレスポンスを決定してもよい。期待されるチャレンジレスポンスは、正確にそれ自体を識別しかつ改変されていない管理対象モバイルアプリケーションから受信すると期待されるレスポンスのことである。
【０１５１】
以下にさらに説明するように、正確にそれ自体を識別しかつ改変されていないモバイルアプリケーションのみが期待チャレンジレスポンスを作成することができるようにしてもよい。管理対象モバイルアプリケーション７２０から受信したレスポンスが期待されるレスポンスと一致する場合は、アクセスマネージャ７２４は管理対象モバイルアプリケーション７２０を信用されたモバイルアプリケーションとして識別してもよい。管理対象モバイルアプリケーション７２０を信用されたモバイルアプリケーションとして識別した後、アクセスマネージャは管理対象モバイルアプリケーションに企業リソース７１２へのアクセスに必要な資格情報を提供してもよい。管理対象モバイルアプリケーション７２０から受信したレスポンスが期待されるレスポンスと一致しない場合は、アクセスマネージャは管理対象モバイルアプリケーションを疑わしいまたは信用できないモバイルアプリケーションとして識別して、企業リソース７１２へのアクセスを拒否してもよい。ここでもまた、アクセスマネージャ７２４は、管理対象モバイルアプリケーション７２０から受信したレスポンスが期待されるレスポンスと一致するかどうかによって、モバイルデバイス７０４のローカルコンピューティングリソースへのアクセスを許可または拒否してもよい。
【０１５２】
期待されるレスポンスは、少なくとも部分的に、管理対象モバイルアプリケーション７２０に関連付けられたアプリケーションメタデータ７１８に含まれる識別情報７２８に基づいていてもよい。識別情報は、モバイルアプリケーション自体が作成されたときに作成されてもよい。識別情報は、たとえば、アプリケーション署名を生成するために使用してもよいオリジナルのデジタル証明書またはオリジナルの情報であってもよい。したがって、期待されるレスポンスは識別情報７２８を含むか、または別様にこれに対応していてもよい。以下にさらに説明するように、間違ったアイデンティティを提示するモバイルアプリケーションまたは後に改変されたモバイルアプリケーションは、期待されるレスポンスを生成することができず、したがってコンピューティングリソースへのアクセスを得ることができない。
【０１５３】
管理対象モバイルアプリケーションのアイデンティティの検証には様々なアプローチを選択的に採用してもよい。最終的に実装した特定のアプローチは、モバイルデバイス７０４のモバイルプラットフォームおよびオペレーティングシステムに依拠してよい。
【０１５４】
たとえば、カリフォルニア州のマウンテンビューのＧｏｏｇｌｅ社から入手可能なＡｎｄｒｏｉｄ（登録商標）オペレーティングシステムは、それを介してアクセスマネージャがコンピューティングリソースへのアクセスを要求するモバイルアプリケーションを強力に識別する機構を含んでいてもよい。当業者であれば、Ａｎｄｒｏｉｄ（登録商標）オペレーティングシステムはアプリケーションの署名証明書を要求するための内蔵機構を含んでいてもよく、それを利用してアクセスマネージャ７２４が企業リソース７１２等のコンピューティングリソースへのアクセスを要求する管理対象モバイルアプリケーションのアイデンティティを検証してもよいということを認識するであろう。また、Ａｎｄｒｏｉｄ（登録商標）オペレーティングシステムは、インストール後にアプリケーションが改変されることを阻止してもよく、モバイルアプリケーションが異なるモバイルアプリケーションのために作成された署名証明書を使用することを阻止してもよいということも認識するであろう。このように、アクセスマネージャ７２４は管理対象モバイルアプリケーションのアイデンティティを検証するためにモバイルプラットフォームのオペレーティングシステムによって提供された署名証明書に依拠してもよい。署名証明書を使用したアプリケーションのアイデンティティの検証について、以下にさらに詳細に説明する。
【０１５５】
しかし、他のオペレーティングシステムは、アクセスマネージャ７２４がコンピューティングリソースへのアクセスを要求する管理対象モバイルアプリケーションのアイデンティティを検証するために依拠する内蔵機構を含んでいない可能性がある。たとえば、カリフォルニア州のクパティーノのＡｐｐｌｅ社から入手可能なｉＯＳオペレーティングシステムは管理対象モバイルアプリケーションに対する署名証明書を要求するための機構を含んでいなくてもよい。さらに、ｉＯＳのプロセス間通信に利用可能な方法は、各通信の最後にモバイルアプリケーションのアイデンティティを検証するための機構を含んでいなくてもよい。ｉＯＳプラットフォーム上で動作するモバイルアプリケーションは、たとえば、コピーアンドペースト処理を介して、ＵＲＬスキームへの一致を介して、またはネットワークを介して、通信を交わしてもよい。
【０１５６】
いくつかの例示的な実施態様では、アクセスマネージャ７２４および管理対象モバイルアプリケーション７２０は、ネットワーク、たとえば伝送制御プロトコル（ＴＣＰ）を介して通信するように構成されていてもよい。この実施例では、アクセスマネージャ７２４はＴＣＰソケットを開き、管理対象モバイルアプリケーション７２０からの接続要求の受信を待ってもよい。しかし、ＴＣＰがアクセスマネージャ７２４への接続を要求する管理対象モバイルアプリケーションを識別するための機構を含んでいないということは理解されるであろう。ｉＯＳプラットフォームは要求を行うモバイルアプリケーションのための署名証明書を取得するための機構を含んでいないため、要求を行うモバイルアプリケーションのアイデンティティを検証するためにさらなるステップを採用してもよい。署名証明書に依拠する代わりに、本実施例のアクセスマネージャ７２４は、少なくとも部分的に、以下に述べるように、管理対象モバイルアプリケーション７２０に組み込まれたおよび／またはそれから導出された識別情報７３２に依拠してもよい。
【０１５７】
上述のラッピングプロセスにより、モバイルアプリケーションを管理対象モバイルアプリケーションとして動作するように構成してもよい。この点については、ラッピングプロセスは管理対象モバイルアプリケーション７２０に管理フレームワーク７３０を（たとえば、挿入、組み込み、ラッピング等で）含んでいてもよい。管理フレームワーク７３０は図５および図６をそれぞれ参照して上述したセキュリティ保護されたアプリケーション・ラッパー１２０および管理フレームワーク６１４に対応していてもよい。管理フレームワーク７３０は、図６を参照して上述したように、アクセスマネージャ７２４がモバイルアプリケーション７２０の動作を管理できるようにする。
【０１５８】
管理対象モバイルアプリケーション７２０はまた、アクセスマネージャ７２４に対してそれ自体を識別するために管理フレームワーク７３０を採用してもよい。特に、管理フレームワーク７３０はアイデンティティ検証処理中にアクセスマネージャ７２４から投稿されたチャレンジへのレスポンスを生成してもよい。
【０１５９】
いくつかの例示的な実施態様では、管理対象モバイルアプリケーション７２０の管理フレームワーク７３０はアプリケーション署名を生成するように構成されていてもよい。管理フレームワーク７３０はまた、少なくとも部分的に、このアプリケーション署名に基づいたチャレンジレスポンスを提供するように構成されていてもよい。次に、アプリケーション署名は、管理対象モバイルアプリケーション７２０に組み込まれたおよび／またはそれから導出された識別情報７３２に基づいていてもよい。つまり、管理フレームワーク７３０は、管理対象モバイルアプリケーション７２０に関連付けられた静的情報および動的情報に基づいてアプリケーション署名を生成してもよい。
【０１６０】
静的情報は、上述のラッピングプロセス中に管理対象モバイルアプリケーション７２０に組み込まれる秘密情報であってもよい。たとえば、秘密情報は、ラッピングプロセス中にアプリケーションに組み込まれた１つ以上の識別トークン７３４を含んでいてもよい。識別トークン７３４は、たとえば管理対象モバイルアプリケーション７２０のバイナリ内に組み込まれたランダム化された英数字の文字列であってもよい。管理フレームワーク７３０は、アクセスマネージャ７２４から受信したチャレンジに応答するためにアプリケーション署名を構築するときに識別トークン７３４を抽出するように構成されていてもよい。
【０１６１】
動的情報は、管理対象モバイルアプリケーション７２０から導出した識別トークンであってもよい。たとえば、導出された識別トークンは、モバイルアプリケーションバンドルの様々なコンポーネントの選択的ハッシュ関数を使用して得たハッシュ値、たとえばモバイルアプリケーションのバイナリ、アプリケーションのアイコン、アプリケーションのフレームワーク等であってもよい。アクセスマネージャ７２４は、アイデンティティ検証処理中にアドホックな方式でこの動的識別情報を導出してもよい。１つ以上の選択的ハッシュ関数を使用して、導出した識別トークンを表す１つ以上の選択的ハッシュ値を生成してもよい。アクセスマネージャは必要に応じて、管理対象モバイルアプリケーション７２０からの動的識別情報の導出を支援するために管理フレームワーク７３０を利用してもよい。
【０１６２】
管理フレームワーク７３０はまた、アクセスマネージャ７２４から受信したチャレンジへのレスポンスに使用されるアプリケーション署名を構築するように構成されていてもよい。アプリケーション署名は、管理対象モバイルアプリケーション７２０から抽出された静的情報と管理対象モバイルアプリケーションから導出された動的情報との組み合わせを含んでいてもよい。管理フレームワーク７３０はさらに、特定の方法でアプリケーション署名内で静的情報および動的情報を配設するように構成されていてもよい。したがって、管理対象モバイルアプリケーション７２０の強力な識別は、管理対象モバイルアプリケーションに組み込まれた静的情報、モバイルアプリケーションから導出された動的情報、およびアプリケーション署名内の静的情報と動的情報の配設を介して達成してもよい。
【０１６３】
上述のように、アクセスマネージャ７２４は、管理対象モバイルアプリケーション７２０にチャレンジを行うときに期待されるレスポンスを生成するように構成されていてもよい。したがって、アクセスマネージャ７２４は同様に、期待されるアプリケーションの署名を構築するように構成されていてもよい。アクセスマネージャ７２４は、管理対象モバイルアプリケーション７２０のためのアプリケーションメタデータ７１８に含まれる識別情報７２８に基づいて期待されるアプリケーションの署名を構築してもよい。アクセスマネージャはまた、管理対象モバイルアプリケーション７２０から動的情報を動的に導出するように構成されていてもよい。さらに、アクセスマネージャ７２４は同様に、特定の方法で期待されるアプリケーションの署名内で静的情報および動的情報を配設するように構成されていてもよい。
【０１６４】
リプレイアタックに対するガードのために、アクセスマネージャ７２４は管理対象モバイルアプリケーション７２０に、チャレンジに対するレスポンスに使用するためにノンス（nonce）（たとえば、任意の乱数）を提供してもよい。アクセスマネージャ７２４は期待されるハッシュ値を得るために期待されるアプリケーションの署名でノンスをハッシュしてもよい。同様に、管理対象モバイルアプリケーションの管理フレームワーク７３０は、レスポンスのハッシュ値を得るために受信したノンスでアプリケーション署名をハッシュしてもよい。アクセスマネージャ７２４からのチャレンジに応答して、管理対象モバイルアプリケーション７２０はこのように、アプリケーション署名およびアクセスマネージャから受信したノンスから得られた計算されたハッシュ値をアクセスマネージャに提供してもよい。アクセスマネージャはしたがって、期待されるハッシュ値と受信したハッシュ値とを比較してもよい。アクセスマネージャ７２４はしたがって、期待されるハッシュ値が受信したハッシュ値と一致する場合は、管理対象モバイルアプリケーション７２０を信用されたモバイルアプリケーションとして識別してもよい。
【０１６５】
図８は、例示的なアプリケーション署名およびチャレンジレスポンスのブロック図である。上述のように、管理対象モバイルアプリケーション８００は、アクセスマネージャ８０４からのチャレンジに応答してアプリケーション署名８０２を生成してもよい。アプリケーション署名８０２は、管理対象モバイルアプリケーション８００に組み込まれた識別トークン８０６および管理対象モバイルアプリケーションから導出された識別トークン８０８を含んでいてもよい。
【０１６６】
図８に示すように、管理対象モバイルアプリケーション８００は、組み込まれた識別トークン８０６および導出された識別トークン８０８を、アプリケーション署名８０２内に特定の方法で配設してもよい。一実施例として、管理対象モバイルアプリケーション８００は、組み込まれた識別トークン８０６と導出された識別トークン８０８を特定の順序で連結してアプリケーション署名を構築してもよい。別の実施例では、管理対象モバイルアプリケーション８００は、組み込まれた識別トークン８０６の一部と導出された識別トークン８０８の一部を連結してアプリケーション署名を構築してもよい。アプリケーション署名の構築のために様々なアプローチを選択的に採用してもよいということは理解されるであろう。また、上述のように、アクセスマネージャ８０４は管理対象モバイルアプリケーション８００にノンス８１０を提供してもよい。管理対象モバイルアプリケーション８００は、アプリケーション署名８０２およびノンス８１０に基づいてハッシュ値８１４を生成するためにハッシュ関数８１２を採用してもよい。管理対象モバイルアプリケーション８００は、受信したチャレンジへのレスポンス８１６においてアクセスマネージャ８０２にハッシュ値８１４を提供してもよい。
【０１６７】
管理対象モバイルアプリケーション８００のアイデンティティを検証するために、アクセスマネージャ８０４は、アプリケーションメタデータ８２２と共に格納された識別トークン８２０および管理対象モバイルアプリケーションから導出された識別トークン８０８に基づいて、期待されるアプリケーションの署名８１８を構築してもよい。アクセスマネージャ８０４はまた、ハッシュ関数８１２を採用して、アプリケーションメタデータ８２２およびノンス８１０から識別トークン８２０に基づいて期待されるハッシュ値８２４を生成してもよい。チャレンジに応答して、アクセスマネージャ８０４はチャレンジレスポンス８１６を受信して、チャレンジレスポンス内のハッシュ値８１４を期待されるハッシュ値８２４と比較してもよい。
【０１６８】
本開示の利点により、企業アプリケーションサーバ（図７の７０８）から受信した改変されていないモバイルアプリケーションのみが期待されるハッシュ値８２４を生成してもよいことが理解されるであろう。期待されるアプリケーションの署名８１８はモバイルデバイスに永続的に格納されず、むしろ、コンピューティングリソースへのアクセスを要求するモバイルアプリケーション８００のアイデンティティの検証が必要になったときに再構築されるようにしてもよいということも理解されるであろう。上述のアプローチはしたがって、コンピューティングリソースへのモバイルアプリケーションのアクセスを許可するか拒否するかを決定するためにモバイルアプリケーションを強力に識別するための機構を表している。
【０１６９】
図９〜図１４は、管理対象モバイルアプリケーションのアイデンティティの検証、検証後のアプリケーションポリシーの実施、および管理対象モバイルアプリケーションの動作の制御の態様に関連する例示的な方法の各ステップを示す。
【０１７０】
図９は非管理対象モバイルデバイスでモバイルアプリケーションを管理するための例示的な方法のステップのフローチャート９００である。企業は、モバイルデバイス（たとえば、非管理対象モバイルデバイス）で動作するように構成され、かつモバイルデバイスからコンピューティングリソースにアクセスするように構成された管理対象モバイルアプリケーションを作成する（ブロック９０２）。企業はまた、モバイルデバイスでアクセスマネージャアプリケーションによって管理される管理対象モバイルアプリケーションを構成してもよい。上述のように、企業は、アクセスマネージャが管理対象モバイルアプリケーションのアイデンティティの検証および管理対象モバイルアプリケーションの動作の制御を行えるようにする管理フレームワーク（たとえば、ＭＤＸフレームワーク）をラッピングしてもよく、あるいは別様に含んでいてもよい。
【０１７１】
管理対象モバイルデバイスアプリケーションの作成時、企業はまた、管理対象モバイルアプリケーションに関連付けられた識別情報を作成してもよい（ブロック９０４）。識別情報は、たとえば署名したアプリケーション証明書および／または識別トークンを含むアプリケーションメタデータであってもよい。いくつかの例示的な実施態様では、識別トークンは管理対象モバイルアプリケーション内に（たとえば、アプリケーションバイナリ内に）組み込まれていてもよい。ユーザはモバイルデバイスでアクセスマネージャをダウンロードしてインストールしてもよい（ブロック９０６）。アクセスマネージャはユーザに、そこから企業アプリケーションサーバ（たとえば、企業アプリケーションストア）をブラウズして、モバイルデバイスにダウンロードするための様々な管理対象モバイルアプリケーションを選択するインターフェースを提供してもよい。アクセスマネージャはユーザに、企業アプリケーションサーバにログオンするためにアクセス資格情報を提供するように要求してもよい。ユーザはユーザプロファイルに関連付けられていてもよく、ユーザプロファイルは様々な権利および資格に関連付けられていてもよい。このように、ユーザにダウンロード可能として提示された管理対象モバイルアプリケーションはユーザに割り当てられた権利および資格に依存しており、たとえば、企業アプリケーションサーバはユーザが使用の資格を付与されている管理対象モバイルアプリケーションのみを提示してもよい。
【０１７２】
管理対象モバイルアプリケーションの選択後、ユーザは管理対象アクセスを介してモバイルアプリケーションをダウンロードしてモバイルデバイスでモバイルアプリケーションをインストールしてもよい（ブロック９０８）。企業アプリケーションサーバはまた、モバイルアプリケーションに関連付けられた識別情報およびモバイルアプリケーションに関連付けられたアクセスポリシーを提供してもよい。したがって、ユーザが管理対象モバイルアプリケーションをダウンロードしてインストールするときに、アクセスマネージャもモバイルアプリケーションに関連付けられた識別情報（ブロック９１０）およびアプリケーションポリシー（ブロック９１２）をダウンロードして格納してもよい。
【０１７３】
モバイルデバイスでモバイルアプリケーションをインストールした後、ユーザはコンピューティングリソースへのアクセスのためにモバイルアプリケーションを利用してもよい。モバイルアプリケーションがコンピューティングリソースへのアクセスを求めるとき、モバイルアプリケーションはアクセスマネージャでチェックインしてリソースへのアクセスを要求してもよい（ブロック９１４）。コンピューティングリソースへのアクセスの要求を受領した時、アクセスマネージャは企業アプリケーションサーバから受領してモバイルデバイスで格納した識別情報を検索してもよい（ブロック９１６）。アクセスマネージャはまた、モバイルオペレーティングシステムからの識別情報、たとえば署名したアプリケーション証明書、あるいはモバイルアプリケーション自体からの識別情報、たとえば、少なくとも部分的にアプリケーション署名に基づいたハッシュ値を受信してもよい（ブロック９１８）。
【０１７４】
アクセスマネージャはその後、格納された識別情報を受信した識別情報と比較してもよい（ブロック９２０）。受信した識別情報が格納された識別情報と一致する場合は（ブロック９２２でＹ（はい））、アクセスマネージャはモバイルアプリケーションが有効であると判定して、モバイルアプリケーションを信用されたモバイルアプリケーションとして識別してもよい。したがって、アクセスマネージャは管理対象モバイルアプリケーションのコンピューティングリソースへのアクセスを許可してもよい（ブロック９２４）。アクセスマネージャは、たとえば、企業リソースとの接続を確立してそれにアクセスするために必要なアクセス資格情報、証明書、鍵等をモバイルアプリケーションに提供してもよい。
【０１７５】
いくつかの例示的な実施態様では、モバイルアプリケーションに関連付けられたアプリケーションポリシーは、モバイルアプリケーションがコンピューティングリソースにアクセスしてそれを使用する方法を決定してもよい。受信した識別情報が格納された識別情報と一致しない場合は（ブロック９２４でＮ（いいえ））、アクセスマネージャはモバイルアプリケーションが無効であると判定して、モバイルアプリケーションを信用されたモバイルアプリケーションとして識別せず、したがってモバイルアプリケーションのコンピューティングリソースへのアクセスを阻止してもよい（ブロック９２６）。
【０１７６】
図１０は、非管理対象モバイルデバイスで管理対象オペレーションのための管理対象モバイルアプリケーションを準備するための例示的な方法の各ステップを示すフローチャート１０００である。上述のように、いくつかのモバイルオペレーティングシステムは、アクセスマネージャがモバイルアプリケーションのアイデンティティを検証するために採用してもよい内蔵機構を提供しない可能性がある。したがって、モバイルアプリケーションはそれ自体を強力に識別できるように構成されていてもよい。企業はモバイルアプリケーションを管理対象モバイルアプリケーションとして準備するためにツールキットを使用してもよい（ブロック１００２）。ツールキットはモバイルアプリケーションを管理対象モバイルアプリケーションに変換する機能（たとえば、ＭＤＸフレームワーク）を追加してもよい（ブロック１００４）。ツールキットはまた、識別トークン（たとえば、ランダム化された文字列）を生成して管理対象モバイルアプリケーション内に組み込んでもよい（ブロック１００６）。
【０１７７】
管理対象モバイルアプリケーションに追加された機能は、管理対象モバイルアプリケーションがアプリケーション署名を構築するために組み込まれた識別トークンを抽出、配設、および結合できるようにする機能を含んでいてもよい。管理対象モバイルアプリケーションに追加された機能はまた、管理対象モバイルアプリケーションがアプリケーション署名を構築する際に動的に識別トークンを導出するとともに、導出された識別トークンと組み込まれた識別トークンを配設および結合できるようにする機能を含んでいてもよい。さらに、管理対象モバイルアプリケーションに追加された機能は、管理対象モバイルアプリケーションが、少なくとも部分的にアプリケーション署名に基づくハッシュ値を生成できるようにする機能をさらに含んでいてもよい。
【０１７８】
ツールキットはまた、モバイルアプリケーション内に組み込まれた識別トークンを含む管理対象モバイルアプリケーションのためのアプリケーションメタデータを生成してもよい（ブロック１００８）。企業はその後、企業アプリケーションサーバに、アプリケーションメタデータおよびモバイルアプリケーションに関連付けられたあらゆるアプリケーションポリシーと共に管理対象モバイルアプリケーションを発行してもよい（ブロック１０１０）。企業アプリケーションサーバは、モバイルデバイスから、選択されたモバイルアプリケーションをダウンロードするための要求を受信してもよい（ブロック１０１２）。アクセスマネージャがモバイルデバイスで未だインストールされていない場合は（ブロック１０１４においてＮ（いいえ））、企業アプリケーションサーバは最初にモバイルデバイスにアクセスマネージャアプリケーションをダウンロードしてもよい（ブロック１０１６）。アクセスマネージャがモバイルアプリケーションでインストールされた後（ブロック１０１４においてＹ（はい））、企業アプリケーションサーバは要求の受信に応答してモバイルデバイスに選択されたモバイルアプリケーションをダウンロードしてもよい（１０１８）。
【０１７９】
上述のように、企業アプリケーションサーバはまた、選択されたモバイルアプリケーションに関連付けられたアプリケーションメタデータをモバイルデバイスで格納するためにモバイルデバイスにダウンロードしてもよい。アクセスマネージャはアプリケーションメタデータへのアクセスを有していてもよく、それによりアクセスマネージャはアプリケーションメタデータに関連付けられたモバイルアプリケーションのアイデンティティの検証を行うことができるようになる。
【０１８０】
図１１は、非管理対象モバイルデバイスで管理対象モバイルアプリケーションを初期化するための例示的な方法の各ステップを示すフローチャート１１００である。モバイルデバイスを最初にアクティブ化して初期化するとき（ブロック１１０２）、アクセスマネージャアプリケーションは最初に起動するモバイルアプリケーションのうちの１つであってもよい（ブロック１１０４）。アクセスマネージャは、たとえば、モバイルデバイスのスタートアッププロセスの一部としておよび／またはモバイルデバイスで受信したユーザ入力に応答して自動的に始動してもよい。アクセスマネージャアプリケーションが始動すると、アクセスマネージャはユーザからのアクセス資格情報（たとえば、ユーザ名およびパスワード）を要求してもよい（ブロック１１０６）。アクセスマネージャはその後、認証のために企業サーバにアクセス資格情報を提供してもよい（ブロック１１０８）。企業サーバがユーザを認証しない場合は（ブロック１１１０においてＮ（いいえ））、アクセスマネージャはモバイルデバイスのすべての管理対象モバイルアプリケーションのコンピューティングリソースへのアクセスを阻止してもよい（ブロック１１１２）。たとえば、アクセスマネージャはモバイルアプリケーションに企業リソースとの接続の確立に必要なアクセス資格情報を提供することを辞退してもよい。
【０１８１】
企業サーバがユーザを認証する場合は（ブロック１１１０においてＹ（はい））、企業サーバはアクセスマネージャアプリケーションが改変されていないことを確実にするために、アクセスマネージャ自体のアイデンティティを検証してもよい（ブロック１１１４）。企業サーバは、管理対象モバイルアプリケーションと同じ方法でアクセスマネージャのアイデンティティを検証してもよい。
【０１８２】
一実施例として、アクセスマネージャに署名するために使用される署名証明書をアクセスマネージャアプリケーションの検証に採用してもよい。たとえば、企業システムは管理対象モバイルアプリケーションを検証してもよい。アクセスマネージャが検証されない場合は（ブロック１１１６においてＮ（いいえ））、管理対象モバイルアプリケーションの管理フレームワークはアクセスマネージャをモバイルデバイスから欠落しているとして扱い、管理対象モバイルアプリケーションはしたがって、コンピューティングリソースへのアクセスを阻止されるようにしてもよい（ブロック１１１２）。
【０１８３】
企業サーバがアクセスマネージャアプリケーションのアイデンティティを検証する場合は（ブロック１１１６においてＹ（はい））、管理対象モバイルアプリケーションを起動してもよい（ブロック１１１８）。始動後および動作中に、モバイルアプリケーションはアクセスマネージャが管理対象モバイルアプリケーションのアイデンティティを検証してもよいようにアクセスマネージャでチェックインする（ブロック１１２０）。
【０１８４】
アクセスマネージャが管理対象モバイルアプリケーションのアイデンティティを検証できない場合は（ブロック１１２２においてＮ（いいえ））、アクセスマネージャは管理対象モバイルアプリケーションのコンピューティングリソースへのアクセスを阻止してもよい（ブロック１１２４）。アクセスマネージャが管理対象モバイルアプリケーションのアイデンティティの検証に成功した場合は（ブロック１１２２においてＹ（はい））、アクセスマネージャは管理対象モバイルアプリケーションを信用されたモバイルアプリケーションとして識別してもよい（ブロック１１２６）。管理対象モバイルアプリケーションがモバイルデバイスで始動したばかりである場合は、アクセスマネージャはアクセスマネージャが管理するモバイルアプリケーションのリストを更新して信用されたモバイルアプリケーションをリストに含んでいてもよい（ブロック１１２８）。管理対象モバイルアプリケーションのアイデンティティを検証した後、アクセスマネージャはまた、信用されたモバイルアプリケーションのコンピューティングリソースへのアクセスを許可してもよい（ブロック１１３０）。
【０１８５】
図１２は、第一のタイプのモバイルオペレーティングシステムを有する非管理対象モバイルデバイスで管理対象モバイルアプリケーションを検証するための例示的な方法のステップのフローチャート１２００である。本実施例では、モバイルオペレーティングシステムは、アクセスマネージャがモバイルアプリケーションのアイデンティティの検証のために利用してもよい内蔵機構を含んでいない可能性がある。アクセスマネージャは管理対象モバイルアプリケーションからコンピューティングリソースへのアクセスを求める要求を受信してもよい（ブロック１２０２）。要求を受信した後、アクセスマネージャは管理対象モバイルアプリケーションとのハンドシェイクを起動してアイデンティティ検証プロセスを開始してもよい（ブロック１２０４）。管理対象モバイルアプリケーションは、たとえば一意的なアプリケーション識別子をアクセスマネージャに提供することによって、アクセスマネージャに対してそれ自体を識別してもよい（ブロック１２０６）。次に、アクセスマネージャはモバイルアプリケーションに関連付けられたアプリケーションメタデータを検索するためにアプリケーション識別子を利用してもよい（ブロック１２０８）。アクセスマネージャはまた、ノンスを生成してノンスをモバイルアプリケーションに提供してもよい（ブロック１２１０）。
【０１８６】
アクセスマネージャおよび管理対象モバイルアプリケーションはその後、モバイルアプリケーションのアイデンティティを検証してモバイルアプリケーションが信用されたモバイルアプリケーションであるかどうかを判定するために使用されるアプリケーション署名および対応するハッシュ値を構築するプロセスを開始してもよい。
【０１８７】
モバイルアプリケーションは、アプリケーション署名を構築するために使用する組み込まれた識別トークンを抽出して（ブロック１２１２）、導出された識別トークンを導出してもよい（ブロック１２１４）。モバイルアプリケーションはその後、抽出された組み込まれた識別トークンおよび導出された識別トークンを配設および結合してアプリケーション署名を得てもよい（ブロック１２１６）。モバイルアプリケーションはその後、アクセスマネージャから受信したアプリケーション署名およびノンスを使用してハッシュ値を計算してもよい（ブロック１２１８）。
【０１８８】
モバイルアプリケーションにノンスを提供した後、アクセスマネージャはモバイルアプリケーションと関連付けられたアプリケーションメタデータから組み込まれた識別トークンを検索してもよい（ブロック１２２０）。アクセスマネージャは同様に、期待されるアプリケーションの署名を構築するために使用される導出された識別トークンをモバイルアプリケーションから導出してもよい（ブロック１２２２）。アクセスマネージャはその後、アプリケーションメタデータから検索した組み込まれた識別トークンおよび導出された識別トークンを配設および結合して期待されるアプリケーションの署名を得てもよい（ブロック１２２４）。アクセスマネージャはその後、期待されるアプリケーションの署名およびモバイルアプリケーションに提供されたノンスを使用して期待されるハッシュ値を計算してもよい（ブロック１２２６）。
【０１８９】
アプリケーションメタデータから検索された組み込まれた識別トークンがモバイルアプリケーションから抽出された組み込まれた識別トークンと同じである場合、アクセスマネージャによって導出された識別トークンがモバイルによって導出された識別トークンと同じである場合、アクセスマネージャによって構築された期待されるアプリケーションの署名がモバイルアプリケーションによって構築されたアプリケーション署名と同じである場合、およびモバイルアプリケーションがハッシュ値を計算するためにアクセスマネージャによって提供されたノンスを使用する場合、アクセスマネージャが計算したハッシュ値はモバイルアプリケーションが計算したハッシュ値と同じでなければならないということは理解されるであろう。
【０１９０】
したがって、モバイルアプリケーションはアクセスマネージャへのレスポンスにおいてハッシュ値を提供してもよく（ブロック１２２８）、アクセスマネージャは期待されるハッシュ値をモバイルアプリケーションから受信した値と比較してもよい（ブロック１２３０）。期待されるハッシュ値が受信したハッシュ値と一致しない場合は（ブロック１２３２においてＮ（いいえ））、アクセスマネージャはモバイルアプリケーションがそれ自体を不正に識別した、モバイルデバイスでインストール後に改変された等であると判定してもよい。その結果、アクセスマネージャはモバイルアプリケーションのコンピューティングリソースへのアクセスを拒否してもよい（ブロック１２３４）。期待されるハッシュ値が受信したハッシュ値と一致する場合は（ブロック１２３２においてＹ（はい））、アクセスマネージャはモバイルアプリケーションを信用されたモバイルアプリケーションとして識別して、信用されたモバイルアプリケーションのコンピューティングリソースへのアクセスを許可してもよい（ブロック１２３６）。
【０１９１】
図１３は、第二のタイプのモバイルオペレーティングシステムを有する非管理対象モバイルデバイスで管理対象モバイルアプリケーションを検証するための例示的な方法の各ステップを示すフローチャート１３００である。
【０１９２】
本実施例では、モバイルオペレーティングシステムはアクセスマネージャがモバイルアプリケーションのアイデンティティを検証するために利用してもよい内蔵機構を含んでいてもよい。アクセスマネージャは管理対象モバイルアプリケーションからコンピューティングリソースへのアクセスのための要求を受信してもよい（ブロック１３０２）。アクセスマネージャはモバイルオペレーティングシステムからのモバイルアプリケーションのための一意的なアプリケーション識別子を要求してもよく（ブロック１３０４）、レスポンスにおいてアプリケーション識別子を受信してもよい（ブロック１３０６）。
【０１９３】
モバイルアプリケーションのためのアプリケーション識別子に基づいて、アクセスマネージャは管理対象モバイルアプリケーションのリストに問合せを行ってもよい（１３０８）。管理対象モバイルアプリケーションのリストがコンピューティングリソースへのアクセスを要求するモバイルアプリケーションを含まない場合は（ブロック１３１０においてＮ（いいえ））、アクセスマネージャはモバイルアプリケーションのリソースへのアクセスを拒否してもよい（ブロック１３１２）。しかし、管理対象モバイルアプリケーションのリストがコンピューティングリソースへのアクセスを要求するモバイルアプリケーションを含む場合は（ブロック１３１０においてＹ（はい））、アクセスマネージャはモバイルオペレーティングシステムからのモバイルアプリケーションのためのアプリケーション証明書を要求してもよい（ブロック１３１４）。
【０１９４】
上述のように、企業アプリケーションサーバはモバイルデバイスにおいてインストールされたモバイルアプリケーションに対してアプリケーション証明書を提供してもよい。
【０１９５】
アプリケーション証明書はアクセスマネージャがアクセス可能なモバイルデバイスでセキュリティ保護された格納場所に格納されていてもよい。したがって、アクセスマネージャは要求されたアプリケーション証明書をモバイルオペレーティングシステムから受信してもよく（ブロック１３１６）、企業アプリケーションサーバが提供した格納されたアプリケーション証明書を検索してもよい（ブロック１３１８）。いくつかの例示的な実施態様では、アクセスマネージャは、たとえばＳＨＡ−１ハッシュ関数を使用して、各証明書に対するそれぞれのハッシュ値を計算してもよい（ステップ１３２０）。アクセスマネージャは格納された証明書のハッシュ値をモバイルオペレーティングシステムから受信した証明書のハッシュ値と比較してもよい（ブロック１３２２）。ハッシュ値が一致する場合は（ブロック１３２４においてＹ（はい））、アクセスマネージャはモバイルアプリケーションが信用されたモバイルアプリケーションであると判定して、モバイルアプリケーションのコンピューティングリソースへのアクセスを許可してもよい（ブロック１３２６）。ハッシュ値が一致しない場合は（ブロック１３２４においてＮ（いいえ））、アクセスマネージャはモバイルアプリケーションが信用されていないモバイルアプリケーションであると判定して、モバイルアプリケーションのコンピューティングリソースへのアクセスを拒否してもよい（ブロック１３１２）。
【０１９６】
図１４は、管理対象モバイルアプリケーションの動作中にアプリケーションポリシーを実施するための例示的な方法のステップのフローチャート１４００である。上述のように、企業アプリケーションサーバはモバイルデバイスにおいてインストールされた管理対象モバイルアプリケーションに関連付けられたアプリケーションポリシーを提供してもよい。企業はアプリケーションポリシーを定期的に更新してもよく、アクセスマネージャはしたがって、管理対象モバイルデバイスのコンピューティングリソースへのアクセスを許可する前に、直近でかつ最新のアプリケーションポリシーがモバイルデバイスで格納されていることを確実にするように構成されていてもよい。このように、企業はアプリケーションおよびアプリケーションの機能に対する権利を付与してもよく、あるいは取り消してもよい。
【０１９７】
アクセスマネージャが管理対象モバイルアプリケーションのアイデンティティを検証した後（ブロック１４０２）、アクセスマネージャは管理対象モバイルアプリケーションと関連付けられかつモバイルデバイスで格納されたアプリケーションポリシーを検索してもよい（ブロック１４０４）。アクセスマネージャはその後、アプリケーションポリシーに関連付けられたポリシー情報、たとえばポリシーの日付、ポリシーのバージョンナンバー等について企業アプリケーションサーバに問合わせを行ってもよい（ブロック１４０６）。企業アプリケーションサーバから受信したポリシー情報に基づいて、アクセスマネージャはモバイルデバイスで格納されたアプリケーションポリシーが現行のものであるかどうかを判定してもよい（ブロック１４０８）。
【０１９８】
一実施例として、アクセスマネージャは企業アプリケーションサーバから受信したポリシーの日付またはポリシーのバージョンをモバイルデバイスで格納されたアプリケーションポリシーのポリシーの日付またはポリシーのバージョンと比較してもよい。ポリシーの日付またはポリシーのバージョンが一致しない場合は、アクセスマネージャはモバイルデバイスで格納されたアプリケーションポリシーが現行のものではないと判定してもよい（ブロック１４０８においてＮ（いいえ））。ポリシーの日付またはポリシーのバージョンが一致する場合は、アクセスマネージャはモバイルデバイスで格納されたアプリケーションポリシーが現行のものであると判定してもよい（ブロック１４０８においてＹ（はい））。
【０１９９】
アプリケーションポリシーが現行のものではない場合（ブロック１４０８においてＮ（いいえ））、アクセスマネージャは企業システム、たとえば企業のアプリケーションストアからモバイルアプリケーションに関連付けられた現行のポリシーを検索してもよい（ブロック１４１０）。アクセスマネージャは現行のアプリケーションポリシーをダウンロードして、モバイルデバイスのセキュリティ保護された格納場所に現行のアプリケーションポリシーを格納してもよい（ブロック１４１２）。アクセスマネージャがモバイルアプリケーションのための現行のポリシーを取得した後、管理対象モバイルアプリケーションはアプリケーションポリシーを参照して、意図したコンピューティングリソースへのアクセスまたはその使用を行ってよいかどうかを判定してもよい（ブロック１４１４）。
【０２００】
管理フレームワークは、たとえば管理対象モバイルアプリケーションをコンピューティングリソースへのアクセスまたはその使用の前にポリシーへの問合わせを行うように構成してもよい。一実施例として、フレームワークは管理対象モバイルアプリケーションを、データをモバイルデバイスで他のモバイルアプリケーションにコピーしてもよいかどうかを判定するためにアプリケーションポリシーに問合わせを行うように構成してもよい。いくつかの例示的な実施態様において、管理対象モバイルアプリケーションは、モバイルデバイスにおける他の管理対象モバイルアプリケーションへのデータのコピーのみを行うようにしてもよい。別の実施例として、フレームワークは管理対象モバイルアプリケーションを、モバイルデバイスが管理対象モバイルアプリケーションのスクリーンショットをキャプチャしてもよいかどうかを判定するためにアプリケーションポリシーに問合わせを行うように構成してもよい。これらおよび他の実施例は本発明とともに理解されるであろう。
【０２０１】
アプリケーションポリシーが管理対象モバイルアプリケーションの意図したコンピューティングリソースへのアクセスまたはその使用を許可する場合（ブロック１４１６においてＹ（はい））、フレームワークは管理対象モバイルアプリケーションが意図したアクションを実行することを許可してもよい（ブロック１４１８）。しかし、アプリケーションポリシーが管理対象モバイルアプリケーションの意図したコンピューティングリソースへのアクセスまたはその使用を許可しない場合は（ブロック１４１８においてＮ（いいえ））、フレームワークは管理対象モバイルアプリケーションが意図したアクションを実行することを阻止してもよい（ブロック１４２０）。
【０２０２】
〈モバイルデバイス管理を用いたモバイルアプリケーション管理〉
モバイルアプリケーション管理（ＭＡＭ）を非管理対象デバイスのコンテキストにおいて説明してきたが、本開示の態様は、管理対象デバイスについても採用してよい。企業は、モバイルデバイスの動作をさらに制御するためにモバイルアプリケーション管理と共にモバイルデバイス管理（ＭＤＭ）を利用してもよい。特に、モバイルデバイスはＭＤＭシステムとモバイルデバイスとの間の管理関係を確立するためにＭＤＭシステムに登録してもよい。モバイルデバイスが登録された後、ＭＤＭシステムはポリシーの実施、モバイルデバイスの監視、モバイルデバイスへの情報のプッシュ等を行うために管理関係を活用してもよい。
【０２０３】
要するに、ＭＤＭシステムは、管理関係が無ければ別の方法では利用できないモバイルデバイスについての情報を取得する。そのような情報は、モバイルデバイスでアプリケーションを介して発見または読取ができないデバイスレベルの設定に対応していてもよい。そのようなデバイスレベルの設定は、ＰＩＮまたはパスワードの設定、暗号化の設定、ネットワーク関連の設定等を含んでいてもよい。そのような情報はまた、モバイルデバイスで現在稼働しているプロセスおよびモバイルデバイスにおいてインストールされたモバイルアプリケーション（たとえば、アプリケーションインベントリ）に関連する情報を含んでいてもよい。ＭＤＭシステムはさらに、管理対象モバイルデバイスに関するさらなるまたは代わりのタイプの情報を取得してもよい。ＭＤＭシステムは管理対象モバイルデバイスから取得した情報を様々なポリシーと比較して、レスポンスで様々なアクションを行ってもよい。
【０２０４】
デバイスのＰＩＮ／パスワードについては、ＭＤＭシステムはデバイスがＰＩＮ／パスワード、ＰＩＮ／パスワードの複雑性、およびＰＩＮ／パスワードの期日経過を介して保護されているかどうかを示す情報を取得してもよい。管理関係を介して、ＭＤＭシステムはデバイスのＰＩＮ／パスワード設定に関する情報を取得してもよい。ＭＤＭシステムはこの情報をデバイスのＰＩＮ／パスワードの使用を管理するポリシーと比較してもよい。一実施例として、セキュリティポリシーがモバイルデバイスをＰＩＮ／パスワードで保護しなければならないことを示し、かつモバイルデバイスから取得した情報がデバイスのＰＩＮ／パスワード設定は可能ではないことを示した場合は、ＭＤＭシステムは管理対象モバイルデバイスに、デバイスのＰＩＮ／パスワードに関するセキュリティポリシーを示す通知をプッシュしてもよい。
【０２０５】
別の実施例として、ＭＤＭシステムがデバイスのＰＩＮ／パスワードはセキュリティポリシーの複雑性の要求を満たしていないと判定した場合、ＭＤＭシステムは同様に管理対象モバイルデバイスに、新たな、より複雑なＰＩＮ／パスワードがセキュリティポリシーに従うために要求されることを示す通知をプッシュしてもよい。さらなる実施例として、セキュリティポリシーがデバイスのＰＩＮ／パスワードを定期的に変更しなければならないことを示す場合は、ＭＤＭシステムは管理対象モバイルデバイスに、現行のデバイスのＰＩＮ／パスワードの有効期限が切れたと判定した時にデバイスのＰＩＮ／パスワードの変更が必要であることを示す通知をプッシュしてもよい。
【０２０６】
暗号化の設定については、ＭＤＭシステムはまた、デバイスが有効なハードウェアの暗号化を有しているかどうかを示す情報を取得してもよい。管理関係を介して、ＭＤＭシステムは、セキュリティポリシーがハードウェアの暗号化を要求しており、かつハードウェア暗号化がモバイルデバイスでは現在可能ではないと判定した時、管理対象モバイルデバイスでハードウェアの暗号化を可能にしてもよい。ＭＤＭシステムはまた、管理関係を介して管理対象モバイルデバイスでネットワーク関連の設定をセットしてもよい。
【０２０７】
ＭＤＭシステムはさらに、管理対象モバイルデバイスで現在稼働しているプロセスに関する情報を取得してもよい。ＭＤＭシステムは、たとえば管理対象モバイルデバイスでマルウェアを識別するために、稼働中のプロセスを悪質なアプリケーション、プログラム、またはプロセスのリストと比較してもよい。管理関係を介して、ＭＤＭシステムはマルウェアまたは潜在的に悪質であると識別したあらゆるプロセスをキルしてもよい。ＭＤＭシステムはまた、管理関係を介してモバイルデバイスで対応する悪質なアプリケーションまたはプログラムを削除してもよい。
【０２０８】
同様に、ＭＤＭシステムは管理対象モバイルデバイスにおいてインストールされたアプリケーションのリストを取得してもよい。ＭＤＭシステムはインストールされたアプリケーションのリストを、たとえばアプリケーションホワイトリストまたはアプリケーションブラックリストと比較してもよい。
【０２０９】
アプリケーションホワイトリストは、モバイルデバイスでのインストールが許可されたモバイルアプリケーションのリストであってもよい。インストールされたアプリケーションのリストがモバイルアプリケーションのホワイトリストに載っていないアプリケーションを含んでいる場合は、ＭＤＭシステムは管理関係を活用してそのアプリケーションを削除してもよい。アプリケーションブラックリストは、モバイルデバイスでのインストールが禁止されたモバイルアプリケーションのリストであってもよい。インストールされたアプリケーションのリストがモバイルアプリケーションのブラックリストに載っているアプリケーションを含んでいる場合は、ＭＤＭシステムは同様に管理関係を活用してそのアプリケーションを削除してもよい。
【０２１０】
ＭＤＭシステムはさらに、何れのモバイルアプリケーションをモバイルデバイスにおいてインストールするかを制御するために、モバイルアプリケーションを管理対象モバイルデバイスにプッシュするために管理関係を活用してもよいことが理解されるであろう。本発明を考慮すると、ＭＤＭシステムはモバイルデバイスにおいてインストールされたモバイルアプリケーションに対してよりロバストな制御を行ってもよいことも理解されるであろう。上述のように、ＭＡＭは、アプリケーションがポリシーに違反すると判定した時、モバイルデバイスにおいてインストールされたモバイルアプリケーションを無効にしてもよい。しかし、ＭＤＭがＭＡＭと共に使用される場合は、モバイルアプリケーションを無効にするだけでなく、モバイルデバイスから完全に削除してもよい。ＭＤＭシステムは他のタイプの情報を管理対象モバイルデバイスにプッシュしてもよい。たとえば、ＭＤＭシステムは管理関係を活用して、モバイルデバイスにアプリケーションの更新または証明書をプッシュしてもよい。証明書は、たとえばＸ．５０９デバイス証明書であってもよい。
【０２１１】
本発明に提供した開示は、多数の技術的利点を提供している。上述のアプローチは全体的に、企業がモバイルプラットフォームに関係なくモバイルアプリケーションをセキュリティ保護された状態にかつ強力に識別できるようにするものである。上述のアプローチはまた、認証資格情報、デジタル証明書、企業データ等の潜在的に機密のデータにアクセスするモバイルアプリケーションのアイデンティティを検証するための自動化された方法を提供する。上述のアプローチを実装する企業はまた、企業リソースへのアクセスのために個人がそのパーソナルデバイスを使用することを許可することにより、企業の管理下で物理的なデバイスの数を削減してもよい。この点で、企業はモバイルデバイス管理システム内にデバイス全体を登録する必要を回避してもよく、代わりに、モバイルアプリケーション管理システム内のモバイルデバイスに様々なモバイルアプリケーションを登録するのみにしてもよい。これらおよび他の利点は上述の開示とともに理解されるであろう。
【０２１２】
構造的な特徴および／または方法論的な行為に特有の用語で主題を説明してきたが、添付の請求項で定義される主題は必ずしも上述した特有の特徴または行為に制限されるものではないことは理解されるべきである。むしろ、上述した特有の特徴および行為は以下の請求項の実施態様として説明されたものである。
【０２１３】
本願は、２０１３年３月２９日に出願され、「企業モビリティ管理のためのシステムおよび方法」と題する、米国仮特許出願第６１／８０６，５７７号の優先権を主張し、２０１３年５月２０日に出願された同じ発明の名称を有する米国特許出願第１３／８９８，１６７号の優先権を主張する。
【図１】
2016526223.tif 000003
【図２】
2016526223.tif 000004
【図３】
2016526223.tif 000005
【図４】
2016526223.tif 000006
【図５】
2016526223.tif 000007
【図６】
2016526223.tif 000008
【図７】
2016526223.tif 000009
【図８】
2016526223.tif 000010
【図９】
2016526223.tif 000011
【図１０】
2016526223.tif 000012
【図１１】
2016526223.tif 000013
【図１２】
2016526223.tif 000014
【図１３】
2016526223.tif 000015
【図１４】
2016526223.tif 000016
【国際調査報告】
2016526223.tif 000017
2016526223.tif 000018
2016526223.tif 000019