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