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