(57)【特許請求の範囲】
【請求項１】
ユーザデバイスからメッセージを受信するように構成され、かつ、前記メッセージを外部クラウドに関連付けられたコンピューティングデバイスに転送するように構成された、内部クラウド内のゲートウェイと、
前記ゲートウェイに通信可能に結合されたワークスペースクラウドコネクタと、を備え、前記ワークスペースクラウドコネクタは、
前記外部クラウドに関連付けられた前記コンピューティングデバイスに転送されている前記メッセージのうちの第１のメッセージをインターセプトし、前記インターセプトは内部アプリケーション用のユーザＩＤ信用情報を含む前記第１のメッセージに基づいて行われ、
暗号化キーを生成し、
前記暗号化キーを使用して前記ユーザＩＤ信用情報を暗号化し、
前記暗号化キーの第１のハッシュを生成し、
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュを含む第２のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送信し、
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュを含む前記第２のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送信したことに応答して、前記外部クラウドに関連付けられた前記コンピューティングデバイスから仮想配信エージェントのルーティングアドレスを受信し、かつ、
前記暗号化キー及び前記仮想配信エージェントの前記ルーティングアドレスを含む第３のメッセージを前記ユーザデバイスに送信するように構成される、システム。
【請求項２】
さらに、前記仮想配信エージェントを含み、該仮想配信エージェントは、
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュを含む前記第２のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスから受信し、
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュをマップに格納し、かつ、
前記仮想配信エージェントの前記ルーティングアドレスを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送るように構成される、請求項１に記載のシステム。
【請求項３】
前記仮想配信エージェントは、さらに、
前記ユーザデバイスから前記暗号化キーを受信し、
前記暗号化キーの第２のハッシュを生成し、かつ、
前記暗号化キーの前記第２のハッシュを使用して、前記マップに格納された前記暗号化キーの前記第１のハッシュを識別するように構成される、請求項２に記載のシステム。
【請求項４】
前記仮想配信エージェントは、さらに、
前記暗号化キーの前記第２のハッシュを、前記マップに格納された複数のハッシュの各々と比較することによって、前記暗号化キーの前記第２のハッシュを使用して、前記マップに格納された前記暗号化キーの前記第１のハッシュの識別を実行するように構成される、請求項３に記載のシステム。
【請求項５】
前記仮想配信エージェントは、さらに、
前記暗号化キーの前記第２のハッシュが、前記マップに格納された前記複数のハッシュのいずれのハッシュとも一致しないと判定されたことに応答して、前記内部アプリケーションへのアクセスを防止し、かつ、拒否メッセージを前記ユーザデバイスに送るように構成される、請求項４に記載のシステム。
【請求項６】
前記仮想配信エージェントは、さらに、
前記暗号化キーの前記第２のハッシュが前記暗号化キーの前記第１のハッシュと一致すると判定されたことに応答して、前記暗号化キーを使用して、前記暗号化されたユーザＩＤ信用情報を復号化し、かつ、前記ユーザＩＤ信用情報を前記内部アプリケーションに提供するように構成される、請求項４に記載のシステム。
【請求項７】
前記内部アプリケーションは、特定の形式を有するユーザＩＤ信用情報を認証し、異なる形式を有するユーザＩＤ信用情報を認証しないように構成される、請求項１に記載のシステム。
【請求項８】
前記特定の形式を有する前記ユーザＩＤ信用情報はユーザパスワードであり、前記異なる形式を有する前記ユーザＩＤ信用情報は、セキュリティアサーションマークアップ言語（ＳＡＭＬ）アサーションまたは承認用オープン標準（ＯＡｕｔｈ）アサーションのうちの１つである、請求項７に記載のシステム。
【請求項９】
さらに、前記ユーザデバイスを備え、該ユーザデバイスは、さらに、
前記暗号化キー及び前記仮想配信エージェントの前記ルーティングアドレスを含む前記第３のメッセージを前記ワークスペースクラウドコネクタから受信し、かつ、
前記仮想配信エージェントの前記ルーティングアドレスを使用して前記暗号化キーを前記仮想配信エージェントに送信するように構成される、請求項１に記載のシステム。
【請求項１０】
前記外部クラウドに関連付けられた前記コンピューティングデバイスは、
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュを含む前記第２のメッセージを前記ワークスペースクラウドコネクタから受信し、
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュを含む前記第２のメッセージを複数の仮想配信エージェントのうちのいずれに送るかを決定し、かつ
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュを含む前記第２のメッセージを前記仮想配信エージェントに送るように構成される、請求項１に記載のシステム。
【請求項１１】
前記内部クラウドは第１のエンティティによって運営上管理され、前記外部クラウドは前記第１のエンティティとは異なる第２のエンティティによって運営上管理されている、請求項１に記載のシステム。
【請求項１２】
前記内部クラウドは、さらに、
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュを第１の経路を介して前記仮想配信エージェントに送信し、かつ、
前記暗号化キーを前記第１の経路とは異なる第２経路を介して前記仮想配信エージェントに送信するように構成される、請求項１に記載のシステム。
【請求項１３】
内部クラウド内に、
プロセッサと、
命令を格納するコンピュータ可読媒体と、を備える装置であって、前記命令は、前記プロセッサによって実行されると、
ユーザデバイスから、かつ外部クラウドに関連付けられたコンピューティングデバイスに送られている第１のメッセージを、アプリケーションに関連付けられたユーザＩＤ信用情報を含む前記第１のメッセージに基づいてインターセプトし、
暗号化キーを生成し、
前記暗号化キーを使用してユーザＩＤ信用情報を暗号化し、
前記暗号化キーの第１のハッシュを生成し、
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュを含む第２のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送信し、
前記暗号化されたユーザＩＤ信用情報、及び前記暗号化キーの前記第１のハッシュを含む前記第２のメッセージを、前記外部クラウドに関連付けられた前記コンピューティングデバイスに送信したことに応答して、前記外部クラウドに関連付けられた前記コンピューティングデバイスから仮想配信エージェントのルーティングアドレスを受信し、かつ、
前記暗号化キー及び前記仮想配信エージェントの前記ルーティングアドレスを含む第３のメッセージを前記ユーザデバイスに送信するように前記装置を構成する、装置。
【請求項１４】
前記暗号化キーはランダムログオンチケットである、請求項１３に記載の装置。
【請求項１５】
前記内部クラウドは第１のエンティティによって運営上管理され、かつ、前記外部クラウドは前記第１のエンティティとは異なる第２のエンティティによって運営上管理される、請求項１３に記載の装置。
【請求項１６】
前記命令は、前記プロセッサによって実行されると、さらに、
前記外部クラウドに送られている各メッセージのユーザＩＤ信用情報を検査するように前記装置を構成する、請求項１３に記載の装置。
【請求項１７】
ユーザデバイスからの、かつ、外部クラウドに関連付けられたコンピューティングデバイスに送られている第１のメッセージを、内部クラウドに関連付けられたコンピューティングデバイスによってインターセプトすることであって、内部アプリケーションに関連付けられたユーザＩＤ信用情報を含む前記第１のメッセージに基づいて、インターセプトすることと、
前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、前記第１のメッセージに含まれる前記ユーザＩＤ信用情報を抽出することと、
内部クラウドに関連付けられた前記コンピューティングデバイスによってランダムログオンチケットを生成することと、
前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、前記ランダムログオンチケットを使用して前記ユーザＩＤ信用情報を暗号化することと、
前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、前記ランダムログオンチケットの第１のハッシュを生成することと、
前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、かつ、前記外部クラウドに関連付けられた前記コンピューティングデバイスに、前記暗号化されたユーザＩＤ信用情報、及び前記ランダムログオンチケットの前記第１のハッシュを含む、第２のメッセージを送信することと、
前記送信に応答して、前記内部クラウドに関連付けられた前記コンピューティングデバイスによって、かつ、前記外部クラウドに関連付けられた前記コンピューティングデバイスから、仮想配信エージェントのルーティングアドレスを受信することと、
前記内部クラウドに関連付けられた前記コンピューティングデバイスから、かつ、前記ユーザデバイスに、前記ランダムログオンチケット、及び前記仮想配信エージェントの前記ルーティングアドレスを含む第３のメッセージを送信することと、を含む、方法。
【請求項１８】
前記ユーザＩＤ信用情報は可逆暗号化技術を使用して暗号化される、請求項１７に記載の方法。
【請求項１９】
前記内部クラウドは第１のエンティティによって運営上管理され、かつ、前記外部クラウドは前記第１のエンティティとは異なる第２のエンティティによって運営上管理される、請求項１７に記載の方法。
【請求項２０】
さらに、前記仮想配信エージェントによって、かつ、前記ユーザデバイスから前記ランダムログオンチケットを受信することと、
前記仮想配信エージェントによって、前記ランダムログオンチケットの第２のハッシュを生成することと、
前記仮想配信エージェントによって、前記ランダムログオンチケットの前記第１のハッシュと前記ランダムログオンチケットの前記第２のハッシュとを比較することと、
前記ランダムログオンチケットの前記第１のハッシュが前記ランダムログオンチケットの前記第２のハッシュと一致すると判定したことに応答して、前記ランダムログオンチケットを使用して、前記暗号化されたユーザＩＤ信用情報を復号化し、前記ユーザＩＤ信用情報を前記内部アプリケーションに提供することと、をさらに含む、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の態様は、コンピュータのハードウェア及びソフトウェアに関する。特に、本開示の１つ以上の態様は、一般に、ハイブリッドクラウドサービスにおけるパスワード及び／または他の情報を保護するコンピュータハードウェア及びソフトウェアに関する。
【背景技術】
【０００２】
情報セキュリティは、１人以上のユーザにクラウドサービスを提供する上で最も重要である。ハイブリッドクラウドサービスとは、あるエンティティのいくつかのリソースが外部的に管理され、かつ、クラウドサービスプロバイダのクラウド内に配置されている一方で、そのエンティティの他のリソースは、エンティティによって内部的に管理され、それ自体のサーバまたは他のコンピューティングデバイス内に配置された、クラウドコンピューティング環境である。場合によっては、ユーザ（例えば、エンティティの従業員）は、リモートの位置から、ユーザの信用情報（例えばパスワード）を必要とし、かつ、そのエンティティのコンピューティングデバイスの１つに配置されている、内部的に管理されるアプリケーションまたは他のリソースにアクセスすることが必要になる。このような場合、ユーザのパスワードは、クラウドサービスプロバイダによって提供される外部クラウドを介して、ユーザのリモートデバイスから内部アプリケーションまたはリソースに送信されてもよい。その結果、クラウドサービスプロバイダは、不都合なことに、ユーザの信用情報にアクセスし得ることになる。さらに、クラウドサービスプロバイダが間接的にユーザの信用情報をルーティングする場合、クラウドサービスプロバイダは時間内の任意の時点で何千もの通信を中継するため、意図しない受信者がユーザの信用情報を取得することもある。
【０００３】
クラウドサービス環境でユーザの信用情報を保護するための現在の解決策は、セキュリティアサーションマークアップ言語（ＳＡＭＬ）、承認用オープン標準（ＯＡｕｔｈ）、及びＩＤのアサーションとアクセス制御要求を処理するＯｐｅｎＩＤを含む。ただし、これらの各解決策では、ユーザの管理が冗長になり、ユーザの利便性が低下する。すなわち、ユーザは、内部アプリケーションまたはリソースへのアクセスを取得すると、そのユーザの信用情報を提供するよう重複して求められる。例えば、リモートサイト（例えば、ログインゲートウェイ）のユーザは、内部のアプリケーションまたはリソースのユーザ信用情報を請求されることがあり、内部的に管理されたアプリケーションに接続すると、内部のアプリケーションまたはリソースのユーザの信用情報を提供するように再度請求されることがあり、その結果、クラウドサービスプロバイダはアプリケーションのユーザ信用情報へのアクセスができないので、ユーザの利便性が低下することになる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
次に、本明細書に記載する様々な態様の単純化された概要を提示する。この概要は、広範な概観ではなく、かつ、重要もしくは重大な要素を特定すること、または特許請求の範囲を記述することを意図しない。次の概要は、以下に提供されるより詳細な説明の入門的な序文として単純化された形でいくつかの概念を提示するだけである。
【課題を解決するための手段】
【０００５】
本開示の態様は、ハイブリッドクラウドサービスコンピューティング環境において、ユーザ信用情報（例えば、ユーザパスワード）などの機密データを保護する、方法、コンピュータ可読媒体、装置、及びシステムに関する。例えば、エンティティに内在するワークスペースクラウドコネクタは、ログインゲートウェイから外部クラウドサービスに送信されているユーザＩＤ信用情報を受信またはインターセプトすることができる。ワークスペースクラウドコネクタは、暗号化／復号化キーを生成し、可逆暗号化方法（例えば、高度暗号化規格（ＡＥＳ）暗号化）を介し暗号化／復号化キーを使用してユーザＩＤ信用情報を暗号化することができる。加えて、ワークスペースクラウドコネクタは、不可逆暗号化方法を使用して暗号化／復号化キーを暗号化することができる。例えば、ワークスペースクラウドコネクタは、例えば、ＳＨＡ−２などのセキュアハッシュアルゴリズム（ＳＨＡ）を使用して、暗号化／復号化キーの第１のハッシュを生成することができる。ワークスペースクラウドコネクタは、暗号化されたパスワード、及び暗号化／復号化キーの第１のハッシュを、外部クラウドサービス（例えば、第１の経路）を介して仮想配信エージェントに送信することができる。これに応答して、ワークスペースクラウドコネクタは、宛先ゲートウェイ上に存在する仮想配信エージェントのアドレスを受信し、そのアドレスを使用して、ログインゲートウェイ及び／またはユーザデバイス（例えば、第２の経路）を介して仮想配信エージェントに暗号化／復号化キーを送信することができる。
【０００６】
外部クラウドサービスは、暗号化されたパスワード、及び暗号化／復号化キーの第１のハッシュを宛先ゲートウェイの仮想配信エージェントに送ることができる。仮想配信エージェントは、暗号化されたパスワード、及び暗号化／復号化キーの第１のハッシュをマッピングテーブルに格納することができる。仮想配信エージェントは、ユーザデバイスから暗号化／復号化キーを受信し、不可逆暗号化方法を用いて暗号化／復号化キーを暗号化（例えば、ＳＨＡ−２を用いて暗号化／復号化キーの第２のハッシュを生成）し、かつ、第２のハッシュを第１のハッシュと比較する。それらが一致する場合、仮想配信エージェントは、暗号化／復号化キーを使用して暗号化されたパスワードを復号化して、内部アプリケーションまたはリソースで使用するためのパスワードを生成することができる。
【０００７】
１つ以上の実施形態では、システムは、内部クラウド内に、ゲートウェイ、そしてワークスペースクラウドコネクタを含むことができる。ゲートウェイは、ユーザデバイスからメッセージを受信するように構成され、かつ、外部クラウドに関連付けられたコンピューティングデバイスにメッセージを転送するように構成されてもよい。ワークスペースクラウドコネクタは、ゲートウェイに通信可能に接続され、外部クラウドに関連付けられたコンピューティングデバイスに転送されているメッセージのうちの第１のメッセージをインターセプトするように構成される。インターセプトは、内部アプリケーションのためのユーザＩＤ信用情報を含む第１のメッセージに基づくことができる。ワークスペースクラウドコネクタは、暗号化キーを生成し、暗号化キーを使用してユーザＩＤ信用情報を暗号化し、かつ、暗号化キーの第１のハッシュを生成するように構成することができる。ワークスペースクラウドコネクタは、外部クラウドに関連付けられたコンピューティングデバイスに、暗号化されたユーザＩＤ信用情報、及び暗号化キーの第１のハッシュを含む第２のメッセージを送信するように構成されてもよい。送信に応答して、ワークスペースクラウドコネクタは、外部クラウドに関連付けられたコンピューティングデバイスから仮想配信エージェントのルーティングアドレスを受信し、かつ、暗号化キー及び仮想配信エージェントのルーティングアドレスを含む第３のメッセージをユーザデバイスに送信することができる。
【０００８】
１つ以上の実施形態では、装置は、内部クラウド内に、プロセッサと、プロセッサによって実行されると、１つ以上のステップを実行するように装置を構成する命令を格納しているコンピュータ可読媒体を含むことができる。例えば、装置は、ユーザデバイスから、かつ、外部クラウドに関連付けられたコンピューティングに送られている第１のメッセージをインターセプトすることができる。インターセプトは、アプリケーションに関連付けられたユーザＩＤ信用情報を含む第１のメッセージに基づくことができる。装置は、暗号化キーを生成し、暗号化キーを使用してユーザＩＤ信用情報を暗号化し、かつ、暗号化キーの第１のハッシュを生成することができる。装置は、暗号化されたユーザＩＤ信用情報、及び暗号化キーの第１のハッシュを含む第２のメッセージを、外部クラウドに関連付けられたコンピューティングデバイスに送信することができる。この送信に応答して、装置は、仮想配信エージェントのルーティングアドレスを外部クラウドから受信し、かつ、暗号化キーと仮想配信エージェントのルーティングアドレスとを含む第３のメッセージをユーザデバイスに送信することができる。
【０００９】
１つ以上の実施形態では、コンピューティングデバイスは、内部クラウド内で、１つ以上のステップを含む方法を実行することができる。例えば、コンピューティングデバイスは、ユーザデバイスから、外部クラウドに関連付けられたコンピューティングデバイスに送られている第１のメッセージをインターセプトすることができる。インターセプトは、内部アプリケーションに関連付けられたユーザＩＤ信用情報を含む第１のメッセージに基づくことができる。コンピューティングデバイスは、ユーザＩＤ信用情報を抽出し、ランダムログオンチケットを生成し、ランダムログオンチケットを使用してユーザＩＤ信用情報を暗号化し、かつ、ランダムログオンチケットの第１のハッシュを生成することができる。コンピューティングデバイスは、暗号化されたユーザＩＤ信用情報、及びランダムログオンチケットの第１のハッシュを含む第２のメッセージを外部クラウドに関連付けられたコンピューティングデバイスに送信することができる。この送信に応答して、コンピューティングデバイスは、仮想配信エージェントのルーティングアドレスを外部クラウドに関連付けられたコンピューティングデバイスから受信し、かつ、ランダムログオンチケット及び仮想配信エージェントのルーティングアドレスを含む第３のメッセージをユーザデバイスに送信することができる。
【００１０】
これらの機能は、他の多くの機能とともに、以下でさらに詳細に説明される。
【００１１】
本開示は、例として示されていて、添付図面に限定されるものではなく、図面では、同様の参照数字は類似の要素を示す。
【図面の簡単な説明】
【００１２】
【図１】本明細書に記載する１つ以上の例示的な態様により使用され得る例示的なコンピュータシステムアーキテクチャを示す。
【図２】本明細書に記載する１つ以上の例示的な態様により使用され得る例示的なリモートアクセスシステムアーキテクチャを示す。
【図３】本明細書に記載する１つ以上の例示的な態様により使用され得る例示的な仮想化（ハイパーバイザー）システムアーキテクチャを示す。
【図４】本明細書に記載する１つ以上の例示的な態様により使用され得る例示的なクラウドベースのシステムアーキテクチャを示す。
【図５】例示的なエンタープライズモビリティ管理システムを示す。
【図６】別の例示的なエンタープライズモビリティ管理システムを示す。
【図７】本明細書に記載する１つ以上の例示的な態様を実現するために使用され得る例示的なシステムを示す。
【図８】本明細書に記載する１つ以上の例示的な態様によりユーザＩＤ信用情報をセキュアに送信するための例示的なメッセージフローを示す。
【図９】本明細書に記載する１つ以上の例示的な態様によりユーザＩＤ信用情報をセキュアに送信するための例示的なメッセージフローを示す。
【発明を実施するための形態】
【００１３】
様々な実施形態の次の説明では、上記で特定され本明細書の一部をなす添付図面が参照され、そこでは、本明細書に記載する態様を実施することができる様々な実施形態を例示する。本明細書に記載された範囲から逸脱することなく、他の実施形態を利用することができ、構造的及び機能的改変を行うことができることを理解されたい。様々な態様は、他の実施形態が可能であり、かつ、様々な異なる方法で実施または実行することが可能である。
【００１４】
以下でより詳細に記載する主題の一般的な序論として、本明細書で説明する態様は、ハイブリッドクラウドサービスのためのパスワード暗号化に関する。ワークスペースクラウドコネクタは、外部クラウド上でユーザのＩＤ信用情報のセキュアな転送をし易くし、その結果、外部クラウドがユーザのＩＤ信用情報の平文バージョンにアクセスできないようにすることができる。このようにして、ユーザのＩＤ信用情報のセキュリティが維持される。
【００１５】
本明細書で使用される表現及び用語は、説明目的のためのものであり、限定的であるとみなされるべきではないことを理解されたい。むしろ、本明細書で使用される、句及び用語には、最も広い解釈及び意味を与えられるべきである。「ｉｎｃｌｕｄｉｎｇ」及び「ｃｏｍｐｒｉｓｉｎｇ」ならびにその変形の使用は、それ以降に列挙された項目及びその同等物、ならびにそれらの付加項目及び同等物を含むことを意味する。「取り付けられた」、「接続された」、「結合された」、「配置された」、「係合された」等の用語の使用は、直接及び間接的な、取り付け、接続、結合、配置及び係合を包含することを意味する。
【００１６】
〈コンピューティングアーキテクチャ〉
コンピュータソフトウェア、ハードウェア、及びネットワークは、とりわけ、スタンドアロン、ネットワーク、リモートアクセス（別名、リモートデスクトップ）、仮想化、及び／またはクラウドベースの環境を含む様々な異なるシステム環境で利用することができる。図１は、スタンドアロン及び／またはネットワーク環境において本明細書に記載される１つ以上の例示的な態様を実現するために使用され得るシステムアーキテクチャ及びデータ処理装置の一例を示す。様々なネットワークノード１０３、１０５、１０７、及び１０９は、インターネットなどのワイドエリアネットワーク（ＷＡＮ）１０１を介して相互接続されてもよい。私設イントラネット、企業ネットワーク、ＬＡＮ、メトロポリタンエリアネットワーク（ＭＡＮ）無線ネットワーク、パーソナルネットワーク（ＰＡＮ）などを含む他のネットワークを使用してもよいし、代用されてもよい。ネットワーク１０１は、例示目的のものであり、構成要素がより少ない、または付加されたコンピュータネットワークと置き換えてもよい。ローカルエリアネットワーク（ＬＡＮ）は、１つ以上の任意の既知のＬＡＮトポロジーを有することができ、イーサネット（登録商標）などの１つ以上の様々な異なるプロトコルを使用することができる。デバイス１０３、１０５、１０７、１０９及び他のデバイス（図示せず）は、ツイストペア線、同軸ケーブル、光ファイバ、電波または他の通信媒体を介して１つ以上のネットワークに接続されてもよい。
【００１７】
本明細書で使用され、図面に示されている用語「ネットワーク」は、リモートストレージデバイスが１つ以上の通信経路を介してともに結合されるシステムだけを指すのではなく、ときには、記憶能力を有するようなシステムに結合することができるスタンドアロンデバイスも指す。したがって、「ネットワーク」という用語には、「物理ネットワーク」だけでなく、全ての物理ネットワークに存在する単一のエンティティに起因するデータを含む「コンテンツネットワーク」も含まれる。
【００１８】
構成要素は、データサーバ１０３、ウェブサーバ１０５、及びクライアントコンピュータ１０７、１０９を含むことができる。データサーバ１０３は、本明細書に記載する１つ以上の例示的な態様を実行するためのデータベース、及び制御ソフトウェアの全体的なアクセス、制御及び管理を提供する。データサーバ１０３は、ユーザが、対話し、かつ、要求されたデータを取得するウェブサーバ１０５に接続してもよい。代わりに、データサーバ１０３は、ウェブサーバ自体として機能し、インターネットに直接接続されてもよい。データサーバ１０３は、直接もしくは間接的な接続を介して、または他の何らかのネットワークを介し、ネットワーク１０１（例えば、インターネット）を通じてウェブサーバ１０５に接続することができる。ユーザは、リモートコンピュータ１０７、１０９を使用して、例えばウェブブラウザを使用して、データサーバ１０３と対話し、ウェブサーバ１０５によってホストされる１つ以上の外部露出型ウェブサイトを介してデータサーバ１０３に接続することができる。クライアントコンピュータ１０７、１０９は、そこに格納されたデータにアクセスするためにデータサーバ１０３と協働して使用されてもよく、または他の目的のために使用されてもよい。例えば、ユーザは、クライアントデバイス１０７から、当技術分野で知られているように、インターネットブラウザを使用して、または（インターネットなどの）コンピュータネットワークを介してウェブサーバ１０５及び／またはデータサーバ１０３と通信するソフトウェアアプリケーションを実行することによって、ウェブサーバ１０５にアクセスしてもよい。
【００１９】
サーバとアプリケーションは、同じ物理マシン上で結合され、別個の仮想アドレスまたは論理アドレスを保持することも、別個の物理マシン上に存在することもある。図１は、使用可能なネットワークアーキテクチャの単なる一例を示しており、当業者であれば、使用される特定のネットワークアーキテクチャ及びデータ処理装置は、本明細書でさらに記載するように、多様化されてもよく、それらが提供する機能に二次的である、ということを理解するであろう。例えば、ウェブサーバ１０５とデータサーバ１０３によって提供されるサービスは、単一のサーバ上で組み合わせられてもよい。
【００２０】
各構成要素１０３、１０５、１０７、１０９は、任意のタイプの既知のコンピュータ、サーバ、またはデータ処理装置とすることができる。データサーバ１０３は、例えば、データサーバ１０３の全体的な動作を制御するプロセッサ１１１を含むことができる。データサーバ１０３は、さらに、ランダムアクセスメモリ（ＲＡＭ）１１３、読み取り専用メモリ（ＲＯＭ）１１５、ネットワークインターフェース１１７、入力／出力インターフェース１１９（例えば、キーボード、マウス、ディスプレイ、プリンタなど）、及びメモリ１２１を含むことができる。入力／出力（Ｉ／Ｏ）１１９は、データまたはファイルの読み取り、書き込み、表示、及び／または印刷のための様々なインターフェースユニット及びドライブを含むことができる。メモリ１２１は、さらに、データ処理装置１０３の全体的な動作を制御するためのオペレーティングシステムソフトウェア１２３、本明細書に記載する態様を実行するようにデータサーバ１０３に指示する制御論理１２５、及び本明細書に記載の態様と併せて使用されても使用されなくてもよい、二次的機能、サポート機能及び／または他の機能を提供する他のアプリケーションソフトウェア１２７を格納することができる。制御論理は、本明細書ではデータサーバソフトウェア１２５ということもある。データサーバソフトウェアの機能は、制御論理に符号化されたルールに基づいて自動的に行われ、システムに入力するユーザによって手動で行われる動作及び決定、及び／またはユーザ入力（例えば、質問、データ更新など）に基づく自動処理の組み合わせを指すことがある。
【００２１】
メモリ１２１は、本明細書に記載する１つ以上の態様の実行に使用されるデータを格納することもでき、第１のデータベース１２９及び第２のデータベース１３１を含む。いくつかの実施形態では、第１のデータベースは、（例えば、別個のテーブル、レポートなどとして）第２のデータベースを含むことができる。すなわち、情報は、システム設計に応じて、単一のデータベースに格納し、または異なる論理、仮想、または物理データベースに分離して格納することができる。デバイス１０５、１０７、１０９は、装置１０３に関して記載したのと類似の、または異なるアーキテクチャを有することができる。当業者であれば、本明細書に記載するデータ処理装置１０３（またはデバイス１０５、１０７、１０９）の機能を複数のデータ処理装置に分散させ、例えば、複数のコンピュータに処理負荷を分散し、地理的位置、ユーザーアクセスレベル、サービス品質（ＱｏＳ）などに基づいてトランザクションを分離できることを理解するであろう。
【００２２】
１つ以上の態様は、本明細書に記載する１つ以上のコンピュータまたは他のデバイスによって実行される、１つ以上のプログラムモジュールなど、コンピュータ使用可能もしくは読み取り可能なデータ及び／またはコンピュータ実行可能命令で具体化されてもよい。一般に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含み、コンピュータまたは他のデバイスのプロセッサによって実行されるときに、特定のタスクを実行し、または特定の抽象データタイプを実現する。モジュールは、実行のために後でコンパイルされるソースコードプログラミング言語で書かれてもよく、またはＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＨＴＭＬ）もしくはＥｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）など（これに限定されない）スクリプト言語で書かれてもよい。コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ可読媒体に格納されてもよい。ハードディスク、ＣＤ−ＲＯＭ、光記憶装置、磁気記憶装置、及び／またはそれらの任意の組み合わせを含む、任意の適切なコンピュータ可読記憶媒体を利用することができる。加えて、本明細書に記載するデータまたはイベントを表す様々な送信（非記憶）媒体は、金属線、光ファイバ及び／または無線伝送媒体（例えば、空気及び／または空間）などの信号伝達媒体を通じて進む電磁波の形態で送信元と送信先との間で転送されてもよい。本明細書に記載する様々な態様は、方法、データ処理システム、またはコンピュータプログラム製品として具体化されてもよい。したがって、様々な機能が、ソフトウェア、ファームウェア、及び／またはハードウェアもしくは、集積回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などのハードウェア同等物に、全体または一部として具体化することができる。本明細書に記載の１つ以上の態様をより効果的に実現するために、特定のデータ構造を使用することができ、このようなデータ構造は、本明細書に記載するコンピュータ実行可能命令及びコンピュータ使用可能データの範囲内であることが意図される。
【００２３】
図２を参照すると、本明細書に記載した１つ以上の態様がリモートアクセス環境において実現されている。図２は、本明細書に記載した１つ以上の例示的な態様に従って使用され得る例示的なコンピューティング環境２００内の汎用コンピューティングデバイス２０１を含む例示的なシステムアーキテクチャを示す図である。汎用コンピューティングデバイス２０１は、クライアントアクセスデバイスに仮想マシンを提供するように構成された、単一のサーバまたは複数のサーバのデスクトップ仮想化システム（例えば、リモートアクセスまたはクラウドシステム）内のサーバ２０６ａとして使用することができる。汎用コンピューティングデバイス２０１は、サーバ及びその関連する構成要素の全体的な動作を制御するプロセッサ２０３を有することができ、ＲＡＭ２０５、ＲＯＭ２０７、Ｉ／Ｏモジュール２０９、及びメモリ２１５を含む。
【００２４】
Ｉ／Ｏモジュール２０９は、汎用コンピューティングデバイス２０１のユーザが入力を提供することができるマウス、キーパッド、タッチスクリーン、スキャナ、光学式リーダ、及び／またはスタイラス（または他の入力デバイス）を含むことができ、かつ、オーディオ出力を提供するための１つ以上のスピーカと、テキスト出力、オーディオビジュアル出力、及び／またはグラフィカル出力を提供するビデオ表示デバイスをも含む。ソフトウェアは、メモリ２１５及び／または他の記憶装置に格納されて、本明細書に記載するような様々な機能を実行するために、汎用コンピューティングデバイス２０１を専用コンピューティングデバイスに構成するための命令をプロセッサ２０３に提供することができる。例えば、メモリ２１５は、オペレーティングシステム２１７、アプリケーションプログラム２１９、及び関連するデータベース２２１など、コンピューティングデバイス２０１によって使用されるソフトウェアを格納することができる。
【００２５】
コンピューティングデバイス２０１は、端末２４０（クライアントデバイスともいう）など１つ以上のリモートコンピュータへの接続をサポートするネットワーク環境で動作することができる。端末２４０は、汎用コンピューティングデバイス１０３または２０１に関して上述した要素の多くまたは全てを含む、パーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってもよい。図２に示すネットワーク接続は、ローカルエリアネットワーク（ＬＡＮ）２２５及びワイドエリアネットワーク（ＷＡＮ）２２９を含むが、他のネットワークを含むこともできる。ＬＡＮネットワーキング環境で使用される場合、コンピューティングデバイス２０１は、ネットワークインターフェースまたはアダプタ２２３を通じてＬＡＮ２２５に接続されてもよい。ＷＡＮネットワーキング環境で使用される場合、コンピューティングデバイス２０１は、コンピュータネットワーク２３０（例えば、インターネット）などのＷＡＮ２２９を介して通信を確立するモデム２２７または他のワイドエリアネットワークインターフェースを含むことができる。示されたネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段を使用することができることが理解されよう。コンピューティングデバイス２０１及び／または端末２４０は、バッテリ、スピーカ、及びアンテナなどの様々な他の構成要素（図示せず）を含む移動端末（例えば、移動電話、スマートフォン、携帯情報端末（ＰＤＡ）、ノートブックなど）であってもよい。
【００２６】
本明細書に記載する態様は、複数の他の汎用または専用コンピューティングシステム環境または構成とともに動作することもできる。本明細書に記載する態様との使用に適している他のコンピューティングシステム、環境、及び／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル民生用電子機器、ネットワークパーソナルコンピュータ（ＰＣ）、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、これらに限定されない。
【００２７】
図２に示すように、１つ以上のクライアントデバイス２４０は、１つ以上のサーバ２０６ａ〜２０６ｎ（包括的に、本明細書では「サーバ２０６」という）と通信することができる。一実施形態では、コンピューティング環境２００は、サーバ２０６とクライアントマシン２４０との間に設置されたネットワークアプリアンスを含むことができる。ネットワークアプリアンスは、クライアント／サーバ接続を管理することができ、場合によっては、複数のバックエンドサーバ２０６の間にクライアント接続を負荷分散することができる。
【００２８】
クライアントマシン２４０は、いくつかの実施形態では、単一のクライアントマシン２４０または単一のグループのクライアントマシン２４０といわれる一方で、サーバ２０６は、単一のサーバ２０６または単一のグループのサーバ２０６といわれる。一実施形態では、単一のクライアントマシン２４０は複数のサーバ２０６と通信し、別の実施形態では単一のサーバ２０６が複数のクライアントマシン２４０と通信する。さらに別の実施形態では、単一のクライアントマシン２４０が単一のサーバ２０６と通信する。
【００２９】
いくつかの実施形態では、クライアントマシン２４０は、次の非網羅的な用語、すなわち、クライアントマシン、クライアント、クライアントコンピュータ、クライアントデバイス、クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノードのいずれか１つによって参照することができる。いくつかの実施形態では、サーバ２０６は、次の非網羅的な用語、すなわち、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティングデバイスのいずれか１つによって参照することができる。
【００３０】
一実施形態では、クライアントマシン２４０は仮想マシンであってもよい。仮想マシンは、任意の仮想マシンとすることができる一方で、いくつかの実施形態では、仮想マシンは、タイプ１またはタイプ２のハイパーバイザー、例えば、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ、ＩＢＭ、ＶＭｗａｒｅによって開発されたハイパーバイザー、または任意の他のハイパーバイザーによって管理される任意の仮想マシンとすることができる。いくつかの態様では、仮想マシンはハイパーバイザーによって管理される一方で、態様では仮想マシンはサーバ２０６で実行されるハイパーバイザー、またはクライアント２４０で実行されるハイパーバイザーによって管理されてもよい。
【００３１】
いくつかの実施形態は、サーバ２０６または他のリモートに配置されたマシンで、リモートで実行されるアプリケーションによって生成されたアプリケーション出力を表示するクライアントデバイス２４０を含む。これらの実施形態では、クライアントデバイス２４０は、仮想マシンレシーバプログラムまたはアプリケーションを実行して、アプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウに出力を表示することができる。一実施例では、アプリケーションはデスクトップであり、他の実施例ではアプリケーションはデスクトップを生成または提示するアプリケーションである。デスクトップは、ローカル及び／またはリモートアプリケーションを統合することができるオペレーティングシステムのインスタンスのためのユーザインターフェースを提供するグラフィカルシェルを含むことができる。本明細書で使用されるアプリケーションとは、オペレーティングシステムのインスタンス（及び、必要に応じてデスクトップも）がロードされた後に実行されるプログラムである。
【００３２】
いくつかの実施形態では、サーバ２０６は、リモートプレゼンテーションプロトコルまたは他のプログラムを使用して、クライアントで実行されるシンクライアントまたはリモートディスプレイアプリケーションにデータを送り、サーバ２０６で実行されるアプリケーションによって生成されたディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイプロトコルは、次のプロトコル、すなわち、Ｆｔ．Ｌａｕｄｅｒｄａｌｅ，ＦｌｏｒｉｄａのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって開発されたＩｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＣＡ）ｐｒｏｔｏｃｏｌ、またはＲｅｄｍｏｎｄ，ＷａｓｈｉｎｇｔｏｎのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されたＲｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ（ＲＤＰ）の非網羅的なリストのうちのいずれかであり得る。
【００３３】
リモートコンピューティング環境は複数のサーバ２０６ａ〜２０６ｎを含むことができ、その結果、サーバ２０６ａ〜２０６ｎは、例えばクラウドコンピューティング環境においてサーバファーム２０６に論理的にグループ化される。サーバファーム２０６は、論理的にグループ化された状態で地理的に分散されたサーバ２０６、または論理的にグループ化された状態で互いに近接して配置されたサーバ２０６を含む。いくつかの実施形態では、サーバファーム２０６内の地理的に分散されたサーバ２０６ａ〜２０６ｎは、異なる大陸、大陸の異なる地域、異なる国、異なる州、異なる都市、異なるキャンパス、異なる部屋、または前記の地理的位置の任意の組み合わせとして、異なる地理的領域を特徴付けることができる、ＷＡＮ（ワイド）、ＭＡＮ（メトロポリタン）、またはＬＡＮ（ローカル）を使用して通信することができる。いくつかの実施形態では、サーバファーム２０６は単一のエンティティとして管理される一方で、他の実施形態ではサーバファーム２０６は複数のサーバファームを含むことができる。
【００３４】
いくつかの実施形態では、サーバファームは、実質的に類似のタイプのオペレーティングシステムプラットフォーム（例えば、ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ、ｉＯＳ、ＡＮＤＲＯＩＤ（登録商標）、ＳＹＭＢＩＡＮなど）を実行するサーバ２０６を含むことができる。他の実施形態では、サーバファーム２０６は、第１のタイプのオペレーティングシステムプラットフォームを実行する第１のグループの１つ以上のサーバと、第２のタイプのオペレーティングシステムプラットフォームを実行する第２のグループの１つ以上のサーバとを含むことができる。
【００３５】
サーバ２０６は、必要に応じて、任意のタイプのサーバ、例えば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプリアンス、ネットワークアプリアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ（ＳＳＬ）ＶＰＮサーバ、ファイアウォール、ウェブサーバ、アプリケーションサーバもしくはマスタアプリケーションサーバ、アクティブディレクトリを実行するサーバ、またはファイアウォール機能、アプリケーション機能、もしくはロードバランシング機能を提供するアプリケーション加速プログラムを実行するサーバ、として構成することができる。他のサーバタイプも使用できる。
【００３６】
いくつかの実施形態は、クライアントマシン２４０からの要求を受信し、第２のサーバ１０６ｂにその要求を転送し、かつ、第２のサーバ１０６ｂからの応答に対してクライアントマシン２４０によって生成された要求に応答する、第１のサーバ１０６ａを含む。第１のサーバ１０６ａは、クライアントマシン２４０に利用可能なアプリケーションの目録だけでなく、アプリケーションの目録内で識別される、アプリケーションをホストするアプリケーションサーバ２０６に関連付けられたアドレス情報も取得することができる。次に、第１のサーバ１０６ａは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、かつ、クライアント２４０と直接通信して、識別されたアプリケーションへのアクセスをクライアント２４０に提供することができる。１つ以上のクライアント２４０及び／または１つ以上のサーバ２０６は、ネットワーク２３０、例えばネットワーク１０１を介してデータを送信することができる。
【００３７】
図２は、例示的なデスクトップ仮想化システムの高水準アーキテクチャを示す。図示のように、デスクトップ仮想化システムは、単一のサーバもしくは複数のサーバシステム、またはクラウドシステムであってもよく、仮想デスクトップ及び／または仮想アプリケーションを１つ以上のクライアントアクセスデバイス２４０に提供するように構成された少なくとも１つの仮想化サーバ２０６を含む。本明細書で使用されるように、デスクトップは、１つ以上のアプリケーションをホスト及び／または実行することができるグラフィック環境または空間を指す。デスクトップは、ローカル及び／またはリモートアプリケーションを統合することができるオペレーティングシステムのインスタンスのためのユーザインターフェースを提供するグラフィカルシェルを含むことができる。アプリケーションは、オペレーティングシステムのインスタンス（及び必要に応じてデスクトップも）がロードされた後に実行されるプログラムを含むことができる。オペレーティングシステムの各インスタンスは、物理的（例えば、デバイスごとに１つのオペレーティングシステム）であってもよいし、仮想的（例えば、単一のデバイス上で実行されるＯＳの多くのインスタンス）であってもよい。各アプリケーションは、ローカルデバイス上で実行されてもよいし、リモートに配置された（例えば、リモートされた）デバイス上で実行されてもよい。
【００３８】
さらに図３を参照すると、コンピュータデバイス３０１は、仮想化環境、例えば単一のサーバ、複数のサーバ、またはクラウドコンピューティング環境内の仮想化サーバとして構成することができる。図３に示す仮想化サーバ３０１は、図２に示したサーバ２０６の１つ以上の実施形態または他の既知のコンピューティングデバイスとして展開され、及び／または、図２に示したサーバ２０６の１つ以上の実施形態または他の既知のコンピューティングデバイスによって実現することができる。仮想化サーバ３０１には、１つ以上の物理ディスク３０４、１つ以上の物理デバイス３０６、１つ以上の物理プロセッサ３０８、及び１つ以上の物理メモリ３１６を含むことができるハードウェア層が含まれる。いくつかの実施形態では、ファームウェア３１２は、物理メモリ３１６のメモリ素子内に格納することができ、１つ以上の物理プロセッサ３０８によって実行することができる。仮想化サーバ３０１は、さらに、物理メモリ３１６のメモリ素子に格納され、１つ以上の物理プロセッサ３０８によって実行されるオペレーティングシステム３１４を含み得る。なお、さらに、ハイパーバイザー３０２は、物理メモリ３１６のメモリ素子に格納されてもよく、１つ以上の物理プロセッサ３０８によって実行され得る。
【００３９】
１つ以上の物理プロセッサ３０８での実行は、１つ以上の仮想マシン３３２Ａ〜Ｃ（包括的に３３２）であってもよい。各仮想マシン３３２は、仮想ディスク３２６Ａ〜Ｃ及び仮想プロセッサ３２８Ａ〜Ｃを有することができる。いくつかの実施形態において、第１の仮想マシン３３２Ａは、仮想プロセッサ３２８Ａを使用して、ツールスタック３２４を含む制御プログラム３２０を実行することができる。制御プログラム３２０は、制御仮想マシン、Ｄｏｍ０、Ｄｏｍａｉｎ０、またはシステム管理及び／または制御に使用される他の仮想マシンを指すことができる。いくつかの実施形態では、１つまたは複数の仮想マシン３３２Ｂ〜Ｃは、仮想プロセッサ３２８Ｂ〜Ｃを使用して、ゲストオペレーティングシステム３３０Ａ〜Ｂを実行することができる。
【００４０】
仮想化サーバ３０１は、仮想化サーバ３０１と通信する１個以上のハードウェアを有するハードウェア層３１０を含むことができる。いくつかの実施形態では、ハードウェア層３１０は、１つ以上の物理ディスク３０４、１つ以上の物理デバイス３０６、１つ以上の物理プロセッサ３０８、及び１つ以上のメモリ２１６を含むことができる。物理構成要素３０４、３０６、３０８、及び３１６は、例えば、上記の構成要素のいずれかを含むことができる。物理デバイス３０６は、例えば、ネットワークインターフェースカード、ビデオカード、キーボード、マウス、入力装置、モニタ、ディスプレイ装置、スピーカ、光ドライブ、記憶装置、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク要素（例えば、ルータ、ファイアウォール、ネットワークアドレス変換器、ロードバランサ、仮想私設ネットワーク（ＶＰＮ）ゲートウェイ、Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ（ＤＨＣＰ）ルータなど）、または仮想化サーバ３０１と接続または通信する任意のデバイスを含むことができる。ハードウェア層３１０内の物理メモリ３１６は、任意のタイプのメモリを含むことができる。物理メモリ３１６は、データを格納することができ、いくつかの実施形態では、１つ以上のプログラム、または実行可能命令のセットを格納することができる。図３は、ファームウェア３１２が仮想化サーバ３０１の物理メモリ３１６内に格納されている実施形態を示す。物理メモリ３１６に格納されたプログラムまたは実行可能命令は、仮想化サーバ３０１の１つ以上のプロセッサ３０８によって実行されることができる。
【００４１】
仮想化サーバ３０１は、ハイパーバイザー３０２も含むこともできる。いくつかの実施形態では、ハイパーバイザー３０２は、任意の数の仮想マシン３３２を作成及び管理するために、仮想化サーバ３０１のプロセッサ３０８によって実行されるプログラムであってもよい。ハイパーバイザー３０２は、仮想マシンモニタまたはプラットフォーム仮想化ソフトウェアといってもよい。いくつかの実施形態では、ハイパーバイザー３０２は、コンピューティングマシンで実行している仮想マシンを監視する実行可能命令及びハードウェアの任意の組み合わせとすることができる。ハイパーバイザー３０２は、タイプ２のハイパーバイザーであってもよく、このハイパーバイザーは、仮想化サーバ３０１で実行しているオペレーティングシステム３１４内で実行される。仮想マシンはハイパーバイザーの上のレベルで実行される。いくつかの実施形態では、タイプ２のハイパーバイザーは、ユーザのオペレーティングシステムのコンテキスト内で実行され、その結果、タイプ２のハイパーバイザーはユーザのオペレーティングシステムと対話する。他の実施形態では、仮想化環境内の１つ以上の仮想化サーバ２０１は、タイプ１のハイパーバイザー（図示せず）を代わりに含むことができる。タイプ１のハイパーバイザーは、ハードウェア層３１０内のハードウェア及びリソースに直接アクセスすることによって、仮想化サーバ３０１で実行することができる。すなわち、タイプ２のハイパーバイザー３０２は、図示されるように、ホストオペレーティングシステム３１４を通じてシステムリソースにアクセスするが、タイプ１のハイパーバイザーは、ホストオペレーティングシステム３１４なしで全てのシステムリソースに直接アクセスすることができる。タイプ１のハイパーバイザーは、仮想化サーバ３０１の１つ以上の物理プロセッサ３０８上で直接実行することができ、物理メモリ３１６に格納されたプログラムデータを含むことができる。
【００４２】
ハイパーバイザー３０２は、いくつかの実施形態では、システムリソースに直接アクセスするオペレーティングシステム３３０または制御プログラム３２０をシミュレートする任意の方法で、オペレーティングシステム３３０、または仮想マシン３３２上で実行している制御プログラム３２０に仮想リソースを提供することができる。システムリソースは、物理デバイス３０６、物理ディスク３０４、物理プロセッサ３０８、物理メモリ３１６、及び仮想化サーバ３０１のハードウェア層３１０に含まれる任意の他の構成要素を含むことができるが、これらに限定されない。ハイパーバイザー３０２は、仮想ハードウェアをエミュレートし、物理ハードウェアを分割し、物理ハードウェアを仮想化し、及び／またはコンピューティング環境へのアクセスを提供する仮想マシンを実行するために使用することができる。なお、他の実施形態では、ハイパーバイザー３０２は、仮想化サーバ３０１上で実行する仮想マシン３３２のプロセッサスケジューリング及びメモリ分割を制御する。ハイパーバイザー３０２は、Ｐａｌｏ  Ａｌｔｏ，ＣａｌｉｆｏｒｎｉａのＶＭＷａｒｅ，Ｉｎｃ．によって製造されたもの、オープンソースＸｅｎ．ｏｒｇ  ｃｏｍｍｕｎｉｔｙによってその開発が監督されているオープンソース製品ＸＥＮハイパーバイザー、マイクロソフトが提供するＨｙｐｅｒＶ、ＶｉｒｔｕａｌＳｅｒｖｅｒ、または仮想ＰＣハイパーバイザー、またはその他を含む。いくつかの実施形態では、仮想化サーバ３０１は、ゲストオペレーティングシステムが実行可能な仮想マシンプラットフォームを作成するハイパーバイザー３０２を実行する。これらの実施形態では、仮想化サーバ３０１は、ホストサーバといわれる。そのような仮想化サーバの一例は、Ｆｏｒｔ  Ｌａｕｄｅｒｄａｌｅ，ＦＬ．のＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって提供されるＸＥＮ  ＳＥＲＶＥＲである。
【００４３】
ハイパーバイザー３０２は、ゲストオペレーティングシステム３３０が実行する１つ以上の仮想マシン３３２Ｂ〜Ｃ（包括的に３３２）を作成することができる。いくつかの実施形態では、ハイパーバイザー３０２は、仮想マシン画像をロードして、仮想マシン３３２を作成することができる。他の実施形態では、ハイパーバイザー３０２は、仮想マシン３３２内のゲストオペレーティングシステム３３０を実行することができる。さらに他の実施形態では、仮想マシン３３２は、ゲストオペレーティングシステム３３０を実行することができる。
【００４４】
ハイパーバイザー３０２は、仮想マシン３３２を作成することに加えて、少なくとも１つの仮想マシン３３２の実行を制御することができる。他の実施形態では、ハイパーバイザー３０２は、仮想化サーバ３０１によって提供される少なくとも１つのハードウェアリソース（例えば、ハードウェア層３１０内で利用可能な任意のハードウェアリソース）の抽象化を少なくとも１つの仮想マシン３３２に提示することができる。他の実施形態では、ハイパーバイザー３０２は、仮想マシン３３２が仮想化サーバ３０１内で利用可能な物理的プロセッサ３０８にアクセスする方法を制御することができる。物理プロセッサ３０８へのアクセスを制御することは、仮想マシン３３２がプロセッサ３０８にアクセスすべきか、及び物理プロセッサ能力が仮想マシン３３２にどのように提示されるかを決定することを含むことができる。
【００４５】
図３に示すように、仮想化サーバ３０１は、１つ以上の仮想マシン３３２をホストまたは実行することができる。仮想マシン３３２は、プロセッサ３０８によって実行されるときに、仮想マシン３３２が物理コンピューティングデバイスに非常に類似してプログラム及びプロセスを実行できるように、物理コンピュータの動作を模倣する実行可能命令のセットである。図３は、仮想化サーバ３０１が３つの仮想マシン３３２をホストする実施形態を示しているが、他の実施形態では、仮想化サーバ３０１は任意の数の仮想マシン３３２をホストすることができる。ハイパーバイザー３０２は、いくつかの実施形態では、各仮想マシン３３２に、その仮想マシン３３２に利用可能な物理ハードウェア、メモリ、プロセッサ及び他のシステムリソースの一意の仮想ビューを提供する。いくつかの実施形態では、一意の仮想ビューは、１つ以上の仮想マシン許可、１つ以上の仮想マシン識別子へのポリシーエンジンの適用、仮想マシンにアクセスするユーザ、仮想マシンで実行されるアプリケーション、仮想マシンによってアクセスされるネットワーク、または任意の他の所望の基準に基づくことができる。例えば、ハイパーバイザー３０２は、１つ以上のセキュアでない仮想マシン３３２、及び１つ以上のセキュアな仮想マシン３３２を作成することができる。セキュアでない仮想マシン３３２は、セキュアな仮想マシン３３２がアクセスすることを許可されている、リソース、ハードウェア、メモリロケーション、及びプログラムにアクセスすることを妨げられ得る。他の実施形態では、ハイパーバイザー３０２は、仮想マシン３３２に利用可能な物理ハードウェア、メモリ、プロセッサ及び他のシステムリソースの実質的に類似した仮想ビューを各仮想マシン３３２に提供することができる。
【００４６】
各仮想マシン３３２は、仮想ディスク３２６Ａ〜Ｃ（包括的に３２６）及び仮想プロセッサ３２８Ａ〜Ｃ（包括的に３２８）を含むことができる。いくつかの実施形態では、仮想ディスク３２６は、仮想化サーバ３０１の１つ以上の物理ディスク３０４、または仮想化サーバ３０１の１つ以上の物理ディスク３０４の一部の仮想化ビューである。物理ディスク３０４の仮想化ビューは、ハイパーバイザー３０２によって生成され、提供され、管理することができる。いくつかの実施形態では、ハイパーバイザー３０２は、各仮想マシン３３２に物理ディスク３０４の一意のビューを提供する。したがって、これらの実施形態では、各仮想マシン３３２に含まれる特定の仮想ディスク３２６は、他の仮想ディスク３２６と比較した場合に一意であり得る。
【００４７】
仮想プロセッサ３２８は、仮想化サーバ３０１の１つ以上の物理プロセッサ３０８の仮想化ビューであり得る。いくつかの実施形態では、物理プロセッサ３０８の仮想化ビューは、ハイパーバイザー３０２によって生成され、提供され、管理され得る。いくつかの実施形態では、仮想プロセッサ３２８は、少なくとも１つの物理プロセッサ３０８の同じ特性の実質的に全てを有する。他の実施形態では、仮想プロセッサ３０８は、仮想プロセッサ３２８の特性の少なくとも一部が対応する物理的プロセッサ３０８の特性と異なるように、物理プロセッサ３０８の改変されたビューを提供する。
【００４８】
さらに図４を参照すると、本明細書に記載するいくつかの態様がクラウドベースの環境において実現されている。図４は、クラウドコンピューティング環境（またはクラウドシステム）４００の実施例を示す図である。図４に示すように、クライアントコンピュータ４１１〜４１４は、クラウド管理サーバ４１０と通信して、クラウドシステムのコンピューティングリソース（例えば、ホストサーバ４０３、ストレージリソース４０４、及びネットワークリソース４０５）にアクセスすることができる。
【００４９】
管理サーバ４１０は、１つ以上の物理サーバで実現されてもよい。管理サーバ４１０は、とりわけ、例えば、Ｆｔ．Ｌａｕｄｅｒｄａｌｅ，ＦＬ，のＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によるＣＬＯＵＤＳＴＡＣＫ、またはＯＰＥＮＳＴＡＣＫを実行することができる。管理サーバ４１０は、クラウドハードウェア及びソフトウェアリソース、例えば、ホストコンピュータ４０３、データストレージデバイス４０４、及びネットワーキングデバイス４０５を含む様々なコンピューティングリソースを管理することができる。クラウドハードウェア及びソフトウェアリソースには、私設及び／または公共構成要素が含まれている場合がある。例えば、クラウドは、１人以上の特定の顧客、またはクライアントコンピュータ４１１〜４１４によって、及び／または私設ネットワークを介して使用される私設クラウドとして構成されてもよい。他の実施形態では、公共クラウドまたは公共私設ハイブリッドクラウドは、オープンまたはハイブリッドネットワークを介して他の顧客によって使用されてもよい。
【００５０】
管理サーバ４１０は、クラウドオペレータ及びクラウド顧客がクラウドシステムと対話することができるユーザインターフェースを提供するように構成することができる。例えば、管理サーバ４１０は、アプリケーションプログラミングインタフェース（ＡＰＩ）のセット、及び／または１つ以上のクラウドオペレータコンソールアプリケーション（例えば、ウェブベースのスタンドアロンアプリケーション）を、クラウドオペレータがクラウドリソースを管理し、仮想化層を設定し、顧客アカウントを管理し、かつ、その他のクラウド管理タスクを実行できるようにするためのユーザインターフェースとともに提供することができる。管理サーバ４１０は、また、ＡＰＩのセット、及び／または１つ以上の顧客コンソールアプリケーションを、クライアントコンピュータ４１１〜４１４を介したエンドユーザからのクラウドコンピューティング要求、例えば、クラウド内の仮想マシンを作成、改変または破棄する要求を受信するように構成されたユーザインターフェースとともに含むことができる。クライアントコンピュータ４１１〜４１４は、インターネットまたは他の通信ネットワークを介して管理サーバ４１０に接続し、管理サーバ４１０によって管理される１つ以上のコンピューティングリソースへのアクセスを要求することができる。クライアント要求に応答して、管理サーバ４１０は、クライアント要求に基づきクラウドシステムのハードウェア層内の物理的リソースを選択し提供するように構成されたリソースマネージャを含むことができる。例えば、管理サーバ４１０及びクラウドシステムの付加的構成要素は、ネットワーク（例えば、インターネット）を介し、仮想マシン及びその動作環境（例えば、ハイパーバイザー、ストレージリソース、ネットワーク要素によって提供されるサービスなど）をクライアントコンピュータ４１１〜４１４において顧客に対して、提供、作成及び管理するように構成することができ、コンピューティングリソース、データストレージサービス、ネットワーキング能力、及びコンピュータプラットフォーム及びアプリケーションサポートを顧客に提供することができる。クラウドシステムは、セキュリティシステム、開発環境、ユーザインターフェースなどを含む様々な特定のサービスを提供するように構成することもできる。
【００５１】
特定のクライアント４１１〜４１４は、例えば、同じエンドユーザ、または同じ会社もしくは組織に所属する異なるユーザに代わって仮想マシンを作成する異なるクライアントコンピュータに関連することができる。他の例では、特定のクライアント４１１〜４１４は、異なる企業または組織に所属するユーザなどに無関係であってもよい。無関係なクライアントの場合、仮想マシンに関する情報または任意の１人のユーザの記憶は、他のユーザから隠すことができる。
【００５２】
ここで、クラウドコンピューティング環境の物理ハードウェア層を参照すると、可用性ゾーン４０１〜４０２（またはゾーン）は、物理コンピューティングリソースの併置されたセットを指すことができる。ゾーンは、コンピューティングリソースの全体的なクラウド内の他のゾーンから地理的に離れていてもよい。例えば、ゾーン４０１はＣａｌｉｆｏｒｎｉａに配置された第１のクラウドデータセンターであり、ゾーン４０２はＦｌｏｒｉｄａに配置された第２のクラウドデータセンターであってもよい。管理サーバ４１０は、可用性ゾーンの１つに、または別個の場所に配置することができる。各ゾーンは、ゲートウェイを通じて、管理サーバ４１０のような、ゾーン外にあるデバイスとインターフェース接続する内部ネットワークを含むことができる。クラウドのエンドユーザ（例えば、クライアント４１１〜４１４）は、ゾーン間の区別を認識している、または認識していないことがある。例えば、エンドユーザは、指定された、メモリ量、処理能力、及びネットワーク能力を有する仮想マシンの作成を要求することができる。管理サーバ４１０は、ユーザの要求に応答し、かつ、仮想マシンがゾーン４０１またはゾーン４０２からのリソースを使用して作成されたかをユーザが知らずに仮想マシンを作成するためにリソースを割り当てることができる。他の例では、クラウドシステムは、エンドユーザが、特定のゾーンまたはゾーン内の特定のリソース４０３〜４０５に仮想マシン（または他のクラウドリソース）が割り当てられることを要求することを可能にすることができる。
【００５３】
この実施例では、各ゾーン４０１〜４０２は、様々な物理ハードウェア構成要素（またはコンピューティングリソース）４０３〜４０５、例えば、物理ホスティングリソース（または処理リソース）、物理ネットワークリソース、物理ストレージリソース、スイッチ、及び顧客にクラウドコンピューティングサービスを提供するために使用され得る付加的ハードウェアリソースの構成を含むことができる。クラウドゾーン４０１〜４０２内の物理ホスティングリソースは、仮想マシンインスタンスを作成してホストするように構成された、上述の仮想化サーバ３０１などの１つ以上のコンピュータサーバ４０３を含むことができる。クラウドゾーン４０１または４０２内の物理ネットワークリソースは、ファイアウォール、ネットワークアドレストランスレータ、ロードバランサ、仮想私設ネットワーク（ＶＰＮ）ゲートウェイ、動的ホスト設定プロトコル（ＤＨＣＰ）ルータなどのような、クラウド顧客にネットワークサービスを提供するよう構成されたハードウェア及び／またはソフトウェアを備えた１つ以上のネットワーク要素４０５（例えば、ネットワークサービスプロバイダ）を含むことができる。クラウドゾーン４０１〜４０２内のストレージリソースは、ストレージディスク（例えば、ソリッドステートドライブ（ＳＳＤ）、磁気ハードディスクなど）及び他のストレージデバイスを含むことができる。
【００５４】
図４に示した例示的なクラウドコンピューティング環境は、仮想マシンを作成及び管理し、かつ、クラウド内の物理リソースを使用して顧客に他のサービスを提供するように構成された、付加ハードウェア及び／ソフトウェアを有する（例えば、図１〜３に示したような）仮想化層を含むこともできる。仮想化層は、ネットワーク仮想化、ストレージ仮想化などを提供するための他の構成要素とともに、図３で上記したように、ハイパーバイザーを含むことができる。仮想化層は、物理リソース層とは別個の層であってもよいし、同じハードウェア及び／またはソフトウェアリソースの一部または全部を物理的リソース層と共有してもよい。例えば、仮想化層は、物理コンピューティングリソースとともに仮想化サーバ４０３の各々にインストールされたハイパーバイザーを含むことができる。代わりに、例えば、ＷＩＮＤＯＷＳ（登録商標）  ＡＺＵＲＥ（Ｒｅｄｍｏｎｄ  ＷａｓｈｉｎｇｔｏｎのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）、ＡＭＡＺＯＮ  ＥＣ２（Ｓｅａｔｔｌｅ，ＷａｓｈｉｎｇｔｏｎのＡｍａｚｏｎ．ｃｏｍ．Ｉｎｃ．）、ＩＢＭ  ＢＬＵＥ  ＣＬＯＵＤ（Ａｒｍｏｎｋ，Ｎｅｗ  ＹｏｒｋのＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎ）などの既知のクラウドシステムを使用することができる。
【００５５】
〈エンタープライズモビリティ管理アーキテクチャ〉
図５は、ＢＹＯＤ環境において使用するエンタープライズモビリティ技術アーキテクチャ５００を示す。このアーキテクチャにより、モバイルデバイス５０２のユーザは、モバイルデバイス５０２から企業リソースまたはパーソナルリソースにアクセスすることも、モバイルデバイス５０２をパーソナル用に使用することもできる。ユーザは、ユーザによって購入されたモバイルデバイス５０２、または企業によってユーザに提供されたモバイルデバイス５０２を使用して、そのような企業リソース５０４または企業サービス５０８にアクセスすることができる。ユーザは、業務用のみ、または業務及びパーソナル用にモバイルデバイス５０２を利用することができる。モバイルデバイスは、ｉＯＳオペレーティングシステム、及びＡｎｄｒｏｉｄ（登録商標）オペレーティングシステムなどを実行することができる。企業は、実行するポリシーを選択して、モバイルデバイス５０４を管理することができる。ポリシーは、モバイルデバイスが、識別され、保護または保護検証され、かつ、企業リソースへの選択的または完全なアクセスが提供されるように、ファイアウォールまたはゲートウェイを通じて埋め込まれてもよい。ポリシーは、モバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーション、及びデータ管理ポリシーのいくつかの組み合わせであってもよい。モバイルデバイス管理ポリシーのアプリケーションを通じて管理されるモバイルデバイス５０４は、登録デバイスということができる。
【００５６】
いくつかの実施形態では、モバイルデバイスのオペレーティングシステムは、管理区画５１０と非管理区画５１２とに分離することができる。管理区画５１０は、そこで実行されているアプリケーション及び管理区画に格納されたデータを保護するために、管理区画５１０に適用されるポリシーを有することができる。管理区画で実行されているアプリケーションは、セキュリティアプリケーションである可能性がある。他の実施形態では、全てのアプリケーションは、アプリケーションとは別個に受信された１つ以上のポリシーファイルのセットに従って実行され、ポリシーファイルのセットは、１つ以上のセキュリティパラメータ、機能、リソース制限、及び／または、そのアプリケーションがデバイスで実行されているときに使用されるモバイルデバイス管理システムによって実施される他のアクセス制御を定義する。それらそれぞれのポリシーファイルに従って動作することによって、各アプリケーションは、１つ以上の他のアプリケーション及び／またはリソースとの通信を許可または制限され、それによって仮想パーティションを作成することができる。したがって、本明細書で使用されるように、区画は、メモリの物理的に区画化された部分（物理区画）、メモリの論理的に区画化された部分（論理区画）、及び／または、本明細書に記載するように複数のアプリにわたる１つ以上のポリシー及び／またはポリシーファイルの実施の結果として作成される仮想区画（仮想区画）を指すことができる。別の言い方をすれば、管理されたアプリにポリシーを適用することで、それらのアプリは、他の管理されたアプリ及び信頼できる企業リソースとのみ通信できるように制限されるため、管理されないアプリ及びデバイスでは不可解な仮想区画が作成される可能性がある。
【００５７】
セキュアアプリケーションは、電子メールアプリケーション、ウェブ閲覧アプリケーション、ソフトウェア・アズ・ア・サービス（ｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ：ＳａａＳ）アクセスアプリケーション、Ｗｉｎｄｏｗｓ（登録商標）  Ａｐｐｌｉｃａｔｉｏｎアクセスアプリケーションなどであってもよい。セキュアアプリケーションは、セキュアネイティブアプリケーション５１４、セキュアアプリケーションランチャ５１８によって実行されるセキュアリモートアプリケーション５２２、セキュアアプリケーションランチャ５１８によって実行される仮想化アプリケーション５２６などであってもよい。セキュアネイティブアプリケーション５１４は、セキュアアプリケーションラッパー５２０によって覆い包むことができる。セキュアアプリケーションラッパー５２０は、セキュアネイティブアプリケーションがデバイスで実行されるときにモバイルデバイス５０２で実行される統合ポリシーを含むことができる。セキュアアプリケーションラッパー５２０は、セキュアネイティブアプリケーション５１４がセキュアネイティブアプリケーション５１４の実行時に要求されたタスクを完了するために必要とする可能性がある、企業でホストされているリソースに、モバイルデバイス５０２で実行されているセキュアネイティブアプリケーション５１４を指し示すメタデータを含むことができる。セキュアアプリケーションランチャ５１８によって実行されるセキュアリモートアプリケーション５２２は、セキュアアプリケーションランチャアプリケーション５１８内で実行されてもよい。セキュアアプリケーションランチャ５１８によって実行される仮想化アプリケーション５２６は、企業リソース５０４などにおいて、モバイルデバイス５０２のリソースを利用することができる。セキュアアプリケーションランチャ５１８によって実行される仮想化アプリケーション５２６によってモバイルデバイス５０２で使用されるリソースは、ユーザ対話リソース、処理リソースなどを含むことができる。ユーザ対話リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、視覚入力、ジェスチャ入力などを収集し、送信するために使用されてもよい。処理リソースは、ユーザインターフェース、企業リソース５０４から受信したプロセスデータなどを提示するために使用することができる。セキュアアプリケーションランチャ５１８によって実行される仮想化アプリケーション５２６により企業リソース５０４で使用されるリソースは、ユーザインターフェース生成リソース、処理リソースなどを含むことができる。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブルし、ユーザインターフェースを改変し、ユーザインターフェースをリフレッシュするなどのために使用することができる。処理リソースは、情報の作成、情報の読み取り、情報の更新、情報の削除などに使用することができる。例えば、仮想化アプリケーションは、グラフィカルユーザインタフェース（ＧＵＩ）に関連付けられたユーザ対話を記録し、サーバで動作しているアプリケーションへの入力としてユーザ対話データを使用するサーバアプリケーションにそれらを通信することができる。���の構成では、企業は、アプリケーションに関連付けられたデータ、ファイルなどと同様に、サーバ側でアプリケーションを維持することを選択することができる。企業は、いくつかのアプリケーションをモバイルデバイスに展開するために保護することによって、本明細書の原理に従いそれらを「動員」することを選択することができるが、この手はずは、特定のアプリケーションに対して選択することもできる。例えば、いくつかのアプリケーションはモバイルデバイスで使用するために保護されている場合があるが、他のアプリケーションはモバイルデバイスでの展開のために準備されていないか、または適切でない場合があるので、企業は仮想化技術を通じて、準備されていないアプリケーションにモバイルユーザがアクセスできることを選択できる。別の例として、企業は、モバイルデバイスのためにアプリケーションをカスタマイズすることが非常に困難または望ましくない、大規模かつ複雑なデータセットを有する大規模で複雑なアプリケーション（例えば、物質資源計画アプリケーション）を有することがあり、その場合、企業は、仮想化技術を通じてアプリケーションへのアクセスを提供することを選択することができる。さらに別の例として、企業は、保護されたモバイル環境でさえも、あまりに敏感であると企業によってみなすことができる高度に保護されたデータ（例えば、人事データ、顧客データ、エンジニアリングデータ）を維持するアプリケーションを有することがあり、その場合、企業は、仮想化技術を使用して、そのようなアプリケーション及びデータへのモバイルアクセスを許可することを選択できる。企業は、サーバ側でより適切に動作しているとみなされるアプリケーションへのアクセスを可能にする仮想化アプリケーションばかりでなく、完全に保護されたアプリケーションと完全に機能するアプリケーションの両方をモバイルデバイスに提供することを選択することもできる。一実施形態では、仮想化アプリケーションは、セキュアな記憶場所の１つに移動電話のいくつかのデータ、ファイルなどを格納することができる。例えば、企業は、特定の情報を電話に保存し、他の情報は許可しないように選択することができる。
【００５８】
本明細書に記載するように、仮想化アプリケーションに関連して、モバイルデバイスは、ＧＵＩを提示し、次にＧＵＩとのユーザ対話を記録するように設計された仮想化アプリケーションを有することができる。アプリケーションは、アプリケーションとユーザの対話としてサーバ側アプリケーションによって使用されるサーバ側にユーザ対話を通信することができる。それに応答して、サーバ側のアプリケーションは、新しいＧＵＩをモバイルデバイスに送り返すことができる。例えば、新しいＧＵＩは、静的ページ、動的ページ、アニメーションなどであってもよく、それにより、リモートに位置するリソースへのアクセスを提供する。
【００５９】
セキュアアプリケーションは、モバイルデバイスの管理区画５１０内のセキュアデータコンテナ５２８に格納されたデータにアクセスすることができる。セキュアデータコンテナに保護されたデータは、セキュアラップアプリケーション５１４、セキュアアプリケーションランチャ５２２よって実行されるアプリケーション、セキュアアプリケーションランチャ５２２によって実行される仮想化アプリケーション５２６などによってアクセスすることができる。セキュアデータコンテナ５２８に格納されるデータは、ファイル、データベースなどを含むことができる。セキュアデータコンテナ５２８に格納されるデータは、特定のセキュアアプリケーション５３０に限定されたデータ、セキュアアプリケーション５３２の間で共有されるデータなどを含むことができる。セキュアアプリケーションに限定されたデータは、セキュアな一般データ５３４及び高度にセキュアなデータ５３８を含むことができる。セキュアな一般データは、Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）１２８ビット暗号化などの強力な形式の暗号化を使用することができる一方で、高度にセキュアなデータ５３８は、ＡＥＳ２５６ビット暗号化などの非常に強力な暗号化形式を使用することができる。セキュアデータコンテナ５２８に格納されたデータは、デバイスマネージャ５２４からコマンドを受信すると、デバイスから削除され得る。セキュアアプリケーションは、デュアルモードオプション５４０を有することができる。デュアルモードオプション５４０は、アンセキュアモードまたは管理されないモードでセキュアアプリケーションを作動させるオプションをユーザに提示することができる。アンセキュアモードまたは管理されないモードでは、セキュアアプリケーションは、モバイルデバイス５０２の非管理区画５１２のアンセキュアデータコンテナ５４２に格納されたデータにアクセスすることができる。アンセキュアデータコンテナに格納されるデータは、パーソナルデータ５４４であってもよい。アンセキュアデータコンテナ５４２に格納されたデータは、モバイルデバイス５０２の非管理区画５１２で実行されているアンセキュアアプリケーション５４８によってアクセスされてもよい。アンセキュアデータコンテナ５４２に格納されたデータは、セキュアデータコンテナ５２８に格納されたデータがモバイルデバイス５０２から削除されたとき、モバイルデバイス５０２に残っていてもよい。企業は、ユーザによって所有、使用許諾、または制御されるパーソナルデータ、ファイル、及び／またはアプリケーション（パーソナルデータ）を残し、そうでなければ保存すると一方で、企業によって所有、使用許諾、または制御されたデータ、ファイル、及び／またはアプリケーション（企業データ）の選択したもの、または全てをモバイルデバイスから削除することを望む場合がある。この動作は、選択的ワイプという。本明細書に記載の態様に従って配置された企業データ及びパーソナルデータに対して、企業は選択的なワイプを実行することができる。
【００６０】
モバイルデバイスは、企業における企業リソース５０４及び企業サービス５０８、公共インターネット５４８などに接続することができる。モバイルデバイスは、仮想私設ネットワーク接続を通じて企業リソース５０４及び企業サービス５０８に接続することができる。ｍｉｃｒｏＶＰＮまたはアプリケーション固有のＶＰＮともいわれる仮想私設ネットワーク接続は、特定のアプリケーション５５０、特定のデバイス、モバイルデバイスの特定のセキュリティ領域など５５２に固有のものであってもよい。例えば、電話機のセキュア領域内のラップされたアプリケーションのそれぞれは、アプリケーション固有のＶＰＮを通じて企業リソースにアクセスすることができ、その結果、ＶＰＮへのアクセスは、アプリケーションに関連付けられた属性に基づき、おそらくはユーザまたはデバイスの属性情報と組み合わせて許可される。仮想私設ネットワーク接続には、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅトラフィック、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙトラフィック、ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰ）トラフィック、ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｅ（ＨＴＴＰＳ）トラフィック、アプリケーション管理トラフィックなどが含まれる。仮想私設ネットワーク接続は、シングルサインオン認証プロセス５５４をサポートし、使用可能にすることができる。シングルサインオンプロセスにより、ユーザは、認証サービス５５８によって検証される単一セットの認証信用情報を提供することができる。次いで、認証サービス５５８は、個々の企業リソース５０４に認証信用情報を提供することをユーザに要求することなく、複数の企業リソース５０４へのアクセスをユーザに許可することができる。
【００６１】
仮想私設ネットワーク接続は、アクセスゲートウェイ５６０によって、確立され管理されてもよい。アクセスゲートウェイ５６０は、企業リソース５０４のモバイルデバイス５０２への配信を管理し、促進し、改善するパフォーマンス向上機能を含むことができる。アクセスゲートウェイは、また、モバイルデバイス５０２から公共インターネット５４８へトラフィックを再ルーティングすることができ、モバイルデバイス５０２は公共インターネット５４８上で動作する、公然と利用可能な保護されていないアプリケーションにアクセスすることができる。モバイルデバイスは、転送ネットワーク５６２を介してアクセスゲートウェイに接続することができる。転送ネットワーク５６２は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、公共ネットワーク、私設ネットワークなどであってもよい。
【００６２】
企業リソース５０４は、電子メールサーバ、ファイル共有サーバ、ＳａａＳアプリケーション、Ｗｅｂアプリケーションサーバ、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバなどを含むことができる。電子メールサーバは、Ｅｘｃｈａｎｇｅサーバ、Ｌｏｔｕｓ  Ｎｏｔｅサーバなどを含むことができる。ファイル共有サーバは、ＳｈａｒｅＦｉｌｅサーバなどを含むことができる。ＳａａＳアプリケーションは、Ｓａｌｅｓｆｏｒｃｅなどを含むことができる。Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバは、ローカルのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムで実行されることを意図したアプリケーションなどを提供するように構築された任意のアプリケーションサーバを含むことができる。企業リソース５０４は、構内ベースのリソース、クラウドベースのリソースなどであってもよい。企業リソース５０４は、モバイルデバイス５０２によって直接またはアクセスゲートウェイ５６０を通じてアクセスされてもよい。企業リソース５０４は、転送ネットワーク５６２を介しモバイルデバイス５０２によってアクセスされてもよい。転送ネットワーク５６２は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、公共ネットワーク、私設ネットワークなどであってもよい。
【００６３】
エンタープライズサービス５０８は、認証サービス５５８、脅威検出サービス５６４、デバイスマネージャサービス５２４、ファイル共有サービス５６８、ポリシーマネージャサービス５７０、ソーシャル統合サービス５７２、アプリケーションコントローラサービス５７４などを含むことができる。認証サービス５５８は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービスなどを含むことができる。認証サービス５５８は、信用情報を使用することができる。信用情報は、モバイルデバイス５０２、企業リソース５０４などによって格納されてもよい。モバイルデバイ５０２に格納された信用情報は、モバイルデバイスの暗号化された場所に格納されてもよく、信用情報は、認証時などに使用するため、モバイルデバイス５０２に一時的に格納されてもよい。脅威検出サービス５６４は、侵入検出サービス、不正アクセス試行検出サービスなどを含むことができる。不正アクセス試行検出サービスには、デバイス、アプリケーション、データなどへの不正アクセスが含まれる場合がある。デバイス管理サービス５２４は、構成、提供、セキュリティ、サポート、監視、報告、及び廃止などのサービスを含むことができる。ファイル共有サービス５６８は、ファイル管理サービス、ファイル記憶サービス、ファイル共同作業サービスなどを含むことができる。ポリシーマネージャサービス５７０は、デバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービスなどを含むことができる。ソーシャル統合サービス５７２は、連絡先統合サービス、共同作業サービス、Ｆａｃｅｂｏｏｋ、Ｔｗｉｔｔｅｒ、及びＬｉｋｅｄＩｎなどのソーシャルネットワークとの統合、などを含むことができる。アプリケーションコントローラサービス５７４は、管理サービス、提供サービス、展開サービス、割り当てサービス、失効サービス、ラッピングサービスなどを含むことができる。
【００６４】
企業モビリティ技術アーキテクチャ５００は、アプリケーションストア５７８を含むことができる。アプリケーションストア５７８は、アンラップアプリケーション５８０、事前ラップアプリケーション５８２などを含むことができる。アプリケーションは、アプリケーションコントローラ５７４からアプリケーションストア５７８に投入されてもよい。アプリケーションストア５７８は、アクセスゲートウェイ５６０、公共インターネット５４８などを通じてモバイルデバイス５０２によってアクセスされてもよい。アプリケーションストアには、直感的で使いやすいユーザインターフェースが提供される場合がある。
【００６５】
ソフトウェア開発キット５８４は、本明細書で前記したように、アプリケーションをラッピングすることによってユーザによって選択されたアプリケーションを保護する能力をユーザに提供することができる。ソフトウェア開発キット５８４を使用してラップされたアプリケーションは、アプリケーションコントローラ５７４を使用してアプリケーションストア５７８にそれを入力することによって、モバイルデバイス５０２に利用可能にされ得る。
【００６６】
企業モビリティ技術アーキテクチャ５００は、管理及び分析能力５８８を含むことができる。管理及び分析能力５８８は、リソースの使用方法、リソースの使用頻度などに関連する情報を提供することができる。リソースには、デバイス、アプリケーション、データなどが含まれる。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードし、どのアプリケーションがどのデータにアクセスするかなどを含むことができる。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションによって特定のデータのセットが何回アクセスされたかなどを含む。
【００６７】
図６は、別の例示的な企業モビリティ管理システム６００である。図５を参照して上記したモビリティ管理システム５００の構成要素のいくつかは、簡略化のため省略されている。図６に示すシステム６００のアーキテクチャは、図５を参照して上記したシステム５００のアーキテクチャと多くの点で類似しており、上述の付加的特徴を含むことができる。
【００６８】
この場合、左側は、クライアントエージェント６０４を有する登録されたモバイルデバイス６０２を表し、クライアントエージェント６０４は、（Ａｃｃｅｓｓ  Ｇａｔｅｗａｙ及びアプリケーションコントローラ機能を含む）ゲートウェイサーバ６０６と対話して、上記右側に示すように、Ｅｘｃｈａｎｇｅ、Ｓｈａｒｅｐｏｉｎｔ、公開キーインフラストラクチャ（ＰＫＩ）Ｒｅｓｏｕｒｃｅｓ、Ｋｅｒｂｅｒｏｓ  Ｒｅｓｏｕｒｃｅｓ、Ｃｅｒｔｉｆｉｃａｔｅ  Ｉｎｓｓｕａｎｃｅサービスなど様々な企業リソース６０８及びサービス６０９にアクセスする。特に図示していないが、モバイルデバイス６０２は、アプリケーションの選択及びダウンロードのために企業アプリケーションストア（ＳｔｏｒｅＦｒｏｎｔ）と対話することもできる。
【００６９】
クライアントエージェント６０４は、Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｕｓｅｒ  Ｅｘｐｅｒｉｅｎｃｅ（ＨＤＸ）／ＩＣＡディスプレイリモーティングプロトコルを使用してアクセスされるＥｎｔｅｒｐｒｉｓｅデータセンターでホストされるＷｉｎｄｏｗｓ（登録商標）アプリ／デスクトップのＵＩ（ユーザインタ−フェース）仲介として機能する。クライアントエージェント６０４は、また、ネイティブｉＯＳまたはＡｎｄｒｏｉｄ（登録商標）アプリケーションなど、モバイルデバイス６０２上のネイティブアプリケーションのインストール及び管理をサポートする。例えば、上図に示す管理されたアプリケーション６１０（メール、ブラウザ、ラップされたアプリケーション）は、全て、デバイス上でローカルに実行されるネイティブアプリケーションである。クライアントエージェント６０４及びこのアーキテクチャのアプリケーション管理フレームワークは、接続及びＳＳＯ（シングルサインオン）などのポリシー駆動型管理能力及び機能を企業リソース／サービス６０８に提供するように動作する。クライアントエージェント６０４は、企業、通常はＡｃｃｅｓｓ  Ｇａｔｅｗａｙ（ＡＧ）に対するプライマリユーザ認証を他のゲートウェイサーバ構成要素へのＳＳＯを用いて処理する。クライアントエージェント６０４は、ゲートウェイサーバ６０６からポリシーを取得して、モバイルデバイス６０２の管理されたアプリケーション６１０の挙動を制御する。
【００７０】
ネイティブアプリケーション６１０とクライアントエージェント６０４との間のＳｅｃｕｒｅなプロセス間通信（ＩＰＣ）リンク６１２は、クライアントエージェントが、各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク６１４によって実施されるポリシーを供給できるようにする管理チャネルを表す。ＩＰＣチャネル６１２は、また、クライアントエージェント６０４が、企業リソース６０８への接続及びＳＳＯの使用を可能にする信用情報及び認証情報を供給することができるようにする。最後に、ＩＰＣチャネル６１２は、アプリケーション管理フレームワーク６１４が、オンライン及びオフライン認証など、クライアントエージェント６０４によって実行されるユーザインターフェース機能を呼び出すことができるようにする。
【００７１】
クライアントエージェント６０４とゲートウェイサーバ６０６との間の通信は、本質的に、各ネイティブ管理されたアプリケーション６１０をラッピングするアプリケーション管理フレームワーク６１４からの管理チャネルの拡張である。アプリケーション管理フレームワーク６１４は、ポリシー情報をクライアントエージェント６０４に要求し、クライアントエージェント６０４は、それをゲートウェイサーバ６０６に要求する。アプリケーション管理フレームワーク６１４は、認証を要求し、クライアントエージェント６０４は、ゲートウェイサーバ６０６の（ＮｅｔＳｃａｌｅｒ  Ａｃｃｅｓｓ  Ｇａｔｅｗａｙとしても知られる）ゲートウェイサービス部分にログインする。クライアントエージェント６０４は、ローカルデータ保管庫６１６の暗号化キーを導出するための入力資料を生成し得るゲートウェイサーバ６０６上のサポートサービスを呼び出し、または、以下でさらに十分に説明するように、ＰＫＩ保護リソースへの直接認証を可能にするクライアント信用情報を提供することができる。
【００７２】
より詳細には、アプリケーション管理フレームワーク６１４は、各管理されたアプリケーション６１０を「ラップする」。これは、明示的な構築ステップ、または構築後の処理ステップを介して組み込むことができる。アプリケーション管理フレームワーク６１４は、アプリケーション６１０の最初の起動時にクライアントエージェント６０４と「ペアリング」して、セキュアＩＰＣチャネルを初期化し、そのアプリケーションのポリシーを取得することができる。アプリケーション管理フレームワーク６１４は、クライアントエージェントのログイン依存性、及びローカルＯＳサービスの使用方法またはアプリケーション６１０との対話方法を制限するいくつかの包含ポリシーなど、ローカルに適用されるポリシーの関連部分を実施することができる。
【００７３】
アプリケーション管理フレームワーク６１４は、ＳｅｃｕｒｅＩＰＣチャネル６１２を介してクライアントエージェント６０４によって提供されるサービスを使用して、認証及び内部ネットワークアクセスを容易にすることができる。私設及び共有データ保管庫６１６（コンテナ）のキー管理は、管理されたアプリケーション６１０とクライアントエージェント６０４との間の適切な対話によっても管理することができる。保管庫６１６は、オンライン認証後にのみ利用可能であってもよいし、ポリシーによって許可されている場合にオフライン認証後に利用可能であってもよい。保管庫６１６の第１の使用は、オンライン認証を必要とすることがあり、オフラインアクセスは、せいぜい、オンライン認証が再び必要とされる前のポリシーリフレッシュ期間までに制限され得る。
【００７４】
内部リソースへのネットワークアクセスは、個々の管理されたアプリケーション６１０からＡｃｃｅｓｓ  Ｇａｔｅｗａｙ６０６を通じて直接発生することがある。アプリケーション管理フレームワーク６１４は、各アプリケーション６１０に代わってネットワークアクセスを編成する役割を担う。クライアントエージェント６０４は、オンライン認証の後に得られる、適切な時間制限された第２の信用情報を提供することによって、これらのネットワーク接続を容易にすることができる。リバーススローププロトコル接続、及びエンド・ツー・エンドＶＰＮスタイルのトンネル６１８など、複数のモードのネットワーク接続を使用することができる。
【００７５】
Ｍａｉｌ  ａｎｄ  Ｂｒｏｗｓｅｒ管理アプリケーション６１０は、特別な状態を有し、かつ、任意のラップされたアプリケーションに対して一般に利用可能ではない可能性がある施設を利用することができる。例えば、Ｍａｉｌアプリケーションは、完全なＡＧログオンを必要とせずに長時間にわたってＥｘｃｈａｎｇｅにアクセスできる特別なバックグラウンドネットワークアクセスメカニズムを使用する場合がある。Ｂｒｏｗｓｅｒアプリケーションは、複数の私設データ保管庫を使用して、異なる種類のデータ保管庫を分離する場合がある。
【００７６】
このアーキテクチャは、様々な他のセキュリティ機能の組み込みをサポートする。例えば、（ゲートウェイサービスを含む）ゲートウェイサーバ６０６は、場合によってはアクティブディレクトリ（ＡＤ）パスワードを検証する必要がない。ＡＤパスワードが、状況によっては、一部のユーザに対して認証要素として使用されるかは、企業の裁量に委ねられる。ユーザがオンラインまたはオフラインである（すなわち、ネットワークに接続されている、または接続されていない）場合、異なる認証方法を使用することができる。
【００７７】
ステップアップ認証は、ゲートウェイサーバ６０６が、強力な認証を必要とする高度に分類されたデータへのアクセスを許可された管理されたネイティブアプリケーション６１０を識別し、かつ、たとえそれが以前のより弱いレベルのログイン後にユーザによって再認証が要求されたとしても、適切な認証を実行した後にのみこれらのアプリケーションへのアクセスが許可されていることを確実にする機能である。
【００７８】
この解決策の別のセキュリティ機能は、モバイルデバイス６０２上のデータ保管庫６１６（コンテナ）の暗号化である。保管庫６１６は、ファイル、データベース、及び構成を含む全てのオンデバイスデータが保護されるように暗号化されてもよい。オンライン保管庫の場合、キーはサーバ（ゲートウェイサーバ６０６）に記憶され、オフライン保管庫の場合、キーのローカルコピーはユーザパスワードまたは生体検証によって保護されてもよい。データがデバイス６０２上でセキュアコンテナ６１６の中にローカルに格納されるとき、最小限のＡＥＳ２５６暗号化アルゴリズムが利用されることが好ましい。
【００７９】
他のセキュアなコンテナの機能も実現することができる。例えば、アプリケーション６１０内で起こっている全てのセキュリティイベントが記録され、バックエンドに報告されるロギング機能が含まれてもよい。アプリケーション６１０が改ざんを検出した場合、関連付けられた暗号化キーがランダムデータで上書きされ、ユーザデータが破壊されたというヒントがファイルシステムに残らないなど、データ消去がサポートされてもよい。スクリーンショットの保護は、アプリケーションによってスクリーンショットにデータが格納されないようにする別の機能である。例えば、キーウィンドウの隠されたプロパティをＹＥＳに設定することができる。これにより、画面上に現在表示されているコンテンツを隠すことができるため、通常はコンテンツが存在する、空のスクリーンショットが表示されることになる。
【００８０】
例えば、コピーし、または外部アプリケーションに送信するなどして、データがアプリケーションコンテナの外部にローカルに転送されないようにすることで、ローカルなデータ転送を防止することができる。キーボードキャッシュ機能は、機密テキストフィールドのオートコレクト機能を無効にするように作動することがある。ＳＳＬ信用情報の検証は、ＳＳＬ信用情報をキーチェーンに格納する代わりに、アプリケーションが特にサーバのＳＳＬ信用情報を検証するように作動可能である。暗号化キー生成機能は、デバイス上のデータを暗号化するために使用されるキーが、ユーザによって供給されるパスフレーズまたは生体データ（オフラインアクセスが必要な場合）を使用して生成されるように使用することができる。オフラインアクセスが必要でない場合は、サーバ側でランダムに生成され、格納された別のキーと排他的論理和されてもよい。キー導出関数は、ユーザパスワードから生成されたキーが、その暗号ハッシュを作成するのではなく、ＫＤＦ（キー導出関数、特にパスワードベースのキー導出関数２（ＰＢＫＤＦ２））を使用するように作動することができる。前者は、ブルートフォース攻撃や辞書攻撃の影響を受けやすいキーとなる。
【００８１】
さらに、１つ以上の初期化ベクトルを暗号化方法に使用することができる。初期化ベクトルは、同じ暗号化されたデータの複数のコピーを生成し、異なる暗号文の出力をもたらし、再生攻撃と暗号解読攻撃の両方を防止する。これにより、また、データを暗号化するために使用された特定の初期化ベクトルがわからない場合に、盗まれた暗号化キーであっても、攻撃者が任意のデータを復号化することを防止する。さらに、認証及び復号化が使用されてもよく、ここで、アプリケーションデータは、ユーザがアプリケーション内で認証された後でのみ復号化される。別の機能は、メモリ内の機密データに関連し、必要なときにのみ（ディスクではなく）メモリに保存することができる。例えば、ログイン後にログイン信用情報はメモリから消去され、オブジェクトＣのインスタンス変数内の暗号化キー及びその他のデータは、簡単に参照できるため保存されない。その代わりに、メモリを手動で割り当てることができる。
【００８２】
非活動タイムアウトを実現することができ、非活動のポリシー定義期間後にユーザセッションが終了する。
【００８３】
アプリケーション管理フレームワーク６１４からのデータ漏洩は、他の方法で防止することができる。例えば、アプリケーション６１０がバックグラウンドに置かれている場合、メモリは、所定の（設定可能な）時間が経過した後に消去されてもよい。バックグラウンドになると、アプリケーションの最後に表示された画面のスナップショットがとられ、フォアグランドプロセスが固定される。スクリーンショットに機密データが含まれている可能性があるため、消去するべきである。
【００８４】
別のセキュリティ機能は、１つ以上のアプリケーションへのアクセスにＡＤ（アクティブディレクトリ）６２２パスワードを使用せずにＯＴＰ（ワンタイムパスワード）６２０を使用することに関する。場合によっては、自分のＡＤパスワードを知らない（または知ることを許可されていない）ユーザもいるので、これらのユーザは、ＳｅｃｕｒＩＤのようなハードウェアＯＴＰシステムを使用するなど、ＯＴＰ６２０を使用して認証することができる（ＯＴＰは、ＥｎｔｒｕｓｔまたはＧｅｍａｌｔｏなどの種々のベンダによっても提供され得る）。場合によっては、ユーザがユーザＩＤで認証した後、テキストがＯＴＰ６２０でユーザに送られる。場合によっては、これはオンラインでの使用のためにのみ実現することができ、プロンプトは単一のフィールドである。
【００８５】
オフラインパスワードは、オフライン使用が企業ポリシーを介して許可されているアプリケーション６１０のオフライン認証のために実現することができる。例えば、企業は、このようにアクセスされるＳｔｏｒｅＦｒｏｎｔを所望することができる。この場合、クライアントエージェント６０４は、ユーザにカスタムオフラインパスワードを設定するよう要求することができ、ＡＤパスワードは使用されない。ゲートウェイサーバ６０６は、標準的なＷｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒのパスワードの複雑な、しかし改変される可能性がある、要件に記載されているような、最小長、文字クラスの構成、及びパスワードのエイジに関して、パスワード標準を制御及び実現するためのポリシーを提供することができる。
【００８６】
別の機能は、（アプリケーション管理フレームワークのＭｉｃｒｏＶＰＮ機能を介してＰＫＩ保護されたウェブリソースにアクセスする目的のための）第２の信用情報としての特定のアプリケーション６１０用クライアント側証明書の有効化に関する。例えば、アプリケーションは、そのような証明書を利用することができる。この場合、ＡｃｔｉｖｅＳｙｎｃプロトコルを使用する証明書ベースの認証がサポートされてもよく、クライアントエージェント６０４からの証明書は、ゲートウェイサーバ６０６によって取り出され、キーチェーン内で使用されてもよい。各々の管理されたアプリケーションは、ゲートウェイサーバ６０６で定義されたラベルによって識別される１つの関連クライアント証明書を有することができる。
【００８７】
ゲートウェイサーバ６０６は、Ｅｎｔｅｒｐｒｉｓｅ専用ウェブサービスと対話して、クライアント証明書の発行をサポートし、関連する管理されたアプリケーションが内部ＰＫＩ保護リソースを認証できるようにすることができる。
【００８８】
クライアントエージェント６０４及びアプリケーション管理フレームワーク６１４は、内部ＰＫＩ保護ネットワークリソースへの認証のためにクライアント証明書を取得及び使用することをサポートするように拡張することができる。様々なレベルのセキュリティ及び／または分離要件に一致するような、複数の証明書がサポートされてもよい。証明書は、（それらのアプリケーションがウェブサービススタイルの通信パターンを使用し、アプリケーション管理フレームワークがｈｔｔｐｓ要求を調停することが合理的である場合に）、Ｍａｉｌ  ａｎｄ  Ｂｒｏｗｓｅｒの管理されたアプリケーション、最終的には任意のラップされたアプリケーションによって使用され得る。
【００８９】
ｉＯＳ上でのアプリケーション管理クライアント証明書のサポートは、各々の管理されたアプリケーションのｉＯＳキーチェーンに、公開キー暗号化標準（ＰＫＣＳ）１２ＢＬＯＢ（Ｂｉｎａｒｙ  Ｌａｒｇｅ  Ｏｂｊｅｃｔ）を各使用期間に移入することに依存する場合がある。アプリケーション管理フレームワークのクライアント証明書のサポートでは、私設のメモリ内キーストレージを用いたＨＴＴＰＳ実装が使用される。クライアント証明書は決してｉＯＳキーチェーンには存在せず、強力に保護された、潜在的に「オンラインのみ」のデータ値の中を除き、永続化されない。
【００９０】
相互ＳＳＬは、モバイルデバイス６０２が企業に対して認証されることを要求することによって付加的なセキュリティを提供するように実現されてもよく、その逆も可能である。ゲートウェイサーバ６０６への認証のための仮想スマートカードを実装することもできる。
【００９１】
限定的な及び完全な、両方のＫｅｒｂｅｒｏｓサポートは付加的機能である。完全サポート機能は、ＡＤパスワードまたは信頼できるクライアント証明書を使用して、Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ（ＡＤ）６２２に完全にＫｅｒｂｅｒｏｓログインし、Ｋｅｒｂｅｒｏｓサービスチケットを取得して、ＨＴＴＰ  Ｎｅｇｏｔｉａｔｅ認証問題に応答する能力に関連している。限定的なサポート機能は、Ｃｉｔｒｉｘ  Ａｃｃｅｓｓ  Ｇａｔｅｗａｙ  Ｅｎｔｅｒｐｒｉｓｅ  Ｅｄｉｔｉｏｎ（ＡＧＥＥ）の制限付き委任に関連し、ＡＧＥＥは、Ｋｅｒｂｅｒｏｓプロトコル移行を呼び出すことをサポートしているため、ＨＴＴＰ  Ｎｅｇｏｔｉａｔｅ認証問題に対応し、Ｋｅｒｂｅｒｏｓサービスチケット（制限付き委任の対象）を取得して使用できる。このメカニズムは、リバースウェブプロキシ（別名、企業仮想私設ネットワーク（ＣＶＰＮ））モードで、かつ、（ｈｔｔｐｓでなく）ｈｔｔｐ接続がＶＰＮ及びＭｉｃｒｏＶＰＮモードでプロキシされている場合に作動する。
【００９２】
別の機能は、ジェイルブレークまたはルーティング検出時に自動的に発生し、管理コンソールからのプッシュされたコマンドとして発生し、かつ、アプリケーション６１０が実行されていなくてもリモートワイプ機能を含み得、アプリケーションコンテナのロッキング及びワイピングに関する。
【００９３】
ユーザが、障害が発生した場合に複数の異なる場所のいずれかからサービスを受けることを可能にする、企業アプリケーションストアとアプリケーションコントローラのマルチサイトアーキテクチャまたは構成がサポートされている場合がある。
【００９４】
場合によっては、管理されたアプリケーション６１０は、ＡＰＩ（例えば、ＯｐｅｎＳＳＬ）を介して証明書及び秘密キーにアクセスすることが許可されてもよい。信頼され、管理された企業のアプリケーション６１０は、アプリケーションのクライアント証明書及び秘密キーを用いて特定の公開キー動作を実行することを許可されてもよい。アプリケーションがブラウザのように動作し、証明書へのアクセスが必要ない場合、アプリケーションが「誰ですか」に対して証明書を読み取る場合、アプリケーションが証明書を使用してセキュアなセッショントークンを構築する場合、及びアプリケーションが重要なデータ（例えば、取引ログ）のデジタル署名に、または一時的なデータ暗号化のために秘密キーを使用する場合など、様々な使用ケースが識別され、それに従って処理されることがある。
【００９５】
〈パスワード暗号化管理システム〉
図７は、本明細書に記載する１つ以上の例示的な態様を実施するために使用され得る例示的なシステムを示す。システム７００は、エンティティのいくつかのリソースが外部で管理されて、クラウドサービスプロバイダのクラウド内に配置される一方で、そのエンティティの他のリソースは、そのエンティティによって内部的に管理されて、それ自体のサーバまたは他のコンピューティングデバイス内に配置される、ハイブリッドクラウドコンピューティング環境の形態であってもよい。本明細書で使用されるように、用語「内部」の変形は、エンティティ自体によって管理される、及び／またはエンティティによって制御され、外部クラウドサービスプロバイダによって制御されない１つ以上のコンピューティングデバイスに格納される、リソース及びアプリケーションを指すことができる。一例として、リソースは、エンティティに関連付けられ認証されたユーザによるリモートアクセスのために、エンティティの構内サーバに格納されてもよい。例えば、特定のソフトウェアアプリケーション（例えば、内部アプリケーション）は、雇用者によって制御及び管理されるサーバに格納されてもよく、１人以上のその従業員によってアクセスされてもよい。本明細書で使用されるように、用語「外部」の変形は、クラウドサービスプロバイダによって管理される、及び／または外部クラウドサービスプロバイダによって制御される１つ以上のコンピューティングデバイスに格納されるリソース及びアプリケーションを指すことができる。一例として、リソースは、エンティティに関連付けられた認証されたユーザによるアクセスのために、クラウドサービスプロバイダのクラウドベースのサーバに格納されてもよい。そのような実施例では、リソースは、エンティティに関連付けられてもよい。
【００９６】
ハイブリッドクラウドコンピューティング環境（例えば、ハイブリッドクラウドコンピューティング環境７００）のユーザは、地理的にリモートな内部コンピューティングデバイスにインストールされた内部アプリケーションにアクセスを望む場合がある。一例として、ユーザは、Ｌｏｎｄｏｎのオフィスを訪れている間に、Ｖｉｒｇｉｎｉａのそのユーザの業務用コンピュータにインストールされているアプリケーションにアクセスを望むことがある。ユーザは、外部クラウドサービスを介して内部アプリケーションと、接続、及び／または、そうでなければ通信することができる。場合によっては、ユーザは、内部アプリケーションへのアクセスを得るため、認証のため内部アプリケーションにユーザの信用情報（例えば、名前及びパスワード）を提供しなければならない。そのような場合、ユーザの信用情報は、可逆的に暗号化され、外部クラウドサービスを介して内部アプリケーションに送られ、暗号化信用情報は、以下でさらに詳細に説明するように、内部アプリケーションによって復号化され使用され得る。
【００９７】
ハイブリッドクラウドコンピューティング環境７００は、公共ククラウドサービスを提供する外部クラウドサービスプロバイダ７１４を含むことができる。外部クラウドサービスプロバイダ７１４は、ユーザがインターネットを介してアクセスできるコンピューティングデバイス（図示せず）に格納されたアプリケーション及び／または他のリソースを含むことができる。外部クラウドサービスプロバイダ７１４は、また、特定の内部コンピューティングデバイスから、外部クラウドサービスプロバイダ７１４の一部ではないエンティティの異なる構内の別の内部コンピューティングデバイスに情報を転送することもできる。一例として、特定の地理的位置に配置された私設クラウドの一部であるコンピューティングデバイスは、外部クラウドを介して、別の地理的位置に配置され別の地理的位置に配置され、そのエンティティの私設クラウド（または、そのエンティティの異なる私設クラウドであり得る）の一部である、別のコンピューティングデバイスに情報を送ることができる。
【００９８】
ハイブリッドクラウドコンピューティング環境７００は、パーソナルコンピュータ、ラップトップ、タブレット、スマートフォンなどであってもよいリモートコンピューティングデバイス７０２を含むことができ、またまた上述されたコンピューティングデバイスの１つ以上の構成要素を含むことができる。いくつかの例では、リモートコンピューティングデバイス７０２は、ユーザのパーソナルデバイスであってもよい（例えば、ユーザはリモートコンピューティングデバイス７０２を所有することができる）。このような場合、リモートコンピューティングデバイス７０２は、内部クラウドの一部ではないことがあり得るが、ユーザが認証された後に内部クラウドにログインし、及び／または他の方法でアクセスすることができる。他の例では、リモートコンピューティングデバイス７０２は、内部クラウド（例えば、雇用者が提供するラップトップ）を管理及び制御するエンティティによって所有されてもよい。このような場合、ユーザがエンティティの構内の端末にリモートコンピューティングデバイス７０２を接続するとき、リモートコンピューティングデバイス７０２は内部クラウドの一部になり得る。そうではなく、ユーザがエンティティの構内の外で（例えば、ユーザの家で）リモートコンピューティングデバイス７０２を使用するとき、リモートコンピューティングデバイス７０２は内部クラウドの一部でないことがあり得るが、ユーザが（例えば、仮想私設ネットワーク（ＶＰＮ）接続を介して）認証された後に、内部クラウドにログインし、及び／または別の方法でアクセスすることができる。
【００９９】
リモートコンピューティングデバイス７０２は、リモートコンピューティングデバイス７０２にインストールされたクライアントソフトウェアであってもよいレシーバ７０４を含むことができる。レシーバ７０４は、リモートコンピューティングデバイス７０２が内部クラウドサービス及び／または外部クラウドサービスにアクセスすることを可能にする。一例として、リモートコンピューティングデバイス７０２は、レシーバ７０４を使用して、内部クラウド及び／または外部クラウドに格納されたアプリケーション、仮想デスクトップ及びデータにセキュアにアクセスすることができる。一実施例では、レシーバ７０４は、Ｆｔ．Ｌａｕｄｅｒｄａｌｅ，ＦｌｏｒｉｄａのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって開発されたＣｉｔｒｉｘ  Ｒｅｃｅｉｖｅｒであってもよい。
【０１００】
ハイブリッドクラウドコンピューティング環境７００は、全てのアプリケーションに対して統一されたフロントエンド（または、ユーザとバックエンドとの間のインタ−フェース）を提供できるゲートウェイ７０６を含むことができる。ゲートウェイ７０６は、レシーバ７０４を介してリモートコンピューティングデバイス７０２と通信し、リモートコンピューティングデバイス７０２を認証し、かつ、リモートデバイス７０２とのセキュアな接続を確立することができる。一例として、ゲートウェイ７０６及びレシーバ７０４は、セキュアな仮想私設ネットワーク接続を確立することができる。一実施例では、ゲートウェイ７０６は、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって開発されたＮｅｔＳｃａｌｅｒ  Ｇａｔｅｗａｙであってもよい。
【０１０１】
ゲートウェイ７０６は、リモートコンピューティングデバイス７０２及びレシーバ７０４をログインポータル７０８に接続することができる。ログインポータル７０８は、エンティティの内部及び／または外部のアプリケーション、デスクトップ及びリソースにアクセスするために、ユーザがユーザのＩＤ信用情報を入力する（例えば、ユーザ名及びパスワードなどのログイン情報を入力する）ためのウェブサイトであってもよい。ログインポータル７０８は、エンティティの内部ウェブサーバを介してリモートコンピューティングデバイス７０２に提供されてもよい。ログインポータル７０８は、外部ウェブサーバによって提供されないため、ユーザは、外部ウェブサーバ（例えば、外部クラウドサービスプロバイダ７１４）に、平文で（例えば暗号化されていないか、または難読化されていない形式で）自分のＩＤ信用情報を入力する必要はない。一実施例では、ログインポータル７０８は、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって開発されたＣｉｔｒｉｘ  ＳｔｏｒｅＦｒｏｎｔであってもよい。
【０１０２】
ハイブリッドクラウドコンピューティング環境７００の内部クラウドは、第１のワークスペースクラウドコネクタ７１０ａを含むことができ、第１のワークスペースクラウドコネクタ７１０ａは、内部クラウドから外部クラウドに送られているメッセージをインターセプトすることができる。例えば、リモートコンピューティングデバイス７０２、レシーバ７０４、ゲートウェイ７０６、またはログインポータル７０８（例えば、ウェブサーバ）のうちの１つが、ユーザのＩＤ信用情報（例えば、パスワード）を含むメッセージを外部クラウドサービスプロバイダ７１４に送信しようとするとき、第１のワークスペースクラウドコネクタ７１０ａはそのメッセージをインターセプトして、メッセージがまだ外部クラウドサービスプロバイダ７１４に送られないようにすることができる。１つ以上の構成では、第１のワークスペースクラウドコネクタ７１０ａは、リモートコンピューティングデバイス７０２、レシーバ７０４、ゲートウェイ７０６、またはログインポータル７０８のうちの１つ以上から送信された各々（例えば、全てのメッセージ）をインターセプトするように構成されてもよい。１つ以上の他の構成では、第１のワークスペースクラウドコネクタ７１０ａは、ユーザＩＤ信用情報を含むメッセージのみをインターセプトすることができる。そのような構成では、メッセージは、フラグ、例えば、そのメッセージがユーザＩＤ信用情報を含むことを示す、メッセージのヘッダを含み、そのため、第１のワークスペースクラウドコネクタ７１０ａは、そのヘッダを有するメッセージは第１のワークスペースクラウドコネクタ７１０ａがインターセプトするメッセージであると識別することができる。第１のワークスペースクラウドコネクタ７１０ａは、メッセージからユーザのＩＤ信用情報を抽出して除去し、次に第１のワークスペースクラウドコネクタ７１０ａによって生成された暗号化キーを使用して、そのメッセージを暗号化する。さらに、第１のワークスペースクラウドコネクタ７１０ａは、以下にさらに詳述するように、暗号化キーのハッシュを生成し、ユーザの暗号化されたＩＤ信用情報及び暗号化キーのハッシュの両方を含むメッセージを外部クラウドサービスプロバイダ７１４（例えば、第１の経路）に送ることができる。加えて、第１のワークスペースクラウドコネクタ７１０ａは、外部クラウドサービスプロバイダ７１４から仮想配信エージェント７１２のアドレスを受信すると、ログインポータル７０８及びゲートウェイ７０６（第２の経路）を介して仮想配信エージェント７１２に暗号化キーを送ることができ、これについても以下でさらに詳詳する。
【０１０３】
ハイブリッドクラウドコンピューティング環境７００の内部クラウドは、第２のワークスペースクラウドコネクタ７１０ｂを含み、第２のワークスペースクラウドコネクタ７１０ｂは、外部クラウドサービスプロバイダ７１４から受信したメッセージを仮想配信エージェント７１２に中継することができる。中継されたメッセージは、ユーザの暗号化されたＩＤ信用情及び暗号化キーのハッシュを含むことができる。仮想配信エージェント７１２は、中継されたメッセージと、リモートコンピューティングデバイス７０２から送信された、暗号化キーを含むメッセージとを受信した結果、暗号化キーを復号化すべきかを判定することができる。例えば、仮想配信エージェント７１２は、受信した暗号化キーのハッシュを生成し、生成されたハッシュを、中継されたメッセージで受信したハッシュと比較することができる。それらが一致する場合、仮想配信エージェント７１２は、暗号化キーを使用してユーザの暗号化されたＩＤ信用情報を復号化して、内部アプリケーションまたはリソースとともに使用するためのユーザのＩＤ信用情報を得ることができる。ワークスペースクラウドコネクタ７１０、仮想配信エージェント７１２、及びクラウドサービスプロバイダ７１４の各々は、互いに通信可能に接続された１つ以上のコンピューティングデバイス（図示せず）を介して提供されてもよい。
【０１０４】
ゲートウェイ７０６、ログインポータル７０８、及び第１のワークスペースクラウドコネクタ７１０ａは、それぞれ（例えば、全て）が内部構内地理的位置Ａ（例えば上記の例に従えばＬｏｎｄｏｎオフィス）に地理的に配置されてもよい。仮想配信エージェント７１２及び第２のワークスペースクラウドコネクタ７１０ｂは、異なる構内位置Ｂ（例えば上記の例に従えばＶｉｒｇｉｎｉａオフィス）に地理的に配置されてもよい。ゲートウェイ７０６、ログインポータル７０８、第１のワークスペースクラウドコネクタ７１０ａ、第２のワークスペースクラウドコネクタ７１０ｂ、及び仮想配信エージェント７１２は、それぞれ（例えば、全て）がエンティティの同じ内部構内位置に地理的に配置されてもよい。そのような構成では、第１のワークスペースクラウドコネクタ７１０ａ及び第２のワークスペースクラウドコネクタ７１０ｂの機能及び特徴を組み合わせて、単一のワークスペースクラウドコネクタを形成することができる。
【０１０５】
図８〜図９は、外部クラウドが、本明細書で説明する１つ以上の例示的な態様に従って信用情報にアクセスしないような方法で、外部クラウドを通じてユーザのＩＤ信用情報をユーザにセキュアに送信する例示的なメッセージフローを示す。１つ以上の実施形態では、図８〜図９に示すステップ、及び／またはその１つ以上のステップは、１つ以上のコンピューティングデバイスによって実行されてもよい。他の実施形態では、図８〜図９に示す方法、及び／またはその１つ以上のステップは、非一時的なコンピュータ可読メモリのようなコンピュータ可読媒体に格納されたコンピュータ実行可能命令に具体化することができる。いくつかの例では、図８〜９の１つ以上のステップは、異なる順序で実行されてもよい。いくつかの例では、図８〜９の１つ以上のステップは、省略されてもよいし、そうでなければ実行されなくてもよい。
【０１０６】
図８〜９の例示的なメッセージフロー図におけるステップは、リモートコンピューティングデバイス７０２から外部クラウド７１４を通じて、内部コンピューティングデバイスの仮想配信エージェント７１２を介して実行される内部アプリケーションに、ユーザのＩＤ信用情報をセキュアに送信する方法を記載する。場合によっては、内部アプリケーションは、ユーザ名とパスワードなどの特定の形式のＩＤ信用情報のみを受け入れることができる。このような場合、ＯＡｕｔｈ及びＳＡＭＬ  ＩＤアサーションは、ユーザを認証するために、内部アプリケーションによって使用できないことがある。ユーザのログインゲートウェイ（例えば、ゲートウェイ７０６）は、仮想デスクトップインフラストラクチャ（ＶＤＩ）が配置されているゲートウェイと同じでない可能性があるため、ＯＡｕｔｈまたはＳＡＭＬを使用すると、内部アプリケーションが外部クラウドサービスによって使用されるＯＡｕｔｈまたはＳＡＭＬ識別アサーションを受け入れない可能性があるので、ユーザは、二度、すなわち、一度はゲートウェイにログインするために、次に内部アプリケーションにアクセスするために再度、ユーザのＩＤ信用情報を入力する。しかし、以下で詳細に説明するように、図８〜９のフロー図に記載するセキュアな送信方法を用いることによって、ユーザは、ログインゲートウェイにアクセスするために一度、信用情報を入力することができ、これらの信用情報は外部クラウドサービスを介して内部アプリケーションにセキュアに送信され得る。ユーザのＩＤ信用情報は、内部アプリケーションによって受け入れ可能な形式であるため、内部アプリケーションは、ユーザのＩＤ信用情報を認証及び／または別の方法で検証した後、ユーザにアクセスさせることができる。その結果、ユーザはＩＤ信用情報を一度入力することができる。すなわち、ＩＤ信用情報を重複して二度入力する必要がないため、ユーザのエクスペリエンスが向上する可能性がある。
【０１０７】
メッセージフローは、リモートコンピューティングデバイス７０２がユーザからＩＤ信用情報を受信し、ユーザのＩＤ信用情報をログインポータル７０８に送信することができるステップ８０２で開始することができる。ユーザの信用情報は、１つ以上のユーザ名、パスワード、パーソナル識別番号（ｐｉｎ）、生体データ（例えば、指紋、顔写真、音声録音など）、または特定の内部アプリケーションまたはリソースにアクセスするための認証に使用される任意のデータであり得る。上記のＬｏｎｄｏｎ／Ｖｉｒｇｉｎｉａの例によると、ユーザ及びリモートコンピューティングデバイス７０２はエンティティのＬｏｎｄｏｎオフィス内にあってもよく、ＶＤＩに関連付けられたゲートウェイはＶｉｒｇｉｎｉａオフィス内に配置されていてもよい。例えば、ユーザは、Ｌｏｎｄｏｎオフィスにいる間に、Ｖｉｒｇｉｎｉａオフィスに配置されたユーザの業務用コンピュータにインストールされた内部アプリケーションにリモートでアクセスする必要があり得る。したがって、ユーザは、リモートコンピューティングデバイス７０２において、ログインポータル７０８への送信のために、内部アプリケーションのユーザのＩＤ信用情報を入力することができる。
【０１０８】
ユーザ及びリモートコンピューティングデバイス７０２を認証した後、ステップ８０４で、ログインポータル４０８は、ユーザのＩＤ信用情報をエンティティ構内（例えば、エンティティの内部クラウドサービスの一部）に配置された第１のワークスペースクラウドコネクタ７１０ａに送信することができる。いくつかの例では、ログインポータル７０８は、ユーザのＩＤ信用情報を外部クラウドサービスプロバイダ７１４に送信することを意図している場合がある。そのような場合、第１のワークスペースクラウドコネクタ７１０ａは、ＩＤ信用情報を含むメッセージまたは送信を識別し、それらのメッセージまたは送信をインターセプトして、暗号化されていないＩＤ信用情報が外部クラウドサービスプロバイダ７１４に送られないようにしてもよい。第１のワークスペースクラウドコネクタ７１４は、ＩＤ信用情報のために各メッセージを検査／解析するか、またはメッセージがＩＤ信用情報を含むことを示すフラグを含むかを判定することによって、そのようなメッセージを識別することができる。いくつかの例では、ログインポータル７０８は、ユーザのＩＤ信用情報を第１のワークスペースクラウドコネクタ７１０ａに送信することを意図しており、そのような情報を直接外部クラウドサービスプロバイダ７１４に送信することを意図していしない場合がある。そのような場合、第１のワークスペースクラウドコネクタ７１０ａは、外部クラウドサービスプロバイダ７１４に直接送ることを意図したメッセージをインターセプトしないことがある。第１のワークスペースクラウドコネクタ７１０ａがＩＤ信用情報を含むと識別する各メッセージまたは送信に対して、第１のワークスペースクラウドコネクタ７１０ａは、ユーザのＩＤ信用情報を解析及び抽出して、それをメッセージから除去することができる。加えて、第１のワークスペースクラウドコネクタ７１０ａは、メッセージが外部クラウドサービスプロバイダ７１４に送信されるのを防止／または他の方法で積極的にブロックすることができる。
【０１０９】
ステップ８０６において、第１のワークスペースクラウドコネクタ７１０ａは、ユーザのＩＤ信用情報を暗号化及び復号化する際に使用するための暗号化キーを生成することができる。キーは、ランダムキー生成器、擬似ランダムキー生成器、または任意の他のキー生成器を使用して生成することができる。一例として、暗号化キーは、セキュアにランダムな１２８ビットの独立コンピューティングアーキテクチャ（ＩＣＡ）ログオンチケットであってもよい。ＩＣＡは、ユーザがクライアントとサーバ間のリンクを使用してデータを格納できる特定のファイルタイプであるため、ユーザはソフトウェアを実際にクライアントにインストールしなくても、リモートサーバに接続してソフトウェアアプリケーションを使用できる。
【０１１０】
ステップ８０８において、第１のワークスペースクラウドコネクタ７１０ａは、暗号化キーを使用してユーザのＩＤ信用情報を暗号化して、暗号化されたＩＤ信用情報を生成することができる。使用される暗号化メカニズムは、高度暗号化標準（ＡＥＳ）などの任意の可逆暗号化メカニズムとすることができる。可逆暗号化メカニズムを有することにより、仮想配信エージェント７１２は、後にさらに詳細に説明するように、生成された暗号化キーを使用して、暗号化されたＩＤ信用情報を後で復号化することができる。ステップ８１０において、第１のワークスペースクラウドコネクタ７１０ａは、生成された暗号化キーをハッシュして、第１のハッシュ（例えば、ハッシュ１）を生成することができる。第１のハッシュは、ハッシュ値、ハッシュコード、またはハッシュサムの形式であってもよい。第１のハッシュは、例えばＳＨＡ−２などの任意のハッシュ関数、または一方向暗号化関数を使用して生成することができる。
【０１１１】
ステップ８１２において、第１のワークスペースクラウドコネクタ７１０ａは、インターセプトされたメッセージ内のユーザのＩＤ信用情報をユーザの暗号化ＩＤ信用情報、及び暗号化キーの第１のハッシュで置き換えることができ、かつ、そのメッセージを外部クラウドサービスプロバイダ７１４に送信することができる。いくつかの実施形態では、第１のクラウドコネクタ７１０ａは、インターセプトされたメッセージを改変するのではなく、新しいメッセージを生成することができる。メッセージは、任意のプロトコルを介して送信されてもよい。一例として、メッセージは、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって開発されたＣｉｔｒｉｘ  ＮＦｕｓｅ  ＸＭＬプロトコルを使用して、各々がＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって開発された、外部クラウドサービスプロバイダのＸｅｎＡｐｐコントローラ及びＸｅｎｄｅｓｋｔｏｐコントローラに送信されてもよい。
【０１１２】
ステップ８１４において、外部クラウドサービスプロバイダ７１４は、ユーザの暗号化されたＩＤ信用情報、及び暗号化キーの第１のハッシュを含むメッセージを第２のワークスペースクラウドコネクタ７１０ｂに転送し、第２のワークスペースクラウドコネクタ７１０ｂはステップ８１６において、そのメッセージをエンティティの構内（例えば、内部クラウドサービス）に存在する仮想配信エージェント７１２に転送することができる。ユーザのＩＤ信用情報は暗号化されているので、外部クラウドサービスプロバイダ７１４は、暗号化されていないバージョンのユーザのＩＤ信用情報にアクセスすることができず、したがってセキュリティが維持される。加えて、ステップ８１４において、外部クラウドサービスプロバイダ７１４は、ユーザまたはリモートコンピューティングデバイス７０２の（例えば、受信メッセージに含まれる）１つ以上のルーティングポリシー、ロードバランシング、及び汎用識別子を使用して、複数の仮想配信エージェントのうちのいずれにメッセージをルーティングするかを決定する。
【０１１３】
ステップ８１８において、仮想配信エージェント７１２は、ユーザの暗号化されたＩＤ信用情報への第１のハッシュのマッピングを生成することができる。例えば、仮想配信エージェント７１２は、第１のハッシュ及び暗号化されたパスワードを仮想配信エージェント７１２によってアクセス可能なデータベースのマッピングテーブルに格納することができる。仮想配信エージェント７１２は、複数のメッセージ（例えば、数百または数千のメッセージ）を受信している可能性があるため、マッピングテーブルを使用して第１のハッシュをユーザの暗号化されたＩＤ信用情報にマッピングすることは、適切な第１のハッシュ及び暗号化されたＩＤ信用情報が、以下にさらに詳細に説明するように、ハッシュを比較し、かつ、暗号化されたＩＤ信用情報を復号化する際に使用するのに識別されることを確実にするのに役立つ。
【０１１４】
ステップ８２０において、仮想配信エージェント７１２のネットワークアドレス（本明細書ではＶＤＡアドレスともいう）を含む肯定応答が第２のワークスペースクラウドコネクタ７１０ｂに送信され、ステップ８２２において、第２のワークスペースクラウドコネクタ７１０ｂは肯定応答を外部クラウドサービスプロバイダ７１４に転送することができる。ステップ８２４において、外部クラウドサービスプロバイダ７１４は、ＶＤＡアドレスを第１のワークスペースクラウドコネクタ７１０ａに送信することができる。ステップ８２６において、第１のワークスペースクラウドコネクタ７１０ａは、ＶＤＡアドレス及び暗号化キーをログインポータル７０８に送信することができ、ログインポータル７０８は、ステップ８２８において、ＶＤＡアドレス及び暗号化キーをリモートコンピューティングデバイス７０２に（例えば、ゲートウェイ７０６及びレシーバ７０４を介して）転送することができる。ステップ８３０において、リモートコンピューティングデバイス７０２は、ＶＤＡアドレスを使用して、仮想配信エージェント７１２に暗号化キーを送信することができる。送信は、レシーバ７０４及びゲートウェイ７０６を介して送られてもよい。暗号化キーは、ＩＣＡログオンチケットの形式であってもよい。すなわち、ＩＣＡログオンチケットの値またはフィールドは、暗号化キーとすることができる。他の例では、ＩＣＡチケットは、暗号化キーのための別個のフィールドを含むことができる。
【０１１５】
ステップ８３２において、仮想配信エージェント７１２は、暗号化キーの第２のハッシュ（例えば、ハッシュ２）を生成するために暗号化キーをハッシュすることができる。第２のハッシュは、第１のハッシュと同じ形式（例えば、ハッシュ値、ハッシュコードまたはハッシュサム）であってもよく、ステップ８１０において第１のハッシュ（例えば、ＳＨＡ−２）を生成するのに使用されたのと同じハッシュ関数を使用して生成されてもよい。ステップ８３４では、仮想配信エージェント７１２は、生成された第２のハッシュを使用して、マッチングが見つかるまで第１のハッシュをマッピングテーブルの各ハッシュと比較することにより、マッピングテーブルにおいて、第１のハッシュ及び第１のハッシュの対応する暗号化されたＩＤ信用情報をルックアップすることができる。第２のハッシュがテーブルに格納されたハッシュのいずれとも一致しない場合、仮想配信エージェント７１２は、内部アプリケーションへのアクセスを許可せず（例えば、アクセスをブロックし）、ユーザに表示するために拒否メッセージをリモートコンピューティングデバイス７０２に送ることができる。そうではなく、第２のハッシュがテーブルに格納されたハッシュの１つ（例えば、第１のハッシュ）と一致する場合、仮想配信エージェント７１２は、ステップ８３６において、第１のハッシュを使用して、テーブル内の第１のハッシュの対応する（例えば、マッピングされた）暗号化されたＩＤ信用情報を第１のハッシュを識別し、かつ、ステップ８３０で受信した暗号化キーを使用して、ユーザの暗号化されたＩＤ信用情報を復号化し、暗号化されていないバージョンのユーザのＩＤ信用情報（例えば、平文バージョンのユーザのユーザ名及びパスワード）を生成することができる。ステップ８３８において、仮想配信エージェント７１２は、ユーザセッションを作成するための認証用のユーザのＩＤ信用情報を内部アプリケーションに提供することができる。内部クラウド内のコンピューティングデバイス（例えば、上記の例に従えば、Ｖｉｒｇｉｎｉａオフィス内のユーザの業務用コンピュータ）に存在する内部アプリケーションは、ユーザのＩＤ信用情報を使用してユーザを認証し、認証に基づいて内部アプリケーションへのアクセスを許可または拒否することができる。
【０１１６】
第２のハッシュをマッピングテーブルの各ハッシュと比較することによって第１のハッシュを識別するために第２のハッシュを使用するのではなく、加えて、または代わりに、特定の識別子（例えば、テーブル行識別子）を使用することができる。そのような場合、仮想配信エージェント７１２は、マッピングテーブルに第１のハッシュ、及び対応するＩＤ信用情報を格納するときに特定の識別子を生成して、仮想配信エージェント７１２に転送するためにリモートコンピューティングデバイス７０２に後方送信するＶＤＡアドレスにその識別子を付加することができる。次に、仮想配信エージェント７１２は、第２のハッシュと比較するために第１のハッシュをルックアップするのにその識別子を使用することができる。
【０１１７】
図８〜９の方法を使用する結果として、エンティティのＬｏｎｄｏｎオフィス内のユーザは、外部クラウドサービスプロバイダを使用してＶｉｒｇｉｎｉａオフィス内の内部アプリケーションにセキュアにアクセスするのにリモートコンピューティングデバイス７０２を使用することができる。ユーザのＩＤ信用情報は、外部クラウドサービスプロバイダ７１４を使用している場合であっても、セキュアに内部アプリケーションに送信される。外部クラウドサービスプロバイダ７１４は、ユーザの暗号化されたＩＤ信用情報を受信することができるが、ユーザの暗号化されていない（例えば平文）バージョンのＩＤ信用情報はセキュリティを維持するために受信しないことがある。さらに、この方法は、特定の形式のＩＤ信用情報（例えば、ユーザ名及びパスワード）を使用する内部アプリケーションにアクセスするためにユーザがユーザのＩＤ信用情報を複数回入力する必要がなく、異なる形式（例えば、ＳＡＭＬまたはＯＡｕｔｈのＩＤアサーション）のＩＤ信用情報を使用しない可能性があるので、ユーザの利便性を高める。加えて暗号化キーは、正しい仮想配信エージェントに送られるユーザのＩＤ信用情報とは完全に異なった、仮想配信エージェント７１２への経路をとるので、暗号化キーが間違った仮想配信エージェントに送信された場合、その仮想配信エージェントは、ユーザの暗号化されたＩＤ信用情報を復号化することができない可能性がある。同様に、ユーザの暗号化されたＩＤ信用情報が間違った仮想配信エージェントに送信された場合、その仮想配信エージェントはユーザの暗号化されたＩＤ信用情報を復号化できないことがある。
【０１１８】
１つ以上の追加または代替の構成では、第１のワークスペースクラウドコネクタ７１０ａは、ユーザのＩＤ信用情報をランダムに生成されたトークンで置き換え、第１のワークスペースクラウドコネクタ７１０ａに格納された信用情報ウォレットにユーザのＩＤ信用情報を保持する。信用情報ウォレットは、各ワークスペースクラウドコネクタ（例えば、第２のワークスペースクラウドコネクタ７１０ｂ）によって複製されてもよい。外部クラウドサービスプロバイダ７１４に送られるメッセージは、ユーザの暗号化されたＩＤ信用情報ではなく、トークンを含むことができる。第２のワークスペースクラウドコネクタ７１０ｂは、外部クラウドサービスプロバイダ７１４から受信したトークンを使用して、ユーザのＩＤ信用情報をルックアップし、ユーザのＩＤ信用情報を仮想配信エージェント７１２に提供することができる。その結果、ユーザの（暗号化された形式であっても）ＩＤ信用情報は、外部クラウドサービスプロバイダ７１４に送信されない可能性がある。
【０１１９】
図８〜９に記載した上記の方法は、マルチユーザシステム内の任意のユーザによって外部クラウドに送られていることを意図された各メッセージに対して適用（例えば、繰り返）されてもよい。
【０１２０】
主題は、構造的特徴及び／または方法論的動作に特有の言語で説明されているが、添付のクレームに規定した主題は、必ずしも上述の特定の特徴または動作に限定されないことを理解されたい。むしろ、上記の特定の特徴及び動作は、クレームを実施する例示的な形態として開示される。
【０１２１】
関連出願
本出願は、ＰＡＳＳＷＯＲＤ  ＥＮＣＲＹＰＴＩＯＮ  ＦＯＲ  ＨＹＢＲＩＤ  ＳＥＲＶＩＣＥＳと題して２０１６年５月９日に出願された米国非仮特許出願第１５／１４９，７０７号、及びＰＡＳＳＷＯＲＤ  ＥＮＣＲＹＰＴＩＯＮ  ＦＯＲ  ＨＹＢＲＩＤ  ＣＬＯＵＤ  ＳＥＲＶＩＣＥＳと題して２０１５年５月１０日に出願された米国仮特許出願第６２／１５９，３２０号の優先権と、その利益を主張する。本先行出願は、その全体が参照により本明細書に組み込まれる。
【図１】
0006539357.tif 000002
【図２】
0006539357.tif 000003
【図３】
0006539357.tif 000004
【図４】
0006539357.tif 000005
【図５】
0006539357.tif 000006
【図６】
0006539357.tif 000007
【図７】
0006539357.tif 000008
【図８】
0006539357.tif 000009
【図９】
0006539357.tif 000010