(57)【特許請求の範囲】
【請求項１】
サービスのホストを務める資源を含み、前記サービスとの接続を管理するコンピュータ・システム上で実行する接続ブローカーを含むコンピュータ・システムにおいて前記サービスに対してユーザを認証する方法であって、
ネットワークを通じて前記接続ブローカー及び前記サービスと通信するクライアント・コンピュータにおいて前記ユーザのユーザ証明書の入力を受信するステップであって、前記ユーザ証明書は前記クライアント・コンピュータに対する前記ユーザを認証し、前記ユーザ証明書は秘密の構成要素を含むステップと、
前記ユーザ証明書を前記クライアント・コンピュータに格納するステップと、
前記接続ブローカーに対する前記クライアント・コンピュータの前記ユーザを認証するステップであって、前記ユーザの前記認証は、前記クライアント・コンピュータとドメイン・コントローラとの間でメッセージを交換することによって、少なくとも前記ユーザ証明書の第１の暗号化されたバージョンに基づいて、前記ドメイン・コントローラによって実行されるステップと、
前記ユーザの前記クライアント・コンピュータのクライアント・プロセスに対する前記接続ブローカーを認証するステップであって、前記クライアント・プロセスは前記格納されたユーザ証明書にアクセスするステップと、
前記ユーザ証明書の前記秘密の構成要素の第２の暗号化されたバージョンを前記クライアント・コンピュータから前記接続ブローカーへ前記クライアント・プロセスを通じて安全な方法で送信するステップと、
前記ユーザ証明書の前記秘密の構成要素の前記第２の暗号化されたバージョンを前記接続ブローカーによって解読し、前記ユーザ証明書の前記秘密の構成要素を前記接続ブローカーによって再暗号化し、前記ユーザ証明書の前記秘密の構成要素の第３の暗号化されたバージョンを生成するステップと、
前記接続ブローカーにある、前記ユーザ証明書の前記秘密の構成要素の前記第３の暗号化されたバージョンを前記接続ブローカーから前記サービスへ転送するステップと、
前記サービスにある、前記サービスのホストを務める資源において、前記接続ブローカーにより転送された前記ユーザ証明書の前記秘密の構成要素の前記第３の暗号化されたバージョンを使用して前記ユーザを認証するステップと、
を含む方法。
【請求項２】
前記ユーザ証明書がユーザＩＤ及びパスワードを含み、そして前記パスワードは前記秘密の構成要素である請求項１記載の方法。
【請求項３】
前記ユーザ証明書がスマートカードに格納された証明書及び前記証明書にアクセスするための暗証番号を含み、前記暗証番号が前記秘密の構成要素である請求項１記載の方法。
【請求項４】
前記秘密の構成要素が、前記クライアント・コンピュータで動作するユーザレベル・プロセスによってアクセスされることができない前記クライアント・コンピュータの内部キャッシュに格納されており、そして前記秘密の構成要素は前記内部キャッシュから検索されて、前記接続ブローカーが認証されたことを確認した後に前記接続ブローカーに送信される請求項１記載の方法。
【請求項５】
前記ドメイン・コントローラが前記ネットワークを通じて前記クライアント・コンピュータ及び前記接続ブローカーと通信し、並びに前記接続ブローカーに対する前記ユーザを認証する際に、及び前記ユーザの前記クライアント・コンピュータにおいて前記クライアント・プロセスに対する前記接続ブローカーを認証する際に、ケルベロス認証を実行する請求項１記載の方法。
【請求項６】
前記サービスが前記ユーザの遠隔デスクトップを動かしている資源である請求項１記載の方法。
【請求項７】
前記資源が物理的なコンピュータによってホストされている仮想計算機である請求項６記載の方法。
【請求項８】
接続ブローカーを用いてコンピュータ・システムにおいてサービスとの接続を管理する方法であって、
クライアント・コンピュータにおいて、前記クライアント・コンピュータのユーザから前記サービスとの接続の要求を受信するステップと、
ドメイン・コンピュータにおいて、前記要求された接続に対して前記クライアント・コンピュータの前記ユーザを認証するステップと、
前記サービスにある、前記サービスのホストを務める資源において、前記ユーザの前記クライアント・コンピュータから前記ユーザの秘密のユーザ証明書を受信するために前記接続ブローカーを認証するステップであって、前記秘密ユーザ証明書は前記クライアント・コンピュータに対するユーザを認証するために使用されるステップと、
前記認証された接続ブローカーにおいて、前記秘密のユーザ証明書を暗号化された形式で受信し、前記暗号化された秘密ユーザ証明書を解読及び再暗号化して、前記再暗号化された秘密のユーザ証明書を前記サービスへ転送するステップと、
前記サービスのホストを務める前記資源において、前記認証された接続ブローカーから前記再暗号化された秘密のユーザ証明書を受信して、前記再暗号化された秘密のユーザ証明書を使用して前記サービスに対する前記クライアント・コンピュータの前記ユーザを認証するステップと、
を含む方法。
【請求項９】
前記秘密のユーザ証明書がパスワードを含む請求項８記載の方法。
【請求項１０】
前記秘密のユーザ証明書がスマートカード暗証番号を含む請求項８記載の方法。
【請求項１１】
前記クライアント・コンピュータの前記ユーザ及び前記接続ブローカーがケルベロス認証プロセスにより認証される請求項８記載の方法。
【請求項１２】
シングル・サインオン・アクセスをサポートするように構成されたコンピュータ・システムであって、
その中で仮想計算機が動作しており、前記仮想計算機は遠隔デスクトップを動作させている１つ以上のサーバ・コンピュータと、
前記サーバ・コンピュータ内の前記仮想計算機への接続を管理するための接続ブローカーと、
前記接続ブローカーに対するクライアント・コンピュータのユーザを認証するための及び前記ユーザの前記クライアント・コンピュータのクライアント・プロセスに対する前記接続ブローカーを認証するためのドメイン・コントローラと、
を備えるコンピュータ・システムであって、
ユーザの前記クライアント・コンピュータの前記クライアント・プロセスに認証される前記接続ブローカーは、前記クライアント・プロセスを通じて前記ユーザの秘密のユーザ証明書の暗号化されたバージョンを受信して、前記暗号化された秘密のユーザ証明書を解読及び再暗号化して、前記ユーザの遠隔デスクトップを動かしている前記サーバ・コンピュータ内の前記仮想計算機に前記再暗号化された秘密のユーザ証明書を転送するように構成されており、
そして前記ユーザの前記遠隔デスクトップを動かしている前記サーバ・コンピュータ内の前記仮想計算機は、前記接続ブローカーにより転送された前記再暗号化された秘密のユーザ証明書に基づいて前記ユーザとのアクセスを許可するように構成されたコンピュータ・システム。
【請求項１３】
前記ドメイン・コントローラが前記ユーザのユーザＩＤ及びパスワードを維持し、並びに前記秘密のユーザ証明書はパスワードを含む請求項１２記載のシステム。
【請求項１４】
前記秘密のユーザ証明書がスマートカード暗証番号を含む請求項１２記載のシステム。
【請求項１５】
前記クライアント・コンピュータの前記ユーザ及び前記接続ブローカーを認証すると、前記ドメイン・コントローラがケルベロス認証プロセスを実行する請求項１２記載のシステム。
【請求項１６】
前記ドメイン・コントローラが、前記ユーザの前記デスクトップを動かしている前記サーバ・コンピュータ上の前記仮想計算機にアクセスするためにサービスチケットを前記ユーザのために発行し、そして前記仮想計算機は、前記接続ブローカーにより転送された前記秘密のユーザ証明書を使用して前記ユーザに自動的にログインする請求項１５記載のシステム。
【請求項１７】
前記ユーザがサインオンしたクライアント・コンピュータを更に備え、前記秘密のユーザ証明書が前記クライアント・コンピュータで動作するユーザレベル・アプリケーションにアクセス可能でないように、前記クライアント・コンピュータは前記秘密のユーザ証明書を安全に格納するオペレーティング・システム構成要素を含む請求項１２記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システムにおけるユーザ認証に関し、特に遠隔ユーザ・セッションのためのシングル・サインオンに関する。
【背景技術】
【０００２】
[0001]最新のコンピュータ・システムは、ユーザ認証のためのさまざまな方法を提供する。一般的な認証テクニックには、パスワード要件があるだけである。ユーザは彼又は彼女のユーザ識別子を、そして次にユーザだけが知っている秘密のパスワードを入力する。それはユーザが知っているものに依存するだけであるので、これはシングルファクタ認証と呼ばれる。より安全な認証制度、例えばマルチプルファクタ認証は、ユーザが知っているものに加えて、ユーザが何であるか又は何を行っているかという確認（例えば、指紋又は網膜走査）あるいはユーザが持っている物、例えばトークン又はスマートカードの確認を必要とする。
【０００３】
[0002]スマートカードは、通常のパスワード認証とは異なるユーザを認証する方法を提供する。スマートカード認証の場合は、ユーザは、スマートカードをスマートカードリーダに挿入して、暗証番号（ＰＩＮ）を入力する。正しい暗証番号が入力されると、スマートカードに格納されている１つ以上の証明書が、ユーザを認証するために用いられる。この種の認証は、それらにあるもの（スマートカード及びそこに格納された証明書）及びそれらが知っているもの（スマートカード暗証番号）の両方を確認することによって、２ファクタ認証を提供する。
【０００４】
[0003]遠隔ユーザ・セッションを可能にするコンピュータ・システムにおいて、ユーザが遠隔ユーザ・セッションへのアクセスを許可される前に、ユーザは複数回認証されることがあり、そして毎回彼又は彼女の証明書を入力する必要があることがある。例えば、ユーザがローカル・クライアント装置を使用して遠隔で彼らのデスクトップにアクセスすることができるコンピュータ・システムでは、ユーザは、彼又は彼女のローカル・クライアント装置により認証される彼又は彼女の証明書を入力し、そして次に、ユーザのデスクトップのホストを務めるマシンにより認証された別の証明書のセットを入力する。いくつかの構成において、接続ブローカーは、ローカル・クライアント装置とユーザのデスクトップのホストを務めるマシンとの間に配置されることがあり、ユーザが接続ブローカーにより認証される更に別の証明書のセットを入力することを必要とする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
[0004]いろいろなサービスへアクセスするためにユーザ証明書を繰り返し入力する不便を考慮して、ケルベロスとして公知の認証プロトコルが、特定の従来のシステムで採用される。このようなシステムでは、最初のサインオンはユーザに彼又は彼女の証明書を要求してくる。これらの証明書を用いて、ケルベロス・チケット交付チケットが生成される。アクセスのために必要とされるサービスの各々に対して、サービスチケット（それはユーザの識別を含む）が、ケルベロス・チケット交付チケットから生成される。サービスにアクセスするときに、ユーザは、彼又は彼女のユーザ証明書を再入力する代わりに、サービスチケットをサービスに単に提示する。しかしながら、チケットがユーザの識別を確認するだけであるので、この技術は遠隔デスクトップ・セッションに対してユーザを認証するには不十分である。遠隔デスクトップ・セッションのホストを務めるマシンへのアクセスを許可されると、ユーザは、遠隔デスクトップ・セッションへサインオンされるために、彼又は彼女のパスワードを入力しなければならない。
【課題を解決するための手段】
【０００６】
[0005]本発明の１つ以上の実施形態は、シングル・サインオン（ＳＳＯ）認証方法及びシステムを提供し、そこにおいてユーザは、接続ブローカーにより管理される資源で動作するサービスにアクセスするときに、１回だけ接続ブローカーにより認証されて、サインオンされる彼又は彼女のユーザ証明書をサービスに入力する。一実施形態によれば、シングル・サインオンは、接続ブローカーが信頼できることを確認するためにサービスのホストを務める資源への接続を管理している接続ブローカーの認証を実行し、この種の認証の後にユーザ証明書を接続ブローカーに安全に送信して、ユーザがユーザ証明書を再入力する必要なしに資源に自動的にサインオンされることができるように、接続ブローカーにユーザ証明書をサービスのホストを務める資源に転送させることにより達成される。
【０００７】
[0006]サービスのホストを務める資源を含み、サービスとの接続を管理するコンピュータ・システム上で実行する接続ブローカーを含むコンピュータ・システムにおいてサービスに対してユーザを認証する方法は、ネットワークを通じて接続ブローカー及びサービスと通信するクライアント・コンピュータにおいてユーザのユーザ証明書の入力を受信する（ユーザ証明書はクライアント・コンピュータに対する前記ユーザを認証し、秘密の構成要素を含む）ステップと、ユーザ証明書をクライアント・コンピュータに格納するステップと、接続ブローカーに対するクライアント・コンピュータのユーザを認証するステップであって、ユーザの認証は、クライアント・コンピュータとドメイン・コントローラとの間でメッセージを交換することによって、少なくともユーザ証明書の第１の暗号化されたバージョンに基づいて、ドメイン・コントローラによって実行されるステップと、ユーザのクライアント・コンピュータのクライアント・プロセスに対する接続ブローカーを認証するステップであって、クライアント・プロセスは格納されたユーザ証明書にアクセスするステップと、ユーザ証明書の秘密の構成要素の第２の暗号化されたバージョンをクライアント・コンピュータから接続ブローカーへクライアント・プロセスを通じて安全な方法で送信するステップと、ユーザ証明書の秘密の構成要素の第２の暗号化されたバージョンを接続ブローカーによって解読し、ユーザ証明書の秘密の構成要素を接続ブローカーによって再暗号化し、ユーザ証明書の秘密の構成要素の第３の暗号化されたバージョンを生成するステップと、接続ブローカーにある、ユーザ証明書の秘密の構成要素の第３の暗号化されたバージョンを接続ブローカーからサービスへ転送するステップと、サービスにある、サービスのホストを務める資源において、接続ブローカーにより転送されたユーザ証明書の秘密の構成要素の第３の暗号化されたバージョンを使用してユーザを認証するステップとを含む。
【０００８】
[0007]本発明の一実施形態によれば、シングル・サインオン・アクセスをサポートするように構成されたコンピュータ・システムは、その中で仮想計算機が動作しており、仮想計算機は遠隔デスクトップを動作させている１つ以上のサーバ・コンピュータと、サーバ・コンピュータ内の仮想計算機への接続を管理するための接続ブローカーと、接続ブローカーに対するクライアント・コンピュータのユーザを認証するための及びユーザのクライアント・コンピュータのクライアント・プロセスに対する接続ブローカーを認証するためのドメイン・コントローラとを含む。本実施形態において、ユーザのクライアント・コンピュータのクライアント・プロセスに認証された接続ブローカーは、クライアント・プロセスを通じてユーザの秘密のユーザ証明書の暗号化されたバージョンを安全な方法で受信して、暗号化された秘密のユーザ証明書を解読及び再暗号化して、ユーザの遠隔デスクトップを動かすサーバ・コンピュータ内の仮想計算機に再暗号化された秘密のユーザ証明書を転送し、そしてユーザの遠隔デスクトップを動かしているサーバ・コンピュータ内の仮想計算機は、接続ブローカーにより転送された再暗号化された秘密のユーザ証明書に基づいてユーザのデスクトップへのユーザ・アクセスを許可する。
【０００９】
[0008]本発明の更なる実施形態は、処理ユニットが上記の方法の１つ以上の態様を実施することを可能にする命令を含む非一時的コンピュータ可読の記憶媒体、並びに上記の方法の１つ以上の態様を実施するように構成されたコンピュータ・システムを含む。
【図面の簡単な説明】
【００１０】
【図１】[0009]本発明の１つ以上の実施形態が実施されることができる仮想化されたデスクトップ・インフラストラクチャ・システムの構成要素を例示する。
【図２】[0010]遠隔デスクトップへサインオンするためにユーザにより実行されるプロセスを例示する。
【図３】[0011]ユーザ証明書がユーザＩＤ及びパスワードの形式であるときの、本発明の１つ以上の実施形態によるシングル・サインオン認証プロセスを例示するフロー図である。
【図４】[0012]ユーザ証明書がスマートカード暗証番号及びスマートカード証明書の形式であるときの、本発明の１つ以上の実施形態によるシングル・サインオン認証プロセスを例示するフロー図である。
【発明を実施するための形態】
【００１１】
[0013]図１は、その中で本発明の１つ以上の実施形態が実施されることができる仮想化されたデスクトップ・インフラストラクチャ・システム１００の構成要素を例示する。仮想化されたデスクトップ・インフラストラクチャ・システム１００において、仮想化されたデスクトップ・インフラストラクチャ・クライアント・ソフトウェア・プログラム（又は、略して「仮想化されたデスクトップ・インフラストラクチャ・クライアント」とも呼ばれる）、例えば、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０は、ローカル・コンピュータのオペレーティング・システム、例えば、オペレーティング・システム（ＯＳ）１１１の上のクライアント・マシン１０８で動作する。仮想化されたデスクトップ・インフラストラクチャ・クライアントはそれらのデスクトップにアクセスするユーザのためのインタフェースを提供し、それは、ユーザ位置から遠いデータセンタ内の仮想計算機１５７又はブレードサーバ（図示せず）の１つで動作できる。用語「デスクトップ」は、通常、表示及び音声出力並びにキーボード及びマウス入力の形で、コンピュータ・オペレーティングシステム及びソフトウェア・アプリケーションにより提供される会話形動作環境のインスタンスを指す。仮想化されたデスクトップ・インフラストラクチャ・クライアントの場合は、ユーザは、いかなる場所からも、コモディティ・オペレーティングシステム及び仮想化されたデスクトップ・インフラストラクチャ・クライアント・ソフトウェア・プログラム、例えばＶＭｗａｒｅ（登録商標）Ｖｉｅｗ（商標）を実行する汎用コンピュータ、又はデル、ＨＰ、ＮＥＣ、サン・マイクロシステムズ、ワイズ、その他から入手可能な特殊用途のシン・クライアントを用いて、ネットワーク１２０を通じて遠隔データセンタで動作するデスクトップにアクセスすることができる。
【００１２】
[0014]仮想化されたデスクトップ・インフラストラクチャ・システム１００は、ユーザ・ログイン情報を含むユーザ・アカウント１３６を管理するドメイン・コントローラ１３５，例えば、Ｍｉｃｒｏsｏｆｔ（登録商標）Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ（登録商標）、及び仮想計算機１５７又は他のプラットフォームで動作する、仮想化されたデスクトップ・インフラストラクチャ・クライアントとデスクトップとの間の接続を管理する接続ブローカー１３７を含む。ドメイン・コントローラ１３５及び接続ブローカー１３７は、別々のサーバで、あるいは、同じサーバ又は異なるサーバで動作する別々の仮想計算機で動作できる。本願明細書において例示される本発明の実施形態において、デスクトップは仮想計算機１５７で動作し、そして仮想計算機１５７は、それぞれ仮想化ソフトウェア１５８及びハードウェア１５９を含み仮想計算機管理サーバ１４０により制御されて共用永続記憶装置１６０に連結されている、複数の物理的なコンピュータ１５０、１５２、１５４にインスタンスを生成させる。
【００１３】
[0015]仮想化されたデスクトップ・インフラストラクチャ・システム１００の構成要素の全ては、ネットワーク１２０を通じて通信する。説明を簡単にするため、単一ネットワークが示されるが、実際の実施態様では、仮想化されたデスクトップ・インフラストラクチャ・システム１００の構成要素が同じネットワーク又は異なるネットワークを通じて接続されることができると認識しなければならない。更にまた、仮想化されたデスクトップ・インフラストラクチャの特定の構成は上で説明されて、図１に示されるが、本発明の１つ以上の実施形態が仮想化されたデスクトップ・インフラストラクチャの他の構成により実践されることができると認識しなければならない。
【００１４】
[0016]本願明細書に記載された本発明の実施形態において、シングル・サインオンのために使われるユーザ証明書は、パスワード認証が使われるときには、ユーザＩＤ及びパスワード、並びにスマートカード認証が使われるときにスマートカード証明書のユーザ・プリンシパル名及びスマートカード暗証番号でもよい。スマートカード実施形態において、スマートカードリーダ１０９はクライアント・マシン１０８に接続されており、そしてユーザのスマートカードがスマートカードリーダ１０９に挿入されると、スマートカード暗証番号を入力するためのユーザ・インタフェースがユーザに表示される。正しいスマートカード暗証番号が入力された場合にだけ、クライアント・マシン１０８はスマートカードに格納された証明書にアクセスできる。
【００１５】
[0017]仮想計算機１５７のうちの１つで動作する遠隔デスクトップにサインオンするためにユーザにより実行されるプロセスは、図２に示されて、図１及び２の両方を参照して説明される。ステップ２１０で、ユーザは、クライアント・マシン１０８に表示されたユーザ・インタフェース２１１を通してユーザＩＤ及びパスワードを、又はスマートカード認証を使用する実施形態のクライアント・マシン１０８に表示されるユーザ・インタフェース２１２を通してスマートカード暗証番号を入力することによって、ローカル・クライアント装置、例えばクライアント・マシン１０８にログインする。
【００１６】
[0018]クライアント・マシン１０８にうまくログインすると、ステップ２２０で、ユーザは仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０を開始し、その結果としてユーザ・インタフェース２２１がクライアント・マシン１０８に表示される。ユーザ・インタフェース２２１は、クライアント・マシン１０８にログインするためのユーザ証明書が遠隔デスクトップにアクセスするためのユーザ証明書として使用されなければならないことを仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０に基本的に告げる「現在のユーザとしてのログイン」のオプションをユーザに与えるチェックボックス２２２を含む。しかしながら、このオプションはユーザの証明書をクライアント・マシン１０８に格納する必要があるので、仮想化されたデスクトップ・インフラストラクチャ・システム１００の管理者は、より高いセキュリティのためにこのオプションを無効にすることができる。
【００１７】
[0019]ステップ２３０で、ユーザは、接続ブローカーに接続して遠隔デスクトップにログインするために、「ＣＯＮＮＥＣＴ」をクリックする。チェックボックス２２２がチェックされてユーザが「ＣＯＮＮＥＣＴ」をクリックする場合は、クライアント・マシン１０８にログインするために用いた同じ証明書が、ユーザの遠隔デスクトップのホストを務める仮想計算機にログインするための証明書として使われ、そしてユーザはそれらの証明書を再入力することを必要としない。他方では、チェックボックス２２２がチェックされずに、ユーザが「ＣＯＮＮＥＣＴ」をクリックする場合は、ユーザ・インタフェースはクライアント・マシン１０８に表示されて、ユーザがユーザの遠隔デスクトップのホストを務める仮想計算機にログインするための証明書を入力するようプロンプトを出す。このオプションを有することによって、また、仮想化されたデスクトップ・インフラストラクチャ・システム１００が、クライアント・マシン１０８及び遠隔デスクトップのホストを務める仮想計算機にログインするためにいろいろな認証方法を使用できる。例えば、いろいろなユーザＩＤ及びパスワード並びにいろいろなスマートカードを用いることができる。別の例では、ユーザＩＤ及びパスワードはクライアント・マシン１０８にログインするために使うことができて、スマートカードはユーザの遠隔デスクトップのホストを務める仮想計算機にログインするために使用することができる。
【００１８】
[0020]図３は、ユーザ証明書がユーザＩＤ及びパスワードの形であるときに、本発明の１つ以上の実施形態によるシングル・サインオン認証プロセスを例示するフロー図である。これらのステップは、クライアント・マシン１０８、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０、ドメイン・コントローラ１３５、接続ブローカー１３７、及び仮想計算機１６５を含む、仮想化されたデスクトップ・インフラストラクチャ・システム１００のさまざまな構成要素により実行される。
【００１９】
[0021]ユーザがクライアント・マシン１０８にログインするために、ユーザＩＤ及びパスワードの形で、彼又は彼女のユーザ証明書を入力すると、シングル・サインオン認証プロセスが開始される。ステップ３１０で、クライアント・マシン１０８はユーザＩＤ及びパスワードの入力を受信する。ユーザ証明書はクライアント・マシン１０８（認証モジュール１１２として図１に示される）で実行するオペレーティング・システム１１１の構成要素によって集められて、機密保護のため非管理のアプリケーションから離れて安全に保持される。例えば、「認証パッケージ」は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）ベースのクライアント・マシン１０８のために導入されることができる。「認証パッケージ」はユーザ証明書を内部キャッシュに格納し、その内容は、システム・サービス１１３として図１に示されるエンドポイント・システム・サービス「ｗｓｎｍ」のような、高信頼コンピューティング・ベース特権の保有者だけによって検索されることができる。
【００２０】
[0022]ステップ３１１は、ステップ３１０でユーザにより入力されたユーザＩＤを使用してドメイン・コントローラ１３５により実行されるユーザのケルベロス認証を表す。ドメイン・コントローラ１３５は、メッセージを、ユーザにより登録されてユーザ・アカウント１３６のドメイン・コントローラ１３５により維持されるパスワードのハッシュ化されたバージョンを使用して暗号化されたクライアント・マシン１０８と交換することによって、ユーザが正しいパスワードを入力したか否か決定する。この種の技術を用いて、ステップ３１０でユーザにより入力されたパスワードは、クライアント・マシン１０８とドメイン・コントローラ１３５との間で交換されない。ステップ３１２で、ユーザが入力したユーザＩＤ及びパスワードが登録されたユーザＩＤ及びパスワードにマッチしないと決定される場合は、ユーザ認証は失敗して、プロセスは終了する。他方では、マッチする場合は、ユーザはドメイン・コントローラ１３５により認証されて、クライアント・マシン１０８へのユーザ・アクセスは許可される（ステップ３１３）。
【００２１】
[0023]図３に示される残りのステップは、ユーザがクライアント・マシン１０８にうまくログインして、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０を開始して、「ＣＯＮＮＥＣＴ」をクリックした後に実行されるステップを表す。ステップ３１４で、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０は、ユーザが「ＣＯＮＮＥＣＴ」をクリックしたことを検出する。次に、接続ブローカー１３７に接続する前に、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０はステップ３１５で、ユーザが、チェックボックス２２２をチェックすることによって、「現在のユーザとしてログインする」のオプションを選択したか否か決定する。ユーザがそうしなかった場合は、ユーザは従来の方法を使用して接続ブローカー１３７にログインする（ステップ３１６）。
【００２２】
[0024]仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０がステップ３１５で、ユーザがチェックボックス２２２をチェックすることによって、「現在のユーザとしてログインする」というオプションを選択したと決定する場合は、ステップ３２０が実行され、そこにおいて接続ブローカー１３７が認証される。この認証ステップは２つの部分を有し、そして第２部分は任意である。第１部分は、ドメイン・コントローラ１３５で以前登録された接続ブローカー１３７のＩＤを使用するケルバロス認証である。第１部分は、システム・サービス１１３がそれらを接続ブローカー１３７に送信する前に、接続ブローカー１３７がユーザ証明書によって信頼できることを確実にするために、システム・サービス１１３に対する接続ブローカー１３７を基本的に認証する。これは、クライアント・マシン１０８で信用証明となるキャッシュを問い合わせるクライアント（又はその他）の迷惑ソフトウェアを防止する。
【００２３】
[0025]接続ブローカー１３７のケルベロス認証が成功すると、システム・サービス１１３は、接続ブローカー認証の第２部分として、接続ブローカー１３７の識別を確認する。確認は、接続ブローカー１３７が信用証明となる委任がサポートされているマシンとしてリストされているかどうかについて決定することを含む。Ｗｉｎｄｏｗｓ（登録商標）オペレーティング・システムが用いられる実施例において、管理者により維持されて更新されるグループ・ポリシー・オブジェクト（ＧＰＯ）は、この情報がないか調べられる。この第２部分を使用することによって、悪意のあるマシン（さもなければドメイン・コントローラ１３５で適切に登録された）は、ユーザの証明書へのアクセスを得ることが不可能である。他の実施形態では、グループ・ポリシー・オブジェクトは、接続ブローカー１３７のケルベロス認証の後ではなくステップ３２０の初めにチェックされる。
【００２４】
[0026]ステップ３２１で接続ブローカー１３７がうまく認証されると決定される場合は、接続ブローカー１３７はシステム・サービス１１３へのケルベロス・サービス・チケットを与えられ、そしてシステム・サービス１１３はステップ３２２でユーザ証明書を接続ブローカー１３７に送信する。送信されたユーザ証明書はサービスチケットに含まれるセッションキーを使用して暗号化されており、従ってシステム・サービス１１３以外のクライアント・マシン１０８で動作する仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０又はいかなるアプリケーションによっても解読されることができないと認識すべきである。受け取ると、接続ブローカー１３７は、サービスチケットに含まれるセッションキーを使用してユーザ証明書を解読する。ステップ３２３で、ユーザはデスクトップを選択するようプロンプトを出される。いくつかの実施形態では、ユーザのためのデスクトップ選択は、デフォルトユーザ設定に基づいて自動でもよい。この選択の後に、接続ブローカー１３７は、ユーザをそのバーチャル・マシンにログインするために、ユーザの選択されたデスクトップ（それは、仮想計算機１６５であると、ここで仮定される）のホストを務める仮想計算機と通信する。ステップ３２４で、接続ブローカー１３７は、仮想計算機１６５（特に、仮想計算機１６５で動作するエンドポイント・システム・サービス）だけにより解読されることができるキーを使用してユーザ証明書を再暗号化して、再暗号化されたユーザ証明書を仮想計算機１６５に転送する。ステップ３２６で、仮想計算機１６５は接続ブローカー１３７から再暗号化されたユーザ証明書を受信して、それらを解読して、カスタム・ログイン・モジュールを使用して、自動的にユーザをログインさせる。パスワードを含むユーザ証明書が接続ブローカー１３７によって仮想計算機１６５に転送されたので、ユーザは、仮想計算機１６５に接続するときに彼又は彼女の証明書を再入力する必要がなかったと認識すべきである。
【００２５】
[0027]ステップ３２１に戻って、接続ブローカー１３７のその認証が成功しなかったと決定される場合は、シングル・サインオンはステップ３３０で使用不能であり、そしてユーザは彼又は彼女のユーザＩＤ及びパスワードを提示するようプロンプトを出される。ユーザが彼又は彼女のユーザＩＤ及びパスワードを入力した後に、ステップ３２３、３２４、及び３２６はユーザを仮想計算機１６５にサインするために実行される。
【００２６】
[0028]図４は、ユーザ証明書がスマートカード暗証番号及びスマートカード証明書の形式であるときの、本発明の１つ以上の実施形態によるシングル・サインオン認証プロセスを例示するフロー図である。本願明細書において、ステップは、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０、ドメイン・コントローラ１３５、接続ブローカー１３７、及び仮想計算機１６５を含む、仮想化されたデスクトップ・インフラストラクチャ・システム１００のさまざまな構成要素により実行される。加えて、スマートカードリーダ１０９は、シングル・サインオンを可能にするために、仮想計算機１６５のスマートカードリーダ・エミュレーション・ソフトウェアを使用して仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０及び仮想計算機１６５で共用される。スマートカードリーダ１０９が仮想計算機１６５にリダイレクトされているときは、スマートカードリーダ・エミュレーション・ソフトウェアは、スマートカードがスマートカードリーダ１０９にすでに挿入されているかを確かめるためにチャックして、そうである場合は、仮想計算機１６５でスマートカード挿入イベントをエミュレートする。
【００２７】
[0029] クライアント・マシン１０８にログインするために、ユーザがスマートカードをスマートカードリーダ１０９に挿入してスマートカード暗証番号を入力すると、シングル・サインオン認証プロセスが開始される。ステップ４０８で、クライアント・マシン１０８はスマートカード暗証番号の入力を受信する。ステップ４１０で正しい暗証番号が入力されたと決定される場合は、認証モジュール１１２は、ステップ４１１で、暗証番号を安全に格納して、スマートカードに格納された１つ以上の証明書をクライアント・マシン１０８にロードする。次に、ステップ４１２で、システム・サービス１１３は証明書をフィルターにかけて、期限切れか、又は関連しないいかなる証明書も除去する。１つの実施形態において、フィルタリングが１つの有効な証明書だけをもたらす場合は、その証明書はスマートカード認証のために自動的に使われる。フィルタリングの後でさえ、複数の有効な証明書が残る場合は、プロンプトが表示されて、ユーザが証明書を選択できる。（破線矢印により示されるように）有効な証明書がなく、そしてスマートカード認証が任意にセットされる場合（ステップ４３０）、図３に関連して上で説明した通常のパスワード認証がステップ４３２で使われる。また、ステップ４１０で誤った暗証番号が入力されたと決定される場合は、ユーザはクライアント・マシン１０８へのアクセスを拒否されて、プロセスは終了する。
【００２８】
[0030]ステップ４１３は、ステップ４１２のフィルタリングの後に残っている唯一の有効なスマートカード証明書又はユーザにより選択されたスマートカード証明書でもよい、有効なスマートカード証明書を使用してドメイン・コントローラ１３５により実行されるユーザの認証を表す。ドメイン・コントローラ１３５が、ステップ４１４で、スマートカード証明書が正しくて、即ち、信頼された当事者によってデジタルサインされたと決定する場合は、ユーザはドメイン・コントローラ１３５により認証されて、証明書で確認されたユーザＩＤと関連付けられる。ステップ４１５で、クライアント・マシン１０８へのユーザ・アクセスは許可される。
【００２９】
[0031]図４に示される残りのステップは、ユーザがクライアント・マシン１０８にうまくログインして、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０を開始して、「ＣＯＮＮＥＣＴ」をクリックした後に実行されるステップを表す。ステップ４１６で、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０は、ユーザが「ＣＯＮＮＥＣＴ」にクリックしたことを検出する。次に、接続ブローカー１３７に接続する前に、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０がステップ４１７で、ユーザが、チェックボックス２２２をチェックすることによって、「現在のユーザとしてログインする」というオプションを選択したか否かを決定する。ユーザがそうしなかった場合は、ユーザは従来の方法を使用して接続ブローカー１３７にログインする（ステップ４１８）。
【００３０】
[0032]ステップ４１７で、ユーザがチェックボックス２２２をチェックすることによって「現在のユーザとしてログインする」というオプションを選択したと、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０が決定する場合は、ステップ４２０が実行される。ステップ４２０は接続ブローカー１３７の認証を表して、ステップ３２０で上に述べたのと同様に実行される。接続ブローカー１３７がうまく認証される場合は、ステップ４２１で決定されるように、接続ブローカー１３７にはシステム・サービス１１３に対するケルベロス・サービス・チケットが与えられ、そしてシステム・サービス１１３は、ステップ４２２で、スマートカード暗証番号を含むユーザ証明書を接続ブローカー１３７に送信する。送信されたユーザ証明書がサービスチケットに含まれるセッションキーを使用して暗号化されて、従ってシステム・サービス１１３以外のクライアント・マシン１０８で動作する仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０又はいかなるアプリケーションによっても解読されることができないと認識すべきである。受信すると、接続ブローカー１３７は、サービスチケットに含まれているセッションキーを使用してユーザ証明書を解読する。ステップ４２３で、ユーザはデスクトップを選択するようプロンプトを出される。いくつかの実施形態では、ユーザのためのデスクトップ選択はデフォルトユーザ設定に基づいて自動的に行われてもよい。この選択の後に、接続ブローカー１３７は、ユーザをその仮想計算機にログインさせるために、ユーザの選択されたデスクトップ（それは仮想計算機１６５であるとここで仮定される）のホストを務める仮想計算機と通信する。ステップ４２４で、仮想計算機１６５（特に、仮想計算機１６５で動作するエンドポイント・システム・サービス）だけにより解読されることができるキーを使用してユーザ証明書が再暗号化されて、仮想計算機１６５に再暗号化されたユーザ証明書が転送される。ステップ４２６で、仮想計算機１６５は接続ブローカー１３７から再暗号化されたユーザ証明書を受信して、それらを解読して、カスタム・ログイン・モジュールを使用して、スマートカード暗証番号を入力し、それに応答して、スマートカードリーダ１０９に挿入されているスマートカードに格納されているスマートカード証明書は、スマートカードリーダ・エミュレーション・ソフトウェアにより指示されるように検索されて、ユーザを仮想計算機１６５に自動的にログインさせるために用いられる。スマートカード暗証番号を含むユーザ証明書が接続ブローカー１３７によって仮想計算機１６５に転送されたので、仮想計算機１６５に接続するときに、ユーザはスマートカード暗証番号を再入力する必要がなかったと認識すべきである。
【００３１】
[0033]ステップ４２１に戻り、接続ブローカー１３７の認証が成功しなかったと決定される場合は、シングル・サインオンはステップ４２８で使用不能にされ、そしてユーザは彼又は彼女のスマートカード暗証番号を提示するようプロンプトを出される。ユーザが彼又は彼女のスマートカード暗証番号を入力した後に、ステップ４２３、４２４、及び４２６が、ユーザを仮想計算機１６５にサインするために実行される。
【００３２】
[0034]いくつかの実施形態では、管理者はスマートカードのシングル・サインオンを使用不能にすることができる。こうすることの考えられる理由は、スマートカード・プロバイダが暗証番号キャッシュ・リダイレクションを用いて遠隔シングル・サインオンをすでに可能にさせるということであり、又は、暗証番号が暗号化されていても、管理者がユーザの暗証番号をメモリに格納するのがすごく不安であるということである。更にまた、ユーザがオプション「現在のユーザとしてログインする」を選択し、そしてユーザが遠隔デスクトップへの新規な接続の確立を望む、いくつかの実施形態では、遠隔デスクトップへの従来の接続を認証するために以前使われたユーザ証明書は、接続ブローカー１３７が、その中にユーザ証明書を格納したキャッシュをクリアすることによって無効にされる。これにより、仮想化されたデスクトップ・インフラストラクチャ・クライアント１１０が動作している間に、ユーザがそれらを変える場合は、更新されたユーザ証明書が使われることを確実にする。
【００３３】
[0035]本願明細書で使用しているように、「接続ブローカー」は、遠隔デスクトップのような遠隔ユーザ・セッションとの接続を管理するように構成された、任意の装置であり、そして「ドメイン・コントローラ」は、ユーザ・ログイン情報にアクセスさせて管理するように構成された、任意の装置である。
【００３４】
[0036]本願明細書に記載されているさまざまな実施形態は、コンピュータ・システムに格納されるデータを含むさまざまなコンピュータ実行動作を使用できる。例えば、これらの動作は物理量の物理的操作を必要とすることがあり、通常、必然的ではないが、これらの量は電気又は磁気信号という形をとることがあり、そこにおいて、それら又はそれらの表現は、格納され、転送され、結合され、比較され、又は操作することができる。更に、この種の操作は、生成、識別、決定、又は比較のような用語でしばしば呼ばれる。本発明の１つ以上の実施形態の一部を形成する本願明細書に記載したいかなる動作も、有用な機械操作であり得る。加えて、本発明の１つ以上の実施形態はこれらの動作を実行する装置又は機器にも関する。機器は特定の必要な目的のために特別に構成されることができる、又はそれはコンピュータに格納されたコンピュータプログラムによって選択的に作動するか又は構成される汎用コンピュータでもよい。特に、さまざまな汎用マシンが本願明細書において教示に従って記述されるコンピュータプログラムによって用いられることが可能である、又は必要な動作を実行するためにより特殊な機器を構成することがより便利である場合がある。
【００３５】
[0037]本願明細書に記載されているさまざまな実施形態は、携帯用装置、マイクロプロセッサシステム、マイクロプロセッサ・ベース又はプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータ・システム構成により実行されることができる。
【００３６】
[0038]本発明の１つ以上の実施形態は、１つ以上のコンピュータ可読媒体で具体化された１つ以上のコンピュータプログラムとして、又は１つ以上のコンピュータプログラム・モジュールとして実施されることができる。用語「コンピュータ可読媒体」は、その後でコンピュータ・システムに入力されることができるデータを格納できるいかなるデータ記憶装置も指す。コンピュータ可読媒体は、それらがコンピュータによって読み込まれることを可能にする方法でコンピュータプログラムを具体化するための、いかなる既存又は今後開発される技術にも基づいてもよい。コンピュータ可読媒体の例は、ハードディスク、ネットワーク接続ストレージ（ＮＡＳ）、読出し専用メモリ、ランダムアクセス・メモリ（例えば、フラッシュメモリ装置）、ＣＤ（コンパクトディスク）、ＣＤ―ＲＯＭ、ＣＤ―Ｒ、又はＣＤ―ＲＷ、ＤＶＤ（デジタル多用途ディスク）、磁気テープ、並びに他の光学及び非光学データ記憶装置を含む。コンピュータ可読コードが分散方式で格納されて実行されるように、コンピュータ可読媒体はネットワーク結合コンピュータ・システムにわたって分散されることもできる。
【００３７】
[0039]本発明の１つ以上の実施形態が、明確に理解するために少し詳しく説明されたけれども、特定の改変及び変更態様が特許請求の範囲内でなされることができることは明らかである。従って、記載されている実施形態は例示であり限定的でないとみなされるべきであり、そして特許請求の範囲は本願明細書に示された詳細に限定されるべきではなくて、特許請求の範囲及び同等物の中で変更されることができる。特許請求の範囲において、特許請求の範囲で明確に述べられない限り、要素及び／又はステップは動作のいかなる特定の順序も意味しない。
【００３８】
[0040]さまざまな実施形態による仮想化システムは、ホストされた実施形態、ホストされない実施形態として、又は２つの差異を曖昧にする傾向がある実施形態として実施されることができて、すべて想定される。更にまた、さまざまな仮想化動作は、ハードウェアにおいて、完全に又は部分的に実施されることができる。例えば、ハードウェア実装は、非ディスクデータを保護するためにストレージ・アクセス要求の変更のためのルックアップ表を使用できる。
【００３９】
[0041]多くの変体、変更態様、追加、及び改良が、仮想化の程度にかかわらず可能である。仮想化ソフトウェアは、従って、仮想化機能を実行するホスト、コンソール、又はゲスト・オペレーティングシステムの構成要素を含むことができる。複数の例は、単一の例として本願明細書に記載されている構成要素、動作、又は構造のために提供されることができる。最後に、さまざまな構成要素、動作、及びデータ蓄積の境界はいくぶん任意であり、そして特定の動作は特定の例示構成との関連で例示される。機能の他の配置が構想されて、本発明の範囲に含まれることができる。一般に、典型的な構成の別々の構成要素として提示される構造及び機能は、複合構造又は構成要素として実施されることができる。同様に、単一の構成要素として提示される構造及び機能は、別々の構成要素として実施されることができる。これらの、そしてまた他の変形例、変更態様、追加、及び改良は、添付の特許請求の範囲にあればよい。
【図１】
0005570610.tif 000002
【図２】
0005570610.tif 000003
【図３】
0005570610.tif 000004
【図４】
0005570610.tif 000005