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