(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
上述のとおり特定され、本明細書の一部をなし、例示により本明細書で説明する本発明の各態様を実施するための様々な実施形態を、添付の図面を参照しながら説明する。本明細書で説明する範囲を逸脱することなく、他の実施形態を利用し、構造および機能に変更を加えてもよいことは理解されるべきである。本発明の各態様は他の実施形態が可能であり、様々な異なる方法で実施または実行することが可能である。
【0019】
以下詳細に説明する主題の概要紹介として、本明細書で説明する態様は、リモートに配置された企業のコンピューティングシステムまたはモバイルコンピューティングデバイス自体において、コンピューティングリソースへのリモートおよびローカルアクセスを制御することを指向する。
【0020】
アクセスマネージャは、コンピューティングリソースへのアクセスを要求するモバイルアプリケーションが正確にそれ自体を識別しているかどうか、およびその後、インストール後にモバイルコンピューティングデバイスで改変されていないかどうかを判定する検証プロセスを行う。このように、アクセスマネージャはコンピューティングリソースへのアクセスを要求するモバイルアプリケーションが信頼でき、それらのリソースを保護するために使用されるセキュリティ機構を回避しようとしていないことを確実にすることができる。その結果、企業に関連づけられた個人は、自身のパーソナルモバイルデバイスでコンピューティングリソースを有利に利用することができる。
【0021】
コンピューティングリソースはモバイルコンピューティングデバイスに対してローカルにまたはリモートに配置されてよい。コンピューティングリソースの例としては、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムで動作するソフトウェア・アプリケーション、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムによって提供されるサービス、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムに格納されたデータ、モバイルコンピューティングデバイスまたはリモートコンピューティングシステムのハードウェア、およびそれらの組み合わせが含まれる。本発明では、企業のコンピューティングシステムにリモートに配置されたコンピューティングリソースを企業リソースと称す。
【0022】
本明細書で使用される表現および用語は、説明目的であり、制限と見なしてはならないことは理解されるべきである。むしろ、本明細書で使用される表現および用語には、そのもっとも広い解釈および意味が与えられるべきである。「含み」および「備え」ならびにその変形の使用は、これ以降で挙げられるアイテムおよびその等価物ならびに追加アイテムおよびその等価物を包含することが意図されている。「取り付けられている」、「接続されている」、「連結されている」、「位置付けられている」、「係合されている」および同様な用語の使用は、直接的および間接的の両方の取り付け、接続、連結、位置付けおよび係合を含むことが意図されている。
【0023】
〈コンピューティングアーキテクチャ〉
コンピュータのソフトウェア、ハードウェアおよびネットワークは、特に、スタンドアロン、ネットワーク化、リモートアクセス(別称、リモートデスクトップ)、仮想化および/またはクラウドベースの環境を含め、多様な異なるシステム環境で利用してもよい。
【0024】
図1は、本発明の1つ以上の例示的な態様に係る、スタンドアロンおよび/またはネットワーク化環境で実装するために使用されるシステムアーキテクチャならびにデータ処理装置の一実施例を示す。様々なネットワークノード103,105,107および109は、インターネットなどの広域ネットワーク(WAN)101を介して相互接続されている。プライベートイントラネット、企業ネットワーク、LAN、メトロポリタンエリアネットワーク(MAN)、ワイヤレスネットワーク、パーソナルネットワーク(PAN)等を含む、他のネットワークもまた、または代わりに使用してもよい。
【0025】
ネットワーク101は例示目的であり、より少ないか、または追加のコンピュータネットワークと取り替えてもよい。ローカルエリアネットワーク(LAN)はあらゆる周知のLANトポロジーのうちの1つ以上を有してもよく、イーサーネット(登録商標)などの多様な異なるプロトコルのうちの1つ以上を使用してもよい。デバイス103,105,107,109および他のデバイス(図示せず)は、撚り対線、同軸ケーブル、光ファイバ、電波または他の通信媒体を介してネットワークのうちの1つ以上に接続してもよい。
【0026】
本明細書で使用し、図面に図示する用語「ネットワーク」とは、遠隔記憶装置が1つ以上の通信パスを介して互いに連結されているシステムだけではなく、記憶容量を有する当該システムにそのときどきで連結してもよいスタンドアロンデバイスのことも含む。そのため、「ネットワーク」とは、「物理的ネットワーク」だけでなく、すべての物理的ネットワークに常駐する(単一のエンティティに帰属する)データから構成される「コンテンツネットワーク」をも含む。
【0027】
コンポーネントは、データサーバ103、ウェブサーバ105およびクライアントコンピュータ107,109を含んでいてもよい。データサーバ103は、本明細書で説明する開示の1つ以上の例示的な態様を行うために、データベースおよび制御ソフトウェアの全体的なアクセス、制御および管理を提供する。データサーバ103はウェブサーバ105に接続されていてもよく、それによりユーザは要求に応じて対話し、データを取得する。あるいは、データサーバ103はウェブサーバ自体として作動してもよく、インターネットに直接接続してもよい。
【0028】
データサーバ103は、直接もしくは間接的な接続を介して、または何らかの他のネットワークを介して、ネットワーク101(たとえば、インターネット)経由でウェブサーバ105に接続されていてもよい。ユーザはリモートコンピュータ107,109を使用して、たとえばウェブサーバ105がホストする1つ以上の外部に露出するウェブサイトを介してデータサーバ103に接続するためのウェブブラウザを使用して、データサーバ103と対話することができる。クライアントコンピュータ107,109はデータサーバ103とともに使用して、そこに格納されているデータにアクセスしてもよく、または他の目的で使用してもよい。たとえば、クライアントデバイス107から、ユーザは当該技術分野で周知のようにインターネットブラウザを使用して、またはコンピュータネットワーク(インターネットなど)上でウェブサーバ105および/またはデータサーバ103と通信するソフトウェア・アプリケーションを実行することにより、ウェブサーバ105にアクセスしてもよい。
【0029】
サーバおよびアプリケーションは同じ物理マシン上に組み合わされて、個別の仮想アドレスもしくは論理アドレスを保持してもよく、または個別の物理マシンに常駐していてもよい。
【0030】
図1は、使用され得るネットワークアーキテクチャのほんの一実施例を示しており、当業者は、使用される特定のネットワークアーキテクチャおよびデータ処理装置を変更してもよいこと、ならびに、本明細書で詳細に説明するように、それが提供する機能に対して二次的なものであることを認識するであろう。たとえば、ウェブサーバ105およびデータサーバ103が提供するサービスは単一のサーバに結合されてもよい。
【0031】
各コンポーネント103,105,107,109は、あらゆるタイプの周知のコンピュータ、サーバまたはデータ処理装置であってもよい。たとえば、データサーバ103はレートサーバ103のオペレーション全体を制御するプロセッサ111を含んでいてもよい。データサーバ103は、RAM113、ROM115、ネットワークインターフェース117、入出力インターフェース119(たとえば、キーボード、マウス、ディスプレイ、プリンタ等)およびメモリ121をさらに含んでいてもよい。I/O119は、データまたはファイルを読み込み、書き込み、表示し、および/または印刷する多様なインターフェースユニットおよびドライブを含んでいてもよい。メモリ121はデータ処理装置103、本明細書で説明する開示の態様を行うようデータサーバ103に指図する制御ロジック125、ならびに本発明の態様と合わせて使用してもしなくてもよい二次的、サポートおよび/または他の機能を提供する他のアプリケーションソフトウェア127のオペレーション全体を制御するオペレーティングシステム・ソフトウェア123をさらに格納していてもよい。制御ロジックは本明細書ではデータサーバソフトウェア125ともいう。データサーバソフトウェアの機能は、制御ロジックに符号化され、システムに入力を提供するユーザによって手動で作成されるルールに基づいて自動的に行われるオペレーションもしくは決定、および/またはユーザ入力(たとえば、問合わせ、データのアップデート等)に基づく自動処理の組合せをいう。
【0032】
メモリ121は、第1データベース129および第2データベース131を含め、本発明の1つ以上の態様の実施で使用されるデータも格納していてもよい。いくつかの実施形態では、第1データベースは第2データベースを含んでいてもよい(たとえば、個別のテーブル、レポート等として)。すなわち、情報は、システムの設計により、単一のデータベースに格納することができ、または別々の論理データベース、仮想データベースもしくは物理的データベースに分けることができる。デバイス105,107,109はデバイス103に関して説明したのと同様なアーキテクチャを有してもよく、または異なるアーキテクチャを有していてもよい。当業者には、本明細書で説明するデータ処理装置103(またはデバイス105,107,109)の機能を複数のデータ処理装置に分散して、たとえば、複数のコンピュータに処理ロードを分散し、地理的な場所、ユーザのアクセスレベル、サービスの質(QoS)等に基づいてトランザクションを分けてもよい。
【0033】
1つ以上の態様は、1つ以上のプログラムモジュールなどで、1つ以上のコンピュータまたは本明細書で説明される他のデバイスによって実行されるコンピュータ使用可能もしくは読取可能データおよび/またはコンピュータ実行可能命令に具現してもよい。一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサによって実行されるとき、特定のタスクを行うかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。モジュールは実行のために後でコンパイルされるソースコードプログラミング言語で書き込んでもよく、またはHTMLもしくはXMLなどの(ただし、これだけに限定されない)スクリプト言語で書き込んでもよい。
【0034】
コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ読取可能媒体に格納してもよい。ハードディスク、CD−ROM、光学記憶装置、磁気記憶装置、および/またはそのあらゆる組合せを含め、あらゆる適したコンピュータ読取可能記憶媒体を利用してもよい。さらに、本明細書で説明するデータまたはイベントを表す様々な伝送(非記憶)媒体は、金属ワイヤ、光ファイバ、ならびに/またはワイヤレス伝送媒体(たとえば、空気および/もしくは空間)など、信号伝達媒体を通して移動する電磁波の形で、送信元と宛先との間を転送してもよい。本明細書で説明する様々な態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現してもよい。そのため、様々な機能は、集積回路、フィールドプログラマブル・ゲートアレイ(FPGA)等といった、ソフトウェア、ファームウェアおよび/またはハードウェアもしくはハードウェア等価物に全部または一部を具現してもよい。本発明の1つ以上の態様をより効果的に実装するために特定のデータ構造を使用してもよく、当該データ構造は本明細書で説明するコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内に企図される。
【0035】
図2をさらに参照して、本明細書で説明する1つ以上の態様はリモートアクセス環境に実装されている。
図2は、本明細書で説明する1つ以上の態様に従って使用されるコンピューティング環境200の汎用コンピューティングデバイス201を含むシステムアーキテクチャを示す。
【0036】
汎用コンピューティングデバイス201は、クライアントアクセスデバイスに仮想マシンを提供するように構成されている単一サーバまたはマルチサーバのデスクトップ仮想化システム(たとえば、リモートアクセスもしくはクラウドシステム)内のサーバ206aとして使用されてもよい。汎用コンピューティングデバイス201は、ランダムアクセスメモリ(RAM)205、読取専用メモリ(ROM)207、入出力(I/O)モジュール209およびメモリ215を含め、サーバおよびその関連コンポーネントのオペレーション全体を制御するプロセッサ203を有していてもよい。
【0037】
I/Oモジュール209は、汎用コンピューティングデバイス201のユーザが入力を提供するマウス、キーパッド、タッチスクリーン、スキャナ、光学リーダ、および/またはスタイラス(もしくは他の入力デバイス)を含んでいてもよく、また音声出力を提供するスピーカと、テキスト、オーディオビジュアルおよび/またはグラフィカル出力を提供するビデオディスプレイデバイスとのうちの1つ以上を含んでいてもよい。
【0038】
ソフトウェアはメモリ215および/または他のストレージ内に格納され、本明細書で説明する様々な機能を実施するために汎用コンピューティングデバイス201を専用コンピューティングデバイスに構成する命令をプロセッサ203に与える。たとえば、メモリ215は、オペレーティングシステム217、アプリケーション・プログラム219および関連データベース221など、コンピューティングデバイス201が使用するソフトウェアを格納していてもよい。
【0039】
コンピューティングデバイス201は、端末240(クライアントデバイスともいう)などの1つ以上のリモートコンピュータへの接続をサポートするネットワーク化環境で動作してもよい。端末240は、汎用コンピューティングデバイス103もしくは201に関して上述した要素の多くもしくはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってもよい。
【0040】
図2に図示するネットワーク接続はローカルエリアネットワーク(LAN)225および広域ネットワーク(WAN)229を含むが、他のネットワークを含んでいてもよい。LANネットワーク化環境で使用される場合、コンピューティングデバイス201はネットワークインターフェースまたはアダプタ223経由でLAN225に接続してもよい。WANネットワーク化環境で使用される場合、コンピューティングデバイス201は、コンピュータネットワーク230(たとえば、インターネット)など、WAN229上で通信を確立するモデム227または他の広域ネットワークインターフェースを含んでいてもよい。
【0041】
図示するネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段も使用してもよいことは認識されるであろう。コンピューティングデバイス201および/または端末240は、バッテリ、スピーカおよびアンテナ(図示せず)などの様々な他のコンポーネントを含めて、モバイル端末(たとえば、携帯電話、スマートフォン、PDA、ノートブック等)であってもよい。
【0042】
本明細書で説明する態様は、複数の他の汎用もしくは専用コンピューティングシステムの環境または構成と併用して動作可能であってもよい。本明細書で説明する態様と併用するのに適する他のコンピューティングシステム、環境および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などがあげられるが、これだけに限定されない。
【0043】
図2に図示するように、1つ以上のクライアントデバイス240は1つ以上のサーバ206a〜206n(総称的に、本明細書では「サーバ206」という)と通信する状態であってもよい。一実施形態では、コンピューティング環境200は、サーバ206とクライアントマシン240との間にインストールされているネットワーク・アプライアンスを含んでいてもよい。ネットワーク・アプライアンスはクライアント/サーバ接続を管理してもよく、ある場合には複数のバックエンドサーバ206間のクライアント接続の負荷分散をすることができる。
【0044】
クライアントマシン240は、いくつかの実施形態では、単一クライアントマシン240またはクライアントマシンの単一グループ240と称されることがあり、サーバ206は単一サーバ206またはサーバの単一グループ206と称されることがある。一実施形態では、単一クライアントマシン240は2つ以上のサーバ206と通信し、別の実施形態では単一サーバ206は2つ以上のクライアントマシン240と通信する。さらに別の実施形態では、単一クライアントマシン240は単一サーバ206と通信する。
【0045】
クライアントマシン240は、いくつかの実施形態では、次の非網羅的な用語のうちのいずれか1つによって言及することができる。すなわち、クライアントマシン、クライアント、クライアントコンピュータ、クライアントデバイス、クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノード。サーバ206は、いくつかの実施形態では、次の非網羅的な用語のうちのいずれか1つによって言及してもよい。すなわち、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティングデバイス。
【0046】
一実施形態では、クライアントマシン240は仮想マシンであってもよい。仮想マシンはあらゆる仮想マシンであってもよいが、いくつかの実施形態では、仮想マシンはタイプ1またはタイプ2のハイパーバイザ、たとえば、サイトリックス・システムズ、IBM、ヴイエムウェアによって開発されるハイパーバイザ、またはあらゆる他のハイパーバイザによって管理されるあらゆる仮想マシンであってもよい。いくつかの態様において、仮想マシンはハイパーバイザによって管理してもよいが、いくつかの態様では、仮想マシンはサーバ206上で実行するハイパーバイザまたはクライアント240上で実行するハイパーバイザによって管理してもよい。
【0047】
いくつかの実施形態は、サーバ206または遠隔設置された他のマシン上で遠隔実行するアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス240を含む。これらの実施形態では、クライアントデバイス240は仮想マシンのレシーバプログラムまたはアプリケーションを実行して、アプリケーションウインドウ、ブラウザ、または他の出力ウインドウに出力を表示してもよい。ある実施例では、アプリケーションはデスクトップであるが、他の実施例では、アプリケーションはデスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび/またはリモート・アプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。本明細書で使用するアプリケーションとは、オペレーティングシステム(および、任意で、デスクトップも)のインスタンスがロードされた後に実行するプログラムである。
【0048】
サーバ206は、いくつかの実施形態では、クライアント上で実行するシンクライアントまたはリモートディスプレイ・アプリケーションにデータを送信するリモートプレゼンテーション・プロトコルまたは他のプロトコルを使用して、サーバ206上で実行するアプリケーションによって生成されるディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイ・プロトコルは、次の非網羅的なプロトコルリストのうちのいずれか1つとすることができる。すなわち、フロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクが開発したインディペンデント・コンピューティング・アーキテクチャ(ICA)プロトコル、またはワシントン州レドモンドのマイクロソフト・コーポレーションが製造するリモートデスクトッププロトコル(RDP)。
【0049】
リモートコンピューティング環境は、サーバ206a〜206nが、たとえばクラウドコンピューティング環境のサーバファーム206に論理的にまとめられるように、2つ以上のサーバ206a〜206nを含んでいてもよい。サーバファーム206は論理的にまとめられながらも地理的に分散しているサーバ206、または論理的にまとめられながらも互いに近接して配置されているサーバ206を含んでいてもよい。サーバファーム206内の地理的に分散したサーバ206a〜206nは、いくつかの実施形態では、WAN(広域)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信することができ、異なる地理的地域は、異なる大陸、大陸の中の異なる地域、異なる国、異なる州、異なる都市、異なる大学、異なる部屋、または前述の地理的な場所のあらゆる組合せとして特徴付けることができる。いくつかの実施形態では、サーバファーム206は単一エンティティとして管理されてもよいが、他の実施形態では、サーバファーム206は複数のサーバファームを含むことができる。
【0050】
いくつかの実施形態では、サーバファームは、実質的に同じようなタイプのオペレーティングシステムのプラットフォーム(例、WINDOWS(登録商標)、UNIX(登録商標)、LINUX(登録商標)、iOS、ANDROID(登録商標)、SYMBIAN等)を実行するサーバ206を含んでいてもよい。他の実施形態では、サーバファーム206は、第1タイプのオペレーティングシステムのプラットフォームを実行する1つ以上のサーバからなる第1グループと、第2タイプのオペレーティングシステムのプラットフォームを実行する1つ以上のサーバからなる第2グループとを含んでいてもよい。
【0051】
サーバ206は、必要なあらゆるタイプのサーバとして、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワーク・アプライアンス、ゲートウェイ、アプリケーション・ゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、SSL VPNサーバ、ファイヤウォール、ウェブサーバ、アプリケーションサーバ、またはマスターアプリケーションサーバ、アクティブディレクトリを実行するサーバ、またはファイヤウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション高速化プログラムを実行するサーバとして構成されていてもよい。他のサーバのタイプも使用してもよい。
【0052】
いくつかの実施形態は、クライアントマシン240からの要求を受信し、要求を第2サーバ106bに転送し、第2サーバ106bからの応答により、クライアントマシン240により生成される要求に応答する第1サーバ106aを含む。第1サーバ106aはクライアントマシン240に利用できるアプリケーションの一覧表、およびアプリケーションの一覧表内で特定されるアプリケーションをホストするアプリケーションサーバ206に関連するアドレス情報を取得してもよい。それから、第1サーバ106aは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、クライアント240と直接通信して、特定されたアプリケーションへのアクセスをクライアント240に提供することができる。1つ以上のクライアント240および/または1つ以上のサーバ206は、ネットワーク230、たとえばネットワーク101上でデータを伝送してもよい。
【0053】
図2は、デスクトップ仮想化システムの高レベルアーキテクチャを示す。図示するように、デスクトップ仮想化システムは、1つ以上のクライアントアクセスデバイス240に仮想デスクトップおよび/または仮想アプリケーションを提供するように構成されている少なくとも1つの仮想化サーバ206を含め、単一サーバもしくはマルチサーバシステムまたはクラウドシステムであってもよい。
【0054】
本明細書で使用されるデスクトップとは、1つ以上のアプリケーションをホストおよび/または実行してもよいグラフィカル環境またはスペースをいう。デスクトップは、ローカルおよび/またはリモート・アプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。アプリケーションは、オペレーティングシステムのインスタンス(および、任意でデスクトップも)をロードした後に実行するプログラムを含んでいてもよい。オペレーティングシステムのインスタンスは物理的(たとえば、1デバイスにつき1つのオペレーティングシステム)または仮想的(たとえば、単一デバイス上で稼動するOSの多くのインスタンス)であってもよい。各アプリケーションはローカルデバイス上で実行してもよく、または遠隔設置されたデバイス上で実行(たとえば、遠隔操作)してもよい。
【0055】
図3をさらに参照すると、コンピュータデバイス301は、仮想化環境の仮想化サーバとして、たとえば、単一サーバ、マルチサーバ、またはクラウドコンピューティング環境として構成されていてもよい。
【0056】
図3に図示する仮想化サーバ301は、
図2に図示するサーバ206の1つ以上の実施形態もしくは他の周知のコンピューティングデバイスとしてデプロイ(deploy)することができ、および/またはそれにより実装することができる。
【0057】
仮想化サーバ301に含まれるのが、1つ以上の物理的ディスク304、1つ以上の物理的デバイス306、1つ以上の物理的プロセッサ308および1つ以上の物理的メモリ316を含むことができるハードウェアレイヤである。いくつかの実施形態では、ファームウェア312を物理的メモリ316のメモリ素子内に格納することができ、物理的プロセッサ308のうちの1つ以上によって実行することができる。仮想化サーバ301はさらに物理的メモリ316のメモリ素子内に格納されて、物理的プロセッサ308のうちの1つ以上によって実行されてもよいオペレーティングシステム314をさらに含んでいてもよい。さらに、ハイパーバイザ302を物理的メモリ316のメモリ素子内に格納してもよく、物理的プロセッサ308のうちの1つ以上によって実行することができる。
【0058】
物理的プロセッサ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を実行することができる。
【0059】
仮想化サーバ301は、仮想化サーバ301と通信する1つ以上のハードウェアを備えるハードウェアレイヤ310を含んでいてもよい。いくつかの実施形態では、ハードウェアレイヤ310は、1つ以上の物理的ディスク304、1つ以上の物理的デバイス306、1つ以上の物理的プロセッサ308、および1つ以上のメモリ316を含むことができる。物理的コンポーネント304,306,308および316は、たとえば、上述したコンポーネントのいずれを含んでいてもよい。物理的デバイス306は、たとえば、ネットワーク・インターフェース・カード、ビデオカード、キーボード、マウス、入力デバイス、モニタ、ディスプレイデバイス、スピーカ、光学ドライブ、記憶装置、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク素子(たとえば、ルータ、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル(DHCP)ルータ等)、または仮想化サーバ301に接続されているかもしくは仮想化サーバ301と通信するあらゆるデバイスを含んでいてもよい。ハードウェアレイヤ310の物理的メモリ316はあらゆるタイプのメモリを含んでいてもよい。物理的メモリ316はデータを格納してもよく、いくつかの実施形態では、1つ以上のプログラム、または実行可能命令のセットを格納してもよい。
【0060】
図3は、仮想化サーバ301の物理的メモリ316内にファームウェア312が格納されている実施形態を示す。物理的メモリ316に格納されているプログラムまたは実行可能命令は、仮想化サーバ301の1つ以上のプロセッサ308によって実行することができる。
【0061】
仮想化サーバ301はハイパーバイザ302も含んでいてもよい。いくつかの実施形態では、ハイパーバイザ302は仮想化サーバ301のプロセッサ308によって実行されて、あらゆる数の仮想マシン332を作成して管理するプログラムであってもよい。ハイパーバイザ302は仮想マシンモニタ、またはプラットフォーム仮想化ソフトウェアと称されることもある。いくつかの実施形態では、ハイパーバイザ302は実行可能命令と、コンピューティングマシン上で実行する仮想マシンを監視するハードウェアとのあらゆる組合せとすることができる。ハイパーバイザ302はタイプ2ハイパーバイザであってもよく、当該ハイパーバイザは仮想化サーバ301上で実行するオペレーティングシステム314内で実行する。それから、仮想マシンはハイパーバイザより上のレベルで実行する。
【0062】
いくつかの実施形態では、タイプ2ハイパーバイザは、タイプ2ハイパーバイザがユーザのオペレーティングシステムと対話するように、ユーザのオペレーティングシステムのコンテキスト内で実行する。他の実施形態では、仮想化環境内の1つ以上の仮想化サーバ301は、代わりにタイプ1ハイパーバイザ(図示せず)を含んでいてもよい。タイプ1ハイパーバイザは、ハードウェアレイヤ310内のハードウェアおよびリソースに直接アクセスすることによって、仮想化サーバ301上で実行してもよい。すなわち、タイプ2ハイパーバイザ302は図示するようにホストオペレーティングシステム314経由でシステムのリソースにアクセスするのに対し、タイプ1ハイパーバイザはホストオペレーティングシステム314がなくてもすべてのシステムのリソースに直接アクセスしてもよい。タイプ1ハイパーバイザは仮想化サーバ301の1つ以上の物理的プロセッサ308上で直接実行してもよく、物理的メモリ316に格納されているプログラムデータを含んでいてもよい。
【0063】
いくつかの実施形態では、ハイパーバイザ302はオペレーティングシステム330または仮想マシン332上で実行する制御プログラム320に、システムのリソースに直接アクセスできるオペレーティングシステム330または制御プログラム320をシミュレートするいずれの方法でも仮想リソースを提供することができる。
【0064】
システムのリソースは、物理的デバイス306、物理的ディスク304、物理的プロセッサ308、物理的メモリ316および仮想化サーバ301のハードウェアレイヤ310に含まれているあらゆる他のコンポーネントを含むことができるが、これだけに限定されない。ハイパーバイザ302を使用して、仮想ハードウェアをエミュレートし、物理的ハードウェアを分割し、物理的ハードウェアを仮想化し、および/またはコンピューティング環境へのアクセスを提供する仮想マシンを実行してもよい。さらに他の実施形態では、ハイパーバイザ302は仮想化サーバ301上で実行する仮想マシン332のプロセッサのスケジューリングおよびメモリの分割を制御する。
【0065】
ハイパーバイザ302はカリフォルニア州パロアルトのヴイエムウェア・インクが製造するもの、オープンソースのXen.orgコミュニティが開発を監督するオープンソース製品のXENハイパーバイザ、マイクロソフトが提供するHyperV、VirtualServerまたは仮想PCハイパーバイザ、または他のものを含んでいてもよい。いくつかの実施形態では、仮想化サーバ301は、その上でゲストオペレーティングシステムが実行してもよい仮想マシンプラットフォームを作成するハイパーバイザ302を実行する。これらの実施形態では、仮想化サーバ301はホストサーバと称されることがある。このような仮想化サーバの一例が、フロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクが提供するXEN SERVERである。
【0066】
ハイパーバイザ302は、その中でゲストオペレーティングシステム330が実行する1つ以上の仮想マシン332B〜332C(総称的に332)を作成してもよい。いくつかの実施形態では、ハイパーバイザ302は仮想マシンイメージをロードして、仮想マシン332を作成してもよい。他の実施形態では、ハイパーバイザ302は仮想マシン332内のゲストオペレーティングシステム330を実行してもよい。さらに他の実施形態では、仮想マシン332はゲストオペレーティングシステム330を実行してもよい。
【0067】
仮想マシン332を作成することに加えて、ハイパーバイザ302は少なくとも1つの仮想マシン332の実行を制御してもよい。他の実施形態では、ハイパーバイザ302は少なくとも1つの仮想マシン332に、仮想化サーバ301が提供する少なくとも1つのハードウェアリソース(たとえば、ハードウェアレイヤ310内で利用できるあらゆるハードウェアリソース)の抽象化を提示してもよい。他の実施形態では、ハイパーバイザ302は、仮想マシン332が仮想化サーバ301で利用できる物理的プロセッサ308にアクセスする態様を制御してもよい。物理的プロセッサ308へのアクセスを制御することは、仮想マシン332がプロセッサ308にアクセスできるべきかどうかと、物理的プロセッサの能力をどのように仮想マシン332に提示するかと、を判定することを含んでいてもよい。
【0068】
図3に図示するように、仮想化サーバ301は1つ以上の仮想マシン332をホストまたは実行してもよい。仮想マシン332は、プロセッサ308によって実行されるとき、仮想マシン332が物理的コンピューティングデバイスと同様にプログラムおよびプロセスを実行することができるように、物理的コンピュータの動作を模倣する実行可能命令のセットである。
図3は仮想化サーバ301が3つの仮想マシン332をホストする実施形態を示しているが、他の実施形態では、仮想化サーバ301はあらゆる数の仮想マシン332をホストすることができる。
【0069】
いくつかの実施形態では、ハイパーバイザ302は各仮想マシン332に、その仮想マシン332に利用できる物理的ハードウェア、メモリ、プロセッサおよび他のシステム・リソースの固有の仮想ビューを提供する。いくつかの実施形態では、固有の仮想ビューは、仮想マシンの許可、1つ以上の仮想マシン識別子へのポリシーエンジンの適用、仮想マシンにアクセスするユーザ、仮想マシン上で実行するアプリケーション、仮想マシンによってアクセスされるネットワーク、または他の所望の基準に基づくことができる。たとえば、ハイパーバイザ302は1つ以上のセキュリティ保護されていない仮想マシン332と、1つ以上のセキュリティ保護された仮想マシン332とを作成してもよい。セキュリティ保護されていない仮想マシン332には、セキュリティ保護された仮想マシン332がアクセスを許可されるリソース、ハードウェア、メモリ場所およびプログラムを禁止してもよい。他の実施形態では、ハイパーバイザ302は各仮想マシン332に、仮想マシン332に利用できる物理的ハードウェア、メモリ、プロセッサおよび他のシステム・リソースの実質的に同様な仮想ビューを提供してもよい。
【0070】
各仮想マシン332は仮想ディスク326A〜326C(総称的に326)と、仮想プロセッサ328A〜328C(総称的に328)とを含んでいてもよい。いくつかの実施形態では、仮想ディスク326は仮想化サーバ301の1つ以上の物理的ディスク304の仮想化ビュー、または仮想化サーバ301の1つ以上の物理的ディスク304の一部である。物理的ディスク304の仮想化ビューはハイパーバイザ302によって生成、提供および管理することができる。いくつかの実施形態では、ハイパーバイザ302は各仮想マシン332に物理的ディスク304の固有のビューを提供する。したがって、これらの実施形態では、各仮想マシン332に含まれる特定の仮想ディスク326は、他の仮想ディスク326と比べたときに固有にすることができる。
【0071】
仮想プロセッサ328は仮想化サーバ301の1つ以上の物理的プロセッサ308の仮想化ビューとすることができる。いくつかの実施形態では、物理的プロセッサ308の仮想化ビューはハイパーバイザ302によって生成、提供および管理することができる。いくつかの実施形態では、仮想プロセッサ328は少なくとも1つの物理的プロセッサ308の同じ特徴の実質的にすべてを有する。他の実施形態では、仮想プロセッサ308は、仮想プロセッサ328の特徴の少なくともいくつかが対応する物理的プロセッサ308の特徴とは異なるように、物理的プロセッサ308の修正ビューを提供する。
【0072】
図4をさらに参照すると、本明細書で説明するいくつかの態様は、クラウドベースの環境に実装される。
図4はクラウドコンピューティング環境(またはクラウドシステム)400の実施例を示す。
図4から分かるように、クライアントコンピュータ411〜414はクラウド管理サーバ410と通信して、クラウドシステムのコンピューティングリソース(たとえば、ホストサーバ403、ストレージリソース404およびネットワークリソース405)にアクセスしてもよい。
【0073】
管理サーバ410は1つ以上の物理的サーバ上に実装してもよい。管理サーバ410は、たとえば、特にフロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクのCLOUDSTACK、またはOPENSTACKを稼動してもよい。管理サーバ410は、たとえば、ホストコンピュータ403、データ記憶装置404およびネットワーキングデバイス405など、クラウド・ハードウェアおよびソフトウェア・リソースを含め、様々なコンピューティングリソースを管理してもよい。クラウド・ハードウェアおよびソフトウェア・リソースは非公開および/または公開コンポーネントを含んでいてもよい。たとえば、クラウドは1つ以上の特定のカスタマもしくはクライアントコンピュータ411〜414によって、および/またはプライベートネットワーク上で使用されるプライベートクラウドとして構成していてもよい。他の実施形態では、パブリッククラウドまたはハイブリッドパブリック−プライベートクラウドが、オープンまたはハイブリッドネットワーク上で他のカスタマによって使用されてもよい。
【0074】
管理サーバ410は、クラウドオペレータおよびクラウドカスタマがクラウドシステムとやりとりしてもよいユーザインターフェースを提供するように構成されていてもよい。たとえば、管理サーバ410はユーザインターフェースにAPIのセットおよび/または1つ以上のクラウドオペレータコンソール・アプリケーション(たとえば、ウェブベースのスタンドアロンアプリケーション)を提供して、クラウドオペレータがクラウドリソースを管理し、仮想化レイヤを構成し、カスタマアカウントを管理し、他のクラウド管理タスクを行うことができるようにしてもよい。
【0075】
管理サーバ410は、クライアントコンピュータ411〜414を介してエンドユーザからのクラウドコンピューティング要求、たとえば、クラウド内で仮想マシンを作成、修正または破棄する要求を受信するように構成されているユーザインターフェースを備えるAPIのセットおよび/または1つ以上のカスタマコンソール・アプリケーションを含んでいてもよい。クライアントコンピュータ411〜414はインターネットまたは他の通信ネットワークを介して管理サーバ410に接続してもよく、管理サーバ410が管理するコンピューティングリソースのうちの1つ以上へのアクセスを要求してもよい。クライアントの要求に応答して、管理サーバ410は、クライアント要求に基づいて、クラウドシステムのハードウェアレイヤの物理的リソースを選択し、プロビジョニングするように構成されているリソース・マネージャを含んでいてもよい。たとえば、管理サーバ410およびクラウドシステムの追加コンポーネントは、カスタマに計算リソース、データストレージサービス、ネットワーク能力、ならびにコンピュータプラットフォームおよびアプリケーションサポートを提供しながら、ネットワーク(たとえば、インターネット)上で、クライアントコンピュータ411〜414のカスタマのために、仮想マシンおよびその動作環境(たとえば、ハイパーバイザ、ストレージリソース、ネットワーク素子が提供するサービス等)をプロビジョニングし、作成し、管理するように構成されていてもよい。クラウドシステムはまた、セキュリティシステム、開発環境、ユーザインターフェース等を含め、様々な特定のサービスを提供するように構成されていてもよい。
【0076】
たとえば、一定のクライアント411〜414は、同じエンドユーザ、または同じ会社もしくは組織に属する異なるユーザの代わりに仮想マシンを作成する異なるクライアントコンピュータに関連付けられてもよい。他の実施例では、一定のクライアント411〜414は、異なる会社もしくは組織に属するユーザなどに関連付けられていなくてもよい。関連付けられていないクライアントに対して、いずれかのユーザの仮想マシンまたはストレージ上の情報を他のユーザから隠してもよい。
【0077】
ここでクラウドコンピューティング環境の物理的ハードウェアレイヤを参照すると、可用性(availability)ゾーン401〜402(またはゾーン)は物理的コンピューティングリソースのひとまとまりのセットといえる。ゾーンはコンピューティングリソースのクラウド全体において他のゾーンとは地理的に分離していてもよい。たとえば、ゾーン401はカリフォルニア州に配置されている第1クラウド・データセンターであってもよく、ゾーン402はフロリダ州に配置されている第2クラウド・データセンターであってもよい。管理サーバ410は可用性ゾーンのうちの1つ、または別の場所に配置されていてもよい。各ゾーンは、ゲートウェイ経由で、管理サーバ410などのゾーン外にあるデバイスとインターフェースする内部ネットワークを含んでいてもよい。クラウドのエンドユーザ(たとえば、クライアント411〜414)は、ゾーン間の区別に気付くかもしれないし、または気づかないかもしれない。たとえば、エンドユーザは指定される量のメモリ、処理能力、およびネットワーク能力を有する仮想マシンの作成を要求してもよい。
【0078】
管理サーバ410はユーザの要求に応答してもよく、ゾーン401またはゾーン402のリソースを使用して仮想マシンが作成されたかどうかをユーザが知ることなく、仮想マシンを作成するためにリソースを割り当ててもよい。他の実施例では、クラウドシステムは、エンドユーザが特定のゾーンまたはゾーン内の特定のリソース403〜405に仮想マシン(または他のクラウドリソース)を割り当てるよう要求できるようにしてもよい。
【0079】
この実施例では、各ゾーン401〜402は様々な物理的ハードウェアコンポーネント(またはコンピューティングリソース)403〜405の配列、たとえば、物理的ホスティングリソース(またはプロセッシングリソース)、物理的ネットワークリソース、物理的ストレージリソース、スイッチ、および、カスタマにクラウドコンピューティングサービスを提供するために使用してもよい追加のハードウェアリソースを含んでいてもよい。
【0080】
クラウドゾーン401〜402の物理的ホスティングリソースは、上述した仮想化サーバ301など、仮想マシンのインスタンスを作成しホストするように構成されていてもよい1つ以上のコンピュータサーバ403を含んでいてもよい。クラウドゾーン401または402の物理的ネットワークリソースは、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル(DHCP)ルータ等といった、クラウドカスタマにネットワークサービスを提供するように構成されているハードウェアおよび/またはソフトウェアを備える1つ以上のネットワーク素子405(たとえば、ネットワークサービスプロバイダ)を含んでいてもよい。クラウドゾーン401〜402のストレージリソースは、ストレージディスク(たとえば、ソリッドステートドライブ(SSD)、磁気ハードディスク等)および他の記憶装置を含んでいてもよい。
【0081】
図4に図示するクラウドコンピューティング環境は、クラウドの物理的リソースを使用して仮想マシンを作成して管理し、カスタマに他のサービスを提供するように構成されている追加のハードウェアおよび/またはソフトウェア・リソースを備える仮想化レイヤ(たとえば、
図1〜
図3に図示するもの)も含んでいてもよい。
【0082】
仮想化レイヤは、ネットワーク仮想化、ストレージ仮想化等を提供する他のコンポーネントとともに、上述の
図3で説明したハイパーバイザを含んでいてもよい。仮想化レイヤは物理的リソースレイヤとは別のレイヤとしてもよく、または物理的リソースレイヤと同じハードウェアおよび/もしくはソフトウェア・リソースのいくつかもしくはすべてを共有していてもよい。たとえば、仮想化レイヤは物理的コンピューティングリソースを有する仮想化サーバ403のそれぞれにインストールされているハイパーバイザを含んでいてもよい。あるいは、たとえば、WINDOWS(登録商標) AZURE(ワシントン州レドモンドのマイクロソフト・コーポレーション)、AMAZON EC2(ワシントン州シアトルのアマゾン・ドット・コム・インク)、IBM BLUE CLOUD(ニューヨーク州アーモンクのIBMコーポレーション)、または他のものなど、周知のクラウドシステムを使用してもよい。
【0083】
〈企業モビリティ管理アーキテクチャ〉
図5は、BYOD環境で使用するための企業モビリティ技術アーキテクチャ500を示す。このアーキテクチャはモバイルデバイス502のユーザがモバイルデバイス502から企業リソースまたは個人リソースにアクセスすることと、モバイルデバイス502を個人利用に使用することと、の両方を可能にする。
【0084】
ユーザは、当該企業リソース504または企業サービス508へのアクセスを、ユーザが購入したモバイルデバイス502を使用して行ってもよく、または企業がユーザに支給するモバイルデバイス502を使用して行ってもよい。ユーザはモバイルデバイス502をビジネス専用で利用しても、またはビジネスと個人兼用で利用してもよい。モバイルデバイスはiOSオペレーティングシステム、およびアンドロイド・オペレーティングシステム等を稼動してもよい。企業はモバイルデバイス504を管理するポリシーを実装することを選んでもよい。
【0085】
ポリシーは、ファイヤウォールまたはゲートウェイにより、モバイルデバイスを特定し、セキュリティ保護もしくはセキュリティ検証し、企業リソースへの選択的アクセスもしくは完全なアクセスをモバイルデバイスに提供できるように埋め込んでもよい。ポリシーはモバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーションおよびデータ管理ポリシーのなんらかの組合せとしてもよい。モバイルデバイス管理ポリシーの適用により管理されるモバイルデバイス504は登録デバイスということがある。
【0086】
モバイルデバイスのオペレーティングシステムは、管理対象パーティション510と非管理対象パーティション512とに分離されていてもよい。管理対象パーティション510は管理対象パーティション上で稼動しているアプリケーションおよび管理対象パーティションに格納されているデータをセキュリティ保護された状態にする(secure)ために、ポリシーをそれに適用させてもよい。管理対象パーティション上で稼動しているアプリケーションはセキュリティ保護されたアプリケーションであってもよい。セキュリティ保護されたアプリケーションは、電子メール・アプリケーション、ウェブブラウザ・アプリケーション、サービスとしてのソフトウェア(SaaS)アクセス・アプリケーション、Windows(登録商標) Applicationアクセス・アプリケーション等であってもよい。セキュリティ保護されたアプリケーションは、セキュリティ保護されたネイティブアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ518が実行するセキュリティ保護されたリモート・アプリケーション522、セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526等であってもよい。
【0087】
セキュリティ保護されたネイティブアプリケーション514はセキュリティ保護されたアプリケーション・ラッパー520によってラッピングしてもよい。セキュリティ保護されたアプリケーション・ラッパー520は、セキュリティ保護されたネイティブアプリケーションがデバイス上で実行されるときに、モバイルデバイス502上で実行される統合ポリシーを含んでいてもよい。セキュリティ保護されたアプリケーション・ラッパー520は、モバイルデバイス502上で稼動するセキュリティ保護されたネイティブアプリケーション514を、セキュリティ保護されたネイティブアプリケーション514の実行時に要求されるタスクを完了するようにセキュリティ保護されたネイティブアプリケーション514が要求してもよい企業でホストされるリソースに差し向けるメタデータを含んでいてもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行するセキュリティ保護されたリモート・アプリケーション522は、セキュリティ保護されたアプリケーション・ランチャ・アプリケーション518内で実行してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526は、企業リソース504等で、モバイルデバイス502のリソースを利用してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526によってモバイルデバイス502で使用されるリソースは、ユーザ対話リソース、プロセッシングリソース等を含んでいてもよい。
【0088】
ユーザ対話リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、オーディオ入力、ビジュアル入力、ジェスチャ入力等を収集して、伝送するために使用してもよい。プロセッシングリソースはユーザインターフェースを提示し、企業リソース504等から受信されるデータを処理するために使用してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526によって企業リソース504で使用されるリソースは、ユーザインターフェース生成リソース、プロセッシングリソース等を含んでいてもよい。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブルし、ユーザインターフェースを修正し、ユーザインターフェースをリフレッシュする等のために使用してもよい。
【0089】
プロセッシングリソースは情報を作成し、情報を読み取り、情報を更新し、情報を削除する等のために使用してもよい。たとえば、仮想化アプリケーションはGUIに関連するユーザの対話を記録し、それをサーバ・アプリケーションに伝えてもよく、当該サーバ・アプリケーションはユーザ対話データをサーバで動作するアプリケーションへの入力として使用する。
【0090】
この構成では、企業は、アプリケーションに関連するデータ、ファイル等と同様に、サーバ側のアプリケーションを維持する選択をしてもよい。企業はモバイルデバイスへのデプロイメントのためにそれをセキュリティ保護された状態にすることにより本明細書の原理に従っていくつかのアプリケーションを「モバイル化」する選択をしてもよいが、この構成は一定のアプリケーションのためにも選択してもよい。たとえば、いくつかのアプリケーションはモバイルデバイスで使用するためにセキュリティ保護された状態にしてもよいが、他のものはモバイルデバイスへのデプロイメントの準備がされていないかまたはデプロイメントに適切ではない可能性があるので、企業は仮想化技術により準備されていないアプリケーションへのアクセスをモバイルユーザに提供する選択をしてもよい。
【0091】
別の実施例として、企業は大量の複雑なデータセットを有する大きく複雑なアプリケーション(たとえば、資材所要量計画アプリケーション)を有することがあり、当該モバイルデバイスのアプリケーションをカスタマイズするのは非常に難しく、またはその他望ましくないので、企業は仮想化技術によりアプリケーションへのアクセスを提供する選択をしてもよい。さらに別の実施例として、企業は、セキュリティ保護化したモバイル環境であっても扱いに非常に注意を要すると企業に見なされて、企業が当該アプリケーションおよびデータへのモバイルアクセスを許可するために仮想化技術を選択してもよい高セキュリティ保護化データ(たとえば、人事データ、顧客データ、エンジニアリングデータ)を維持するアプリケーションを有していてもよい。
【0092】
企業はサーバ側でより適切に動作すると見なされるアプリケーションへのアクセスを許可するために、仮想化アプリケーションとともに、モバイルデバイス上の完全にセキュリティ保護化しかつ完全に機能するアプリケーションを提供する選択をしてもよい。実施形態では、仮想化アプリケーションは、携帯電話のセキュリティ保護された記憶場所のうちの1つに、いくつかのデータ、ファイル等を格納してもよい。たとえば、企業は一定の情報を電話に格納させるが、他の情報を許可しない選択をしてもよい。
【0093】
本明細書で説明するように、仮想化アプリケーションに関連して、モバイルデバイスは、GUIを提示し、さらにGUIとのユーザの対話を記録するように設計されている仮想化アプリケーションを有していてもよい。アプリケーションは、アプリケーションとのユーザインタラクションとして、サーバ側アプリケーションが使用するサーバ側とのユーザインタラクションを伝えてもよい。応答して、サーバ側のアプリケーションはモバイルデバイスに新たなGUIを送り戻してもよい。たとえば、新たなGUIは静的ページ、動的ページ、アニメーションまたは同様な他のものであってもよい。
【0094】
管理対象パーティション上で稼働するアプリケーションは安定化されたアプリケーションであってもよい。安定化されたアプリケーションはデバイスマネージャ524によって管理されてもよい。デバイスマネージャ524は安定化されたアプリケーションを監視して、問題を検出して補修する技術が利用されない場合に安定化されていないアプリケーションをもたらすような問題検出および補修のための前記技術を利用してもよい。
【0095】
セキュリティ保護されたアプリケーションは、モバイルデバイスの管理対象パーティション510のセキュリティ保護されたデータコンテナ528に格納されているデータにアクセスしてもよい。セキュリティ保護されたデータコンテナにセキュリティ保護化されているデータは、セキュリティ保護されラッピングされたアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ518が実行するアプリケーション、セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526等によってアクセスされてもよい。セキュリティ保護されたデータコンテナ528に格納されているデータはファイル、データベース等を含んでいてもよい。セキュリティ保護されたデータコンテナ528に格納されているデータはセキュリティ保護されたアプリケーション532の中で共有される特定のセキュリティ保護されたアプリケーション530等に制限されるデータを含んでいてもよい。セキュリティ保護されたアプリケーションに制限されるデータは、セキュリティ保護された一般データ534および高セキュリティ保護されたデータ538を含んでいてもよい。セキュリティ保護された一般データはAES 128ビット暗号化等の強力な暗号化方式を使用してもよいが、高セキュリティ保護されたデータ538はAES 254ビット暗号化などの非常に強力な暗号化方式を使用してもよい。セキュリティ保護されたデータコンテナ528に格納されているデータは、デバイスマネージャ524からのコマンドを受信すると、デバイスから削除してもよい。
【0096】
セキュリティ保護されたアプリケーションはデュアルモードオプション540を有していてもよい。デュアルモードオプション540は、非セキュリティ保護化モードで、セキュリティ保護されたアプリケーションを動作させるオプションをユーザに提示してもよい。非セキュリティ保護化モードでは、セキュリティ保護されたアプリケーションはモバイルデバイス502の非管理対象パーティション512の非セキュリティ保護化データコンテナ542に格納されているデータにアクセスしてもよい。
【0097】
非セキュリティ保護化データコンテナに格納されているデータは個人データ544であってもよい。非セキュリティ保護化データコンテナ542に格納されているデータは、モバイルデバイス502の非管理対象パーティション512上で稼動している非セキュリティ保護化アプリケーション548によってアクセスしてもよい。非セキュリティ保護化データコンテナ542に格納されているデータは、セキュリティ保護されたデータコンテナ528に格納されているデータがモバイルデバイス502から削除されるとき、モバイルデバイス502上に残してもよい。企業は、ユーザが所有、ライセンスもしくは制御する個人データ、ファイルおよび/もしくはアプリケーション(個人データ)を残しながら、またはその他存続させながら、企業が所有、ライセンスまたは制御する選択されたもしくはすべてのデータ、ファイル、および/またはアプリケーション(企業データ)をモバイルデバイスから削除したいことがある。この動作を選択的消去と称すことがある。本明細書で説明する実施例に従って分類される企業データおよび個人データを用いて、企業は選択的消去を行ってもよい。
【0098】
モバイルデバイスは企業の企業リソース504および企業サービス508と、公衆インターネット548等とに接続してもよい。モバイルデバイスは仮想プライベートネットワーク接続を介して企業リソース504および企業サービス508に接続してもよい。仮想プライベートネットワーク接続は、モバイルデバイスの特定のアプリケーション550、特定のデバイス、特定のセキュリティ保護化エリア等552に特定的なものにしてもよい。たとえば、電話のセキュリティ保護化エリア内にラッピングされたアプリケーションのそれぞれは、VPNへのアクセスが、おそらくユーザまたはデバイスの属性情報と合わせて、アプリケーションに関連する属性に基づいて付与されるように、アプリケーション特定VPN経由で企業リソースにアクセスしてもよい。仮想プライベートネットワーク接続はMicrosoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、HTTPトラフィック、HTTPSトラフィック、アプリケーション管理トラフィック等を伝送してもよい。仮想プライベートネットワーク接続はシングルサインオン認証プロセス554をサポートし、これを有効にしてもよい。シングルサインオンプロセスは、ユーザが、後で認証サービス558によって検証される単一セットの認証資格情報を提供できるようにしてもよい。その後、認証サービス558は、各個々の企業リソース504に認証資格情報を提供するようユーザに要求しなくても、ユーザに複数の企業リソース504へのアクセス権を付与してもよい。
【0099】
仮想プライベートネットワーク接続は、アクセス・ゲートウェイ560によって確立され、管理されてもよい。アクセス・ゲートウェイ560は企業リソース504のモバイルデバイス502への配信を管理し、高速化しおよび改善するパフォーマンス向上特徴を含んでいてもよい。アクセス・ゲートウェイはモバイルデバイス502から公衆インターネット548にトラフィックを経路切替えしてもよく、モバイルデバイス502が公衆インターネット548で稼動している公開利用できる非セキュリティ保護化アプリケーションにアクセスすることを可能にする。モバイルデバイスは転送ネットワークを介してアクセス・ゲートウェイに接続してもよい。転送ネットワークはワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等でもよい。
【0100】
企業リソース504は電子メールサーバ、ファイル共有サーバ、SaaSアプリケーション、ウェブアプリケーションサーバ、Windows(登録商標)アプリケーションサーバ等を含んでいてもよい。電子メールサーバはExchangeサーバ、Lotus Notesサーバ等を含んでいてもよい。ファイル共有サーバはShareFileサーバ等を含んでいてもよい。SaaSアプリケーションはSalesforce等を含んでいてもよい。Windows(登録商標)アプリケーションサーバはローカルなWindows(登録商標)オペレーティングシステム等上で稼動するように意図されたアプリケーションを提供するために構築されているあらゆるアプリケーションサーバを含んでいてもよい。企業リソース504はプレミスベースのリソース、クラウドベースのリソース等であってもよい。企業リソース504はモバイルデバイス502から直接、またはアクセス・ゲートウェイ560経由でアクセスしてもよい。企業リソース504はモバイルデバイス502から転送ネットワークを介してアクセスしてもよい。転送ネットワークはワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
【0101】
企業サービス508は認証サービス558、脅威検出サービス564、デバイスマネージャサービス524、ファイル共有サービス568、ポリシーマネージャサービス570、ソーシャル統合サービス572、アプリケーションコントローラサービス574等を含んでいてもよい。
【0102】
認証サービス558はユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービス等を含んでいてもよい。認証サービス558は証明書を使用してもよい。証明書は企業リソース504等によりモバイルデバイス502に格納してもよい。モバイルデバイス502に格納されている証明書は、モバイルデバイスの暗号化された場所に格納してもよく、証明書は認証時点で使用する等のためにモバイルデバイス502に一時的に格納してもよい。脅威検出サービス564は侵入検出サービス、不正アクセス試行検出サービス等を含んでいてもよい。不正アクセス試行検出サービスはデバイス、アプリケーション、データ等への不正アクセスの試行を含んでいてもよい。
【0103】
デバイス管理サービス524は構成サービス、プロビジョニングサービス、セキュリティサービス、サポートサービス、監視サービス、レポーティングサービスおよびデコミッショニングサービスを含んでいてもよい。ファイル共有サービス568はファイル管理サービス、ファイルストレージサービス、ファイルコラボレーションサービス等を含んでいてもよい。ポリシーマネージャサービス570はデバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含んでいてもよい。
【0104】
ソーシャル統合サービス572は連絡先統合サービス、コラボレーションサービス、Facebook、TwitterおよびLinkedInなどのソーシャル・ネットワークとの統合等を含んでいてもよい。アプリケーションコントローラサービス574は管理サービス、プロビジョニングサービス、デプロイメントサービス、割り当てサービス、失効サービス、ラッピングサービス等を含んでいてもよい。
【0105】
企業モビリティ技術アーキテクチャ500は、アプリケーションストア578を含んでいてもよい。アプリケーションストア578はラッピングされていないアプリケーション580、予めラッピングされたアプリケーション582等を含んでいてもよい。アプリケーションはアプリケーションコントローラ574からアプリケーションストア578に配置してもよい。アプリケーションストア578はモバイルデバイス502からアクセス・ゲートウェイ560、公衆インターネット548等経由でアクセスしてもよい。アプリケーションストアには直観的に理解でき、使いやすいユーザインターフェースを備えてもよい。アプリケーションストア578はソフトウェア開発キット584へのアクセス権を提供してもよい。
【0106】
ソフトウェア開発キット584は、本明細書で上述したようにアプリケーションをラッピングすることにより、ユーザが選択したアプリケーションをセキュリティ保護化する機能をユーザに提供してもよい。ソフトウェア開発キット584を用いてラッピングされたアプリケーションは、さらにアプリケーションコントローラ574を用いてアプリケーションストア578にそれを配置することにより、モバイルデバイス502に利用できるようにしてもよい。
【0107】
企業モビリティ技術アーキテクチャ500は、管理解析機能588を含んでいてもよい。管理解析機能588はリソースの使用方法、リソースの使用頻度等に関連する情報を提供してもよい。リソースはデバイス、アプリケーション、データ等を含んでいてもよい。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか等を含んでいてもよい。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションが特定のデータセットにアクセスした回数等を含んでいてもよい。
【0108】
図6は、別の企業モビリティ管理システム600である。
図5を参照して上述したモビリティ管理システム500の構成要素のうちのいくつかは、簡略化するために省略している。
図6に図示するシステム600のアーキテクチャは、
図5を参照して上述したシステム500のアーキテクチャと多くの点で類似しており、上述していない追加の特徴を含んでいる。
【0109】
この場合、左側はレシーバ604とともに登録モバイルデバイス602を表しており、レシーバ604は、右側に示すExchange、Sharepoint、PKIリソース、ケルベロスリソース、証明書発行サービス等の様々な企業リソース608およびサービス609にアクセスするために、クラウドベースのサービスへのゲートウェイ606(「クラウド・ゲートウェイ」)と対話する。クラウド・ゲートウェイ606は、アクセス・ゲートウェイおよびアプリケーションコントローラ機能も含んでいてもよい。具体的には図示していないが、モバイルデバイス602はアプリケーションの選択とダウンロードのために、企業アプリケーションストア(「store front」)と対話してもよい。
【0110】
レシーバ604は企業のデータセンターでホストされるWindows(登録商標)アプリ/デスクトップのUI(ユーザインターフェース)媒介装置として機能し、企業のデータセンターは、たとえばCitrixから利用可能なHDX/ICAプロトコル等の表示リモーティングプロトコルを使用してアクセスされる。レシーバ604は、ネイティブiOSまたはAndroid(登録商標)アプリケーション等のモバイルデバイス602のネイティブアプリケーションのインストールおよび管理もサポートする。たとえば、上述の図面に図示する管理対象アプリケーション610(メール、ブラウザ、ラッピングされたアプリケーション)はすべてデバイス上でローカルに実行するネイティブアプリケーションである。このアーキテクチャの、レシーバ604およびモバイルアプリケーション管理プロトコルは、企業リソース/サービス608との接続性およびSSO(シングル・サイン・オン)などのポリシーによる管理の機能および特徴を提供するように機能する。モバイルアプリケーション管理プロトコルの一例は、Citrixから利用可能なMDX(モバイル経験技術)である。レシーバ604は企業に対する、通常は他のクラウド・ゲートウェイのコンポーネントへのSSOとのアクセス・ゲートウェイ(AG)に対する、一次ユーザ認証を扱う。レシーバ604はクラウド・ゲートウェイ606からポリシーを取得して、モバイルデバイス602上の管理対象アプリケーション610の挙動を制御する。
【0111】
ネイティブアプリケーション610とレシーバ604とのセキュリティ保護されたインタープロセス通信(IPC)リンク612は管理チャネルを表し、これによりレシーバは各アプリケーションを「ラッピング」する管理フレームワーク614によって実施されるポリシーを供給することができる。管理フレームワーク614は、たとえばCitrixから利用可能なMDXフレームワークであってもよい。IPCリンク612により、レシーバ604はまた、企業リソース608との接続性およびSSOを有効にする資格情報および認証情報を供給することができる。最後に、IPCリンク612により、管理フレームワーク614は、オンラインおよびオフラインによる認証等、レシーバ604が実装するユーザインターフェース機能を呼び出すことができる。
【0112】
レシーバ604とクラウド・ゲートウェイ606との通信は、本質的に、各ネイティブ管理対象アプリケーション610をラッピングする管理フレームワーク614からの管理チャネルの拡張である。管理フレームワーク614はレシーバ604からのポリシー情報を要求し、これがさらにクラウド・ゲートウェイ606からのポリシー情報を要求する。
【0113】
管理フレームワーク614は認証を要求し、レシーバ604は、たとえばCitrixから利用可能なNetScaler Access Gatewayでもよい、クラウド・ゲートウェイ606のゲートウェイサービス部にログインする。レシーバ604はクラウド・ゲートウェイ606上のサポートサービスも呼び出してもよく、それにより、以下詳細に説明するように、ローカルデータボルト616の暗号化鍵を導出するための入力成分を生成するか、または直接認証を可能にするクライアント証明書をPKI保護リソースに提供してもよい。
【0114】
さらに詳しくは、管理フレームワーク614は各管理対象アプリケーション610を「ラッピング」する。これは明確なビルドステップ、またはビルド後処理ステップを介して組み込んでもよい。管理フレームワーク614は、セキュリティ保護されたIPCリンク612を初期化し、そのアプリケーションのポリシーを取得するために、アプリケーション610の最初の起動時にレシーバ604と「ペア」にしてもよい。管理フレームワーク614は、レシーバのログイン・ディペンデンシーおよび、ローカルOSサービスをどのように使用してよいか、またはローカルOSサービスがアプリケーション610とどのように対話してよいかを制限する閉じ込めポリシーのうちのいくつかなど、ローカルに適用するポリシーの関連部分を実施してもよい。
【0115】
管理フレームワーク614はセキュリティ保護されたIPCリンク612上でレシーバ604が提供するサービスを使用して、認証および内部ネットワークアクセスを促進してもよい。プライベート・共有データボルト616(コンテナ)の鍵管理も、管理対象アプリケーション610とレシーバ604との適切なインタラクションにより管理してもよい。ボルト616はオンライン認証後にのみ利用できてもよく、またはポリシーが許可する場合にはオフライン認証後に利用できるようにしてもよい。ボルト616の初めての使用にはオンライン認証を要求してもよく、オフラインアクセスは最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に制限してもよい。
【0116】
内部リソースへのネットワークアクセスは、個々の管理対象アプリケーション610からクラウド・ゲートウェイ606のアクセス・ゲートウェイ機能を介して直接行ってもよい。管理フレームワーク614は各アプリケーション610に代わってネットワークアクセスの統合を担う。レシーバ604は、オンライン認証後に取得される適切な時間制限付きの二次資格情報を提供することにより、これらのネットワーク接続を促進してもよい。リバースウェブプロキシ接続およびエンドツーエンドVPN型トンネル618など、ネットワーク接続の複数のモードを使用してもよい。
【0117】
メール・ブラウザ管理対象アプリケーション610は特別なステータスを有し、任意にラッピングされたアプリケーションには一般に利用できない可能性のあるファシリティを利用できるようにしてもよい。たとえば、メール・アプリケーションは、フルAGログオンを要求せずに、メールサーバ(たとえば、Exchange)へのアクセスを長時間可能にする特別なバックグラウンドネットワークアクセス機構を使用してもよい。ブラウザ・アプリケーションは異なる種類のデータを分ける複数のプライベートデータボルトを使用してもよい。
【0118】
このアーキテクチャは、様々な他のセキュリティ特徴の組み込みをサポートする。たとえば、ある場合にはクラウド・ゲートウェイ606(そのゲートウェイ・サービスを含む)はディレクトリサービスのパスワード(たとえばアクティブディレクトリ(AD)パスワード)の妥当性検証をする必要がない。ある状況においてディレクトリサービスのパスワードをあるユーザの認証因子として使用するかどうかは、企業の裁量に任せることができる。ユーザがオンラインまたはオフラインである(たとえば、ネットワークに接続されている場合または接続されていない場合)、異なる認証方法を使用してもよい。
【0119】
ステップアップ認証は、クラウド・ゲートウェイ606が強力な認証が必要な極秘データへアクセスすることが認められている管理対象ネイティブアプリケーション610を識別し、以前の弱いレベルのログイン後にユーザにより再認証が要求されることになるとしても、これらのアプリケーションへのアクセスが適切な認証を行った後にのみ許可されることを確保してもよい。
【0120】
このソリューションの別のセキュリティ特徴は、モバイルデバイス602でのデータボルト(data vaults)616(コンテナ)の暗号化である。ボルト616は、ファイル、データベースおよび構成を含むすべてのオンデバイスデータが保護されるように暗号化してもよい。オンラインボルトの場合、鍵はサーバ(たとえば、クラウド・ゲートウェイ)に格納してもよく、オフラインボルトの場合、鍵のローカルコピーをユーザ・パスワードによって保護してもよい。セキュリティ保護されたコンテナ616でデータがデバイス602にローカルに格納される場合、最低でもAES256暗号化アルゴリズムを利用するのが好ましい。
【0121】
他のセキュリティ保護されたコンテナの特徴も実装してもよい。たとえば、ロギング特徴を含めてもよく、アプリケーション610内で起こるすべてのセキュリティイベントを記録して、バックエンドに報告する。アプリケーション610が改ざんを検出する場合など、データ消去をサポートしてもよく、ユーザデータが破棄されたことの手がかりをファイルシステムに残さずに、関連暗号化鍵をランダムデータで上書きしてもよい。スクリーンショットの保護は別の特徴であり、アプリケーションはデータをスクリーンショットに格納させないようにしてもよい。たとえば、鍵ウインドウの隠しプロパティをYESに設定してもよい。これにより、どのようなコンテンツが現在スクリーンに表示されていてもそれを隠せるので、通常いずれかのコンテンツが常駐するスクリーンショットがブランクになる。
【0122】
たとえば、データを外部のアプリケーションにコピーまたは送信するなど、アプリケーション・コンテナ外にローカルにデータを転送することを一切させないなどして、ローカルなデータ転送を防止してもよい。キーボードのキャッシュ特徴は扱いに注意を要するテキストフィールドのオートコレクト機能を使用不可にするように動作してもよい。SSL証明書の妥当性検証を使用可能にしてもよいので、キーチェーンに格納する代わりに、アプリケーションはサーバSSL証明書を特別に妥当性検証する。デバイスのデータを暗号化するために使用する鍵をユーザによって供給されるパスフレーズを使用して生成するように(オフラインアクセスが要求される場合)、暗号化鍵生成特徴を使用してもよい。オフラインアクセスが要求されない場合、サーバ側でランダムに生成し、格納される別の鍵を用いてXORをとってもよい。鍵導出関数は、ユーザ・パスワードから生成される鍵が、その暗号学的ハッシュを作成するのではなく、KDF(鍵導出関数、特にPBKDF2)を使用するように動作してもよい。前者では、鍵が総当たり攻撃または辞書攻撃を受けやすくなる。
【0123】
さらに、暗号化方法に1つ以上の初期化ベクトルを使用してもよい。初期化ベクトルは同じ暗号化データの複数のコピーに異なる暗号文出力を生じ、再生および暗号解読攻撃の両方を防止する。これは攻撃者がデータの暗号化に使用する特定の初期化ベクトルが不明な場合に盗んだ暗号鍵を用いた場合であっても、データの解読を防止する。また、認証後の解読を使用してもよく、ユーザがアプリケーション内で認証された後でしかアプリケーションデータは解読されない。別の特徴はメモリ内の扱いに注意を要するデータに関係してもよく、それが必要なときにのみ、メモリ(ディスクではない)に保管されてもよい。たとえば、ログイン資格情報はログイン後にメモリから消去されて、オブジェクティブCインスタンス変数内の暗号化鍵および他のデータは、簡単に参照される可能性があるため格納されない。代わりに、これらのためにメモリを手動で割り当ててもよい。
【0124】
ポリシーで定義した無活動期間の経過後に、ユーザのセッションを終了する無活動タイムアウトを実装してもよい。
【0125】
管理フレームワーク614からのデータ漏えいは、他の方法で阻止してもよい。たとえば、アプリケーション610がバックグラウンドに入る場合、所定(構成可能な)期間後にメモリをクリアにしてもよい。バックグラウンドに移るとき、アプリケーションの最後に表示されたスクリーンのスナップショットを取得して、フォアグラウンドに出すプロセスを迅速化してもよい。スクリーンショットは機密データを含むことがあり、そのためクリアにされるべきである。
【0126】
別のセキュリティ特徴は、1つ以上のアプリケーションにアクセスするためにディレクトリサービス622のパスワードを使用しない、OTP(ワンタイムパスワード)620の使用に関係する。ある場合には、あるユーザは自身のディレクトリサービスのパスワードを知らず(または知ることを許可されておらず)、そのためこれらユーザはSecurIDなどのハードウェアOTPシステムを使用するなど、OTP620を使用して認証してもよい(OTPは、エントラストまたはジェムアルトなど、異なるベンダによっても提供されてよい)。ある場合には、ユーザがユーザIDで認証した後、OTP620を用いてユーザにテキストが送信される。ある場合には、これはオンライン利用の場合のみ実施してもよく、プロンプトは単一フィールドである。
【0127】
企業ポリシーによりオフライン使用が許可されるアプリケーション610については、オフライン認証のためにオフラインパスワードを実装してもよい。たとえば、企業はstore frontにこの方法でアクセスしてもらいたい可能性がある。この場合、レシーバ604はユーザにカスタムオフラインパスワードの設定を要求してもよく、ディレクトリサービスのパスワードは使用されない。クラウド・ゲートウェイ606は、標準的なWindows(登録商標) Serverパスワードの複雑さの要件で記述されるなど、パスワードの最低長さ、文字種の組合せおよび有効期限に関するパスワード標準を制御し、実施するポリシーを提供してもよい。ただし、これらの要件は修正してもよい。
【0128】
別の特徴は、二次資格情報として一定のアプリケーション610のクライアント側証明書の有効化に関する(管理フレームワークのマイクロVPN特徴を介してPKI保護ウェブリソースにアクセスするため)。たとえば、電子メールのアプリケーションはこのような証明書を利用することがある。この場合、モバイルデータ同期プロトコル(たとえば、ActiveSyncが採用するプロトコル)を使用した証明書による認証をサポートしてもよく、レシーバ604からの証明書はクラウド・ゲートウェイ606によって検索されて、キーチェーンで使用してもよい。各管理対象アプリケーションは、クラウド・ゲートウェイで定義されるラベルによって識別される1つの関連クライアント証明書を有していてもよい。
【0129】
クラウド・ゲートウェイ606は企業専用ウェブサービスと対話して、該当の管理対象アプリケーションが内部PKI保護リソースに認証を行うことを可能にするクライアント証明書の発行をサポートしてもよい。
【0130】
レシーバ604および管理フレームワーク614は、内部PKI保護ネットワークリソースに認証を行うために、クライアント証明書の取得および使用をサポートするように増強してもよい。様々なレベルのセキュリティおよび/または隔離の要求事項に応じるためなど、2つ以上の証明書をサポートしてもよい。証明書はメール・ブラウザ管理対象アプリケーション、および最終的には任意にラッピングされたアプリケーションが使用してもよい(ただし、管理フレームワークがhttps要求を仲介するのが合理的な場合、これらのアプリケーションはウェブサービス型の通信パターンを使用する)。
【0131】
iOSの管理フレームワークのクライアント証明書サポートは、各使用期間中、各管理対象アプリケーションのiOSキーチェーンへのPKCS 12 BLOB(バイナリ・ラージ・オブジェクト)のインポートに依拠してもよい。管理フレームワークのクライアント証明書サポートは、プライベートメモリ内キーストレージとともにHTTPS実装を使用してもよい。クライアント証明書はiOSキーチェーンには存在してはならず、強力に保護されている「オンライン限定の」データ値を潜在的に除き、存続させてはならない。
【0132】
相互SSLも実装して、企業に対してモバイルデバイス602が認証されること、およびその逆を要求することにより、追加のセキュリティを提供してもよい。クラウド・ゲートウェイ606に対する認証用の仮想スマートカードも実装してもよい。
【0133】
限定およびフル両方のケルベロスサポートを追加の特徴としてもよい。フルサポート特徴は、ディレクトリサービスのパスワードまたは信頼できるクライアント証明書を使用したディレクトリサービス622へのフルケルベロスログインを行い、HTTP Negotiate認証チャレンジにレスポンスするためにケルベロスサービスチケットを取得する能力に関係する。限定サポート特徴はAFEEでの制約付き委任に関係し、当該AFEEサポートはケルベロスプロトコル遷移の呼び出しをサポートするので、HTTP Negotiate認証チャレンジにレスポンスしてケルベロスサービスチケット(制約付き委任を条件とする)を取得して使用することができる。この機構はリバースウェブプロキシ(別名CVPN)モードで機能し、http(ただし、httpsではない)接続はVPNおよびマイクロVPNモードでプロキシされる。
【0134】
別の特徴はアプリケーション・コンテナのロックおよび消去に関係し、これはジェイルブレイクまたはルート化検出時には自動的に行われ、管理コンソールからプッシュされるコマンドとして発生し、たとえアプリケーション610が稼動していないときでも、遠隔消去機能を含んでいてもよい。
【0135】
障害のある場合に、いくつかの異なる場所のうちの1つからユーザがサービスを受けられるstore frontおよびアプリケーションコントローラのマルチサイト・アーキテクチャまたは構成をサポートしてもよい。
【0136】
ある場合には、管理対象アプリケーション610には、API(たとえば、OpenSSL)を介して証明書および秘密鍵にアクセスが許可されてもよい。企業の信頼できる管理対象アプリケーション610は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵オペレーションを行うことが認められてもよい。アプリケーションがブラウザのように挙動し、証明書アクセスが要求されない場合、アプリケーションが「who am I」証明書を読み取るとき、アプリケーションが証明書を使用してセキュリティ保護されたセッション・トークンを構築するとき、およびアプリケーションが重要なデータのデジタル署名のため(たとえば、トランザクションログ)または一時データ暗号化のために秘密鍵を使用するときなど、様々な使用のケースが識別され、それに応じて扱われてもよい。
【0137】
〈管理対象モバイルアプリケーションの識別〉
図7は、例示的なモバイルデバイス管理システム700を示す。システム700は
図5および
図6をそれぞれ参照して上述したシステム500およびシステム600に多くの点で類似している。システム700はまた、簡素化のために上述の一定のコンポーネントを省略してもよく、上述していない追加の特徴を備えていてもよい。
【0138】
モバイルデバイス管理システム700は、ネットワーク706を介した1つ以上のモバイルデバイス704との信号通信状態にある企業システム702を含んでいる。企業システムは、企業アプリケーションサーバ708、アクセス・ゲートウェイ710、および1つ以上の企業リソース712等のコンピューティングリソースを含んでいてもよい。
【0139】
企業アプリケーションサーバ708は
図5を参照して上述したアプリケーションストア578に多くの点で類似している。企業アプリケーションサーバ708は、モバイルデバイス、たとえばモバイルデバイス704でインストールするために利用可能なモバイルアプリケーション714へのアクセスを提供してもよい。
【0140】
上述のように、モバイルアプリケーション714は、セキュリティ保護化されたモバイルアプリケーションとセキュリティ保護化されていないモバイルアプリケーションの両方を含んでいてもよい。したがって、モバイルアプリケーション714は、
図5を参照して上述したラッピングされていないアプリケーション180および予めラッピングされたアプリケーション182に対応していてもよい。また上述のように、セキュリティ保護化されたモバイルアプリケーションは、セキュリティ保護化されたモバイルアプリケーションの実行の管理および制御を可能にするセキュリティ保護されたアプリケーション・ラッパーでラッピングしてもよい。この点で、セキュリティ保護化されたモバイルアプリケーション、ラッピングされたモバイルアプリケーション、または登録されたモバイルアプリケーションもまた、管理対象モバイルアプリケーションと称してもよい。
【0141】
企業アプリケーションサーバ708はまた、それぞれモバイルアプリケーション714に関連付けられたアプリケーションポリシー716およびアプリケーションメタデータ718へのアクセスを提供してもよい。アプリケーションポリシー716は、それを介してモバイルアプリケーションの管理が達成される機構のうちの1つを表してもよい。上述のように、アプリケーションポリシー716は、それに関してユーザが管理対象モバイルアプリケーションを利用してもよい権利および資格、管理対象モバイルアプリケーションはどのコンピューティングリソースにアクセスしてもよいのか、モバイルデバイスで実行したときに管理対象モバイルアプリケーションで利用可能な特徴、ならびにそれらの組み合わせを定義してもよい。
【0142】
アプリケーションメタデータ718は、モバイルアプリケーションを説明および/または識別する情報を参照する。アプリケーションメタデータ718は、新たなモバイルアプリケーションの構築プロセス中に生成されてもよく、新たなモバイルアプリケーションが企業アプリケーションサーバに発行されるときに企業アプリケーションサーバ708を介して利用可能になるようにしてもよい。アプリケーションメタデータ718は、たとえばモバイルアプリケーションの名称、モバイルアプリケーションのサイズ、モバイルアプリケーションの一意的な識別子、モバイルアプリケーションのバージョン等を含んでいてもよい。以下にさらに説明するように、アプリケーションメタデータ718はまた、モバイルアプリケーションのアイデンティティの検証に役立つ情報を含んでいてもよい。
【0143】
アクセス・ゲートウェイ710は、モバイルデバイス(たとえばモバイルデバイス704)で動作する管理対象モバイルアプリケーションからの企業リソース712へのアクセスを促進してもよい。アクセス・ゲートウェイ710は、
図5および
図6をそれぞれ参照して上述したアクセス・ゲートウェイ160およびクラウド・ゲートウェイ606に多くの点で類似していてもよい。企業リソース712は、
図5および
図6をそれぞれ参照して上述した企業リソース504および608ならびに企業サービス508および609に対応していてもよい。検証され、認証され、かつ承認されると、モバイルアプリケーションは、上述のようにアクセス・ゲートウェイ710を介して企業リソース712にアクセスしてもよい。
【0144】
管理対象モバイルアプリケーション720および非管理対象モバイルアプリケーション722の両方がモバイルデバイス704に存在してもよい。アクセスマネージャアプリケーション724もまた、モバイルデバイス704に存在してもよく、モバイルデバイス上の管理対象モバイルアプリケーション720の実行を管理してもよい。管理対象および非管理対象両方のモバイルアプリケーションを含むモバイルデバイスを非管理対象モバイルデバイスと称してもよい。これは、企業がそのモバイルデバイスで管理対象モバイルアプリケーションに対する制御を実行する能力のみを有し、他の態様のモバイルデバイス(たとえば非管理対象アプリケーション)に対する制御を実行する能力を有していない可能性があるためである。モバイルデバイス704は管理対象モバイルアプリケーション720および非管理対象モバイルアプリケーション722を含んでいるため、
図7の実施例で示すモバイルデバイスは非管理対象モバイルデバイスと称してもよく、個人のパーソナルモバイルデバイスを表してもよい。
【0145】
アクセスマネージャアプリケーション724(「アクセスマネージャ」)は、
図6を参照して上述したレシーバ604に多くの点で類似していてもよい。以下にさらに説明するように、アクセスマネージャ724はユーザ認証、モバイルアプリケーションのアイデンティティの検証、およびモバイルアプリケーションのポリシーの実施を管理してもよい。ユーザは、モバイルデバイス704でアクセスマネージャ724を最初にダウンロードしてインストールするために(たとえば、ウェブブラウザを介して)企業アプリケーションサーバ708にアクセスしてもよい。上述のように、アクセスマネージャ724はまた、企業アプリケーションサーバ708へのインターフェースとして機能して、ユーザが企業システム702から利用可能なモバイルアプリケーションのブラウズ、ダウンロード、およびインストールを行えるようにしてもよい。
【0146】
ユーザが管理対象モバイルアプリケーション720をモバイルデバイス704にダウンロードすると、アクセスマネージャ724もまた、管理対象モバイルアプリケーション720に関連付けられたアプリケーションメタデータ718および管理対象モバイルアプリケーションに関連付けられたあらゆるアプリケーションポリシー716をダウンロードしてもよい。上述のように、アクセスマネージャ724は企業アプリケーションサーバ708からモバイルアプリケーション720のためのアプリケーションメタデータ718を受信してもよい。いくつかの例示的な実施態様では、アクセスマネージャ724はモバイルデバイス704のセキュリティ保護された場所、たとえば
図5のセキュリティ保護されたデータコンテナ528および/または
図6のセキュリティ保護されたデータボルト616に、アプリケーションメタデータ718およびアプリケーションポリシー716を格納してもよい。
【0147】
アクセスマネージャ724はまた、モバイルデバイス704に現在インストールされており、アクセスマネージャの管理下にある管理対象モバイルアプリケーションのリスト726を維持していてもよい。新たな管理対象モバイルアプリケーションのインストール時、アクセスマネージャ724は管理対象モバイルアプリケーションのリスト726に新たなエントリを追加してもよい。リスト726の新たなエントリはモバイルデバイス704でインストールされた新たな管理対象モバイルアプリケーションに対応していてもよい。
【0148】
上述のように、アクセスマネージャ724は管理対象モバイルアプリケーション720のアイデンティティを検証する、たとえば管理対象モバイルアプリケーションがそれ自体を正確に識別したことを確実にするおよび/または管理対象モバイルアプリケーションがインストレーションの後にモバイルデバイス704において改変されていないことを確実にするように構成されていてもよい。アクセスマネージャは、管理対象モバイルアプリケーション720のアイデンティティを検証するために、アプリケーションメタデータ718に含まれる識別情報728に依拠してもよい。
【0149】
いくつかの例示的な実施形態では、アクセスマネージャ724は管理対象モバイルアプリケーションのアイデンティティの検証を行うために、管理対象モバイルアプリケーション720が動作するモバイルプラットフォームに依拠してもよい。モバイルプラットフォームのオペレーティングシステムは、アクセスマネージャ724が管理対象モバイルアプリケーションのために格納された識別情報と比較してもよい識別情報を作成してもよい。格納された識別情報がオペレーティングシステムから受信した識別情報と一致する場合は、アクセスマネージャ724は管理対象モバイルアプリケーション720を信用されたモバイルアプリケーションとして識別し、企業リソース712へのアクセスを許可してもよい。管理対象モバイルアプリケーションのために格納された識別情報がオペレーティングシステムから受信した識別情報と一致しない場合は、アクセスマネージャ724は管理対象モバイルアプリケーション720を疑わしいまたは信用できないモバイルアプリケーションとして識別し、企業リソース712へのアクセスを拒否してもよい。上述のように、アクセスマネージャ724はまた、モバイルデバイス704自体のローカルコンピューティングリソースへのアクセスを許可または拒絶してもよい。モバイルデバイス704のローカルコンピューティングリソースは、たとえば、カメラまたは他の記録用ハードウェア、GPS等の位置サービス、セルラーサービスまたはインターネットサービス等のネットワークサービス、Bluetooth(登録商標)等の通信サービス、カットアンドペーストおよびスクリーンショットの機能等のインターフェースコマンドを含んでいてもよい。
【0150】
他の例示的な実施形態では、アクセスマネージャ724はそれ自体を識別するために管理対象モバイルアプリケーション720にチャレンジしてもよい。アクセスマネージャ724は管理対象モバイルアプリケーション720にチャレンジ要求を発行し、期待されるチャレンジレスポンスを決定してもよい。期待されるチャレンジレスポンスは、正確にそれ自体を識別しかつ改変されていない管理対象モバイルアプリケーションから受信すると期待されるレスポンスのことである。
【0151】
以下にさらに説明するように、正確にそれ自体を識別しかつ改変されていないモバイルアプリケーションのみが期待チャレンジレスポンスを作成することができるようにしてもよい。管理対象モバイルアプリケーション720から受信したレスポンスが期待されるレスポンスと一致する場合は、アクセスマネージャ724は管理対象モバイルアプリケーション720を信用されたモバイルアプリケーションとして識別してもよい。管理対象モバイルアプリケーション720を信用されたモバイルアプリケーションとして識別した後、アクセスマネージャは管理対象モバイルアプリケーションに企業リソース712へのアクセスに必要な資格情報を提供してもよい。管理対象モバイルアプリケーション720から受信したレスポンスが期待されるレスポンスと一致しない場合は、アクセスマネージャは管理対象モバイルアプリケーションを疑わしいまたは信用できないモバイルアプリケーションとして識別して、企業リソース712へのアクセスを拒否してもよい。ここでもまた、アクセスマネージャ724は、管理対象モバイルアプリケーション720から受信したレスポンスが期待されるレスポンスと一致するかどうかによって、モバイルデバイス704のローカルコンピューティングリソースへのアクセスを許可または拒否してもよい。
【0152】
期待されるレスポンスは、少なくとも部分的に、管理対象モバイルアプリケーション720に関連付けられたアプリケーションメタデータ718に含まれる識別情報728に基づいていてもよい。識別情報は、モバイルアプリケーション自体が作成されたときに作成されてもよい。識別情報は、たとえば、アプリケーション署名を生成するために使用してもよいオリジナルのデジタル証明書またはオリジナルの情報であってもよい。したがって、期待されるレスポンスは識別情報728を含むか、または別様にこれに対応していてもよい。以下にさらに説明するように、間違ったアイデンティティを提示するモバイルアプリケーションまたは後に改変されたモバイルアプリケーションは、期待されるレスポンスを生成することができず、したがってコンピューティングリソースへのアクセスを得ることができない。
【0153】
管理対象モバイルアプリケーションのアイデンティティの検証には様々なアプローチを選択的に採用してもよい。最終的に実装した特定のアプローチは、モバイルデバイス704のモバイルプラットフォームおよびオペレーティングシステムに依拠してよい。
【0154】
たとえば、カリフォルニア州のマウンテンビューのGoogle社から入手可能なAndroid(登録商標)オペレーティングシステムは、それを介してアクセスマネージャがコンピューティングリソースへのアクセスを要求するモバイルアプリケーションを強力に識別する機構を含んでいてもよい。当業者であれば、Android(登録商標)オペレーティングシステムはアプリケーションの署名証明書を要求するための内蔵機構を含んでいてもよく、それを利用してアクセスマネージャ724が企業リソース712等のコンピューティングリソースへのアクセスを要求する管理対象モバイルアプリケーションのアイデンティティを検証してもよいということを認識するであろう。また、Android(登録商標)オペレーティングシステムは、インストール後にアプリケーションが改変されることを阻止してもよく、モバイルアプリケーションが異なるモバイルアプリケーションのために作成された署名証明書を使用することを阻止してもよいということも認識するであろう。このように、アクセスマネージャ724は管理対象モバイルアプリケーションのアイデンティティを検証するためにモバイルプラットフォームのオペレーティングシステムによって提供された署名証明書に依拠してもよい。署名証明書を使用したアプリケーションのアイデンティティの検証について、以下にさらに詳細に説明する。
【0155】
しかし、他のオペレーティングシステムは、アクセスマネージャ724がコンピューティングリソースへのアクセスを要求する管理対象モバイルアプリケーションのアイデンティティを検証するために依拠する内蔵機構を含んでいない可能性がある。たとえば、カリフォルニア州のクパティーノのApple社から入手可能なiOSオペレーティングシステムは管理対象モバイルアプリケーションに対する署名証明書を要求するための機構を含んでいなくてもよい。さらに、iOSのプロセス間通信に利用可能な方法は、各通信の最後にモバイルアプリケーションのアイデンティティを検証するための機構を含んでいなくてもよい。iOSプラットフォーム上で動作するモバイルアプリケーションは、たとえば、コピーアンドペースト処理を介して、URLスキームへの一致を介して、またはネットワークを介して、通信を交わしてもよい。
【0156】
いくつかの例示的な実施態様では、アクセスマネージャ724および管理対象モバイルアプリケーション720は、ネットワーク、たとえば伝送制御プロトコル(TCP)を介して通信するように構成されていてもよい。この実施例では、アクセスマネージャ724はTCPソケットを開き、管理対象モバイルアプリケーション720からの接続要求の受信を待ってもよい。しかし、TCPがアクセスマネージャ724への接続を要求する管理対象モバイルアプリケーションを識別するための機構を含んでいないということは理解されるであろう。iOSプラットフォームは要求を行うモバイルアプリケーションのための署名証明書を取得するための機構を含んでいないため、要求を行うモバイルアプリケーションのアイデンティティを検証するためにさらなるステップを採用してもよい。署名証明書に依拠する代わりに、本実施例のアクセスマネージャ724は、少なくとも部分的に、以下に述べるように、管理対象モバイルアプリケーション720に組み込まれたおよび/またはそれから導出された識別情報732に依拠してもよい。
【0157】
上述のラッピングプロセスにより、モバイルアプリケーションを管理対象モバイルアプリケーションとして動作するように構成してもよい。この点については、ラッピングプロセスは管理対象モバイルアプリケーション720に管理フレームワーク730を(たとえば、挿入、組み込み、ラッピング等で)含んでいてもよい。管理フレームワーク730は
図5および
図6をそれぞれ参照して上述したセキュリティ保護されたアプリケーション・ラッパー120および管理フレームワーク614に対応していてもよい。管理フレームワーク730は、
図6を参照して上述したように、アクセスマネージャ724がモバイルアプリケーション720の動作を管理できるようにする。
【0158】
管理対象モバイルアプリケーション720はまた、アクセスマネージャ724に対してそれ自体を識別するために管理フレームワーク730を採用してもよい。特に、管理フレームワーク730はアイデンティティ検証処理中にアクセスマネージャ724から投稿されたチャレンジへのレスポンスを生成してもよい。
【0159】
いくつかの例示的な実施態様では、管理対象モバイルアプリケーション720の管理フレームワーク730はアプリケーション署名を生成するように構成されていてもよい。管理フレームワーク730はまた、少なくとも部分的に、このアプリケーション署名に基づいたチャレンジレスポンスを提供するように構成されていてもよい。次に、アプリケーション署名は、管理対象モバイルアプリケーション720に組み込まれたおよび/またはそれから導出された識別情報732に基づいていてもよい。つまり、管理フレームワーク730は、管理対象モバイルアプリケーション720に関連付けられた静的情報および動的情報に基づいてアプリケーション署名を生成してもよい。
【0160】
静的情報は、上述のラッピングプロセス中に管理対象モバイルアプリケーション720に組み込まれる秘密情報であってもよい。たとえば、秘密情報は、ラッピングプロセス中にアプリケーションに組み込まれた1つ以上の識別トークン734を含んでいてもよい。識別トークン734は、たとえば管理対象モバイルアプリケーション720のバイナリ内に組み込まれたランダム化された英数字の文字列であってもよい。管理フレームワーク730は、アクセスマネージャ724から受信したチャレンジに応答するためにアプリケーション署名を構築するときに識別トークン734を抽出するように構成されていてもよい。
【0161】
動的情報は、管理対象モバイルアプリケーション720から導出した識別トークンであってもよい。たとえば、導出された識別トークンは、モバイルアプリケーションバンドルの様々なコンポーネントの選択的ハッシュ関数を使用して得たハッシュ値、たとえばモバイルアプリケーションのバイナリ、アプリケーションのアイコン、アプリケーションのフレームワーク等であってもよい。アクセスマネージャ724は、アイデンティティ検証処理中にアドホックな方式でこの動的識別情報を導出してもよい。1つ以上の選択的ハッシュ関数を使用して、導出した識別トークンを表す1つ以上の選択的ハッシュ値を生成してもよい。アクセスマネージャは必要に応じて、管理対象モバイルアプリケーション720からの動的識別情報の導出を支援するために管理フレームワーク730を利用してもよい。
【0162】
管理フレームワーク730はまた、アクセスマネージャ724から受信したチャレンジへのレスポンスに使用されるアプリケーション署名を構築するように構成されていてもよい。アプリケーション署名は、管理対象モバイルアプリケーション720から抽出された静的情報と管理対象モバイルアプリケーションから導出された動的情報との組み合わせを含んでいてもよい。管理フレームワーク730はさらに、特定の方法でアプリケーション署名内で静的情報および動的情報を配設するように構成されていてもよい。したがって、管理対象モバイルアプリケーション720の強力な識別は、管理対象モバイルアプリケーションに組み込まれた静的情報、モバイルアプリケーションから導出された動的情報、およびアプリケーション署名内の静的情報と動的情報の配設を介して達成してもよい。
【0163】
上述のように、アクセスマネージャ724は、管理対象モバイルアプリケーション720にチャレンジを行うときに期待されるレスポンスを生成するように構成されていてもよい。したがって、アクセスマネージャ724は同様に、期待されるアプリケーションの署名を構築するように構成されていてもよい。アクセスマネージャ724は、管理対象モバイルアプリケーション720のためのアプリケーションメタデータ718に含まれる識別情報728に基づいて期待されるアプリケーションの署名を構築してもよい。アクセスマネージャはまた、管理対象モバイルアプリケーション720から動的情報を動的に導出するように構成されていてもよい。さらに、アクセスマネージャ724は同様に、特定の方法で期待されるアプリケーションの署名内で静的情報および動的情報を配設するように構成されていてもよい。
【0164】
リプレイアタックに対するガードのために、アクセスマネージャ724は管理対象モバイルアプリケーション720に、チャレンジに対するレスポンスに使用するためにノンス(nonce)(たとえば、任意の乱数)を提供してもよい。アクセスマネージャ724は期待されるハッシュ値を得るために期待されるアプリケーションの署名でノンスをハッシュしてもよい。同様に、管理対象モバイルアプリケーションの管理フレームワーク730は、レスポンスのハッシュ値を得るために受信したノンスでアプリケーション署名をハッシュしてもよい。アクセスマネージャ724からのチャレンジに応答して、管理対象モバイルアプリケーション720はこのように、アプリケーション署名およびアクセスマネージャから受信したノンスから得られた計算されたハッシュ値をアクセスマネージャに提供してもよい。アクセスマネージャはしたがって、期待されるハッシュ値と受信したハッシュ値とを比較してもよい。アクセスマネージャ724はしたがって、期待されるハッシュ値が受信したハッシュ値と一致する場合は、管理対象モバイルアプリケーション720を信用されたモバイルアプリケーションとして識別してもよい。
【0165】
図8は、例示的なアプリケーション署名およびチャレンジレスポンスのブロック図である。上述のように、管理対象モバイルアプリケーション800は、アクセスマネージャ804からのチャレンジに応答してアプリケーション署名802を生成してもよい。アプリケーション署名802は、管理対象モバイルアプリケーション800に組み込まれた識別トークン806および管理対象モバイルアプリケーションから導出された識別トークン808を含んでいてもよい。
【0166】
図8に示すように、管理対象モバイルアプリケーション800は、組み込まれた識別トークン806および導出された識別トークン808を、アプリケーション署名802内に特定の方法で配設してもよい。一実施例として、管理対象モバイルアプリケーション800は、組み込まれた識別トークン806と導出された識別トークン808を特定の順序で連結してアプリケーション署名を構築してもよい。別の実施例では、管理対象モバイルアプリケーション800は、組み込まれた識別トークン806の一部と導出された識別トークン808の一部を連結してアプリケーション署名を構築してもよい。アプリケーション署名の構築のために様々なアプローチを選択的に採用してもよいということは理解されるであろう。また、上述のように、アクセスマネージャ804は管理対象モバイルアプリケーション800にノンス810を提供してもよい。管理対象モバイルアプリケーション800は、アプリケーション署名802およびノンス810に基づいてハッシュ値814を生成するためにハッシュ関数812を採用してもよい。管理対象モバイルアプリケーション800は、受信したチャレンジへのレスポンス816においてアクセスマネージャ802にハッシュ値814を提供してもよい。
【0167】
管理対象モバイルアプリケーション800のアイデンティティを検証するために、アクセスマネージャ804は、アプリケーションメタデータ822と共に格納された識別トークン820および管理対象モバイルアプリケーションから導出された識別トークン808に基づいて、期待されるアプリケーションの署名818を構築してもよい。アクセスマネージャ804はまた、ハッシュ関数812を採用して、アプリケーションメタデータ822およびノンス810から識別トークン820に基づいて期待されるハッシュ値824を生成してもよい。チャレンジに応答して、アクセスマネージャ804はチャレンジレスポンス816を受信して、チャレンジレスポンス内のハッシュ値814を期待されるハッシュ値824と比較してもよい。
【0168】
本開示の利点により、企業アプリケーションサーバ(
図7の708)から受信した改変されていないモバイルアプリケーションのみが期待されるハッシュ値824を生成してもよいことが理解されるであろう。期待されるアプリケーションの署名818はモバイルデバイスに永続的に格納されず、むしろ、コンピューティングリソースへのアクセスを要求するモバイルアプリケーション800のアイデンティティの検証が必要になったときに再構築されるようにしてもよいということも理解されるであろう。上述のアプローチはしたがって、コンピューティングリソースへのモバイルアプリケーションのアクセスを許可するか拒否するかを決定するためにモバイルアプリケーションを強力に識別するための機構を表している。
【0169】
図9〜
図14は、管理対象モバイルアプリケーションのアイデンティティの検証、検証後のアプリケーションポリシーの実施、および管理対象モバイルアプリケーションの動作の制御の態様に関連する例示的な方法の各ステップを示す。
【0170】
図9は非管理対象モバイルデバイスでモバイルアプリケーションを管理するための例示的な方法のステップのフローチャート900である。企業は、モバイルデバイス(たとえば、非管理対象モバイルデバイス)で動作するように構成され、かつモバイルデバイスからコンピューティングリソースにアクセスするように構成された管理対象モバイルアプリケーションを作成する(ブロック902)。企業はまた、モバイルデバイスでアクセスマネージャアプリケーションによって管理される管理対象モバイルアプリケーションを構成してもよい。上述のように、企業は、アクセスマネージャが管理対象モバイルアプリケーションのアイデンティティの検証および管理対象モバイルアプリケーションの動作の制御を行えるようにする管理フレームワーク(たとえば、MDXフレームワーク)をラッピングしてもよく、あるいは別様に含んでいてもよい。
【0171】
管理対象モバイルデバイスアプリケーションの作成時、企業はまた、管理対象モバイルアプリケーションに関連付けられた識別情報を作成してもよい(ブロック904)。識別情報は、たとえば署名したアプリケーション証明書および/または識別トークンを含むアプリケーションメタデータであってもよい。いくつかの例示的な実施態様では、識別トークンは管理対象モバイルアプリケーション内に(たとえば、アプリケーションバイナリ内に)組み込まれていてもよい。ユーザはモバイルデバイスでアクセスマネージャをダウンロードしてインストールしてもよい(ブロック906)。アクセスマネージャはユーザに、そこから企業アプリケーションサーバ(たとえば、企業アプリケーションストア)をブラウズして、モバイルデバイスにダウンロードするための様々な管理対象モバイルアプリケーションを選択するインターフェースを提供してもよい。アクセスマネージャはユーザに、企業アプリケーションサーバにログオンするためにアクセス資格情報を提供するように要求してもよい。ユーザはユーザプロファイルに関連付けられていてもよく、ユーザプロファイルは様々な権利および資格に関連付けられていてもよい。このように、ユーザにダウンロード可能として提示された管理対象モバイルアプリケーションはユーザに割り当てられた権利および資格に依存しており、たとえば、企業アプリケーションサーバはユーザが使用の資格を付与されている管理対象モバイルアプリケーションのみを提示してもよい。
【0172】
管理対象モバイルアプリケーションの選択後、ユーザは管理対象アクセスを介してモバイルアプリケーションをダウンロードしてモバイルデバイスでモバイルアプリケーションをインストールしてもよい(ブロック908)。企業アプリケーションサーバはまた、モバイルアプリケーションに関連付けられた識別情報およびモバイルアプリケーションに関連付けられたアクセスポリシーを提供してもよい。したがって、ユーザが管理対象モバイルアプリケーションをダウンロードしてインストールするときに、アクセスマネージャもモバイルアプリケーションに関連付けられた識別情報(ブロック910)およびアプリケーションポリシー(ブロック912)をダウンロードして格納してもよい。
【0173】
モバイルデバイスでモバイルアプリケーションをインストールした後、ユーザはコンピューティングリソースへのアクセスのためにモバイルアプリケーションを利用してもよい。モバイルアプリケーションがコンピューティングリソースへのアクセスを求めるとき、モバイルアプリケーションはアクセスマネージャでチェックインしてリソースへのアクセスを要求してもよい(ブロック914)。コンピューティングリソースへのアクセスの要求を受領した時、アクセスマネージャは企業アプリケーションサーバから受領してモバイルデバイスで格納した識別情報を検索してもよい(ブロック916)。アクセスマネージャはまた、モバイルオペレーティングシステムからの識別情報、たとえば署名したアプリケーション証明書、あるいはモバイルアプリケーション自体からの識別情報、たとえば、少なくとも部分的にアプリケーション署名に基づいたハッシュ値を受信してもよい(ブロック918)。
【0174】
アクセスマネージャはその後、格納された識別情報を受信した識別情報と比較してもよい(ブロック920)。受信した識別情報が格納された識別情報と一致する場合は(ブロック922でY(はい))、アクセスマネージャはモバイルアプリケーションが有効であると判定して、モバイルアプリケーションを信用されたモバイルアプリケーションとして識別してもよい。したがって、アクセスマネージャは管理対象モバイルアプリケーションのコンピューティングリソースへのアクセスを許可してもよい(ブロック924)。アクセスマネージャは、たとえば、企業リソースとの接続を確立してそれにアクセスするために必要なアクセス資格情報、証明書、鍵等をモバイルアプリケーションに提供してもよい。
【0175】
いくつかの例示的な実施態様では、モバイルアプリケーションに関連付けられたアプリケーションポリシーは、モバイルアプリケーションがコンピューティングリソースにアクセスしてそれを使用する方法を決定してもよい。受信した識別情報が格納された識別情報と一致しない場合は(ブロック924でN(いいえ))、アクセスマネージャはモバイルアプリケーションが無効であると判定して、モバイルアプリケーションを信用されたモバイルアプリケーションとして識別せず、したがってモバイルアプリケーションのコンピューティングリソースへのアクセスを阻止してもよい(ブロック926)。
【0176】
図10は、非管理対象モバイルデバイスで管理対象オペレーションのための管理対象モバイルアプリケーションを準備するための例示的な方法の各ステップを示すフローチャート1000である。上述のように、いくつかのモバイルオペレーティングシステムは、アクセスマネージャがモバイルアプリケーションのアイデンティティを検証するために採用してもよい内蔵機構を提供しない可能性がある。したがって、モバイルアプリケーションはそれ自体を強力に識別できるように構成されていてもよい。企業はモバイルアプリケーションを管理対象モバイルアプリケーションとして準備するためにツールキットを使用してもよい(ブロック1002)。ツールキットはモバイルアプリケーションを管理対象モバイルアプリケーションに変換する機能(たとえば、MDXフレームワーク)を追加してもよい(ブロック1004)。ツールキットはまた、識別トークン(たとえば、ランダム化された文字列)を生成して管理対象モバイルアプリケーション内に組み込んでもよい(ブロック1006)。
【0177】
管理対象モバイルアプリケーションに追加された機能は、管理対象モバイルアプリケーションがアプリケーション署名を構築するために組み込まれた識別トークンを抽出、配設、および結合できるようにする機能を含んでいてもよい。管理対象モバイルアプリケーションに追加された機能はまた、管理対象モバイルアプリケーションがアプリケーション署名を構築する際に動的に識別トークンを導出するとともに、導出された識別トークンと組み込まれた識別トークンを配設および結合できるようにする機能を含んでいてもよい。さらに、管理対象モバイルアプリケーションに追加された機能は、管理対象モバイルアプリケーションが、少なくとも部分的にアプリケーション署名に基づくハッシュ値を生成できるようにする機能をさらに含んでいてもよい。
【0178】
ツールキットはまた、モバイルアプリケーション内に組み込まれた識別トークンを含む管理対象モバイルアプリケーションのためのアプリケーションメタデータを生成してもよい(ブロック1008)。企業はその後、企業アプリケーションサーバに、アプリケーションメタデータおよびモバイルアプリケーションに関連付けられたあらゆるアプリケーションポリシーと共に管理対象モバイルアプリケーションを発行してもよい(ブロック1010)。企業アプリケーションサーバは、モバイルデバイスから、選択されたモバイルアプリケーションをダウンロードするための要求を受信してもよい(ブロック1012)。アクセスマネージャがモバイルデバイスで未だインストールされていない場合は(ブロック1014においてN(いいえ))、企業アプリケーションサーバは最初にモバイルデバイスにアクセスマネージャアプリケーションをダウンロードしてもよい(ブロック1016)。アクセスマネージャがモバイルアプリケーションでインストールされた後(ブロック1014においてY(はい))、企業アプリケーションサーバは要求の受信に応答してモバイルデバイスに選択されたモバイルアプリケーションをダウンロードしてもよい(1018)。
【0179】
上述のように、企業アプリケーションサーバはまた、選択されたモバイルアプリケーションに関連付けられたアプリケーションメタデータをモバイルデバイスで格納するためにモバイルデバイスにダウンロードしてもよい。アクセスマネージャはアプリケーションメタデータへのアクセスを有していてもよく、それによりアクセスマネージャはアプリケーションメタデータに関連付けられたモバイルアプリケーションのアイデンティティの検証を行うことができるようになる。
【0180】
図11は、非管理対象モバイルデバイスで管理対象モバイルアプリケーションを初期化するための例示的な方法の各ステップを示すフローチャート1100である。モバイルデバイスを最初にアクティブ化して初期化するとき(ブロック1102)、アクセスマネージャアプリケーションは最初に起動するモバイルアプリケーションのうちの1つであってもよい(ブロック1104)。アクセスマネージャは、たとえば、モバイルデバイスのスタートアッププロセスの一部としておよび/またはモバイルデバイスで受信したユーザ入力に応答して自動的に始動してもよい。アクセスマネージャアプリケーションが始動すると、アクセスマネージャはユーザからのアクセス資格情報(たとえば、ユーザ名およびパスワード)を要求してもよい(ブロック1106)。アクセスマネージャはその後、認証のために企業サーバにアクセス資格情報を提供してもよい(ブロック1108)。企業サーバがユーザを認証しない場合は(ブロック1110においてN(いいえ))、アクセスマネージャはモバイルデバイスのすべての管理対象モバイルアプリケーションのコンピューティングリソースへのアクセスを阻止してもよい(ブロック1112)。たとえば、アクセスマネージャはモバイルアプリケーションに企業リソースとの接続の確立に必要なアクセス資格情報を提供することを辞退してもよい。
【0181】
企業サーバがユーザを認証する場合は(ブロック1110においてY(はい))、企業サーバはアクセスマネージャアプリケーションが改変されていないことを確実にするために、アクセスマネージャ自体のアイデンティティを検証してもよい(ブロック1114)。企業サーバは、管理対象モバイルアプリケーションと同じ方法でアクセスマネージャのアイデンティティを検証してもよい。
【0182】
一実施例として、アクセスマネージャに署名するために使用される署名証明書をアクセスマネージャアプリケーションの検証に採用してもよい。たとえば、企業システムは管理対象モバイルアプリケーションを検証してもよい。アクセスマネージャが検証されない場合は(ブロック1116においてN(いいえ))、管理対象モバイルアプリケーションの管理フレームワークはアクセスマネージャをモバイルデバイスから欠落しているとして扱い、管理対象モバイルアプリケーションはしたがって、コンピューティングリソースへのアクセスを阻止されるようにしてもよい(ブロック1112)。
【0183】
企業サーバがアクセスマネージャアプリケーションのアイデンティティを検証する場合は(ブロック1116においてY(はい))、管理対象モバイルアプリケーションを起動してもよい(ブロック1118)。始動後および動作中に、モバイルアプリケーションはアクセスマネージャが管理対象モバイルアプリケーションのアイデンティティを検証してもよいようにアクセスマネージャでチェックインする(ブロック1120)。
【0184】
アクセスマネージャが管理対象モバイルアプリケーションのアイデンティティを検証できない場合は(ブロック1122においてN(いいえ))、アクセスマネージャは管理対象モバイルアプリケーションのコンピューティングリソースへのアクセスを阻止してもよい(ブロック1124)。アクセスマネージャが管理対象モバイルアプリケーションのアイデンティティの検証に成功した場合は(ブロック1122においてY(はい))、アクセスマネージャは管理対象モバイルアプリケーションを信用されたモバイルアプリケーションとして識別してもよい(ブロック1126)。管理対象モバイルアプリケーションがモバイルデバイスで始動したばかりである場合は、アクセスマネージャはアクセスマネージャが管理するモバイルアプリケーションのリストを更新して信用されたモバイルアプリケーションをリストに含んでいてもよい(ブロック1128)。管理対象モバイルアプリケーションのアイデンティティを検証した後、アクセスマネージャはまた、信用されたモバイルアプリケーションのコンピューティングリソースへのアクセスを許可してもよい(ブロック1130)。
【0185】
図12は、第一のタイプのモバイルオペレーティングシステムを有する非管理対象モバイルデバイスで管理対象モバイルアプリケーションを検証するための例示的な方法のステップのフローチャート1200である。本実施例では、モバイルオペレーティングシステムは、アクセスマネージャがモバイルアプリケーションのアイデンティティの検証のために利用してもよい内蔵機構を含んでいない可能性がある。アクセスマネージャは管理対象モバイルアプリケーションからコンピューティングリソースへのアクセスを求める要求を受信してもよい(ブロック1202)。要求を受信した後、アクセスマネージャは管理対象モバイルアプリケーションとのハンドシェイクを起動してアイデンティティ検証プロセスを開始してもよい(ブロック1204)。管理対象モバイルアプリケーションは、たとえば一意的なアプリケーション識別子をアクセスマネージャに提供することによって、アクセスマネージャに対してそれ自体を識別してもよい(ブロック1206)。次に、アクセスマネージャはモバイルアプリケーションに関連付けられたアプリケーションメタデータを検索するためにアプリケーション識別子を利用してもよい(ブロック1208)。アクセスマネージャはまた、ノンスを生成してノンスをモバイルアプリケーションに提供してもよい(ブロック1210)。
【0186】
アクセスマネージャおよび管理対象モバイルアプリケーションはその後、モバイルアプリケーションのアイデンティティを検証してモバイルアプリケーションが信用されたモバイルアプリケーションであるかどうかを判定するために使用されるアプリケーション署名および対応するハッシュ値を構築するプロセスを開始してもよい。
【0187】
モバイルアプリケーションは、アプリケーション署名を構築するために使用する組み込まれた識別トークンを抽出して(ブロック1212)、導出された識別トークンを導出してもよい(ブロック1214)。モバイルアプリケーションはその後、抽出された組み込まれた識別トークンおよび導出された識別トークンを配設および結合してアプリケーション署名を得てもよい(ブロック1216)。モバイルアプリケーションはその後、アクセスマネージャから受信したアプリケーション署名およびノンスを使用してハッシュ値を計算してもよい(ブロック1218)。
【0188】
モバイルアプリケーションにノンスを提供した後、アクセスマネージャはモバイルアプリケーションと関連付けられたアプリケーションメタデータから組み込まれた識別トークンを検索してもよい(ブロック1220)。アクセスマネージャは同様に、期待されるアプリケーションの署名を構築するために使用される導出された識別トークンをモバイルアプリケーションから導出してもよい(ブロック1222)。アクセスマネージャはその後、アプリケーションメタデータから検索した組み込まれた識別トークンおよび導出された識別トークンを配設および結合して期待されるアプリケーションの署名を得てもよい(ブロック1224)。アクセスマネージャはその後、期待されるアプリケーションの署名およびモバイルアプリケーションに提供されたノンスを使用して期待されるハッシュ値を計算してもよい(ブロック1226)。
【0189】
アプリケーションメタデータから検索された組み込まれた識別トークンがモバイルアプリケーションから抽出された組み込まれた識別トークンと同じである場合、アクセスマネージャによって導出された識別トークンがモバイルによって導出された識別トークンと同じである場合、アクセスマネージャによって構築された期待されるアプリケーションの署名がモバイルアプリケーションによって構築されたアプリケーション署名と同じである場合、およびモバイルアプリケーションがハッシュ値を計算するためにアクセスマネージャによって提供されたノンスを使用する場合、アクセスマネージャが計算したハッシュ値はモバイルアプリケーションが計算したハッシュ値と同じでなければならないということは理解されるであろう。
【0190】
したがって、モバイルアプリケーションはアクセスマネージャへのレスポンスにおいてハッシュ値を提供してもよく(ブロック1228)、アクセスマネージャは期待されるハッシュ値をモバイルアプリケーションから受信した値と比較してもよい(ブロック1230)。期待されるハッシュ値が受信したハッシュ値と一致しない場合は(ブロック1232においてN(いいえ))、アクセスマネージャはモバイルアプリケーションがそれ自体を不正に識別した、モバイルデバイスでインストール後に改変された等であると判定してもよい。その結果、アクセスマネージャはモバイルアプリケーションのコンピューティングリソースへのアクセスを拒否してもよい(ブロック1234)。期待されるハッシュ値が受信したハッシュ値と一致する場合は(ブロック1232においてY(はい))、アクセスマネージャはモバイルアプリケーションを信用されたモバイルアプリケーションとして識別して、信用されたモバイルアプリケーションのコンピューティングリソースへのアクセスを許可してもよい(ブロック1236)。
【0191】
図13は、第二のタイプのモバイルオペレーティングシステムを有する非管理対象モバイルデバイスで管理対象モバイルアプリケーションを検証するための例示的な方法の各ステップを示すフローチャート1300である。
【0192】
本実施例では、モバイルオペレーティングシステムはアクセスマネージャがモバイルアプリケーションのアイデンティティを検証するために利用してもよい内蔵機構を含んでいてもよい。アクセスマネージャは管理対象モバイルアプリケーションからコンピューティングリソースへのアクセスのための要求を受信してもよい(ブロック1302)。アクセスマネージャはモバイルオペレーティングシステムからのモバイルアプリケーションのための一意的なアプリケーション識別子を要求してもよく(ブロック1304)、レスポンスにおいてアプリケーション識別子を受信してもよい(ブロック1306)。
【0193】
モバイルアプリケーションのためのアプリケーション識別子に基づいて、アクセスマネージャは管理対象モバイルアプリケーションのリストに問合せを行ってもよい(1308)。管理対象モバイルアプリケーションのリストがコンピューティングリソースへのアクセスを要求するモバイルアプリケーションを含まない場合は(ブロック1310においてN(いいえ))、アクセスマネージャはモバイルアプリケーションのリソースへのアクセスを拒否してもよい(ブロック1312)。しかし、管理対象モバイルアプリケーションのリストがコンピューティングリソースへのアクセスを要求するモバイルアプリケーションを含む場合は(ブロック1310においてY(はい))、アクセスマネージャはモバイルオペレーティングシステムからのモバイルアプリケーションのためのアプリケーション証明書を要求してもよい(ブロック1314)。
【0194】
上述のように、企業アプリケーションサーバはモバイルデバイスにおいてインストールされたモバイルアプリケーションに対してアプリケーション証明書を提供してもよい。
【0195】
アプリケーション証明書はアクセスマネージャがアクセス可能なモバイルデバイスでセキュリティ保護された格納場所に格納されていてもよい。したがって、アクセスマネージャは要求されたアプリケーション証明書をモバイルオペレーティングシステムから受信してもよく(ブロック1316)、企業アプリケーションサーバが提供した格納されたアプリケーション証明書を検索してもよい(ブロック1318)。いくつかの例示的な実施態様では、アクセスマネージャは、たとえばSHA−1ハッシュ関数を使用して、各証明書に対するそれぞれのハッシュ値を計算してもよい(ステップ1320)。アクセスマネージャは格納された証明書のハッシュ値をモバイルオペレーティングシステムから受信した証明書のハッシュ値と比較してもよい(ブロック1322)。ハッシュ値が一致する場合は(ブロック1324においてY(はい))、アクセスマネージャはモバイルアプリケーションが信用されたモバイルアプリケーションであると判定して、モバイルアプリケーションのコンピューティングリソースへのアクセスを許可してもよい(ブロック1326)。ハッシュ値が一致しない場合は(ブロック1324においてN(いいえ))、アクセスマネージャはモバイルアプリケーションが信用されていないモバイルアプリケーションであると判定して、モバイルアプリケーションのコンピューティングリソースへのアクセスを拒否してもよい(ブロック1312)。
【0196】
図14は、管理対象モバイルアプリケーションの動作中にアプリケーションポリシーを実施するための例示的な方法のステップのフローチャート1400である。上述のように、企業アプリケーションサーバはモバイルデバイスにおいてインストールされた管理対象モバイルアプリケーションに関連付けられたアプリケーションポリシーを提供してもよい。企業はアプリケーションポリシーを定期的に更新してもよく、アクセスマネージャはしたがって、管理対象モバイルデバイスのコンピューティングリソースへのアクセスを許可する前に、直近でかつ最新のアプリケーションポリシーがモバイルデバイスで格納されていることを確実にするように構成されていてもよい。このように、企業はアプリケーションおよびアプリケーションの機能に対する権利を付与してもよく、あるいは取り消してもよい。
【0197】
アクセスマネージャが管理対象モバイルアプリケーションのアイデンティティを検証した後(ブロック1402)、アクセスマネージャは管理対象モバイルアプリケーションと関連付けられかつモバイルデバイスで格納されたアプリケーションポリシーを検索してもよい(ブロック1404)。アクセスマネージャはその後、アプリケーションポリシーに関連付けられたポリシー情報、たとえばポリシーの日付、ポリシーのバージョンナンバー等について企業アプリケーションサーバに問合わせを行ってもよい(ブロック1406)。企業アプリケーションサーバから受信したポリシー情報に基づいて、アクセスマネージャはモバイルデバイスで格納されたアプリケーションポリシーが現行のものであるかどうかを判定してもよい(ブロック1408)。
【0198】
一実施例として、アクセスマネージャは企業アプリケーションサーバから受信したポリシーの日付またはポリシーのバージョンをモバイルデバイスで格納されたアプリケーションポリシーのポリシーの日付またはポリシーのバージョンと比較してもよい。ポリシーの日付またはポリシーのバージョンが一致しない場合は、アクセスマネージャはモバイルデバイスで格納されたアプリケーションポリシーが現行のものではないと判定してもよい(ブロック1408においてN(いいえ))。ポリシーの日付またはポリシーのバージョンが一致する場合は、アクセスマネージャはモバイルデバイスで格納されたアプリケーションポリシーが現行のものであると判定してもよい(ブロック1408においてY(はい))。
【0199】
アプリケーションポリシーが現行のものではない場合(ブロック1408においてN(いいえ))、アクセスマネージャは企業システム、たとえば企業のアプリケーションストアからモバイルアプリケーションに関連付けられた現行のポリシーを検索してもよい(ブロック1410)。アクセスマネージャは現行のアプリケーションポリシーをダウンロードして、モバイルデバイスのセキュリティ保護された格納場所に現行のアプリケーションポリシーを格納してもよい(ブロック1412)。アクセスマネージャがモバイルアプリケーションのための現行のポリシーを取得した後、管理対象モバイルアプリケーションはアプリケーションポリシーを参照して、意図したコンピューティングリソースへのアクセスまたはその使用を行ってよいかどうかを判定してもよい(ブロック1414)。
【0200】
管理フレームワークは、たとえば管理対象モバイルアプリケーションをコンピューティングリソースへのアクセスまたはその使用の前にポリシーへの問合わせを行うように構成してもよい。一実施例として、フレームワークは管理対象モバイルアプリケーションを、データをモバイルデバイスで他のモバイルアプリケーションにコピーしてもよいかどうかを判定するためにアプリケーションポリシーに問合わせを行うように構成してもよい。いくつかの例示的な実施態様において、管理対象モバイルアプリケーションは、モバイルデバイスにおける他の管理対象モバイルアプリケーションへのデータのコピーのみを行うようにしてもよい。別の実施例として、フレームワークは管理対象モバイルアプリケーションを、モバイルデバイスが管理対象モバイルアプリケーションのスクリーンショットをキャプチャしてもよいかどうかを判定するためにアプリケーションポリシーに問合わせを行うように構成してもよい。これらおよび他の実施例は本発明とともに理解されるであろう。
【0201】
アプリケーションポリシーが管理対象モバイルアプリケーションの意図したコンピューティングリソースへのアクセスまたはその使用を許可する場合(ブロック1416においてY(はい))、フレームワークは管理対象モバイルアプリケーションが意図したアクションを実行することを許可してもよい(ブロック1418)。しかし、アプリケーションポリシーが管理対象モバイルアプリケーションの意図したコンピューティングリソースへのアクセスまたはその使用を許可しない場合は(ブロック1418においてN(いいえ))、フレームワークは管理対象モバイルアプリケーションが意図したアクションを実行することを阻止してもよい(ブロック1420)。
【0202】
〈モバイルデバイス管理を用いたモバイルアプリケーション管理〉
モバイルアプリケーション管理(MAM)を非管理対象デバイスのコンテキストにおいて説明してきたが、本開示の態様は、管理対象デバイスについても採用してよい。企業は、モバイルデバイスの動作をさらに制御するためにモバイルアプリケーション管理と共にモバイルデバイス管理(MDM)を利用してもよい。特に、モバイルデバイスはMDMシステムとモバイルデバイスとの間の管理関係を確立するためにMDMシステムに登録してもよい。モバイルデバイスが登録された後、MDMシステムはポリシーの実施、モバイルデバイスの監視、モバイルデバイスへの情報のプッシュ等を行うために管理関係を活用してもよい。
【0203】
要するに、MDMシステムは、管理関係が無ければ別の方法では利用できないモバイルデバイスについての情報を取得する。そのような情報は、モバイルデバイスでアプリケーションを介して発見または読取ができないデバイスレベルの設定に対応していてもよい。そのようなデバイスレベルの設定は、PINまたはパスワードの設定、暗号化の設定、ネットワーク関連の設定等を含んでいてもよい。そのような情報はまた、モバイルデバイスで現在稼働しているプロセスおよびモバイルデバイスにおいてインストールされたモバイルアプリケーション(たとえば、アプリケーションインベントリ)に関連する情報を含んでいてもよい。MDMシステムはさらに、管理対象モバイルデバイスに関するさらなるまたは代わりのタイプの情報を取得してもよい。MDMシステムは管理対象モバイルデバイスから取得した情報を様々なポリシーと比較して、レスポンスで様々なアクションを行ってもよい。
【0204】
デバイスのPIN/パスワードについては、MDMシステムはデバイスがPIN/パスワード、PIN/パスワードの複雑性、およびPIN/パスワードの期日経過を介して保護されているかどうかを示す情報を取得してもよい。管理関係を介して、MDMシステムはデバイスのPIN/パスワード設定に関する情報を取得してもよい。MDMシステムはこの情報をデバイスのPIN/パスワードの使用を管理するポリシーと比較してもよい。一実施例として、セキュリティポリシーがモバイルデバイスをPIN/パスワードで保護しなければならないことを示し、かつモバイルデバイスから取得した情報がデバイスのPIN/パスワード設定は可能ではないことを示した場合は、MDMシステムは管理対象モバイルデバイスに、デバイスのPIN/パスワードに関するセキュリティポリシーを示す通知をプッシュしてもよい。
【0205】
別の実施例として、MDMシステムがデバイスのPIN/パスワードはセキュリティポリシーの複雑性の要求を満たしていないと判定した場合、MDMシステムは同様に管理対象モバイルデバイスに、新たな、より複雑なPIN/パスワードがセキュリティポリシーに従うために要求されることを示す通知をプッシュしてもよい。さらなる実施例として、セキュリティポリシーがデバイスのPIN/パスワードを定期的に変更しなければならないことを示す場合は、MDMシステムは管理対象モバイルデバイスに、現行のデバイスのPIN/パスワードの有効期限が切れたと判定した時にデバイスのPIN/パスワードの変更が必要であることを示す通知をプッシュしてもよい。
【0206】
暗号化の設定については、MDMシステムはまた、デバイスが有効なハードウェアの暗号化を有しているかどうかを示す情報を取得してもよい。管理関係を介して、MDMシステムは、セキュリティポリシーがハードウェアの暗号化を要求しており、かつハードウェア暗号化がモバイルデバイスでは現在可能ではないと判定した時、管理対象モバイルデバイスでハードウェアの暗号化を可能にしてもよい。MDMシステムはまた、管理関係を介して管理対象モバイルデバイスでネットワーク関連の設定をセットしてもよい。
【0207】
MDMシステムはさらに、管理対象モバイルデバイスで現在稼働しているプロセスに関する情報を取得してもよい。MDMシステムは、たとえば管理対象モバイルデバイスでマルウェアを識別するために、稼働中のプロセスを悪質なアプリケーション、プログラム、またはプロセスのリストと比較してもよい。管理関係を介して、MDMシステムはマルウェアまたは潜在的に悪質であると識別したあらゆるプロセスをキルしてもよい。MDMシステムはまた、管理関係を介してモバイルデバイスで対応する悪質なアプリケーションまたはプログラムを削除してもよい。
【0208】
同様に、MDMシステムは管理対象モバイルデバイスにおいてインストールされたアプリケーションのリストを取得してもよい。MDMシステムはインストールされたアプリケーションのリストを、たとえばアプリケーションホワイトリストまたはアプリケーションブラックリストと比較してもよい。
【0209】
アプリケーションホワイトリストは、モバイルデバイスでのインストールが許可されたモバイルアプリケーションのリストであってもよい。インストールされたアプリケーションのリストがモバイルアプリケーションのホワイトリストに載っていないアプリケーションを含んでいる場合は、MDMシステムは管理関係を活用してそのアプリケーションを削除してもよい。アプリケーションブラックリストは、モバイルデバイスでのインストールが禁止されたモバイルアプリケーションのリストであってもよい。インストールされたアプリケーションのリストがモバイルアプリケーションのブラックリストに載っているアプリケーションを含んでいる場合は、MDMシステムは同様に管理関係を活用してそのアプリケーションを削除してもよい。
【0210】
MDMシステムはさらに、何れのモバイルアプリケーションをモバイルデバイスにおいてインストールするかを制御するために、モバイルアプリケーションを管理対象モバイルデバイスにプッシュするために管理関係を活用してもよいことが理解されるであろう。本発明を考慮すると、MDMシステムはモバイルデバイスにおいてインストールされたモバイルアプリケーションに対してよりロバストな制御を行ってもよいことも理解されるであろう。上述のように、MAMは、アプリケーションがポリシーに違反すると判定した時、モバイルデバイスにおいてインストールされたモバイルアプリケーションを無効にしてもよい。しかし、MDMがMAMと共に使用される場合は、モバイルアプリケーションを無効にするだけでなく、モバイルデバイスから完全に削除してもよい。MDMシステムは他のタイプの情報を管理対象モバイルデバイスにプッシュしてもよい。たとえば、MDMシステムは管理関係を活用して、モバイルデバイスにアプリケーションの更新または証明書をプッシュしてもよい。証明書は、たとえばX.509デバイス証明書であってもよい。
【0211】
本発明に提供した開示は、多数の技術的利点を提供している。上述のアプローチは全体的に、企業がモバイルプラットフォームに関係なくモバイルアプリケーションをセキュリティ保護された状態にかつ強力に識別できるようにするものである。上述のアプローチはまた、認証資格情報、デジタル証明書、企業データ等の潜在的に機密のデータにアクセスするモバイルアプリケーションのアイデンティティを検証するための自動化された方法を提供する。上述のアプローチを実装する企業はまた、企業リソースへのアクセスのために個人がそのパーソナルデバイスを使用することを許可することにより、企業の管理下で物理的なデバイスの数を削減してもよい。この点で、企業はモバイルデバイス管理システム内にデバイス全体を登録する必要を回避してもよく、代わりに、モバイルアプリケーション管理システム内のモバイルデバイスに様々なモバイルアプリケーションを登録するのみにしてもよい。これらおよび他の利点は上述の開示とともに理解されるであろう。
【0212】
構造的な特徴および/または方法論的な行為に特有の用語で主題を説明してきたが、添付の請求項で定義される主題は必ずしも上述した特有の特徴または行為に制限されるものではないことは理解されるべきである。むしろ、上述した特有の特徴および行為は以下の請求項の実施態様として説明されたものである。
【0213】
本願は、2013年3月29日に出願され、「企業モビリティ管理のためのシステムおよび方法」と題する、米国仮特許出願第61/806,577号の優先権を主張し、2013年5月20日に出願された同じ発明の名称を有する米国特許出願第13/898,167号の優先権を主張する。