(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-27
(54)【発明の名称】異なる認証クレデンシャルを有する認証トークンに基づいてセッションアクセスを提供するコンピューティングシステムおよび方法
(51)【国際特許分類】
G06F 21/33 20130101AFI20220720BHJP
H04L 9/32 20060101ALI20220720BHJP
【FI】
G06F21/33
H04L9/32 200B
H04L9/32 200F
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021558670
(86)(22)【出願日】2020-04-23
(85)【翻訳文提出日】2021-11-25
(86)【国際出願番号】 US2020029444
(87)【国際公開番号】W WO2020236394
(87)【国際公開日】2020-11-26
(32)【優先日】2019-05-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】508045099
【氏名又は名称】シトリックス・システムズ・インコーポレイテッド
【氏名又は名称原語表記】Citrix Systems,Inc.
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ゲオルギー モンチロフ
(72)【発明者】
【氏名】ヒュバート ディヴォー
(72)【発明者】
【氏名】ロベルト バルデス
(57)【要約】
コンピューティングデバイスは、メモリと、それに関連付けられた第1及び第2の認証クレデンシャルを有する認証トークンを記憶するためにメモリと協働するように構成されたプロセッサとを含んでよい。第1および第2の認証クレデンシャルは、互いに異なってよい。プロセッサは、認証トークンに基づいてセッションにアクセスするためにサーバとさらに協働してよい。
【特許請求の範囲】
【請求項1】
コンピューティングデバイスであって、
メモリと、
関連付けられた第1及び第2の認証クレデンシャルを有する認証トークンを記憶するために前記メモリと協働し、
前記第1および第2の認証クレデンシャルは、互いに異なっており、
前記認証トークンに基づいてセッションにアクセスするためにサーバと協働する、
ように構成されたプロセッサと、
を備える、コンピューティングデバイス。
【請求項2】
前記第1および第2の認証クレデンシャルのうちの1つは、ユーザクレデンシャルを備える、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記ユーザクレデンシャルは、前記クライアントデバイスにおける前記メモリに記憶される、請求項2に記載のコンピューティングデバイス。
【請求項4】
前記ユーザクレデンシャルは、認証サービスを用いて仮想スマートカードに記憶される、請求項2に記載のコンピューティングデバイス。
【請求項5】
前記第1および第2の認証クレデンシャルのうちの1つは、前記クライアントデバイスに関連付けられた公開鍵を備える、請求項1に記載のコンピューティングデバイス。
【請求項6】
前記公開暗号化鍵は、ルートオブトラスト(RoT)によって署名される、請求項5に記載のコンピューティングデバイス。
【請求項7】
前記プロセッサは、前記コンピューティングデバイスに割り当てられた接続リースにさらに基づいて前記セッションにアクセスするために前記サーバと協働する、請求項1に記載のコンピューティングデバイス。
【請求項8】
前記第1および第2の認証クレデンシャルは、異なるロケーションに記憶される、請求項1に記載のコンピューティングデバイス。
【請求項9】
前記認証トークンは、ポリモーフィック認証トークンを備える、請求項1に記載のコンピューティングデバイス。
【請求項10】
前記セッションは、ウェブアプリケーションセッション、ソフトウェアアズアサービス(SaaS)アプリケーションセッション、仮想アプリケーションセッション、および仮想デスクトップセッションのうちの少なくとも1つを備える、請求項1に記載のコンピューティングデバイス。
【請求項11】
方法であって、
クライアントデバイスに対して、関連付けられた第1および第2の認証クレデンシャルを有する認証トークンを記憶することであって、前記第1および第2の認証クレデンシャルは互いに異なっていることと、
前記クライアントデバイスにおいて、前記認証トークンに基づいてセッションにアクセスするためのサーバと協働することと、
を備える方法。
【請求項12】
前記第1および第2の認証クレデンシャルのうちの1つは、ユーザクレデンシャルを備える、請求項11に記載の方法。
【請求項13】
前記第1および第2の認証クレデンシャルのうちの1つは、前記クライアントデバイスに関連付けられた公開暗号化鍵を備える、請求項11に記載の方法。
【請求項14】
前記クライアントデバイスは、前記コンピューティングデバイスに割り当てられた接続リースにさらに基づいて前記セッションにアクセスするために前記サーバと協働する、請求項11に記載の方法。
【請求項15】
前記第1および第2の認証クレデンシャルは、異なるロケーションに記憶される、請求項11に記載の方法。
【請求項16】
コンピューティングデバイスであって、
メモリと、
関連付けられた第1及び第2の認証クレデンシャルを有する認証トークンを前記メモリに記憶するために前記メモリと協働し、前記第1および第2の認証クレデンシャルは、互いに異なっており、
前記コンピューティングデバイスに割り当てられた接続リースに基づいた前記認証に基づいてセッションにアクセスするためにサーバと協働する、
ように構成されたプロセッサと、
を備える、コンピューティングデバイス。
【請求項17】
前記第1および第2の認証クレデンシャルのうちの1つは、ユーザクレデンシャルを備える、請求項16に記載のコンピューティングデバイス。
【請求項18】
前記第1および第2の認証クレデンシャルのうちの1つは、前記クライアントデバイスに関連付けられた公開暗号化鍵を備える、請求項16に記載のコンピューティングデバイス。
【請求項19】
前記公開暗号化鍵は、ルートオブトラスト(RoT)によって署名される、請求項18に記載のコンピューティングデバイス。
【請求項20】
前記認証トークンは、ポリモーフィック認証トークンを備える、請求項16に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、異なる認証クレデンシャルを有する認証トークンに基づいてセッションアクセスを提供するコンピューティングシステムおよび方法に関する。
【背景技術】
【0002】
多数の組織が今や、それぞれのユーザの変動するニーズに対処するためのより柔軟なオプションを提供するために、アプリケーションおよびデスクトップ仮想化を使用している。デスクトップ仮想化では、ユーザのアプリケーションがユーザの物理的なデスクトップコンピュータから分離され得る。クライアント-サーバ技術を使用して、「仮想化されたデスクトップ」がクライアントデバイスのローカルストレージ内ではなく、リモートサーバ内に記憶され、リモートサーバによって管理され得る。
【0003】
いくつかの異なるタイプのデスクトップ仮想化システムがある。一例として、仮想デスクトップインフラストラクチャ(VDI)は、サーバ内に常駐する仮想マシン内でユーザデスクトップおよび/またはアプリケーションを動作させるプロセスを指す。また、仮想化システムは、デスクトップ仮想化サーバのプール、記憶ディスク、ネットワーキングハードウェア、および他の物理的リソースが仮想デスクトップをプロビジョニングするために、および共有アプリケーションへのアクセスを提供するために使用され得るクラウドコンピューティング環境内で実装され得る。たとえば、クライアントデバイスはまた、直接的に、または仮想化システムを通じて、のいずれかで、ウェブおよびソフトウェアアズアサービス(SaaS)アプリケーションにリモートにアクセスし得る。
【発明の概要】
【0004】
コンピューティングデバイスは、メモリと、それに関連付けられた第1の認証クレデンシャルおよび第2の認証クレデンシャルを有する認証トークンを記憶するためにメモリと協働するように構成されたプロセッサとを含んでよい。第1の認証クレデンシャルおよび第2の認証クレデンシャルは、互いに異なってよい。プロセッサは、認証トークンに基づいてセッションにアクセスするためにサーバとさらに協働してよい。
【0005】
例示的な構成では、第1の認証クレデンシャルおよび第2の認証クレデンシャルのうちの1つは、ユーザクレデンシャルを含んでよい。例として、ユーザクレデンシャルは、クライアントデバイスにおいてメモリに記憶されてよい。別の例によれば、ユーザクレデンシャルは、認証サービスを用いて仮想スマートカードに記憶されてよい。
【0006】
例示的な別の実施形態では、第1の認証クレデンシャルおよび第2の認証クレデンシャルのうちの1つは、クライアントデバイスに関連付けられた公開鍵を含んでよい。例として、公開暗号化鍵は、ルートオブトラスト(RoT)によって署名されることがある。例示的な別の構成では、第1の認証クレデンシャルおよび第2の認証クレデンシャルのうちの1つは、クラウドストレージに記憶された暗号化されたユーザクレデンシャルを指すチケットまたはトークンを含んでよい。
【0007】
プロセッサは、たとえば、コンピューティングデバイスに割り当てられた接続リースにさらに基づいてセッションにアクセスするためにサーバと協働してよい。そのうえ、例示的ないくつかの実装では、第1の認証クレデンシャルおよび第2の認証クレデンシャルは、異なるロケーションに記憶されてよい。例として、認証トークンは、ポリモーフィック認証トークンを含むことがある。さらに、セッションは、たとえば、ウェブアプリケーションセッション、ソフトウェアアズアサービス(SaaS)アプリケーションセッション、仮想アプリケーションセッション、および仮想デスクトップセッションのうちの少なくとも1つを含んでよい。
【0008】
関連方法は、それに関連付けられた第1の認証クレデンシャルと第2の認証クレデンシャルとを有するクライアントデバイスのための認証トークンを記憶することを含んでよく、この第1の認証クレデンシャルと第2の認証クレデンシャルは互いに異なる。方法は、クライアントデバイスにおいて、認証トークンに基づいてセッションにアクセスするためにサーバと協働することをさらに含んでよい。
【図面の簡単な説明】
【0009】
【
図1】本開示の様々な態様が実装され得るコンピューティングデバイスのネットワーク環境の概略ブロック図である。
【
図2】
図1に示されているクライアントマシンまたはリモートマシンの一実施形態を実施するために有用なコンピューティングデバイスの概略ブロック図である。
【
図3】本開示の様々な態様が実装され得るクラウドコンピューティング環境の概略ブロック図である。
【
図4】本開示の様々な態様が実装され得る、ワークスペースアプリを動作させるデスクトップデバイス、モバイルデバイス、およびウェブベースのデバイスの概略ブロック図である。
【
図5】本開示の様々な態様が実装され得るコンピューティングデバイスのワークスペースネットワーク環境の概略ブロック図である。
【
図6】例示的な実施形態による、それに関連付けられた異なる認証クレデンシャルを有する認証トークンに基づいてクライアントデバイスセッションアクセスを提供するコンピューティングシステムの概略ブロック図である。
【
図7】接続リース構成を実装する
図6のコンピューティングシステムの例示的な実施形態の概略ブロック図である。
【
図8A】
図7のシステムの例示的な実装におけるユーザ識別およびデバイス識別を用いた認証を示すシーケンスフロー図である。
【
図8B】
図7のシステムの例示的な実装におけるユーザ識別およびデバイス識別を用いた認証を示すシーケンスフロー図である。
【
図9】
図7のシステムの例示的な実装におけるクライアントデバイス登録を示すシーケンスフロー図である。
【
図10A】
図7のシステムの例示的な実装における寿命の長い単回使用リフレッシュトークンを用いた認証を示すシーケンスフロー図である。
【
図10B】
図7のシステムの例示的な実装における寿命の長い単回使用リフレッシュトークンを用いた認証を示すシーケンスフロー図である。
【
図10C】
図7のシステムの例示的な実装における寿命の長い単回使用リフレッシュトークンを用いた認証を示すシーケンスフロー図である。
【
図11】
図7のシステムの例示的な実装においてユーザアサーションおよびデバイスアサーションをチェックする手法を示すシーケンスフロー図である。
【
図12A】
図7のシステムの例示的な実装において識別プラットフォームに基づいてポリモーフィック認証トークンを作成する手法を示すシーケンスフロー図である。
【
図12B】
図7のシステムの例示的な実装において識別プラットフォームに基づいてポリモーフィック認証トークンを作成する手法を示すシーケンスフロー図である。
【
図13A】
図7のシステムの例示的な実装においてユーザクレデンシャルに基づいてポリモーフィック認証トークンを作成する手法を示すシーケンスフロー図である。
【
図13B】
図7のシステムの例示的な実装においてユーザクレデンシャルに基づいてポリモーフィック認証トークンを作成する手法を示すシーケンスフロー図である。
【
図14】
図7のシステムの例示的な実装においてパブリッシュされたリソースを列挙する手法を示すシーケンスフロー図である。
【
図15A】
図7のシステムの例示的な実装において接続リースに基づいてセッション作成およびシングルサインオンを用いた認証のための手法を示すシーケンスフロー図である。
【
図15B】
図7のシステムの例示的な実装において接続リースに基づいてセッション作成およびシングルサインオンを用いた認証のための手法を示すシーケンスフロー図である。
【
図16】
図6のシステムに関連付けられた例示的な方法態様を示すフロー図である。
【発明を実施するための形態】
【0010】
接続リース(CL)は、ネットワーク接続性および初期セッション確立に関するリソースロケーションへのクライアントデバイスまたはエンドポイントデバイスによるオフライン許可アクセスのための手法を提供する。しかしながら、CLを用いても、依然として、リモートセッションへのユーザ認証の必要性があることがある。たとえば、仮想配信エージェントは、ユーザを仮想セッションにログインさせるためにユーザクレデンシャルを必要とすることがある。より具体的には、ユーザ名およびパスワードなどの明示的なクレデンシャルが、仮想配信アプライアンスにおいてクレデンシャルプロバイダまたはクレデンシャルプロバイダフィルタに提供される必要があることがあり、次いで、クレデンシャルプロバイダまたはクレデンシャルプロバイダフィルタは、ユーザを新しいWindowsセッションにログインさせるまたは既存のセッションにアタッチするためにWindowsログオンサブシステムにクレデンシャルを提供する。同様に、ゲートウェイアプライアンスは、同様に、ユーザ認証を必要とすることがある。
【0011】
ユーザ認証シングルサインオン(SSOn)を用いない場合、ユーザは、彼らがCLを介して接続するたびに彼らのクレデンシャルを入力することが必要とされることがあるが、これは、接続リーシングのユーザエクスペリエンス(UX)から減ずるであろう。SSOnのための既存のシステムは、エンドポイントデバイス上にユーザクレデンシャルを記憶することに依拠することがあり、これは、それらを、たとえば、他のユーザによるおよび/または他のデバイスからの、盗難および再現攻撃を受けやすくする。他の手法は、たとえば、クレデンシャルをクラウド内に記憶し、それらをCitrix Workspaceなどのクラウドインターフェースを介して検索可能または再使用可能にすることに依拠することがある。しかしながら、ユーザクレデンシャルを容易に復号可能な形でクラウドに記憶することは、セキュリティならびにプライバシ上の懸念を有することがある。したがって、いくつかの手法はクラウドに記憶されたクレデンシャルは寿命が短く、たとえば、数分または数時間であることを必要とすることがある。しかしながら、これは、寿命が長く、たとえば、再認証なしで2週間以上リソースアクセスを提供する、CLの使用法とあまり合わない。
【0012】
そのうえ、クラウドに記憶されたクレデンシャルは、常に直接的に使用可能であるとは限らないことがある。これは、たとえば、クラウドサービスがダウンしているまたはそうでない場合はエンドポイントデバイスから到達可能でないときに発生することがある。
【0013】
追加の使用事例は、たとえば、SSOnの目的でパブリッシュされたリソース列挙、エンドポイントデバイス鍵ブートスラッピング、CLの生成の要求およびそれぞれCLのエンドポイントへの同期(ダウンロード)などを含む。これらの使用事例のいくつかは、必ずしも、明示的なユーザクレデンシャルを必要としないことがあるが、寿命の長い認証の使用を依然として必要とすることがある。本明細書において説明される手法は、有利には、複数の異なる認証クレデンシャルに基づいて認証トークンの使用を通じたCLのための比較的寿命の長い認証および他の認証動作も可能としながら、CLアーキテクチャ内を含めてユーザ認証に関する上記で述べられた技術的課題に対処する助けとなる。
【0014】
最初に
図1を参照すると、本開示の様々な態様が実装され得る非限定的なネットワーク環境10は、1つまたは複数のクライアントマシン12A~12Nと、1つまたは複数のリモートマシン16A~16Nと、1つまたは複数のネットワーク14、14’と、コンピューティング環境10内に設置された1つまたは複数のアプライアンス18とを含む。クライアントマシン12A~12Nは、ネットワーク14、14’を介してリモートマシン16A~16Nと通信する。
【0015】
いくつかの実施形態では、クライアントマシン12A~12Nは、中間アプライアンス18を介してリモートマシン16A~16Nと通信する。図のアプライアンス18は、ネットワーク14、14’間に配置され、ネットワークインターフェースまたはゲートウェイと称されることもある。いくつかの実施形態では、アプライアンス108は、アプリケーション配信コントローラ(ADC)として動作し得、クライアントにデータセンタ、クラウド内で展開される、またはクライアントデバイスの範囲にわたってソフトウェアアズアサービス(SaaS)として配信されるビジネスアプリケーションおよび他のデータへのアクセスを提供し、および/または負荷分散など他の機能性を提供する。いくつかの実施形態では、複数のアプライアンス18が使用され得、アプライアンス18は、ネットワーク14および/または14’の一部として展開され得る。
【0016】
クライアントマシン12A~12Nは、全体的に、クライアントマシン12、ローカルマシン12、クライアント12、クライアントノード12、クライアントコンピュータ12、クライアントデバイス12、コンピューティングデバイス12、エンドポイント12、またはエンドポイントノード12と称されることがある。リモートマシン16A~16Nは、全体的に、サーバ16またはサーバファーム16と称されることがある。いくつかの実施形態では、クライアントデバイス12は、サーバ16によって提供されるリソースにアクセスしようとするクライアントノードとしても、他のクライアントデバイス12A~12Nのためのホストされるリソースへのアクセスを提供するサーバ16としても機能するための能力を有し得る。ネットワーク14、14’は、全体的に、ネットワーク14と称されることがある。ネットワーク14は、有線ネットワークおよびワイヤレスネットワークの任意の組合せで構成されてよい。
【0017】
サーバ16は、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、セキュアソケットレイヤ仮想プライベートネットワーク(SSL VPN)サーバ、ファイヤウォール、ウェブサーバ、アクティブディレクトリを実行するサーバ、クラウドサーバ、またはファイヤウォール機能性、アプリケーション機能性、もしくは負荷分散機能性を提供するアプリケーションアクセラレーションプログラムを実行するサーバなど、任意のサーバタイプであってよい。
【0018】
サーバ16は、ソフトウェア、プログラム、実行可能命令、仮想マシン、ハイパーバイザ、ウェブブラウザ、ウェブベースのクライアント、クライアント-サーバアプリケーション、シンクライアントコンピューティングクライアント、ActiveXコントロール、Javaアプレット、ソフトIP電話のようなボイスオーバーインターネットプロトコル(VoIP)通信に関連するソフトウェア、ストリーミングビデオおよび/またはオーディオのためのアプリケーション、リアルタイムデータ通信を容易にするためのアプリケーション、HTTPクライアント、FTPクライアント、Oscarクライアント、Telnetクライアント、または実行可能命令の任意の他のセットのいずれか1つであってよいアプリケーションを実行し、動作させ、または他の方法で提供し得る。
【0019】
いくつかの実施形態では、サーバ16は、シンクライアントまたはリモートディスプレイプロトコルを使用しサーバ16上で実行されるアプリケーションによって生成されるディスプレイ出力を取り込むリモートプレゼンテーションサービスプログラムまたは他のプログラムを実行し、アプリケーションディスプレイ出力をクライアントデバイス12に送信し得る。
【0020】
さらに他の実施形態では、サーバ16は、クライアントデバイス12のユーザにコンピューティング環境へのアクセスを提供する仮想マシンを実行し得る。クライアントデバイス12は、仮想マシンであってよい。仮想マシンは、たとえばハイパーバイザ、仮想マシンマネージャ(VMM)、またはサーバ16内の任意の他のハードウェア仮想化技法によって管理され得る。
【0021】
いくつかの実施形態では、ネットワーク14は、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、プライマリパブリックネットワーク14、およびプライマリプライベートネットワーク14であってよい。追加の実施形態は、様々なプロトコルを使用しモバイルデバイスの間で通信するモバイル電話ネットワークのネットワーク14を含み得る。ワイヤレスローカルエリアネットワーク(WLAN)内の近距離通信については、プロトコルは、802.11、Bluetooth、および近距離無線通信(NFC)を含み得る。
【0022】
図2は、クライアントデバイス12、アプライアンス18、および/またはサーバ16の一実施形態を実施するために有用なコンピューティングデバイス20のブロック図を示す。コンピューティングデバイス20は、1つまたは複数のプロセッサ22、揮発性メモリ24(たとえば、ランダムアクセスメモリ(RAM))、不揮発性メモリ30、ユーザインターフェース(UI)38、1つまたは複数の通信インターフェース26、および通信バス48を含む。
【0023】
不揮発性メモリ30は、1つもしくは複数のハードディスクドライブ(HDD)もしくは他の磁気記憶媒体もしくは光記憶媒体、フラッシュドライブもしくは他のソリッドステート記憶媒体など1つもしくは複数のソリッドステートドライブ(SSD)、1つもしくは複数のハイブリッド磁気およびソリッドステートドライブ、ならびに/またはクラウドストレージなど1つもしくは複数の仮想ストレージボリューム、あるいはそのような物理的ストレージボリュームおよび仮想ストレージボリュームの組合せ、またはそのアレイを含み得る。
【0024】
ユーザインターフェース38は、グラフィカルユーザインターフェース(GUI)40(たとえば、タッチスクリーン、ディスプレイなど)および1つまたは複数の入力/出力(I/O)デバイス42(たとえば、マウス、キーボード、マイクロフォン、1つまたは複数のスピーカ、1つまたは複数のカメラ、1つまたは複数のバイオメトリックスキャナ、1つまたは複数の環境センサ、および1つまたは複数の加速度計など)を含み得る。
【0025】
不揮発性メモリ30は、オペレーティングシステム32、1つまたは複数のアプリケーション34、およびデータ36を記憶し、たとえばオペレーティングシステム32および/またはアプリケーション34のコンピュータ命令が揮発性メモリ24から取り出されプロセッサ22によって実行されるようにする。いくつかの実施形態では、揮発性メモリ24は、メインメモリより速い応答時間を提供し得る1つまたは複数のタイプのRAMおよび/またはキャッシュメモリを含み得る。データは、GUI40の入力デバイスを使用して入力されても、I/Oデバイス42から受信されてもよい。コンピュータ20の様々な要素は、通信バス48を介して通信し得る。
【0026】
図のコンピューティングデバイス20は、例示的なクライアントデバイスまたはサーバとして示されているにすぎず、本明細書に記載されているように動作することが可能な好適なハードウェアおよび/またはソフトウェアを有し得る任意のタイプのマシンまたはマシンのセットを有する任意のコンピューティングまたは処理環境によって実装されてよい。
【0027】
プロセッサ22は、1つまたは複数のプログラム可能なプロセッサによって、コンピュータプログラムなど1つまたは複数の実行可能命令を実行し、システムの機能を実施するように実装され得る。本明細書で使用されるとき、「プロセッサ」という用語は、機能、動作、または動作のシーケンスを実施する回路を表す。機能、動作または動作のシーケンスは、回路にハードコード化されても、メモリデバイス内に保持された命令によりソフトコード化され、回路によって実行されてもよい。プロセッサは、デジタル値を使用して、および/またはアナログ信号を使用して機能、動作、または動作のシーケンスを実施し得る。
【0028】
いくつかの実施形態では、プロセッサは、1つもしくは複数の特定用途向け集積回路(ASIC)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、グラフィック処理ユニット(GPU)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)、マルチコアプロセッサ、または関連のメモリを有する汎用コンピュータ内に埋め込むことができる。
【0029】
プロセッサ22は、アナログ、デジタル、または混合信号であってよい。いくつかの実施形態では、プロセッサ22は、1つもしくは複数の物理的プロセッサ、または1つもしくは複数の仮想(たとえば、リモートに位置する、またはクラウド)プロセッサであってよい。複数のプロセッサコアを含むプロセッサおよび/または複数のプロセッサは、命令の並列同時実行のための、または複数のデータ上の1つの命令の並列同時実行のための機能性を提供し得る。
【0030】
通信インターフェース26は、コンピューティングデバイス20が、セルラ接続を含む様々な有線および/またはワイヤレス接続を通じてローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、またはインターネットなどコンピュータネットワークにアクセスすることを可能にするための1つまたは複数のインターフェースを含み得る。
【0031】
記載の実施形態では、コンピューティングデバイス20は、クライアントデバイスのユーザの代わりにアプリケーションを実行し得る。たとえばコンピューティングデバイス20のハイパーバイザによって管理される1つまたは複数の仮想マシンを実行し得る。各仮想マシンは、ホストされるデスクトップセッションなど、ユーザまたはクライアントデバイスの代わりにアプリケーションが実行される実行セッションを提供し得る。また、コンピューティングデバイス20は、ホストされるデスクトップ環境を提供するために端末サービスセッションを実行し得る。コンピューティングデバイス20は、1つまたは複数のアプリケーション、1つまたは複数のデスクトップアプリケーション、および1つまたは複数のアプリケーションが実行され得る1つまたは複数のデスクトップセッションを含むリモートコンピューティング環境へのアクセスを提供し得る。
【0032】
例示的な仮想化サーバ16は、フロリダ州フォートローダーデールのCitrix Systems, Inc.(「Citrix Systems」)によって提供されるCitrix Hypervisorを使用して実装され得る。仮想アプリおよびデスクトップセッションは、やはりCitrix SystemsからのCitrix Virtual Apps and Desktops(CVAD)によってさらに提供され得る。Citrix Virtual Apps and Desktopsは、任意のデバイスからの仮想アプリ、デスクトップ、およびデータセッションを含む仮想セッションへの広範なアクセスとともに、スケーラブルなVDI解決策を実装するためのオプションを加えて、生産性を高めるアプリケーション仮想化解決策である。仮想セッションは、たとえばソフトウェアアズアサービス(SaaS)およびデスクトップアズアサービス(DaaS)セッションをさらに含み得る。
【0033】
図3を参照すると、クラウド環境、クラウドコンピューティング、またはクラウドネットワークとも称されることがあるクラウドコンピューティング環境50が示されている。クラウドコンピューティング環境50は、複数のユーザまたはテナントへの共有コンピューティングサービスおよび/またはリソースの配信を提供することができる。たとえば共有リソースおよびサービスは、それだけには限らないがネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、データベース、ソフトウェア、ハードウェア、アナリティクス、およびインテリジェンスを含むことができる。
【0034】
クラウドコンピューティング環境50では、1つまたは複数のクライアント52A~52C(上記のものなど)がクラウドネットワーク54と通信する。クラウドネットワーク54は、バックエンドプラットフォーム、たとえばサーバ、ストレージ、サーバファーム、またはデータセンタを含み得る。ユーザまたはクライアント52A~52Cは、単一の組織/テナントまたは複数の組織/テナントに対応することができる。より具体的には、例示的な実装では、クラウドコンピューティング環境50は、単一の組織(たとえば、エンタープライズクラウド)にサービスを提供するプライベートクラウドを提供し得る。別の例では、クラウドコンピューティング環境50は、複数の組織/テナントにサービスを提供するコミュニティまたはパブリッククラウドを提供し得る。さらなる実施形態では、クラウドコンピューティング環境50は、パブリッククラウドとプライベートクラウドの組合せであるハイブリッドクラウドを提供し得る。パブリッククラウドは、サードパーティによってクライアント52A~52Cまたは企業体/テナントに対して維持されるパブリックサーバを含み得る。サーバは、遠隔の地理的ロケーションなどに現地から離れて位置してもよい。
【0035】
クラウドコンピューティング環境50は、それぞれの環境内の異なる需要に応答して異なる物理的リソースおよび仮想リソースが動的に割り当てまたは再割り当てされるマルチテナント環境またはマルチテナントモデルを通じて、クライアント52A~52Cを介して複数のユーザにサービスを提供するために、リソースプール化を提供することができる。マルチテナント環境は、複数のユーザにサービスを提供するためにソフトウェア、アプリケーション、またはソフトウェアアプリケーションの単一のインスタンスを提供することができるシステムまたはアーキテクチャを含むことができる。いくつかの実施形態では、クラウドコンピューティング環境50は、複数のクライアント52A~52Cのためにネットワークにわたってコンピューティング能力(たとえば、サーバ時間、ネットワークストレージ)を一方的にプロビジョニングするためのオンデマンドのセルフサービスを提供することができる。クラウドコンピューティング環境50は、1つまたは複数のクライアント52からの異なる需要に応答して動的にスケールアウトまたはスケールインするための弾力性を提供することができる。いくつかの実施形態では、コンピューティング環境50は、提供された共有サービスおよびリソースに対応するレポートを監視、制御、および/または生成するための監視サービスを含む、または提供することができる。
【0036】
いくつかの実施形態では、クラウドコンピューティング環境50は、たとえばソフトウェアアズアサービス(SaaS)56、プラットフォームアズアサービス(PaaS)58、インフラストラクチャアズアサービス(IaaS)60、およびデスクトップアズアサービス(DaaS)62など異なるタイプのクラウドコンピューティングサービスのクラウドベースの配信を提供し得る。IaaSは、ユーザが指定された期間中、必要とされるインフラストラクチャリソースの使用を貸借することを指し得る。IaaSは、大きなプールからストレージ、ネットワーキング、サーバ、または仮想化リソースを提供し、ユーザが必要に応じてより多くのリソースにアクセスすることによって迅速にスケールアップすることを可能にし得る。IaaSの例は、ワシントン州シアトルのAmazon.com, Inc.によって提供されているAMAZON WEB SERVICES、テキサス州サンアントニオのRackspace US, Inc.によって提供されているRACKSPACE CLOUD、カリフォルニア州マウンテンビューのGoogle Inc.によって提供されているGoogle Compute Engine、またはカリフォルニア州サンタバーバラのRightScale, Inc.によって提供されているRIGHTSCALEを含む。
【0037】
PaaSプロバイダは、たとえばストレージ、ネットワーキング、サーバ、または仮想化を含むIaaSによって提供される機能性、ならびに、たとえばオペレーティングシステム、ミドルウェア、またはランタイムリソースなど追加のリソースを提供し得る。PaaSの例は、ワシントン州レドモンドのMicrosoft Corporationによって提供されているWINDOWS AZURE、Google Inc.によって提供されているGoogle App Engine、およびカリフォルニア州サンフランシスコのHeroku, Inc.によって提供されているHEROKUを含む。
【0038】
SaaSプロバイダは、ストレージ、ネットワーキング、サーバ、仮想化、オペレーティングシステム、ミドルウェア、またはランタイムリソースを含めて、PaaSが提供するリソースを提供し得る。いくつかの実施形態では、SaaSプロバイダは、たとえば、データおよびアプリケーションリソースを含む追加のリソースを提供し得る。SaaSの例は、Google Inc.によって提供されているGOOGLE APPS、カリフォルニア州サンフランシスコのSalesforce.com Inc.によって提供されているSALESFORCE、またはMicrosoft Corporationによって提供されているOFFICE 365を含む。また、SaaSの例は、データストレージプロバイダ、たとえば、カリフォルニア州サンフランシスコのDropbox, Inc.によって提供されているDROPBOX、Microsoft Corporationによって提供されているMicrosoft SKYDRIVE、Google Inc.によって提供されているGoogle Drive、またはカリフォルニア州クパチーノのApple Inc.によって提供されているApple ICLOUDを含み得る。
【0039】
SaaS、DaaS(ホストされるデスクトップサービスとしても知られる)と同様のものは、仮想デスクトップセッションが仮想デスクトップ上で使用されるアプリとともにクラウドサービスとして配信されることが典型的である仮想デスクトップインフラストラクチャ(VDI)の形態である。Citrix Cloudは、DaaS配信プラットフォームの一例である。DaaS配信プラットフォームは、たとえばワシントン州レドモンドのMicrosoft CorporationからのAZURE CLOUD(本明細書では「Azure」)、またはワシントン州シアトルのAmazon.com, Inc.によって提供されているAMAZON WEB SERVICES(本明細書では「AWS」)など、パブリッククラウドコンピューティングインフラストラクチャ上でホストされ得る。Citrix Cloudの場合、統一されたエクスペリエンスを届けるためにアプリ、ファイル、およびデスクトップを(オンプレミスまたはクラウド内にかかわらず)一緒にするための単一のエントリポイントとして、Citrix Workspaceアプリが使用され得る。
【0040】
次に、Citrix Workspaceアプリによって提供される統一されたエクスペリエンスについて、
図4を参照してより詳細に論じられる。Citrix Workspaceアプリは、本明細書では、全体的にワークスペースアプリ70と称されることになる。ワークスペースアプリ70は、その1つのカテゴリがアプリケーションである、ユーザがワークスペースリソースにアクセスする方法である。これらのアプリケーションは、SaaSアプリ、ウェブアプリ、または仮想アプリとすることができる。また、ワークスペースアプリ70は、ローカルデスクトップまたは仮想デスクトップであり得るデスクトップへユーザがアクセスできるようにする。さらに、ワークスペースアプリ70は、多数のリポジトリに記憶され得るファイルおよびデータにユーザがアクセスできるようにする。ファイルおよびデータは、たとえばCitrix ShareFile上でホストされても、オンプレミスネットワークファイルサーバ上でホストされても、Microsoft OneDriveまたはGoogle Drive Boxなど何らかの他のクラウドストレージプロバイダにおいてホストされてもよい。
【0041】
統一されたエクスペリエンスを提供するために、ユーザが必要とするリソースのすべてが、ワークスペースアプリ70に位置しそこからアクセス可能であってよい。ワークスペースアプリ70は、異なるバージョンで提供される。ワークスペースアプリ70の1つのバージョンは、デスクトップ72用のインストールされたアプリケーションであり、それはWindows、Mac、またはLinuxプラットフォームに基づくものであってよい。ワークスペースアプリ70の第2のバージョンは、モバイルデバイス74用のインストールされたアプリケーションであり、それはiOSまたはAndroidプラットフォームに基づくものであってよい。ワークスペースアプリ70の第3のバージョンは、ハイパーテキストマークアップ言語(HTML)ブラウザを使用し、ワークスペース環境へのユーザアクセスを提供する。ワークスペースアプリ70のウェブバージョンは、公衆ブース76を動作させるときなどユーザがワークスペースアプリをインストールしたくない、またはワークスペースアプリをインストールする権利を有していないときに使用される。
【0042】
ワークスペースアプリ70のこれらの異なるバージョンのそれぞれは、同じユーザエクスペリエンスを提供することが有利であり得る。これは、異なるプラットフォームでクライアントデバイス72からクライアントデバイス74からクライアントデバイス76へユーザが移動し、それらのワークスペースについて同じユーザエクスペリエンスを受けることを可能にすることが有利である。クライアントデバイス72、74、および76は、エンドポイントと称される。
【0043】
上記のように、ワークスペースアプリ70は、Windows、Mac、Linux、iOS、およびAndroidプラットフォーム、ならびにHTMLブラウザ(HTML5)を用いたプラットフォームをサポートする。ワークスペースアプリ70は、複数のエンジン80~90を組み込んでおり、ユーザが多数のタイプのアプリおよびデータリソースにアクセスすることを可能にする。各エンジン80~90は、特定のリソースについてユーザエクスペリエンスを最適化する。また、各エンジン80~90は、組織または企業体にユーザ活動および潜在的なセキュリティ脅威への洞察力を提供する。
【0044】
埋め込みブラウザエンジン80は、SaaSおよびウェブアプリを、ローカルでインストールされた管理されていないブラウザ上で起動する代わりに、ワークスペースアプリ70内に含まれたまま保つ。埋め込みブラウザを用いて、ワークスペースアプリ70は、SaaSおよびウェブアプリ内でユーザによって選択されたハイパーリンクをインターセプトし、アクセスを承認、拒否、または隔離する前にリスク分析を要求することができる。
【0045】
ハイデフィニションエクスペリエンス(HDX)エンジン82は、WindowsオペレーティングシステムまたはLinuxオペレーティングシステム上で動作する仮想ブラウザ、仮想アプリ、およびデスクトップセッションとの接続を確立する。HDXエンジン82を用いて、WindowsおよびLinuxリソースはリモートで動作し、一方、ディスプレイは、エンドポイント上でローカルのままとなる。可能な最良のユーザエクスペリエンスを提供するために、HDXエンジン82は、異なる仮想チャネルを使用し、変化するネットワーク条件およびアプリケーション要件に適応する。高レイテンシまたは高パケット損失ネットワークを克服するために、HDXエンジン82は、最適化されたトランスポートプロトコルおよびより大きな圧縮アルゴリズムを自動的に実装する。各アルゴリズムは、ビデオ画像またはテキストなど、あるタイプのディスプレイのために最適化される。HDXエンジン82は、アプリケーション内でこれらのタイプのリソースを識別し、画面のそのセクションに最も適切なアルゴリズムを適用する。
【0046】
多数のユーザについて、ワークスペースはデータを中心とする。コンテンツコラボレーションエンジン84は、そのデータがオンプレミスにあるかクラウド内にあるかにかかわらず、ユーザがすべてのデータをワークスペースに統合することを可能にする。コンテンツコラボレーションエンジン84は、管理者およびユーザが、協働するためのコネクタのセット、およびユーザ特有のデータストレージロケーションを作成することを可能にする。これは、たとえばOneDrive、Dropbox、およびオンプレミスネットワークファイル共有を含むことができる。ユーザは、ファイルを複数のリポジトリ内で維持し、ワークスペースアプリ70がそれらを単一の個人化されたライブラリにまとめることを可能にすることができる。
【0047】
ネットワーキングエンジン86は、エンドポイントまたはエンドポイント上のアプリが安全なバックエンドリソースへのネットワークコネクティビティを必要とするか否かを識別する。ネットワーキングエンジン86は、エンドポイントデバイス全体のために完全なVPNトンネルを自動的に確立することができ、またはアプリ特有のμVPN接続を作成することができる。μVPNは、どのバックエンドリソースにアプリケーションおよびエンドポイントデバイスがアクセスすることができるかを定義し、したがってバックエンドインフラストラクチャを保護する。多数の例において、いくつかのユーザ活動は、独特なネットワークベースの最適化から利益を得る。ユーザがファイルコピーを要求する場合、ワークスペースアプリ70は、その活動をより速く完了するために、自動的に複数のネットワーク接続を同時に使用する。ユーザがVoIP呼を開始する場合、ワークスペースアプリ70は、その呼を複数のネットワーク接続にわたって複製することによってその品質を改善する。ネットワーキングエンジン86は、最初に到着するパケットだけを使用する。
【0048】
アナリティクスエンジン88は、ユーザのデバイス、ロケーション、および挙動についてレポートし、クラウドベースのサービスは、盗難にあったデバイス、ハッキングされた識別、または退職する準備をしているユーザの結果起こり得る潜在的な異常を識別する。アナリティクスエンジン88によって集められる情報は、対策を自動的に実装することによって企業資産を保護する。
【0049】
管理エンジン90は、ワークスペースアプリ70を現在のまま保つ。これは、ユーザに最新の能力を提供するだけでなく、追加的なセキュリティ拡張をも含む。ワークスペースアプリ70は、カスタマイズ可能なポリシに基づいて、規定通りにチェックし、自動的に更新を展開する自動更新サービスを含む。
【0050】
次に
図5を参照して、ワークスペースアプリ70に基づいて、統一されたエクスペリエンスをユーザに提供するワークスペースネットワーク環境100について論じられる。ワークスペースアプリ70のデスクトップバージョン、モバイルバージョン、およびウェブバージョンはすべて、クラウド104内で動作するワークスペースエクスペリエンスサービス102と通信する。次いで、ワークスペースエクスペリエンスサービス102は、リソースフィードマイクロサービス108を介して異なるリソースフィード16をすべて引き込む。すなわち、クラウド104内で動作する他のサービスからの異なるリソースすべてが、リソースフィードマイクロサービス108によって引き込まれる。異なるサービスは、仮想アプリおよびデスクトップサービス110、安全なブラウザサービス112、エンドポイント管理サービス114、コンテンツコラボレーションサービス116、ならびにアクセス制御サービス118を含み得る。組織または企業体がサブスクライブするサービスは、自動的にワークスペースエクスペリエンスサービス102内に引き込まれ、ユーザのワークスペースアプリ70に配信される。
【0051】
クラウドフィード120に加えて、リソースフィードマイクロサービス108は、オンプレミスフィード122を引き込むことができる。オンプレミスデータセンタ内で動作している仮想アプリおよびデスクトップ展開を提供するために、クラウドコネクタ124が使用される。デスクトップ仮想化は、たとえばCitrix仮想アプリおよびデスクトップ126、Microsoft RDS 128、またはVMware Horizon 130によって提供され得る。クラウドフィード120およびオンプレミスフィード122に加えて、たとえばモノのインターネット(IoT)デバイス134からのデバイスフィード132がリソースフィードマイクロサービス108によって引き込まれてもよい。異なるリソースをユーザの全体的なワークスペースエクスペリエンスに結び付けるために、サイトアグリゲーションが使用される。
【0052】
クラウドフィード120、オンプレミスフィード122およびデバイスフィード132はそれぞれ、異なる独特のタイプのアプリケーションでユーザのワークスペースエクスペリエンスを提供する。ワークスペースエクスペリエンスは、ローカルアプリ、SaaSアプリ、仮想アプリ、およびデスクトップブラウザアプリ、ならびにストレージアプリをサポートすることができる。フィードが増大および膨張し続けるにつれて、ワークスペースエクスペリエンスは、ユーザの全体的なワークスペース内に追加のリソースを含むことができる。これは、ユーザがアクセスすることを必要とするアプリケーションに1つずつ到達することができることを意味する。
【0053】
なおもワークスペースネットワーク環境20を参照して、統一されたエクスペリエンスがどのようにユーザに提供されるかについて、一連のイベントが記載される。統一されたエクスペリエンスは、ユーザがワークスペースアプリ70を使用し、クラウド104内で動作するワークスペースエクスペリエンスサービス102に接続し、その識別を提示することで始まる(イベント1)。識別は、たとえばユーザ名およびパスワードを含む。
【0054】
ワークスペースエクスペリエンスサービス102は、ユーザの識別をクラウド104内の識別マイクロサービス140に転送する(イベント2)。識別マイクロサービス140は、組織のワークスペース構成に基づいて、正しい識別プロバイダ142に対してユーザを認証する(イベント3)。認証は、クラウドコネクタ146の展開を必要とするオンプレミスアクティブディレクトリ144に基づくものであってよい。また、認証は、たとえば、Azure Active Directory148、さらにはCitrix ADCまたはOktaなどサードパーティ識別プロバイダ150に基づくものであってもよい。
【0055】
許可された後、ワークスペースエクスペリエンスサービス102は、リソースフィードマイクロサービス108に、許可されたリソースのリストを要求する(イベント4)。各構成されたリソースフィード106について、リソースフィードマイクロサービス108は、シングルサインマイクロサービス152に識別トークンを要求する(イベント5)。
【0056】
リソースフィード特有の識別トークンが、各リソースの認証ポイントに渡される(イベント6)。オンプレミスリソース122が、クラウドコネクタ124を通じて接触を受ける。各リソースフィード106は、それぞれの識別について許可されたリソースのリストで返信する(イベント7)。
【0057】
リソースフィードマイクロサービス108は、異なるリソースフィード106からすべてのアイテムを集約し、ワークスペースエクスペリエンスサービス102に転送する(イベント8)。ユーザは、ワークスペースエクスペリエンスサービス102からリソースを選択する(イベント9)。
【0058】
ワークスペースエクスペリエンスサービス102は、要求をリソースフィードマイクロサービス108に転送する(イベント10)。リソースフィードマイクロサービス108は、シングルサインオンマイクロサービス152に識別トークンを要求する(イベント11)。ユーザの識別トークンは、ワークスペースエクスペリエンスサービス102に送られ(イベント12)、ここで起動チケットが生成され、ユーザに送られる。
【0059】
ユーザは、ゲートウェイサービス160に対する安全なセッションを開始し、起動チケットを提示する(イベント13)。ゲートウェイサービス160は、適切なリソースフィード106に対する安全なセッションを開始し、ユーザをシームレスに認証するために識別トークンを提示する(イベント14)。セッションが初期化した後、ユーザは、リソースを使用することができる(イベント15)。ワークスペース全体が単一のアクセスポイントまたはアプリケーションを通じて配信されることは、生産性を改善し、ユーザにとって共通ワークフローを簡素化することが有利である。
【0060】
次に
図6を参照すると、コンピューティングシステム200は、例示的には、上記で論じられたもの(たとえば、クライアントマシン12およびクライアント52)などのクライアントデバイス201を含み、クライアントデバイス201は、それに関連付けられた第1の認証クレデンシャルと第2の認証クレデンシャルとを有する認証トークンに基づいてネットワーク202(たとえば、インターネット)を介してセッションにアクセスするように構成される。より具体的には、以下でさらに論じられるように、たとえば、ユーザクレデンシャルおよびデバイスクレデンシャルなどの第1の認証クレデンシャルと第2の認証クレデンシャルは互いに異なる。システム200は、例示的には、サーバ203をさらに含み、サーバ203は、再び上記で説明されたそれらに類似してよく、認証トークンに応答してセッションへのアクセスをクライアントデバイス201に提供するように構成される。例として、セッションは、ウェブセッションまたはソフトウェアアズアサービス(SaaS)セッション、仮想デスクトップ/アプリセッションなどであってよく、いくつかの実施形態では、サーバ203によって提供されることがあるが、他の実施形態では、別のサーバまたはクラウドサービス(図示せず)によって提供またはホストされる。
【0061】
次に、前述の内容が、クライアントデバイス252(たとえば、クライアントマシン12およびクライアント52)が接続リース(CL)に基づいて仮想コンピューティングセッション254に接続する
図7に図示されるコンピューティングシステム250の、例示的な実装の文脈で説明される。図の例では、上記で説明されたサーバ203および接続リース生成機能は、エンロールメント(enrollment)および接続リース生成のためにクライアントデバイス252とインターフェースするように構成されたクラウドインターフェース256を例示的に含むクラウドコンピューティングサービス255(たとえば、Citrixクラウド)内で実施される。図の例では、クラウドインターフェース256は、上記でさらに論じられたように、Citrix Workspace(WS)とともに実装され、クライアントデバイス252は、Citrix Workspaceアプリ(CWA)262上で動作しているが、異なる実施形態では、他の適切なプラットフォームが使用されてよい。クラウドコンピューティングサービス255は、例示的には、以下でさらに説明されるように、ルートオブトラスト(RoT)257(たとえば、Azure鍵コンテナ)と、接続リース発行サービス(CLIS)258と、ゲートウェイサービス259と、ブローカ260と、データベース261とをさらに含む。
【0062】
バックグラウンドの例として、接続リースは、仮想配信アプライアンス253(たとえば、Citrix VDA)へのネットワーク接続を確立する寿命の長い許可、ならびにパブリッシュされたリソースエンタイトルメント(たとえば、ユーザがアクセスすることを許可された公開アプリケーションまたはデスクトップ)を提供する。図の例では、仮想配信アプライアンス253への接続は、ゲートウェイ263(たとえば、Citrixゲートウェイ)を通じてなされ、ゲートウェイおよび仮想配信アプライアンスは、クラウドコネクタ264を介してクラウドコンピューティングサービス255と通信する。CLは、比較的寿命が長く(たとえば、ポリシーに基づいて数時間から数週間)、したがって、攻撃機会ウィンドウははるかに長いので、セキュリティ要件がより厳しくなることがある。したがって、CLは、暗号化および署名されてよい。CLは、盗難にあったデバイス、損なわれたユーザアカウント、閉鎖されたユーザアカウントなどのイベントに対応するために取り消されることがある。
【0063】
CL失効は、エンドポイントデバイスまたはホスト(たとえば、仮想配信アプライアンス253)がCLIS258またはブローカ260に対してオンラインであるときに適用可能であるが、これは、CLはオフラインモードで使用されることが意図されていないので、CLの使用のための要件ではない。したがって、キャッシュされたCL失効リストは、ゲートウェイ263および仮想配信アプライアンス253にもあってよい。本手法は、有利には、CLが当初発行されたユーザの盗まれたクレデンシャルを供給することによって異なるクライアントデバイス252上での有効なCLの使用を防止すること;異なる有効なユーザのクレデンシャルを供給することによって異なるデバイス上で有効なCLの使用を防止すること;および、異なる認証ユーザによって、たとえばマルチユーザマシン上の別のユーザによって(セッション間脆弱性)、同じデバイス上でのCLの使用を防止することに役立つように、認証トークン内での異なる認証クレデンシャル(たとえば、ユーザ識別拇印およびデバイス識別拇印(エンドポイント公開鍵のハッシュなど)の埋め込みを可能にする。
【0064】
CLは、ネットワーク接続性および初期セッション確立に関するリソースロケーションへのオフライン許可アクセスを提供するが、依然として、セッションリモートへのユーザ認証を必要とすることがある。たとえば、仮想配信アプライアンス253は、ユーザを仮想セッションにログインさせるためにユーザクレデンシャルを必要とすることがある。たとえば、ユーザ名およびパスワードなどの明示的なクレデンシャルが、仮想配信アプライアンス253においてクレデンシャルプロバイダまたはクレデンシャルプロバイダフィルタに提供されなければならないことがあり、次いで、クレデンシャルプロバイダまたはクレデンシャルプロバイダフィルタは、ユーザを新しいWindowsセッションにログインさせるまたは既存のセッションにアタッチするためにWindowsログオンサブシステムにクレデンシャルを提供する。同様に、ゲートウェイ263も、ユーザ認証を必要とすることがある。
【0065】
SSOnを用いない場合、ユーザは、そうでなければ、彼らがCLを介して接続するたびに彼らのクレデンシャルを入力することが必要とされるであろうが、これは、ユーザエクスペリエンスから減ずるであろう。ユーザクレデンシャルは、クライアントデバイス252上に記憶されてよいが、さらなる保護がなければ、これは、それらを、たとえば、他のユーザによるおよび/または他のデバイスからの、盗難および再現攻撃を受けやすくする。一方、クレデンシャルをクラウドに記憶し、それらを、たとえば、チケッティングサービス(たとえば、Citrixクラウド(CC)チケッティング)に記憶されるクレデンシャルを指す認証トークンを介して、検索可能または再使用可能にすることは、比較的に安全である。しかしながら、容易に復号可能な形で、ユーザクレデンシャルをクラウドに記憶することは、セキュリティならびにプライバシ上の懸念も有することがある。したがって、クラウドに記憶されたクレデンシャルは典型的には、寿命が短く、たとえば、数分または数時間であることを必要とすることがある。それにもかかわらず、これは、寿命が長く、たとえば、再認証なしで2週間以上リソースアクセスを提供する、CLの使用法とあまり合わない。そのうえ、クラウドに記憶されるクレデンシャルは、クラウドインターフェース256を介して直接的に使用可能でないことがある(たとえば、WorkspaceがダウンしているまたはCWAから到達可能でないときのCitrix Workspaceの場合)。
【0066】
本明細書において説明される認証手法は、有利には、たとえば、クライアントアプリ(たとえば、CWA)からクラウドコンピューティングサービス255(たとえば、WS)へのSSOn、CLIS258とCLISファイルの同期、パブリッシュされたリソース列挙、エンドポイントデバイスキーブートストラッピング、CLが生成されることの要求およびCLのクライアントデバイス201への同期(ダウンロード)を含む種々の使用事例において使用されてよい。これらの使用事例のうちのいくつかは、明示的なユーザクレデンシャルを必要としないことがあるが、それらは、寿命の長いトークンの使用を依然として必要とすることがあり、これは、本手法が、複数のタイプの認証クレデンシャル(たとえば、デバイスクレデンシャルおよびユーザクレデンシャル)に基づいて認証トークンを提供することによって可能にするものである。
【0067】
図8A~
図8Bのシーケンスフロー
図280をさらに参照して、例示的な実装によるシステム250の動作が次に説明される。簡略化のため、以下のシーケンス図では、システム255の集合的な認証プラットフォームクラウド要素は、(Citrixレガシー)配信サービス(DS)認証を含む、Citrix識別プラットフォーム(CIP)282、別名Citrix Federated識別管理システムとして参照される。CIP は、それ自体の識別プロバイダ(IDP)を提供するが、サードパーティIDPまたは他の識別システムを統合してもよい。CIPは、オープンID接続(OIDC)に基づく。CIPに認証するために、CWAは、CIPログインページまたはサードパーティIDPログインページのウェブビューを表示する。DS認証は、OIDCのリライングパーティ(RP:Relying Party)である。
【0068】
配信サービス認証トークン(DSAuthT)、CL、ポリモーフィックAuthT(ポリモーフィック認証トークン)、ミニCL(Redirect-Targetステータスを有するvalidateSessionResult)、およびゲートウェイ263接続チケット(GCT)は、ユーザ識別拇印とデバイス識別拇印とを、ユーザ識別-ユーザユニバーサルクレーム(user universal claim)(オープン識別子(OID)、セキュリティ識別子(SID)、UPN、電子メール);顧客識別子(ID);およびデバイス識別-デバイスID、クライアントデバイス(エンドポイント)公開鍵母拇印(ハッシュ)のような均一なフォーマットで含む。そのうえ、CL、ポリモーフィックAuthT、ミニCL、GCTは、マニフェスト(クリア)-ユーザデバイス識別を含む;ペイロード(タイプに応じて暗号化されてよい);エンティティのために暗号化された対称鍵(ペイロードが暗号化されている場合);およびマニフェスト上の署名+ペイロード、という署名されたJSONオブジェクトの形であってよい。DSAuthTは、特定のサービスへの制約付きアクセスを提供するセカンダリトークンとして別段に規定されない限りプライマリトークン、たとえば、DSAuthT-WS-CLISである。一般に、ユーザユニバーサルクレームは、いくつかの異なるタイプの識別子を含む。使用されるメインのグローバル一意識別子はOIDである。識別子の残りは、レガシーシステムとの互換性のため、または追加のチェック、たとえば電子メーアドレスのために提供される。
【0069】
リフレッシュトークンは、クラウドに記憶されたDSAuthTを指し、したがって、ユーザデバイスに結び付けられる。したがって、ユーザデバイス識別はまた、上記のオブジェクトを結び付け、アサーションの均一な適用ユーザアサーションおよびデバイスを可能にする。デバイスベアラトークンが、フロントエンド認証において使用され、RoT257によって署名された{デバイスID、エンドポイント公開鍵}という形を有する。
【0070】
シーケンスフロー
図280では、ユーザ識別とデバイス識別の両方が確かめられる。以下でさらに論じられるように、クライアントデバイス252が登録されていない場合、別個のフローが、署名されたデバイスベアラトークンを取得するためにデバイス登録サービス283とともに実行されることがある。ナンスを用いたチャレンジ-レスポンスも、クライアントデバイス252がベアラトークンの真の権利者であることを保証するために実施されることがある。いくつかの実施形態では、ナンスのサイズは、悪意のあるホストが必要に応じて電子メール、ドキュメントなどに署名するよう求めることを防止するために16バイトに保たれてよいが、他のサイズも使用されてよい。デバイス登録サービス283は、クライアントデバイス252が依然として有効である(取り消されていない)ことを保証する助けとなるために接触されてよい。ユーザ認証後、クレデンシャルは、比較的短いチケット保持ポリシー、たとえば24時間を用いて、CCチケッティング284に記憶されてよい。クレデンシャルは暗号化されるが、クラウドコンピューティングサービス255によって容易に復号可能である。対称鍵およびCCチケットは、DSAuthTの一部として記憶される。DSAuthTは、ユーザの識別およびデバイスの識別を用いて作成される。この機能は、認証マネージャ(AM)281の支援を受けて実装される。
【0071】
加えて
図9のシーケンスフロー
図290を参照すると、CWA262は、CIP282によってデバイス登録サービス283にリダイレクトされ、デバイス登録サービス283は、オープンID接続(OIDC)のリライングパーティ(RP)である。デバイス登録サービス283は、サービス鍵(図示せず)を使用してルートオブトラスト(RoT)257とともにブートストラップする。CWA262は、たとえば、ハードウェアに裏打ちされた(hardware-backed)秘密鍵(TPM)を用いて、秘密/公開鍵ペアを生成する。ユーザ認証は、クライアントデバイス252を登録するために必要とされる。デバイス登録サービス283は、デバイス情報をCWAから取得し、デバイスIDを生成し、クラウドストレージ、ここではデータベース261内のクライアントデバイス252を登録する。デバイス登録サービス283は、ベアラトークンを作成し、それに、RoTによって署名された{デバイスID、エンドポイント公開鍵}のようにRoT257を用いて署名する。ベアラトークンはCWA262に返され、それは、クライアントデバイス252に記憶される。
【0072】
ベアラトークンは、レジリエンスの理由で、たとえば、デバイス登録サービス283が妥当性検証の要求中にダウンしている図の例では、クラウドコンピューティングサービス255に記憶されない。上記で述べられたように、ベアラトークンは寿命が長く、フロントエンド認証において、たとえば、DSAuthTを取得するために使用される。ベアラトークンは、たとえば、クライアント252デバイスが盗まれたと報告されたまたはクライアントデバイスが再登録されたとき、デバイス登録サービス283によって効果的に無効化/取り消されてよく、その場合、古いトークンは妥当性検証に失敗する。クライアントデバイス252が、その秘密/公開鍵ペアを回転させる場合、再び登録し、新しいベアラトークンを取得することが要求されないことがある。
【0073】
いくつかの実施形態では、セカンダリトークンは、プライマリDSAuthTから取得されることがある。より具体的には、WS256とCLIS258は姉妹マイクロサービスであり、それらは、同じセカンダリDSAuthT-WS-CLISを使用して、別のリライングパーティを作成する複雑さを回避することがある。
【0074】
加えて
図10A~
図10Bのシーケンスフロー
図300を参照すると、本例では、ユーザデバイス認証は以前に完了しており、DSAuthTプライマリが取得されていると仮定される。実際には、ブラウザコンテキスト(たとえば、CWA262に埋め込まれたブラウザ)においてセッションクッキーが使用され得るので、DSAuthT-プライマリを渡す必要はない。リフレッシュトークンが生成され、このリフレッシュトークンは、永続的なクラウドトークンストレージたとえばCosmos DB内でマーシャリング/記憶されているDSAuthTを効果的に指す(CIPが保持されるDSAuthT自体は、寿命が短い)。CWA262は、不揮発性の安全なストレージ、たとえば、データ保護API、鍵チェーンに、リフレッシュトークンを記憶する。
【0075】
比較的長い時間の後、たとえば、DSAuthT-プライマリがCIP282内で期限が切れたとき、CWAは、ワンタイムフレッシュトークンを使用して、トークンストレージから再作成された新しいDSAuthTを取得することができる。ナンスを用いたチャレンジ-レスポンスは、CWA262がリフレッシュトークンの真の権利者であることを保証する助けとなるために使用されることがある。それにもかかわらず、エンドポイント公開鍵を完全に信頼するために、それは、リフレッシュトークンによって示されるDSAuthTに記憶される拇印と比較される。以下でさらに論じられるように、CIP282は、ユーザアサーションおよびデバイアサーションをチェックする。CIP282はまた、それが個々に取り消された場合、リフレッシュトークンを拒否することがある。次いで、CWA262は、CIP内の現在のDSAuthTに基づいて新しいリフレッシュトークンを要求することがある。
【0076】
加えて
図11のシーケンスフロー
図310を参照すると、例示的な手法は、サービス(たとえば、クラウドインターフェース256、CLIS258など)がどのようにしてDSAuthT内の記憶されるユーザ-デバイス識別に基づいてユーザアサーションおよびデバイスアサーションをチェックすることができるかに関して図示される。他の構成要素およびサービス(たとえば、ゲートウェイ263、仮想配信アプライアンス253、ブローカ260)は、CL内のユーザ-デバイス識別、ミニCL、GCTをチェックし、ポリシー(図示せず)をチェックしているとき、同様の低レベルメカニクスを使用してよい。これは、ユーザおよびクライアントデバイス252がCIP282およびデバイス登録サービス283に話しかけることによって依然として有効であるかをチェックすることを伴うことがある。キャッシュされるユーザ/デバイスポリシーはまた、たとえば、デバイス登録サービス283が到達可能でない場合または実施のために適用されてよい。
【0077】
要求が、エンドポイント公開鍵の使用を伴う場合、追加の妥当性検証は、公開鍵が、DSAuthTに記憶される拇印に合致することを保証するために実施される。公開鍵の使用を含む例示的な要求は、RoT257による署名エンドポイント公開鍵;エンドポイント公開鍵を用いてCL-ペイロード対称鍵を暗号化することによってCLを作成すること;クライアントデバイス公開鍵などとともにAuthTペイロード対称鍵を暗号化するによってポリモーフィックAuthTを作成することを含んでよい。
【0078】
加えて
図12A~
図12Cのシーケンスフロー
図320を参照すると、以前に作成されたDSAuthT-WS-CLISは、クラウドベースの記憶されたクレデンシャルは依然として有効である、たとえば、24時間以内に(ポリシーに基づく)使用されることがある。CLIS258は、ユーザアサーションおよびデバイスアサーションをチェックし、DSAuthTに関連付けられた以前に保管されたクレデンシャルを使用してクラウドコンピューティングサービス255によって復号可能でない新しいクレデンシャルblobを作成する。クレデンシャルblobは、チケッティング284CCにおいて、長期のチケット保持ポリシー、たとえば、2×接続リース寿命とともに記憶される。CLIS258は、そのような寿命の長いチケットのみの書き込みアクセスを有する。
【0079】
寿命の長い認証トークンは、上記で述べられたように、それが異なるタイプのクレデンシャルを含んでよいおよび/またはクレデンシャルblobの異なるストレージロケーションを有してよいという点でポリモーフィックである場合がある。ポリモーフィックAuthTは、マニフェスト(manifest)(クリア);ユーザの識別(user identity)-ユーザユニバーサルクレーム(OID、SID、UPN、電子メール);顧客ID(customer ID);デバイス識別-デバイスID、エンドポイント公開鍵拇印(ハッシュ);ペイロード(payload)(暗号化された)-タイプ(Type)=CIP、値(Value)=CCチケット;クライアントデバイス公開鍵とともに暗号化された{AuthT-対称鍵(AuthT-Symmetric Key)};および署名、というフォーマットをとってよい。CWA262は、たとえば、ポリモーフィックAuthTを不揮発性(たとえば、データ保護API)鍵チェーンに記憶する。
【0080】
ポリモーフィックAuthTは、直接的にではなく、安全な接続を介してゲートウェイ263/仮想配信アプライアンス253と信頼を確立した後、CWA262エンドポイントによって回復される。さらに、ゲートウェイ263およびブローカ260は、寿命の長いクレデンシャルblobへの読み取りアクセスを有する。さらに、ゲートウェイ263および仮想配信アプライアンス253は、成功した安全な接続後にペイロードを復号することができる。たとえば、CCチケッティング284またはブローカ260がダウンしている場合、CL接続が続いてよいが、SSOnが失敗することがあり、ユーザは、クレデンシャルを手動で入力することが必要とされることがある。
【0081】
加えて
図13A~
図13Bのシーケンスフロー
図330を参照すると、ポリモーフィックAuthTを作成することに類似した別の手法が次に説明されるが、この手法では、クレデンシャルは、ドメイン参加され得る(およびたとえば、CWA262は、クレデンシャルプロバイダ/クレデンシャルプロバイダフィルタ/ネットワークリダイレクタ287を介してクレデンシャルを取得する)エンドポイント(クライアントデバイス252)によって提供されてもよいし、クレデンシャルは、(たとえば、高速接続SDK287を介して)CWA262に直接的に導入されてもよい。この手法では、CWA262は、ポリモーフィックAuthTを作成するためにCLIS258にクレデンシャルを提供する。CLIS258は、上記で説明されたように、ユーザアサーションおよびデバイスアサーションをチェックする。ここで再び、チェックが、DSAuthT内のユーザ-デバイス識別に基づいて実施されることがある。
【0082】
ポリモーフィックAuthTは、以下のように作成されてよい。マニフェスト(クリア):ユーザ識別はヌルに設定される-credは、ユーザにより供給されるので、DSAuthTからの識別を仮定しない;顧客ID;デバイス識別-デバイスID、エンドポイント公開鍵拇印(ハッシュ)。ポリモーフィックAuthTは、ペイロード(暗号化される)-タイプ=ユーザクレデンシャル(Cred)、値=視覚情報Blobと;クライアントデバイス公開鍵を用いて暗号化された{AuthT-対称鍵}と;署名とをさらに含む。
【0083】
上記の手法と同様に、CWA262はポリモーフィックAuthTを安全に記憶し、それは、たとえば、安全な接続を介してゲートウェイ263/仮想配信エージェント253と信頼を確立した後、クライアントデバイス252においてCWAによって回復される。しかしながら、CWAは、その秘密鍵へのアクセスを有し、それ以上何も、クレデンシャルを復号するために必要とされないので、CWA262は、必要に応じてこの安全な接続なしでクレデンシャルを回復することもできる。追加のセキュリティ保護は、任意選択で、秘密鍵、たとえば、個人識別番号(PIN)またはバイオメトリクスへのアクセスをガードするために使用されることがある。
【0084】
この手法の利点は、TLS/DTLSの上でのペイロード暗号化および安全な接続を使用してネットワークスニファ/プロキシ「仲裁者(man-in-the-middle)」攻撃に対してクレデンシャルを保護する追加のセキュリティである。ゲートウェイ263および仮想配信アプライアンス253は、ゲートウェイ263がアップしている限り、完全クラウド停止モードでSSOnを実施してよいので、このタイプのポリモーフィックAuthTのレジリエンス利点は、CCチケッティング284およびブローカ260のその独立性である。
【0085】
加えて
図14のシーケンスフロー
図340を参照すると、パブリッシュされたリソースを列挙するためのCWA262によるクラウドインターフェース256(WS)への要求は、DSAuthT-WS-CLISの使用を伴う。WS256は、上記で論じられたように、ユーザアサーションおよびクライアントデバイス252アサーションをチェックする。ここでもやはり、チェックは、DSAuthT内のユーザ-デバイス識別に基づいて実施される。ユーザ識別は、ブローカ260からパブリッシュされたリソースを列挙するためにWS256によって使用される。
【0086】
CWA262による鍵をブートストラップするWSを介したCLIS258への要求は、DSAuthT-WS-CLISおよびエンドポイント公開鍵の使用を必要とする。WSは、上記でさらに論じられたように、ユーザアサーションとデバイスアサーションをチェックする。CWA262は、RoT257によって署名されたそのエンドポイント公開鍵、RoTによって署名されたCLIS258公開鍵、およびRoT公開鍵を受信する。RoT257によって署名されるCLIS公開鍵およびRoT公開鍵は、いくつかの実装では、別個の要求の後に受信されてよい(granular API)。
【0087】
CLを作成し始める、CWA262によるCLIS258へのリースコールホーム要求は、DSAuthT-WS-CLISおよびエンドポイント公開鍵の使用を必要とする。上記でさらに論じられたように、WS256は、ユーザアサーションおよびデバイアサーションをチェックする。ここでも再度、チェックは、DSAuthT内のユーザ-デバイス識別に基づいて実施される。ユーザ識別は、接続リースサービス(CLS)による未加工CL生成を要求する、ならびにWSストアサービスから優先権順序を取得するために、CLIS258によって使用される。
【0088】
CL生成は、以下の通りであってよい。manifest(クリア)は、ユーザ識別-ユーザユニバーサルクレーム(OID、SID、UPN電子メール);顧客識別子(ID);およびデバイス識別-デバイスID、エンドポイント公開鍵母拇印(ハッシュ)とを含んでよい。CL対称鍵は、公開鍵エンドポイントを用いて暗号化されてよく、そのため、エンドポイントはそれを復号することができる。
【0089】
CWA262は、DSAuthT-Secondary-Syncを用いてCWA262 CL同期エンジンを初期化する。CWA CL同期エンジンは、ユーザリモート仮想フォルダからローカルフォルダへのCLの一方向性同期を実施するために、DSAuthT-Secondary-Syncを使用してCLISファイル同期サーバを呼び出す。CLISファイル同期サーバは、上記で論じられたように、上記で説明したようにユーザアサーションおよびデバイスアサーションをチェックする。ここで再び、チェックは、DSAuthT内のユーザ-デバイス識別に基づいて実施される。
【0090】
クライアントデバイス252と仮想配信アプライアンス253との間の安全な接続は、2つのホップ、すなわち、最初にクライアントデバイスからゲートウェイ263へ、次いでゲートウェイから仮想配信アプライアンスへ、実施されてよい。各ホップでは、ひとたび2つのエンティティが互いに信頼すると、送出側は、受信側の公開鍵を用いてCLおよびポリモーフィックAuthT対称鍵を再暗号化し、そのため、受信側は、それらを復号することができる。ゲートウェイ263は、ユーザ識別およびデバイス識別がCLマニフェストに含まれるので、ユーザアサーションおよびデバイスアサーションをチェックし得る。ブローカ260(ブローカオンラインモードにおける)または仮想配信アプライアンス253(ブローカ停止モードにおける)は、ユーザアサーションおよびデバイスアサーションもチェックすることができる。
【0091】
validateSessionResultがリダイレクトターゲット(Redirect-Target)(たとえば、クライアントデバイス252を別の仮想配信アプライアンス253にリダイレクトする)場合、ブローカ260によって生成される新しいミニCLは、CLからのユーザデバイス識別を含む。ゲートウェイ263は、任意選択で、ポリモーフィックAuthTを使用する認証を実施し、ポリモーフィックAuthTは、以下に基づいて、ちょうどCLのように妥当性検証される。署名、日付;ポリモーフィッAuthT内のエンドポイント公開鍵ハッシュは、クライアント公開鍵の以前に記憶されたバージョンに合致する;ユーザアサーションおよびデバイスアサーションをチェックする-ユーザ識別およびデバイス識別はAuthTマニフェスト内にある;ならびに、ポリモーフィックAuthTを復号および使用する。
【0092】
直接接続では、仮想配信アプライアンス253は、エンドポイント公開鍵と同じである、記憶されたクライアント公開鍵を使用して、CLおよびポリモーフィックAuthT内の拇印を妥当性検証する。しかしながら、ゲートウェイ263接続では、クライアント公開鍵はゲートウェイ公開鍵であることがあり、そのため、仮想配信アプライアンス252は、それを妥当性検証に使用することはできない。代わりに、CL妥当性検証公開鍵=エンドポイント公開鍵は、クライアントデバイス252からゲートウェイ263を介して仮想配信アプライアンス253へ中継される。そのため、ゲートウェイ253接続では、仮想配信アプライアンス253は、CL妥当性検証公開鍵を使用して、CLとポリモーフィックAuthTの両方において拇印を妥当性検証する。ゲートウェイ263の公開鍵はCLIS258によって署名され、それ自体の所有エンティティは(Client Pub Key.owningEntity==ゲートウェイ)である。CLIS258は、ゲートウェイ263として他の任意のエンティティに署名しない。
【0093】
いくつかの実装では、以下でさらに論じられるように、仮想配信アプライアンス253は、CL->Resource KeyおよびポリモーフィックAuthTを使用して、仮想セッションを開始し、ユーザをログインさせてもよい。仮想配信アプライアンス253は、リソース接続チケットを作成し、それをセッショングローバル一意識別子(GUID)とともに記憶する。リソース接続チケットは、事前許可されたセッションへの後での接続を可能にする。リソース接続チケットはまた、記憶および妥当性検証されたポリモーフィックAuthTを指す。
【0094】
ゲートウェイ263は、以下のように、CLおよびvalidateSessionResultミニCLからの情報を有するゲートウェイ接続チケット(GCT)を作成する。マニフェスト(クリア)は、:有効期限-CL有効期限と合致する;ユーザ識別-ユーザユニバーサルクレーム(OID、SID、UPN、電子メール);顧客ID;およびデバイス識別-デバイスID、エンドポイント公開鍵拇印、を含む。CGTは、ペイロード(クリア)-リソースロケーション、VDA IP、およびポートなどと、署名-GW POP秘密鍵を用いてGCTに署名する、をさらに含んでよい。いくつかの実施形態では、ゲートウェイ263ポイントオブプレゼンス(POP)は、公開鍵を共有することがあり、これは、GCTが、フェイルオーバシナリオにおいて他の任意のゲートウェイによって妥当性検証されることを可能にする。他の実施形態では、GCTそれ自体は、ルートオブトラスト(RoT)257によって署名される署名側ゲートウェイPOPの公開鍵を含有することがある。したがって、それは、それらの公開鍵を共有するゲートウェイPOPとは反対に、RoT公開鍵をすべてのゲートウェイPOPに分散させるのに十分なことがある。クライアントデバイス252は、GCTおよびリソース接続チケットを使用して、ゲートウェイ263および仮想配信アプライアンス253における接続を認証する。
【0095】
次に、加えて
図15A~
図15Bのシーケンスフロー
図350を参照すると、ポリモーフィックAuthTは、上記で論じられたように、以前に妥当性検証されたと仮定される。仮想配信アプライアンス253は、AuthT-対称鍵を用いてポリモーフィックAuthTペイロードを復号する。ポリモーフィックAuthTタイプが「CIP」である場合、仮想配信アプライアンス253はブローカ260を呼び出し、ブローカ260は、CCチケッティング284を呼び出し、CCチケットを解決し、暗号化されたクレデンシャルBlobを返す。ブローカ260およびゲートウェイ263は、寿命の長いCCチケットを回復する権利が与えられる。
【0096】
ブローカ260またはCCチケッティング284のいずれかがダウンしているまたはそうでなければ到達可能でない場合、SSOnは失敗し、ユーザはクレデンシャルを提供する。仮想配信アプライアンス253は、AuthT-対称鍵を用いて暗号化されたクレデンシャルBlobを復号するが、これは2つの目的に用いられる。ポリモーフィックAuthTタイプが「User Creds(ユーザクレデンシャル)」である場合、仮想配信アプライアンス253は、復号されたペイロードから直接的にクレデンシャルBlobを取得する。したがって、ブローカ260およびCCチケッティング284に対する依存はない。仮想配信アプライアンス253は、仮想セッションを作成し、ユーザをログインさせるために進む。仮想配信アプライアンス253は、ログインしたユーザがCL「仲介された(brokered)」ユーザと同じであるという標準的なチェックを実施する。
【0097】
上記で説明されたポリモーフィックAuthT方法は、ユーザクレデンシャルのユーザ名-パスワードタイプに限定されないことに留意されたい。たとえば、それらは、FIDO2ベースの(パスワードのない)バイオメトリック認証サービスを使用して取得される基準クレデンシャルIDに適用されてよい。FIDO2とは、FIDOアライアンスの最新仕様セットの包括的用語である。FIDO2は、ユーザが、共通デバイスを活用して、モバイル環境とデスクトップ環境の両方でオンラインサービスを容易に認証することを可能にする。このタイプのポリモーフィックAuthT0の追加されたレジリエンス利点は、CCチケッティング284およびブローカ260のその独立性であり、FIDO2リライングパーティおよびゲートウェイがアップしている限り、完全クラウド停止モードでSSOnを用いて認証が実施可能であることを意味する。
【0098】
セキュリティの観点から、FIDO2の暗号学的ログインクレデンシャルは、あらゆるウェブサイトにわたって一意であり、ユーザのデバイスを放置せず、サーバ上に記憶されない。このセキュリティモデルは、フィッシング、パスワード盗難、および再生攻撃のリスクをなくす。さらに、バイオメトリクスを使用することは、エンドユーザ利便性およびプライバシ懸念事項に対処する助けとなる。ユーザは、彼らのデバイス上の指紋リーダまたはカメラなどの単純に組み込まれた方法を用いて、または使用しやすいFIDOセキュリティ鍵を活用することによって、暗号学的ログインクレデンシャルをロック解除する。FIDO暗号鍵は、各インターネットサイトにとって一意であるので、それらは、サイト間でユーザを追跡するために使用不可能である。さらに、バイオメトリックデータは、使用するとき、ユーザのデバイスを放置しない。
【0099】
さらに、スケーラビリティに関しては、ウェブサイトは、消費者が毎日使用するデバイス上の主要なブラウザおよびプラットフォームにわたってサポートされるJavaScript API呼び出しを通じてFIDO2を可能にすることができる。FIDO2は、たとえば、Citrix HDX FIDO2仮想チャネル上でWebAuthN.dllAPIをエンドポイントにリモートする(remote)ことによって、リモートにホストされるブラウザ、ネイティブアプリケーション、およびWindowsログオンをサポートするために仮想コンピューティングセッションにおいても使用可能である。
【0100】
上記で説明されたポリモーフィックAuthT方法は、統合認証サービス(FAS)にも適用可能である。ワークスペースの場合、FASは、ユーザがワークスペースに認証される限り、Citrix VDAに対するSSOn認証を可能にすることができる。ワークスペースに対する認証方法は重要でなく、現代のウェブサイトに認証されることを可能にする何か、たとえばActive Directory統合サービス(ADFS)を介するセキュリティアサーションマークアップ言語(SAML)、ビジネスツービジネス(B2B)シナリオなどであってよい。統合認証サービスのコアな構成要素は、仮想スマートカード(エンタープライズ認証機関(CA)によって発行される)を作成する権限を有するFASサーバである。仮想スマートカードは、直接的に(たとえば、利用可能である場合、信頼されるプラットフォームモジュール(TPM))または接続されたハードウェアセキュリティモジュール(HSM)内のいずれかで、FASサーバによって記憶される。
【0101】
ワークスペースの場合、FASサーバは、認証のためにワークスペースを信頼する。ワークスペース認証時、FASサーバはトークン/チケットを発行し、このトークン/チケットは、その後、関連付けられた仮想スマートカードを用いた仮想配信エージェント253認証をトリガするために使用される。仮想配信エージェント253は、(仮想スマートカードを用いたスマートカード認証をするために)FASサーバを用いた暗号学的演算を本質的にリモートする専用FAS暗号学的サービスプロバイダに依拠する。
【0102】
いくつかの変更が、接続リーシングとの拡張された互換性のために統合認証サービスに対してなされてよい。たとえば、FAS認証トークンは、望ましくは、Citrix WSまたは他のCitrixクラウド構成要素を伴わない起動シーケンスのために寿命が長いことがある。さらに、FAS認証トークンを更改するプロセスが、たとえば、リフレッシュトークンを使用して提供されてよい。そのうえ、FAS認証トークンは、望ましくは、FASサーバフェイルオーバ/スケーラビリティグループの一部である複数のFASサーバを参照し、これに対して有効である。これは、FAS認証トークンを組み立てるときのワークスペースが複数のFASサーバに接続することを意味する。
【0103】
FASサーバが、仮想配信アプライアンス253とともに置かれる場合、FAS認証トークンを含有するタイプFASのポリモーフィックAuthTは、依然として、仮想配信システム(VDS)がクラウド停止(CLO)モードであるとき、VDAにおいてSSOnのために機能する。VDSは、クラウド構成要素、たとえば、WS、ブローカ260、CCチケッティング284などを伴う。しかしながら、それは、VDSがCLOモードであり、FAS認証トークン寿命が期限切れである場合は機能しない。典型的には、FASが使用されているとき、エンドユーザがLogonUIを介して仮想配信アプライアンス253に対して対話型ログオンをすることは可能でない。これは、VDSがCLOモードに入ったとき、エンドユーザは依然として、FAS認証トークンの残りの寿命持続時間のための公開されたデスクトップおよびアプリケーションを認証することが可能であることを意味する。これは、FAS認証トークン更改プロセスに対する暗示を有する。たとえば、FAS認証トークンは、VDSがCLOモードになった場合、FAS認証トークン寿命の半分にわたって、VDAに対して認証する機能を保証するために、その寿命の半分で更改されることがある。
【0104】
FAS認証トークンは寿命が長いので、それらを取り消す方法があることもある。FAS認証トークンは、VDSがCLOモードになったとき、依然として有効で使用可能である。これは、取り消しプロシージャがFASサーバを伴うことを意味する。FASサーバは、たとえば、それらをユーザデバイス識別ごとに取り消すことを可能にするために発行されたFAS認証トークンの内容を維持してよい。
【0105】
上記で説明された手法は、有利には、完全なまたは部分的なクラウド停止モードでの安全なオフライン認証SSOnを含む種々の技術的利点を提供し得る。そのうえ、異なるタイプのクレデンシャルの安全な管理、ならびにユーザデバイスクレデンシャル、寿命の長いリフレッシュトークン、CL、およびポリモーフィックAuth SSOnトークンを用いた認証が提供されてよい。加えて、ユーザアサーションおよびデバイスアサーションは、有利には、オンラインモードおよびオフラインモードで適用されてよい。上記で説明された例は接続リース実装の文脈であるが、ポリモーフィック認証トークン手法はまた、非接続リース実装でも使用されてよいことに留意されたい。言い換えれば、認証トークンは、クライアントが接続リース構成を使用してセッション/パブリッシュされたリソースに接続するかどうかにかかわらずセッションへのアクセスを提供するために使用されることがある。
【0106】
次に、ブロック361において始まる
図16のフロー
図360を参照すると、関連方法は、例示的には、上記でさらに論じられたように、それに関連付けられた第1の認証クレデンシャルと第2の認証クレデンシャルとを有するクライアントデバイス201のための認証トークンを記憶すること(ブロック362)と、ブロック363において、認証トークンに基づいてセッションにアクセスするためにサーバ203と協働することとを含む。
図16の方法は、ブロック364において例示的に終わる。
【0107】
以下の例は、他の置換および構成が当業者にとって明らかである、例示的なさらなる実施形態である。
【0108】
例1は、メモリと、それに関連付けられ互いに異なる第1の認証クレデンシャルと第2の認証クレデンシャルとを有する認証トークンを記憶するためにメモリと協働し、認証トークンに基づいてセッションにアクセスするためにサーバと協働するように構成されたプロセッサとを備えるコンピューティングデバイスである。
【0109】
例2は例1の主題を含み、第1の認証クレデンシャルおよび第2の認証クレデンシャルのうちの1つは、ユーザクレデンシャルを含む。
【0110】
例3は例2の主題を含み、ユーザクレデンシャルは、クライアントデバイスにおいてメモリに記憶される。
【0111】
例4は例2の主題を含み、ユーザクレデンシャルは、認証サービスを用いて仮想スマートカードに記憶される。
【0112】
例5は例1の主題を含み、第1の認証クレデンシャルおよび第2の認証クレデンシャルのうちの1つは、クライアントデバイスに関連付けられた公開鍵を含む。
【0113】
例6は例5の主題を含み、公開鍵は、ルートオブトラスト(RoT)によって署名される。
【0114】
例7は例1の主題を含み、プロセッサは、コンピューティングデバイスに割り当てられた接続リースにさらに基づいてセッションにアクセスするためにサーバと協働する。
【0115】
例8は例1の主題を含み、第1の認証クレデンシャルおよび第2の認証クレデンシャルは、異なるロケーションに記憶される。
【0116】
例9は例1の主題を含み、認証トークンは、ポリモーフィック認証トークンを含む。
【0117】
例10は例1の主題を含み、セッションは、ウェブアプリケーションセッション、ソフトウェアアズアサービス(SaaS)アプリケーションセッション、仮想アプリケーションセッション、および仮想デスクトップセッション、のうちの少なくとも1つを含む。
【0118】
例11は、それに関連付けられた第1の認証クレデンシャルと第2の認証クレデンシャルとを有するクライアントデバイスのための認証トークンを記憶することであって、この第1の認証クレデンシャルと第2の認証クレデンシャルは互いに異なる、記憶することと、クライアントデバイスにおいて、認証トークンに基づいてセッションにアクセスするためにサーバと協働することとを含む方法である。
【0119】
例12は例11の主題を含み、第1の認証クレデンシャルおよび第2の認証クレデンシャルのうちの1つは、ユーザクレデンシャルを含む。
【0120】
例13は例11の主題を含み、第1の認証クレデンシャルおよび第2の認証クレデンシャルのうちの1つは、クライアントデバイスに関連付けられた公開鍵を含む。
【0121】
例14は例11の主題を含み、クライアントデバイスは、コンピューティングデバイスに割り当てられた接続リースにさらに基づいてセッションにアクセスするためにサーバと協働する。
【0122】
例15は例11の主題を含み、第1の認証クレデンシャルと第2の認証クレデンシャルは、異なるロケーションに記憶される。
【0123】
例16は、メモリと、それに関連付けられ互いに異なる第1の認証クレデンシャル第2の認証クレデンシャルとを有するメモリに認証トークンを記憶するためにメモリと協働し、コンピューティングデバイスに割り当てられた接続リースに基づいて認証に基づいてセッションにアクセスするためにサーバと協働するように構成されたプロセッサとを備えるコンピューティングデバイスが対象とされる。
【0124】
例17は例16の主題を含み、第1の認証クレデンシャルおよび第2の認証クレデンシャルのうちの1つはユーザクレデンシャルを含む。
【0125】
例18は例16の主題を含み、第1の認証クレデンシャルおよび第2の認証クレデンシャルのうちの1つは、クライアントデバイスに関連付けられた公開鍵を含む。
【0126】
例19は例18の主題を含み、公開鍵は、ルートオブトラスト(RoT)によって署名される。
【0127】
例20は例16の主題を含み、認証トークンは、ポリモーフィック認証トークンを含む。
【0128】
本開示を読めば当業者には理解されるように、本明細書に記載の様々な態様は、デバイス、方法、またはコンピュータプログラム製品(たとえば、記載の動作またはことを実施するためのコンピュータ実行可能命令を有する非一時的なコンピュータ可読媒体)として具体化され得る。したがって、これらの態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはソフトウェアの態様とハードウェアの態様の組合せの実施形態の形態をとり得る。
【0129】
さらに、そのような態様は、1つまたは複数のコンピュータ可読記憶媒体によって記憶されたコンピュータプログラム製品の形態をとり得、コンピュータ可読プログラムコード、または命令が記憶媒体内または記憶媒体上で具体化される。ハードディスク、CD-ROM、光記憶デバイス、磁気記憶デバイス、および/またはそれらの任意の組合せを含む任意の好適なコンピュータ可読記憶媒体が使用されてよい。
【0130】
多数の修正および他の実施形態が、前述の記載および関連の図面に提示されている教示の利益を有する当業者には想起されよう。したがって、前述は例示的な実施形態に限定されるべきではなく、修正および他の実施形態が添付の特許請求の範囲内に含まれることが意図されていることを理解されたい。
【国際調査報告】