IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シトリックス・システムズ・インコーポレイテッドの特許一覧

特許7079798クラウドサービスにおける動的な柔軟な認証のためのシステム及び方法
<>
  • 特許-クラウドサービスにおける動的な柔軟な認証のためのシステム及び方法 図1
  • 特許-クラウドサービスにおける動的な柔軟な認証のためのシステム及び方法 図2
  • 特許-クラウドサービスにおける動的な柔軟な認証のためのシステム及び方法 図3
  • 特許-クラウドサービスにおける動的な柔軟な認証のためのシステム及び方法 図4
  • 特許-クラウドサービスにおける動的な柔軟な認証のためのシステム及び方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-25
(45)【発行日】2022-06-02
(54)【発明の名称】クラウドサービスにおける動的な柔軟な認証のためのシステム及び方法
(51)【国際特許分類】
   G06F 21/31 20130101AFI20220526BHJP
【FI】
G06F21/31
【請求項の数】 32
(21)【出願番号】P 2019570081
(86)(22)【出願日】2018-05-16
(65)【公表番号】
(43)【公表日】2020-08-20
(86)【国際出願番号】 IB2018053436
(87)【国際公開番号】W WO2018234886
(87)【国際公開日】2018-12-27
【審査請求日】2021-05-14
(31)【優先権主張番号】15/626,881
(32)【優先日】2017-06-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508045099
【氏名又は名称】シトリックス・システムズ・インコーポレイテッド
【氏名又は名称原語表記】Citrix Systems,Inc.
(74)【代理人】
【識別番号】110002675
【氏名又は名称】特許業務法人ドライト国際特許事務所
(72)【発明者】
【氏名】フェン フアン
(72)【発明者】
【氏名】ジャン-リュック ジロー
【審査官】平井 誠
(56)【参考文献】
【文献】特表2010-525448(JP,A)
【文献】特開2003-196566(JP,A)
【文献】米国特許出願公開第2016/0094531(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスによって、リソースにアクセスするための要求をクライアントデバイスから受信し、
前記コンピューティングデバイスによって、前記要求に対応するコンテキスト情報を決定し、
前記コンピューティングデバイスによって、前記コンテキスト情報に基づいてスコアを決定し、
前記コンピューティングデバイスによって、前記スコアに基づいて前記要求に認証レベルを割り当て、
前記コンピューティングデバイスによって、前記認証レベルに基づいて、前記コンピューティングデバイスから発行された初期トークンと、1つ以上の認証サービスのIDと、認証パラメータとを有する認証チャレンジを生成し、
前記コンピューティングデバイスによって、前記クライアントデバイスへの前記認証チャレンジの送信に応答して、前記クライアントデバイスから更新されたトークンを受信し、前記更新されたトークンは、前記1つ以上の認証サービスに対する前記クライアントデバイスのユーザの認証を示す情報を前記初期トークンに含めることによって生成され、前記ユーザの前記認証は、少なくとも1つの認証プロトコルと、前記認証チャレンジへの応答の前記認証パラメータとを用いて達成され、前記認証を示す情報は、前記認証チャレンジに応答してなされた前記クライアントデバイスからの認証要求に対する応答の一部として前記1つ以上の認証サービスによって前記初期トークンに含まれ、
前記コンピューティングデバイスによって、前記更新されたトークンで示された前記1つ以上の認証サービスに対する前記クライアントデバイスの前記ユーザの前記認証に基づいて、前記クライアントデバイスに前記リソースへのアクセスを提供する、
ことを含む方法。
【請求項2】
前記コンピューティングデバイスによって前記初期トークンを保存することをさらに含む、請求項1に記載の方法。
【請求項3】
前記コンピューティングデバイスによって、
少なくとも1つの認証スキームを実行するための認証サービスを識別し、
前記認証パラメータに前記認証サービスのIDを含める、
ことをさらに含む、請求項1に記載の方法。
【請求項4】
前記認証チャレンジの受信により、前記クライアントデバイスによって、前記初期トークンを有する認証要求を送信し、
前記クライアントデバイスによって、前記少なくとも1つの認証スキームの実行時のユーザ認証のステータスを示すアサーションを有する前記更新されたトークンを受信する、
ことをさらに含む、請求項3に記載の方法。
【請求項5】
前記更新されたトークンの受信により、前記クライアントデバイスによって、前記少なくとも1つの認証プロトコルに含まれるすべての認証スキームが実行されたか否かを判断し、
前記少なくとも1つの認証プロトコルに含まれるすべての認証スキームが実行されたという判断により、前記更新されたトークンを前記コンピューティングデバイスに送信する、
ことをさらに含む、請求項4に記載の方法。
【請求項6】
前記更新されたトークンに含まれる1つ以上のアサーションが前記少なくとも1つの認証プロトコルを満たすという判断により、前記コンピューティングデバイスによって、前記リソースにアクセスするための前記要求を許可することをさらに含む、請求項5に記載の方法。
【請求項7】
前記リソースにアクセスするための前記要求を許可すると、前記コンピューティングデバイスによって、前記更新されたトークンを破棄することをさらに含む、請求項6に記載の方法。
【請求項8】
前記リソースにアクセスするための前記要求を許可すると、前記コンピューティングデバイスによって、前記初期トークンを破棄することをさらに含む、請求項6に記載の方法。
【請求項9】
前記コンピューティングデバイスによって、
前記更新されたトークンに関連付けられたタイムスタンプが規定の制限時間内にあるか否かを判断し、
前記タイムスタンプが前記規定の制限時間内にあるという判断により、前記リソースにアクセスするための前記要求を許可する、
ことをさらに含む、請求項6に記載の方法。
【請求項10】
前記少なくとも1つの認証プロトコルに含まれるすべての認証スキームが実行されていないという判断により、前記更新されたトークンを所定の認証サービスに送信することをさらに含む、請求項5に記載の方法。
【請求項11】
前記初期トークンは、前記要求に含まれる1つ以上の認証資格情報のうち成功した認証を示す初期アサーションを有する、請求項1に記載の方法。
【請求項12】
前記要求は、前記ユーザを識別するユーザ情報を有する、請求項1に記載の方法。
【請求項13】
前記リソースは、セルフサービスパスワードリセットサービスである、請求項1に記載の方法。
【請求項14】
前記初期トークンは、前記1つ以上の認証サービスによる前記少なくとも1つの認証プロトコルの実行の動作を指定する情報を含む、請求項1に記載の方法。
【請求項15】
前記認証を示す情報は、少なくとも1つの認証スキームの実行時のユーザ認証のステータスを示すアサーションを有する、請求項1に記載の方法。
【請求項16】
プロセッサと、
コンピューティングシステムでユーザを認証するための方法を前記プロセッサに実施させるプログラミング命令を有する非一時的なコンピュータ読み取り可能な記憶媒体と、を備え、
前記プログラミング命令は、
ユーザに関連付けられたコンピューティングデバイスから、リソースサービスに関連付けられたリソースにアクセスするためのアクセス要求を受信し、
前記アクセス要求に対応するコンテキスト情報を決定し、
前記コンテキスト情報に基づいてスコアを決定し、
前記スコアに基づいて前記アクセス要求に認証レベルを割り当て、
前記認証レベルを用いて、前記ユーザを認証するための認証プロトコルであって、少なくとも1つの認証スキームを有する認証プロトコルを識別し、
前記識別された認証プロトコルに対応する初期トークンと認証パラメータとを有する認証チャレンジを生成し、
前記認証チャレンジを前記コンピューティングデバイスに送信するための命令を有する、コンピューティングシステム。
【請求項17】
前記プログラミング命令は、前記初期トークンを保存するための命令をさらに有する、請求項16に記載のコンピューティングシステム。
【請求項18】
前記コンピューティングシステムは、1つ以上の認証サービスを備えており、
前記プログラミング命令は、さらに、
前記1つ以上の認証サービスのうち、前記少なくとも1つの認証スキームを実行する認証サービスを識別し、
前記認証パラメータに前記識別された認証サービスのIDを含めるための命令を有する、
請求項16に記載のコンピューティングシステム。
【請求項19】
前記プログラミング命令は、前記コンピューティングデバイスに、
前記初期トークンを有する認証要求を送信させ、
前記少なくとも1つの認証スキームの実行時のユーザ認証のステータスを示すアサーションを有する更新されたトークンを受信させるための命令をさらに有する、
請求項18に記載のコンピューティングシステム。
【請求項20】
前記プログラミング命令は、前記コンピューティングデバイスに、
前記更新されたトークンの受信により、前記識別された認証プロトコルに含まれるすべての認証スキームが実行されたか否かを判断し、
前記識別された認証プロトコルに含まれるすべての認証スキームが実行されたという判断により、前記更新されたトークンを前記リソースサービスに送信すること、を実行させるための命令をさらに有する、
請求項19に記載のコンピューティングシステム。
【請求項21】
前記プログラミング命令は、前記更新されたトークンに含まれる1つ以上のアサーションが前記識別された認証プロトコルを満たすという判断により、前記リソースにアクセスするための前記アクセス要求を前記プロセッサに許可させるための命令をさらに有する、請求項20に記載のコンピューティングシステム。
【請求項22】
前記プログラミング命令は、前記リソースにアクセスするための前記アクセス要求を許可すると、前記プロセッサに前記更新されたトークンを破棄させるための命令をさらに有する、請求項21に記載のコンピューティングシステム。
【請求項23】
前記プログラミング命令は、前記リソースにアクセスするための前記アクセス要求を許可すると、前記プロセッサに前記初期トークンを破棄させるための命令をさらに有する、請求項21に記載のコンピューティングシステム。
【請求項24】
前記プログラミング命令は、前記プロセッサに、
前記更新されたトークンに関連付けられたタイムスタンプが規定の制限時間内にあるか否かを判断させ、
前記タイムスタンプが前記規定の制限時間内にあるという判断により、前記リソースにアクセスするための前記アクセス要求を許可させるための命令をさらに有する、請求項21に記載のコンピューティングシステム。
【請求項25】
前記初期トークンは、前記アクセス要求に含まれる1つ以上の認証資格情報のうち成功した認証を示す初期アサーションを有する、請求項16に記載のコンピューティングシステム。
【請求項26】
前記アクセス要求は、前記ユーザを識別するユーザ情報を有する、請求項16に記載のコンピューティングシステム。
【請求項27】
前記アクセス要求に対応する前記コンテキスト情報を決定することは、前記ユーザ情報に基づいて前記コンテキスト情報を決定することを含む、請求項26に記載のコンピューティングシステム。
【請求項28】
前記コンテキスト情報は、前記ユーザの1つ以上の特性、前記リソースの1つ以上の特性、または前記コンピューティングデバイスの1つ以上の特性のうちの1つ以上を有する、請求項16に記載のコンピューティングシステム。
【請求項29】
プロセッサと、
コンピューティングシステムでユーザを認証するための方法を前記プロセッサに実施させるプログラミング命令を有する非一時的なコンピュータ読み取り可能な記憶媒体と、を備え、
前記プログラミング命令は、
リソースにアクセスするための要求をクライアントデバイスから受信し、
前記要求に対応するコンテキスト情報を決定し、
前記コンテキスト情報に基づいてスコアを決定し、
前記スコアに基づいて前記要求に認証レベルを割り当て、
前記認証レベルに基づいて、ンピューティングデバイスから発行された初期トークンと、1つ以上の認証サービスのIDと、認証パラメータとを有する認証チャレンジを生成し、
前記クライアントデバイスへの前記認証チャレンジの送信に応答して、前記クライアントデバイスから更新されたトークンを受信し、前記更新されたトークンは、前記1つ以上の認証サービスに対する前記クライアントデバイスのユーザの認証を示す情報を前記初期トークンに含めることによって生成され、前記ユーザの前記認証は、少なくとも1つの認証プロトコルと、前記認証チャレンジへの応答の前記認証パラメータとを用いて達成され、前記認証を示す情報は、前記認証チャレンジに応答してなされた前記クライアントデバイスからの認証要求に対する応答の一部として前記1つ以上の認証サービスによって前記初期トークンに含まれ、
前記更新されたトークンで示された前記1つ以上の認証サービスに対する前記クライアントデバイスの前記ユーザの前記認証に基づいて、前記クライアントデバイスに前記リソースへのアクセスを提供するための命令を有する、コンピューティングシステム。
【請求項30】
前記プログラミング命令は、前記クライアントデバイスに、
前記初期トークンを有する認証要求を送信させ、
なくとも1つの認証スキームの実行時のユーザ認証のステータスを示すアサーションを有する前記更新されたトークンを受信させるための命令をさらに有する、請求項29に記載のコンピューティングシステム。
【請求項31】
前記プログラミング命令は、前記クライアントデバイスに、
前記更新されたトークンの受信により、前記少なくとも1つの認証プロトコルに含まれるすべての認証スキームが実行されたか否かを判断し、
前記少なくとも1つの認証プロトコルに含まれるすべての認証スキームが実行されたという判断により、前記更新されたトークンを前記プロセッサに送信すること、を実行させるための命令をさらに有する、請求項29に記載のコンピューティングシステム。
【請求項32】
前記プログラミング命令は、前記更新されたトークンに含まれる1つ以上のアサーションが前記少なくとも1つの認証プロトコルを満たすという判断により、前記リソースにアクセスするための前記要求を前記プロセッサに許可させるための命令をさらに有する、請求項30に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2017年6月19日に出願された米国特許出願第15/626,881号の優先権を主張し、その開示は参照により本明細書に組み込まれる。
【0002】
本開示は、一般にクラウドコンピューティングシステムに関する。より詳細には、本発明は、強化されたセキュリティを可能にするクラウド環境におけるユーザ認証のためのシステムおよび方法の実施に関する。
【背景技術】
【0003】
クラウドコンピューティングにより、ユーザは、ユーザのローカルコンピュータ上ではなく、遠隔地にあるコンピュータ上で実行されるアプリケーションまたはサービスを利用することができる。例えば、クライアントコンピュータからサーバコンピュータにデータを転送することにより、クラウドでデータが処理される。サーバコンピュータでは、処理されたデータをクライアントコンピュータに返す前にデータが処理される。このようにして、クライアントコンピュータは、処理タスクをクラウド内のコンピュータにオフロードする。クラウドコンピューティングには多くの利点があるが、クラウド環境のリソースへのアクセスを制御するためのユーザの認証は、システム管理者にとって大きな課題である。
【0004】
当初、ユーザ名とパスワードは、デジタル情報とリソースへのアクセスを保護するための有効な手段として機能していた。ユーザ名とパスワードの代替手段として、より強力な形式の「要素」認証も使用することができる。「要素」認証は、個人、企業、および政府のデジタル情報への不正アクセスを防止する安全な方法を提供する。二要素認証、三要素認証、および四要素認証では、接触型のスマートカード、生体認証デバイス、知識ベース認証、ID検証サービス、およびワンタイムパスワードトークンなどのツールを使用する。認証の「要素」は、「あなたが持っているもの」である物理的な人間以外のデバイスと、「あなたが何か」である人間の生体認証と、「あなたが知っている何か」である人間の記憶と、「他の誰かがあなたについて知っている何か」である公的記録または第三者検証サービスなどの個人的な検証と、に分類される。通常、管理者とシステム所有者は、ユーザまたはネットワークベースのシステムを認証する1つの方法または場合によっては2つの方法のみを提供する。
【0005】
さらに、サーバは、クライアントを認証するための認証モデルで構成することにより、アプリケーションまたはリソースのユーザまたはクライアントを認証することができる。しかしながら、認証モデルの現在の厳格なポリシー構造により、サーバを構成可能な認証モデルのタイプまたは機能が制限されることがある。具体的には、現在の認証モデルは、ユーザアクセスに対して画一的なアプローチをとるように構成されている。種々の認証モデルおよび/またはアプリケーションは、インストールされて作動するか、アンインストールされてシステムに存在しないかのいずれかである。システム所有者または管理者が、組織もしくはシステム所有者の要件またはポリシーに基づいて動的または自動的にログオン環境を制御するための中間的な態様も柔軟性もない。しかしながら、例えば、単一のコンピュータシステムには、システム内の様々なリソースに対して様々なレベルのアクセス権を有する様々な種類のユーザが含まれる。システム内のユーザとリソースは様々であるため、管理者は複数の認証メカニズムを使用して異なるリソースを保護することを望むであろう。しかしながら、複数の認証メカニズムを保守することは、管理者とシステム全体に多大な負担を与えてしまう可能性がある。
【発明の概要】
【0006】
クラウドコンピューティングシステム内のリソースへのアクセスを要求するユーザを認証するためのシステムおよび方法を実施する。当該方法は、リソースサービスによって、ユーザに関連付けられたコンピューティングデバイスからリソースサービスに関連付けられたリソースにアクセスするためのアクセス要求を受信し、アクセス要求に対応するコンテキスト情報を決定し、決定されたコンテキスト情報を用いて、ユーザを認証するための認証プロトコルを識別する。認証プロトコルは、少なくとも1つの認証スキームを有する。当該方法は、さらに、認証チャレンジを生成し、認証チャレンジをコンピューティングデバイスに送信する。認証チャレンジは、識別された認証プロトコルに対応する初期トークンと認証パラメータとを有する。シナリオによっては、リソースサービスは初期トークンを保存する。シナリオによっては、コンテキスト情報は、ユーザの1つ以上の特性、リソースの1つ以上の特性、および/またはコンピューティングデバイスの1つ以上の特性を有する。
【0007】
シナリオによっては、当該方法は、さらに、少なくとも1つの認証スキームを実行するための認証サービスを識別し、認証パラメータに認証サービスのIDを含める。コンピューティングデバイスは、認証チャレンジを受信すると、識別された認証サービスに、初期トークンを有する認証要求を送信する。次いで、認証サービスは、少なくとも1つの認証スキームを実行し、更新されたトークンをコンピューティングデバイスに送信する。更新されたトークンは、少なくとも1つの認証スキームの実行時のユーザ認証のステータスを示すアサーションを有する。コンピューティングデバイスは、更新されたトークンを受信すると、識別された認証プロトコルに含まれるすべての認証スキームが実行されたか否かを判断し、識別された認証プロトコルに含まれるすべての認証スキームが実行された場合、リソースサービスに更新されたトークンを送信する。コンピューティングデバイスは、識別された認証プロトコルに含まれるすべての認証スキームが実行されていない場合、更新されたトークンを第2の認証サービスに送信する。
【0008】
そのようなシナリオまたは他のシナリオでは、更新されたトークンに含まれる1つ以上のアサーションが識別された認証プロトコルを満たす場合、リソースサービスは、リソースにアクセスするためのアクセス要求を許可する。これらのシナリオまたは他のシナリオでは、リソースサービスは、リソースにアクセスするためのアクセス要求を許可すると、更新されたトークンおよび/または初期トークンを破棄する。そのようなシナリオまたは他のシナリオでは、リソースサービスは、更新されたトークンに関連付けられたタイムスタンプが規定の制限時間内にあるか否かを判断し、タイムスタンプが規定の制限時間内にある場合にのみ、リソースにアクセスするためのアクセス要求を許可する。
【0009】
シナリオによっては、初期トークンは、アクセス要求に含まれる1つ以上の認証資格情報のうち成功した認証を示す初期アサーションを有する。
【0010】
シナリオによっては、アクセス要求は、ユーザを識別するユーザ情報を有し、アクセス要求に対応するコンテキスト情報を決定することは、ユーザ情報に基づいてコンテキスト情報を決定することを含む。
【0011】
決定されたコンテキスト情報を用いてユーザを認証するための認証プロトコルを識別するいくつかのシナリオでは、決定されたコンテキスト情報に基づいて認証レベルを決定し、認証レベルに対応する認証プロトコルを識別する。
【図面の簡単な説明】
【0012】
以下の図面を参照して実施形態を説明するが、図面全体を通して、同様の参照符号は同様の特徴を表す。
図1】例示的なネットワークおよびコンピューティング環境の図である。
図2】例示的なコンピューティングデバイスの図である。
図3】例示的なクラウドコンピューティング環境の図である。
図4】クラウド環境内のリソースへのアクセスを許可する前にユーザを認証するための例示的な方法を示すフローチャートである。
図5】クラウドコンピューティング環境のセルフサービスパスワードリセットサービスへのアクセスを要求するユーザを認証するための例示的な方法を示すメッセージフロー図である。
【発明を実施するための形態】
【0013】
本明細書で一般的に説明され、添付図面に示された実施形態の構成要素は、多種多様な異なる構成で配置および設計され得ることが容易に理解されよう。したがって、図示されている様々な実施形態の以下のより詳細な説明は、本開示の範囲を限定するものではなく、様々な実施形態の単なる代表例である。実施形態の様々な態様が図面に提示されているが、特に明示しない限り、図面は必ずしも縮尺通りに描かれていない。
【0014】
本発明は、その精神または本質的な特徴から逸脱することなく、他の特定の形態で具現化することができる。説明された実施形態は、あらゆる点で単なる例示にすぎず、限定的に解釈してはならない。したがって、本発明の範囲は、添付の特許請求の範囲によって示されるのであって、この詳細な説明には、なんら拘束されない。特許請求の範囲の均等物の意味および範囲内における変更はすべて本発明の範囲内に包含されるべきである。
【0015】
本明細書全体を通して、特徴、利点、または類似の用語への言及は、本発明で実現され得る特徴および利点のすべてが本発明の任意の単一の実施形態であるべきであることを意味しない。むしろ、特徴および利点に言及する用語は、実施形態に関連して説明される特定の特徴、利点、または特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体にわたる特徴および利点、ならびに類似の言語の議論は、必ずしもそうではないが、同じ実施形態を指す場合がある。
【0016】
さらに、本発明の記載された特徴、利点、および特性は、1つ以上の実施形態において任意の適切な方法で組み合わせることができる。当業者は、本明細書の説明に照らして、特定の実施形態の1つ以上の特定の特徴または利点なしで本発明が実施可能であることを認識するであろう。他の例では、本発明のすべての実施形態で示されていない特定の実施形態において、追加の特徴および利点が認識される場合がある。
【0017】
本明細書全体を通して、「一実施形態」(one embodiment)、「実施形態」(an embodiment)、または同様の文言への言及は、示された実施形態に関連して説明された特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「一実施形態では」(in one embodiment)、「実施形態では」(in an embodiment)という文言、および同様の文言は、必ずしもそうではないが、すべて同じ実施形態を指す場合がある。
【0018】
本文書で用いられている単数形「a」、「an」、および「the」は、文脈上特に明記されていない限り、複数形の言及を含む。別段に定義されない限り、本明細書で用いられているすべての技術用語および科学用語は、当業者によって一般に理解されるのと同じ意味を有する。本文書で用いられている「含む/有する」(comprising)という用語は「含むが、それに限定されない」(including, but not limited to)ことを意味する。
【0019】
本明細書で用いられている「機密情報」(sensitive information)という用語は、ユーザまたはエンティティのプライバシーおよび/またはセキュリティを保護するために不正アクセスから保護されるべきデータを指す。例として、アクセス認証情報(access credentials)、個人情報、医療情報、財務情報、社会保障情報などの固有識別子、生体認証データ、企業秘密、顧客およびサプライヤ情報、従業員データなどが挙げられる。
【0020】
用語「認証資格情報」(authentication credential)は、コンピューティングシステムへのアクセスを得るためにユーザが提示することができるユーザに固有の電子トークンまたは他のオブジェクトを指す。認証資格情報の例として、ユーザ名、パスワード、生体認証、セキュリティ質問への回答、前述のいずれかの組み合わせなどが挙げられるが、これらに限定されない。
【0021】
ここで図1を参照すると、本明細書で説明する実施形態が実現される例示的なコンピューティング環境を示す概略ブロック図が示されている。図1は、1つ以上のサーバ106A~106N(本明細書では概して「サーバ106A~N」と称する。)と通信する1つ以上のクライアントマシン102A~102N(本明細書では概して「クライアントマシン102A~N」と称する。)を備えるコンピューティング環境101の一実施形態を示す。クライアントマシン102A~Nとサーバ106A~Nとの間にはネットワーク104が設置されている。
【0022】
一実施形態では、コンピューティング環境101は、サーバ106A~Nとクライアントマシン102A~Nとの間に設置されたアプライアンスを備えてもよい(ここでは図示せず。)。このアプライアンスはクライアント/サーバ接続を管理しており、場合によっては複数のバックエンドサーバ間でクライアント接続の負荷を分散することができる。例えば、当該アプライアンスは、クラウドベースの環境でサーバ106A~Nがホストするコンピューティングリソース(クラウドハードウェアおよびソフトウェアリソース)へのアクセスのため、クライアントマシン102A~Nとサーバ106A~Nとの間の通信リンクを提供するクラウド管理サーバおよび/またはクラウドコネクタである。管理サーバは、例えば、とりわけ、フロリダ州フォートローダーデールのCitrix Systems, Inc.によるCLOUDSTACK、またはOPENSTACKを実行する。クラウドハードウェアおよびソフトウェアリソースは、プライベートおよび/またはパブリックコンポーネントを有する。例えば、クラウドは、1つ以上の特定の顧客またはクライアントコンピュータによって使用され、および/またはプライベートネットワークを介して使用されるプライベートクラウドとして構成される。他の実施形態では、パブリッククラウドまたはパブリックプライベートクラウドは、オープンまたはクローズドネットワークを介して他の顧客によって使用される。
【0023】
クライアントマシン102A~Nについて、いくつかの実施形態では、単一のクライアントマシンまたは単一グループのクライアントマシンと称することができ、一方、サーバ106A~Nは、単一のサーバまたは単一グループのサーバと称される。一実施形態では、単一のクライアントマシンが複数のサーバと通信し、一方、別の実施形態では、単一のサーバが複数のクライアントマシンと通信する。さらに別の実施形態では、単一のクライアントマシンが単一のサーバと通信する。
【0024】
クライアントマシン102A~Nは、いくつかの実施形態では、以下の用語のいずれか1つによって言及することができる:クライアントマシン;クライアント;クライアントコンピュータ;クライアントデバイス;クライアントコンピューティングデバイス;ローカルマシン;リモートマシン;クライアントノード;エンドポイント;エンドポイントノード;または第2のマシン。サーバ106A~Nは、いくつかの実施形態では、以下の用語のいずれか1つによって言及される:サーバ;ローカルマシン;リモートマシン;サーバファーム;ホストコンピューティングデバイス;または第1のマシン。
【0025】
一実施形態では、クライアントマシン102A~Nのうちの1つ以上は仮想マシンであり得る。仮想マシンは任意の仮想マシンとすることができ、いくつかの実施形態では、仮想マシンは、Citrix Systems、IBM、VMwareにより開発されたハイパーバイザまたは他のハイパーバイザによって管理される任意の仮想マシンであり得る。他の実施形態では、仮想マシンは任意のハイパーバイザによって管理され、一方、さらに他の実施形態では、仮想マシンはサーバで実行するハイパーバイザまたはクライアントマシンで実行するハイパーバイザによって管理され得る。
【0026】
クライアントマシン102A~Nは、いくつかの実施形態では、以下のいずれか1つのアプリケーションを実行、動作、または提供することができる:ソフトウェア;プログラム;実行可能な命令;仮想マシン;ハイパーバイザ;Webブラウザ;Webベースのクライアント;クライアント・サーバアプリケーション;シンクライアントコンピューティングクライアント;ActiveXコントロール;Java(登録商標)アプレット;ソフトIP電話のようなVoice over Internet Protocol(VoIP)通信に関連するソフトウェア;ビデオおよび/またはオーディオをストリーミングするためのアプリケーション;リアルタイムデータ通信を容易にするためのアプリケーション;HTTPクライアント;FTPクライアント;Oscarクライアント;Telnetクライアント;その他の実行可能な命令のセット。さらに他の実施形態は、サーバ106A~Nまたは他の遠隔設置されたマシン上でリモート実行するアプリケーションによって生成されたアプリケーション出力を表示する1つ以上のクライアントマシン102A~Nを備える。これらの実施形態では、クライアントマシン102A~Nは、アプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウにアプリケーション出力を表示することができる。一実施形態では、アプリケーションはデスクトップであるが、他の実施形態では、アプリケーションはデスクトップを生成するアプリケーションである。
【0027】
サーバ106A~Nは、いくつかの実施形態では、シンクライアントまたはリモートディスプレイプロトコルを使用するリモートプレゼンテーションクライアントまたは他のクライアントプログラムを実行して、サーバ上で実行されるアプリケーションによって生成されたディスプレイ出力を取得し、アプリケーション表示出力をリモートクライアントマシン102A~Nに送信する。シンクライアントまたはリモートディスプレイプロトコルは、以下のプロトコルのいずれか1つである:フロリダ州フォートローダーデールのCitrix Systems, Inc.によって製造されたIndependent Computing Architecture(ICA)プロトコル;または、ワシントン州レドモンドのMicrosoft Corporationによって製造されたRemote Desktop Protocol(RDP)。
【0028】
コンピューティング環境101は、サーバ106A~Nが論理的にグループ化されてサーバファームとなるように、2つ以上のサーバ106A~Nを備えてもよい。サーバファームは、サーバファーム内で地理的に分散して論理的にグループ化されたサーバを設けてもよいし、またはサーバファーム内で互いに近接して論理的にグループ化されたサーバを設けてもよい。サーバファーム内で地理的に分散したサーバは、いくつかの実施形態では、WAN、MAN、またはLANを用いて通信することができる。ここで、異なる地理的地域を以下のように特徴付けることができる:異なる大陸;一大陸での異なる地域;異なる国;異なる州;異なる都市;異なるキャンパス;異なる部屋;または、前述の地理的位置の任意の組み合わせ。いくつかの実施形態では、サーバファームは単一のエンティティとして管理され、一方、他の実施形態では、サーバファームは複数のサーバファームを設けてもよい。
【0029】
一部の実施形態では、サーバファームは、実質的に同様のタイプのオペレーティングシステムプラットフォームを実行するサーバ106A~Nを備えてもよい(例えば、ワシントン州レドモンドのMicrosoft Corporation製のWINDOWS NT(登録商標)、UNIX(登録商標)、LINUX、またはSNOW LEOPARD)。他の実施形態では、サーバファームは、第1のタイプのオペレーティングシステムプラットフォームを実行する第1のサーバグループと、第2のタイプのオペレーティングシステムプラットフォームを実行する第2のサーバグループとを備えてもよい。他の実施形態では、サーバファームは、異なるタイプのオペレーティングシステムプラットフォームを実行するサーバを備えてもよい。
【0030】
サーバ106A~Nは、いくつかの実施形態では、任意のサーバタイプとすることができる。例えば、サーバは、以下のサーバタイプのいずれかである:ファイルサーバ;アプリケーションサーバ;Webサーバ;プロキシサーバ;アプライアンス;ネットワークアプライアンス;ゲートウェイ;アプリケーションゲートウェイ;ゲートウェイサーバ;仮想化サーバ;展開サーバ;SSL VPNサーバ;ファイアウォール;Webサーバ;アプリケーションサーバまたはマスターアプリケーションサーバ;アクティブディレクトリを実行するサーバ;または、ファイアウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション加速プログラムを実行するサーバ。いくつかの実施形態では、サーバは、リモート認証ダイヤルインユーザサービスを含むRADIUSサーバであってもよい。サーバがアプライアンスを有する実施形態では、当該サーバは、以下のメーカーのいずれか1つによって製造されたアプライアンスであり得る:Citrix Application Networking Group;Silver Peak Systems, Inc.;Riverbed Technology, Inc .;F5 Networks, Inc.;またはJuniper Networks, Inc.。いくつかの実施形態は、第1のサーバ106Aを有し、第1のサーバ106Aは、1つ以上のクライアントマシン102A~Nから要求を受信し、当該要求を第2のサーバ106Bに転送し、クライアントマシン102A~Nにより生成された要求に第2のサーバ106Bからの応答で応える。第1のサーバ106Aは、クライアントマシン102A~Nが利用可能なアプリケーションの一覧と、アプリケーションの一覧内で識別されたアプリケーションをホストするアプリケーションサーバに関連するアドレス情報とを取得することができる。次いで、第1のサーバ106Aは、ウェブインターフェイスを使用してクライアントの要求に対する応答を提示し、クライアントマシン102A~Nと直接通信して、クライアントマシン102A~Nに、識別されたアプリケーションへのアクセスを提供することができる。
【0031】
サーバ106A~Nは、いくつかの実施形態では、以下のアプリケーションのいずれか1つを実行することができる:シンクライアントプロトコルを使用してアプリケーションディスプレイデータをクライアントに送信するシンクライアントアプリケーション;リモートディスプレイプレゼンテーションアプリケーションなど。別の実施形態は、以下のようなアプリケーションサーバであるサーバを備える:Microsoft Corporationが製造したMICROSOFT EXCHANGEなどの電子メールサービスを提供する電子メールサーバ;Webサーバまたはインターネットサーバ;デスクトップ共有サーバ;コラボレーションサーバ;または他のタイプのアプリケーションサーバ。さらに他の実施形態は、以下のタイプのホスト型サーバアプリケーションのいずれか1つを実行するサーバを備える:Citrix Online Division, Inc.が提供するGOTOMEETING;カリフォルニア州サンタクララのWebEx, Inc.が提供するWEBEX;または、Microsoft Corporationが提供するMicrosoft Office LIVE MEETING。
【0032】
クライアントマシン102A~Nは、いくつかの実施形態では、サーバによって提供されるリソースへのアクセスを求めるクライアントノードであり得る。他の実施形態では、サーバ106A~Nは、ホストリソースへのアクセスをクライアントマシン102A~Nに提供する。サーバ106A~Nは、いくつかの実施形態では、1つ以上のクライアントマシン102A~Nまたはサーバ106A~Nと通信するようにマスターノードとして機能する。いくつかの実施形態では、マスターノードは、要求されたアプリケーションをホストするサーバに関連付けられたアドレス情報を識別し、1つ以上のクライアントまたはサーバに提供することができる。さらに他の実施形態では、マスターノードは、サーバファーム、クライアントマシン、クライアントノードのクラスター、またはアプライアンスであり得る。
【0033】
1つ以上のクライアントマシン102A~Nおよび/または1つ以上のサーバ106A~Nは、コンピューティング環境101内のマシンとアプライアンスとの間に設置されたネットワーク104を介してデータを送信することができる。ネットワーク104は、1つ以上のサブネットワークを有してもよく、コンピューティング環境101内に含まれるクライアントマシン102A~N、サーバ106A~N、コンピューティングマシンおよびアプライアンスの任意の組み合わせの間に設置することができる。いくつかの実施形態では、ネットワーク104として以下のいずれかを採用することができる:ローカルエリアネットワーク(LAN);メトロポリタンエリアネットワーク(MAN);広域ネットワーク(WAN);クライアントマシン102A~Nとサーバ106A~Nとの間に位置する複数のサブネットワークから構成されるプライマリネットワーク;プライベートサブネットワークを有するプライマリパブリックネットワーク;パブリックサブネットワーク4を有するプライマリプライベートネットワーク;または、プライベートサブネットワークを有するプライマリプライベートネットワーク。さらに別の実施形態は、以下のネットワークタイプのいずれかを採用し得るネットワーク104を備える:ポイントツーポイントネットワーク;ブロードキャストネットワーク;電気通信ネットワーク;データ通信ネットワーク;コンピュータネットワーク;ATM(非同期転送モード)ネットワーク;SONET(同期型光ネットワーク)ネットワーク;SDH(同期デジタル階層)ネットワーク;ワイヤレスネットワーク;有線ネットワーク;または、ワイヤレスリンクが赤外チャネルまたは衛星帯であり得るワイヤレスリンクを有するネットワーク104。ネットワーク104のネットワークトポロジーは、実施形態によって異なってよく、ネットワークトポロジーの候補として以下が挙げられる:バスネットワークトポロジー;スター型ネットワークトポロジー;リングネットワークトポロジー;リピーターベースのネットワークトポロジー;または層状スターネットワークトポロジー(tiered-star network topology)。追加の実施形態は、プロトコルを使用してモバイルデバイス間で通信する携帯電話ネットワークのネットワーク104を備える。そのようなプロトコルとして以下のいずれか1つを採用することができる:AMPS;TDMA;CDMA;GSM(登録商標);GPRS UMTS;またはモバイルデバイス間でデータを送信可能な他のプロトコル。
【0034】
ここで図2を参照すると、コンピューティングデバイス200の例示的なアーキテクチャの詳細なブロック図が提供されている。ここで、図1に示すクライアントマシン102A~Nおよびサーバ106A~Nは、コンピューティングデバイス200の任意の実施形態として配置および/または実行することができる。したがって、コンピューティングデバイス200の以下の説明は、図1のクライアントマシン102A~Nおよび/またはサーバ106A~Nを理解するのに十分である。
【0035】
コンピューティングデバイス200の構成要素は、図2に示された構成要素よりも多くても少なくてもよい。しかしながら、図示されている構成要素は、本解決手段を実施する例示的な実施形態を開示するのに十分である。図2のハードウェアアーキテクチャは、クラウドコンピューティング環境における機密情報の格納および/または送信を容易にするように構成された代表的なコンピューティングデバイスの一実施形態を表す。したがって、図2のコンピューティングデバイス200は、以下で説明するように、複数の認証サービスを介して、(a)ユーザコンテキストに基づいて適切な認証プロトコルを決定し、(b)当該認証プロトコルに基づいてユーザを認証する方法の少なくとも一部を実施する。
【0036】
コンピューティングデバイス200の一部またはすべての構成要素は、ハードウェア、ソフトウェア、および/またはハードウェアとソフトウェアとの組み合わせとして実現することができる。ハードウェアには、1つ以上の電子回路が含まれるが、これらに限定されない。電子回路には、受動素子(例えば、抵抗器およびコンデンサ)および/または能動素子(例えば、増幅器および/またはマイクロプロセッサ)が含まれ得るが、これらに限定されない。受動素子および/または能動素子は、本明細書に記載の方法、手順、または機能のうちの1つ以上を実行するように構成され、配置され、および/またはプログラムされ得る。
【0037】
図2に示すように、コンピューティングデバイス200は、ユーザインターフェイス202と、中央処理装置(「CPU」)206と、システムバス210と、システムバス210を介してコンピューティングデバイス200の他の部分に接続されてアクセス可能なメモリ212と、システムバス210に接続されたハードウェアエンティティ214とを備える。ユーザインターフェイスは、入力デバイス(例えば、キーパッド250)および出力デバイス(例えば、スピーカー252、ディスプレイ254、および/または発光ダイオード256)を設けることができ、コンピューティングデバイス200の動作を制御するためのユーザソフトウェア相互作用を促進する。
【0038】
ハードウェアエンティティ214の少なくとも一部は、メモリ212へのアクセスおよび使用を伴うアクションを実行する。メモリ212として、RAM、ディスクドライバおよび/またはコンパクトディスク読み取り専用メモリ(「CD-ROM」)を採用し得る。ハードウェアエンティティ214は、コンピュータ読み取り可能な記憶媒体218を有するディスクドライブユニット216を備える。コンピュータ読み取り可能な記憶媒体218には、本明細書に記載の方法、手順、または機能のうちの1つ以上を実行する命令220(例えば、ソフトウェアコード)の1つ以上のセットが格納されている。命令220は、コンピューティングデバイス200による実行中に、メモリ212内および/またはCPU206内に完全にまたは少なくとも部分的に常駐するようにしてもよい。メモリ212およびCPU206はまた、機械読み取り可能な媒体を構成することができる。本明細書で使用される「機械読み取り可能な媒体」という用語は、命令の1つ以上のセット220を格納する単一の媒体または複数の媒体(例えば、集中型または分散型データベース、および/または関連するキャッシュおよびサーバ)を指す。本明細書で使用される「機械読み取り可能な媒体」という用語はまた、コンピューティングデバイス200による実行のための命令222のセットを格納、符号化、または搬送することができ、且つ、コンピューティングデバイス200に、本明細書で説明される方法のいずれか1つ以上を実行させる任意の媒体も指している。
【0039】
シナリオによっては、ハードウェアエンティティ214は、複数の認証サービスを介して、認証プロトコルに基づくユーザの認証を促進するようにプログラムされた電子回路(例えば、プロセッサ)を有する。これに関して、当該電子回路は、コンピューティングデバイス200にインストールされたソフトウェアアプリケーション224にアクセスして実行することができることを理解されたい。ソフトウェアアプリケーション224の機能は、議論が進むにつれて明らかになるだろう。
【0040】
ここで図3を参照すると、本明細書で説明される1つ以上の例示的な態様を実施するために用いられる例示的なクラウドコンピューティングシステムが示されている。クラウドコンピューティング環境300の構成要素は、図3に示されている構成要素よりも多くても少なくてもよい。しかしながら、図示されている構成要素は、本解決手段を実施する例示的な実施形態を開示するのに十分である。コンピューティング環境300の一部またはすべての構成要素は、ハードウェア、ソフトウェア、および/またはハードウェアとソフトウェアとの組み合わせとして実現することができ、本明細書で説明する方法、手順、または機能のうち1つ以上を実行するように構成され、および/またはプログラムされ得る。
【0041】
図3に示すように、クラウドコンピューティング環境300は、パブリッククラウドサービスおよびリソースを提供するための外部クラウドサービスプロバイダ314を備える。クラウドコンピューティング環境は、さらに、リモートコンピューティングデバイス302と、クラウドコネクタ310を有する内部クラウド306とを備える。クラウドコネクタ310は、内部クラウド306と外部クラウドサービスプロバイダ314との間の通信を促進する。
【0042】
システム300は、クラウドコンピューティング環境の形態をとっており、エンティティのいくつかのリソースが外部で管理され、外部クラウドサービスプロバイダのクラウド内に位置する一方で、エンティティの他のリソースはエンティティによって内部的に管理され(内部リソース308)、エンティティの独自のサーバ内または他のコンピューティングデバイス内に配置される。本明細書で使用される「内部」という用語のバリエーションは、エンティティ自体によって管理され、および/またはエンティティによって制御され外部クラウドサービスプロバイダによって制御されない1つ以上のコンピューティングデバイスに格納されたリソースを指す。一例として、リソースは、エンティティに関連付けられた許可ユーザによるリモートアクセスのために、エンティティのオンプレミスサーバに格納される。例えば、特定のソフトウェアアプリケーション(例えば、内部アプリケーション)は、雇用主によって制御および管理されたサーバに格納され、1人以上の従業員によってアクセス可能である。本明細書で使用される「外部」という用語のバリエーションは、外部クラウドサービスプロバイダによって管理され、および/または外部クラウドサービスプロバイダによって制御された1つ以上のコンピューティングデバイスに格納されたリソースを指す。一例として、外部リソースは、エンティティに関連付けられた許可ユーザによるアクセスのために、外部クラウドサービスプロバイダのクラウドベースのサーバに格納される。このような例では、外部リソースもエンティティに関連付けられる。リソース(外部および/または内部)には、ネットワーク、ファイル、データ、コンピューティングデバイス、アプリケーション、モジュール、クラウドサービス、機能、または他のエンティティが含まれるが、これらに限定されない。
【0043】
クラウドコンピューティング環境300は、パブリッククラウドサービスおよびリソースを提供する外部クラウドサービスプロバイダ314を備える。外部クラウドサービスプロバイダ314は、ユーザがインターネットを介してアクセスすることができるコンピューティングデバイスに格納されたリソースを有している(図示せず。)。外部クラウドサービスプロバイダ314は、外部クラウドサービスプロバイダ314の一部ではないかもしれないエンティティの異なる施設にある特定の内部コンピューティングデバイスから別の内部コンピューティングデバイスに情報を転送することもできる。例として、特定の地理的位置にあるプライベートクラウドの一部であるコンピューティングデバイスは、外部クラウドを介して、別の地理的位置にあるエンティティのプライベートクラウド(または、当該エンティティの別のプライベートクラウドでもよい。)の一部でもある別のコンピューティングデバイスに情報を送信することができる。
【0044】
外部クラウドサービスプロバイダ314は、構成サービス、オンプレミスのアクティブディレクトリのシングルサインオンパスワードサービス、1つ以上の認証サービス、セルフサービスパスワードリセットサービス、オンプレミスのアクティブディレクトリアクセスサービス、データストアアクセスサービスなどの様々なリソースを設けることができる。
【0045】
一実施形態では、構成サービス316(「構成サービス」とも称する。)は、外部クラウドサービスプロバイダ314(および/または内部アプリケーション)のクラウド内のすべてのサービス間通信を処理する。構成サービス316は、外部クラウドサービスプロバイダのすべてのサービスのリストを保持および管理し、それらが提供する機能を含むアドレスまたはエンドポイントをアドバタイズできるようにする。あるサービスが構成サービスに正常に登録されて初めてアクティブになり、他のサービスやアプリケーションと通信可能となる。完了すると、構成サービス316は、アクティブで且つ登録されたすべてのサービスのリストをアクティブなサービスとして共有する。構成サービス316は、任意のサービスディレクトリまたはリストおよび関連情報を構成ストレージに格納する。構成ストレージは、図1および図2に関連して説明したものなど、任意の種類および形式のストレージおよび/またはメモリを有している。各サービスに関連する情報は、構成ストレージに個別にまたは一緒に格納され、任意の種類の形式で格納される。一実施形態では、構成サービス316は、アクセス認証情報、暗号化キー、機密情報などを格納してもよい。
【0046】
一実施形態では、クラウドコンピューティング環境(例えば、クラウドコンピューティング環境300)のユーザは、地理的に離れた内部コンピューティングデバイスにインストールされた内部リソースへのアクセス、および/または、外部サーバにある外部リソースへのアクセス、または当該外部リソースの使用を望んでいる。ユーザは、外部クラウドサービスを介して、内部リソースおよび/または外部リソースと接続し、および/またはそうでなければ通信することができる。場合によっては、内部リソースおよび/または外部リソースへのアクセスを提供する前に、ユーザを認証する必要がある。そのような場合、内部リソースおよび/または外部リソースに関連付けられたリソースサービス320は、以下でさらに詳細に説明するように、ユーザを認証するための認証ポリシーまたはプロトコルを決定する。一実施形態では、リソースサービス320は、1つ以上の内部リソースおよび/または外部リソースに関連付けられる。例えば、リソースサービス320は、ユーザから、1つ以上の内部リソースおよび/または外部リソースにアクセスするための要求を受信し、要求されたアクセスを許可する前に当該ユーザを認証する。シングルサインオンプロセスの場合、リソースサービス320は、認証すると、個々のリソースへの認証資格情報の提供をユーザに要求することなく、複数のリソースまたはサービスへのアクセスを許可する。ユーザからのアクセス要求を受信すると、リソースサービス320は、ルールセットを用いて、ユーザを認証するための適切な認証プロトコルを決定する。認証プロトコルは、限定されないが、ユーザ固有、デバイス固有、リソース固有の認証ルール(以下で説明。)に対応する認証ルールまたはルールセットに基づいて決定される。一実施形態では、リソースサービス320はトークン発行者サービスを設けてもよい。トークン発行者は、様々なエンタープライズ/リソースサービスに対して、承認情報、認証情報、トークンなどのアサーションなどを発行する。
【0047】
認証プロトコルの例として、アグリゲート認証プロトコル、カスケード認証プロトコル、条件付き認証プロトコル、領域ベースの(realm-based)認証プロトコルなどが挙げられるが、これらに限定されない。認証を達成するためのアグリゲート認証プロトコルには、すべて満たさなければならない複数の個別の認証スキームが含まれる。例えば、2要素認証スキームには、パスワードベースの認証スキームとハードウェアトークンベースの認証スキームの両方を含めることができる。カスケード認証プロトコルでは、いくつかの特定の認証スキームのうち1つのみを満たすようユーザに要請する。通常、これらの認証スキームは、ユーザがこれらのうち1つに対して正常に認証されるまで順番に試行される。他の実施形態では、条件付き認証プロトコルは、認証スキームの順序付けられたリストを備える。最初の認証スキームについて正常に認証された後、システムはその特定のユーザに対して他の認証スキームが必要か否かを判断する。その場合、すべての要件が満たされるまで続行される。これにより、ロジックによっては、ユーザの認証要件が異なることとなる。例えば、特定のグループに属しているユーザが他の認証スキームについてさらに認証する必要がないように、複雑な動作が可能である。別の実施形態では、領域ベースの認証プロトコルは、各認証スキームが単一の領域にマッピングされた認証スキームのリストを備える。ユーザは、認証時に明示的に領域を指定する。これにより、特定の認証スキームが強制的に使用される。ユーザは、使用する認証スキームを決定する。
【0048】
一実施形態では、認証プロトコルは、潜在的に任意の数の認証スキームを有してもよく、ここで提供される例は、認証スキームの性質または配置を完全に網羅するものではない。認証プロトコルは、種々のタイプの認証スキームを有し、または、これらの認証スキームと関連付けられる。認証スキームの例として、知識ベース認証、第2要素認証、生体ベース認証、パスワードベース認証、証明書ベース認証、拡張認証プロトコル(EAP)およびその開発(例:PEAP [保護された拡張認証プロトコル]、EAP-TLS [トンネル層セキュリティ]、EAP-TTLS [トンネルトランスポート層セキュリティ]、EAP-FAST [セキュアトンネリングを利用した柔軟な認証])、Microsoftチャレンジハンドシェイク認証プロトコル(MS-CHAP [v1およびv2])、デバイスベースまたはネットワーク識別子ベースの認証(例:メディアアクセス制御[MAC]アドレス、インターネットプロトコルアドレス、シリアル番号など)、非暗号化または暗号化されたキーまたはトークン、キー共有、外部デバイス認証(例:USBキーベースのロック解除、スマートカード)、ローカルまたは非ローカルパスワード、ネットワークキー、時間ベースのアプローチなどが挙げられるが、これらに限定されない。なお、本明細書で開示する態様に従って、他のログイン/認証方法も実行可能である。さらに、本明細書のイノベーションに関連する種々の実施形態は、セキュリティおよび管理に関連する態様のためにActive Directory(商標)を使用することができる。
【0049】
認証プロトコルには、それぞれが別個の認証サービスまたはモジュール318によって実行またはインスタンス化される1つ以上の認証メカニズム、スキーム、またはプロセスの定義または識別が含まれ得ることが理解されよう。代替方法として、および/または、追加の方法として、認証サービス318は、1つ以上の認証メカニズム、スキーム、またはプロセスを実行してもよい。各認証サービス318は、実行可能またはインスタンス化可能なソフトウェア機能、手順、オブジェクトまたはクラスなどの関連ソフトウェア、ハードウェアまたはファームウェアコンポーネント、および構成および認証確認用の関連データ構造またはデータベース情報を有してよい。したがって、認証プロトコルは、ハードウェアまたはハードウェアで実行される実行可能な命令の任意の組み合わせを有してよい。認証プロトコルは、アプリケーション、ライブラリ、スクリプト、プロセス、サービス、タスク、または任意の種類と形式の実行可能な命令を有してよい。認証プロトコルは、APIまたは関数呼び出しなどの任意のタイプおよび形式のインターフェイスを介して、本明細書で説明する機能と動作を提供してもよい。認証プロトコルは、アプライアンスおよび/またはサーバなどのデバイス上で1つ以上のサービスとして実行される。認証フレームワークは、Webサービスインターフェイスなどのインターフェイスを提供する。
【0050】
例えば、パスワード認証サービスは、ユーザによって提供されたパスワードを認証するためのパスワードベースの認証スキームを実行する。別の例では、知識ベースの認証サービスは、ユーザによって提供された様々な応答を認証するための知識ベース認証スキームを実行する。さらに別の例では、認証サービスにはCAPTCHAモジュール(例:コンピュータと人間を区別する完全に自動化された公開チューリングテスト)が含まれる。これは、ユーザが人間であるか否かを判断するためにコンピューティングで使用される一種のチャレンジレスポンステストである。認証サービスのデータストア、データベースまたはデータ構造は、ユーザを認証するための情報を含んでおり、認証サービスによって提供される認証スキーム用の複数の資格情報、データまたは属性を有している。そのような例として以下が挙げられるが、これらに限定されない:生体指紋情報;生体虹彩情報、顔認識画像または定義;音声認識情報;パスフレーズ;1つ以上のハードウェア、ソフトウェアまたはファームウェアトークンの登録;携帯電話、タブレット、コンピュータシステム、他のデバイスなどのユーザ関連デバイスの登録;質問への回答、個人情報(private information)、電話番号、住所、日付、関係の詳細などを含む秘密データなどの個人情報(personal information)の登録;証明書または認証局の情報;スマートカード登録;クラウドコンピューティング認証サービス、ソーシャルネットワーク認証情報、クラウドメールサービスなどのサードパーティ認証サービスの登録または参照;地理情報;および本明細書で提示される様々な認証プロトコルでの使用に適した他の認証スキームに必要な情報など。認証サービスによって提供される認証スキームの資格情報、データまたは属性は、ユーザ登録時にユーザ、管理者などによってデータストア、データベース、またはデータ構造に追加され、アクティブディレクトリまたは他の適切な形式で維持される。
【0051】
一実施形態では、認証サービスはリソースサービス320に含まれ、その認証サービスに関連する認証スキームは、リソースサービス320によって実行される。別の実施形態では、1つ以上の認証サービスは、クラウドコンピューティング環境300内の他のサービスまたはリソースの一部であってもよい。別の実施形態では、リソースサービスが認証サービスに含まれる。一実施形態では、認証サービス318は、トークン発行者サービスを有する。
【0052】
一実施形態では、アクティブディレクトリは、認証サービスおよび/またはリソースサービスである。別の実施形態では、外部リソースおよび/または内部リソースは、それ自体のトークン発行者サービスに関連付けられている。例えば、(図5に関して)以下で説明するように、セルフサービスパスワードリセット(「SSPR」)はトークン発行者サービスを有する。
【0053】
一実施形態では、外部クラウドサービスプロバイダ314は、セルフサービスパスワードリセット(「SSPR」)サービス(ここでは図示せず。)を有する。SSPRサービスは、保護されたシステム、ネットワーク、ファイル、サーバなどの別のリソースにアクセスするために用いられたアクセス認証情報をユーザがリセットすることを許可するリソースに対応する。アクセス認証情報には、パスワード、スマートカードピン、生体認証データ、または他の認証メカニズムが含まれる。アクセス認証情報のリセットを希望するユーザは、何らかの方法で自分自身を認証するように求められる。ユーザが認証テストに合格すると、ユーザは自身のアクセス認証情報をリセットし、それを用いてリソースにアクセスすることを許可される。リソース内の情報またはアクセスに対するユーザの権利は、ユーザに関連付けられた許可設定を介して制御される。
【0054】
クラウドコンピューティング環境300は、リモートコンピューティングデバイス302(例えば、クライアントデバイス)も備え、これは、パーソナルコンピュータ、ラップトップ、タブレット、スマートフォンなどであり、上述のコンピューティングデバイスの1つ以上の構成要素を有する。場合によっては、リモートコンピューティングデバイス302はユーザの個人用デバイスである(例えば、ユーザがリモートコンピューティングデバイス302を所有している。)。そのような場合、リモートコンピューティングデバイス302は、内部クラウドの一部ではないかもしれないが、ユーザが認証された後は、内部クラウドにログインおよび/またはそうでなければアクセスすることができる。他の例では、リモートコンピューティングデバイス302は、内部クラウドを管理および制御するエンティティによって所有されてもよい(例えば、会社提供のラップトップ)。そのような場合、ユーザが当該エンティティの施設内の端末にリモートコンピューティングデバイス302を接続させると、リモートコンピューティングデバイス302は内部クラウドの一部となり得る。そうでない場合、ユーザが当該エンティティの施設外(例えば、ユーザの自宅)でリモートコンピューティングデバイス302を使用すると、リモートコンピューティングデバイス302は、内部クラウドの一部にはならないかもしれないが、ユーザが認証された後に(例えば、仮想プライベートネットワーク(VPN)接続を介して)内部クラウドにログインおよび/またはそうでなければアクセスすることができる。
【0055】
リモートコンピューティングデバイス302は、リモートコンピューティングデバイス302にインストールされたクライアントソフトウェアである受信機304を有する。受信機304によって、リモートコンピューティングデバイス302が内部および/または外部クラウドサービスにアクセスすることが可能となる。一例として、リモートコンピューティングデバイス302は、受信機304を用いて、内部および/または外部クラウドに格納されたアプリケーション、仮想デスクトップ、およびデータに安全にアクセスすることができる。受信機304の一例として、フロリダ州フォートローダーデールのCitrix Systems, Inc.によって開発されたCitrix Receiverがある。
【0056】
クラウドコンピューティング環境300の内部クラウドはまた、内部クラウドから外部クラウドに送信されているメッセージを分析および/または傍受するクラウドコネクタ310を有する。一実施形態では、クラウドコネクタ310は、内部クラウドの一部でなくてもよい。クラウドコネクタは、パブリッククラウドのサービスと内部リソース308との間の通信を容易にする。
【0057】
ここで図4を参照すると、クラウド環境内のリソースへのアクセスを提供する前にユーザを認証および認可するための例示的な方法400が示されている。例示的なクラウド環境300は図3に示されている。プロセス400は、システム100などのシステムによって実行される。例えば、1つ以上の実施形態において、図4に示されるプロセス400および/またはその1つ以上のステップは、コンピューティングデバイス(例えば、図1図2の任意のデバイス)によって実行される。他の実施形態では、図4に示されるプロセスおよび/またはその1つ以上のステップは、非一時的なコンピュータ読み取り可能なメモリなどのコンピュータ読み取り可能な媒体に格納されたコンピュータ実行可能な命令で具現化される。代替方法として、または、追加の方法として、プロセス400のステップのいずれかは、クライアントデバイス、ゲートウェイデバイス、クラウドコネクタ、リソースサービス、認証サービス、外部クラウドプロバイダおよび関連サービス、および/またはサードパーティサーバまたはコンピューティングデバイスで実行される。
【0058】
クラウド環境のリソースサービスが、当該リソースサービスに関連付けられたリソースにアクセスするための要求(「アクセス要求」)を受信すると、プロセスが402で開始する。一実施形態では、リソースサービスは、クライアントデバイスおよび/またはリモートコンピューティングデバイスの受信機を介して要求を受信する。別の実施形態では、リソースサービスはまた、例えばロードバランサ、またはクラウド環境の別のデバイスを介して、ユーザ情報を含む要求を受信する。一実施形態では、アクセス要求はユーザ情報を含む。ここで、ユーザ情報とは、リソースへのアクセスを要求しているユーザを識別するために用いられるユーザに関する情報を指す。例として、ユーザ名、クライアントデバイスID、ユーザID番号、パスワードなどが挙げられるが、これらに限定されない。リソースサービスは、ユーザ情報を用いて、例えばクラウドコンピューティングシステムまたはリソースに登録されているユーザのアクティブディレクトリを使用して、アクセスを要求しているユーザを識別する。
【0059】
アクセス要求を受信すると、リソースサービスは、当該アクセス要求および識別されたユーザに対応するコンテキスト情報を404で決定し、識別し、および/または読み出す。アクセス要求に対応するコンテキスト情報は、アクセスを要求しているユーザ、クライアントデバイス、アクセス対象のリソース、またはそれらの組み合わせの1つ以上の特性に関する情報を指す。コンテキスト情報の例として以下を挙げることができるが、これらに限定されない:地理的位置、相対位置、ネットワーク位置などのユーザの位置;デバイスの種類、ネットワーク、または設備(例えば、タブレット、ラップトップ、デスクトップ、端末、スマートフォンなど)または特定のデバイス、モデル、メーカー、シリアル番号など、ユーザがリソースへのアクセスを要求する際に用いたクライアントデバイスに関する情報;オペレーティングシステムのタイプまたはバージョン、セキュリティ構成、動作の状態、特定のセキュリティソフトウェアのインストールまたは構成を含むソフトウェア構成状態など、ユーザがリソースへのアクセスを要求する際に用いたデバイスまたはソフトウェアコンポーネントの特性;システム管理者によって割り当てられたユーザクラス、またはユーザの職務もしくは機能など、ユーザのカテゴリ、クラス、グループ、またはタイプ;リソースによって提供されるデータのタイプ、処理のタイプ、ファイル形式や、リソースに関連付けられたセキュリティのレベルなど、リソースのカテゴリ、クラスまたはタイプ。他の適切なコンテキスト情報および/または特性は当業者にとって明らかであり、本明細書に記載の実施形態は特定の特性に限定されない。
【0060】
コンテキスト情報は、アクセス要求に関連付けられ、含まれ、および/またはアクセス要求から暗示され、上述のようにアクセスが要求された時点での1つ以上の特性を定義する。例えば、コンテキスト情報の一部またはすべてを、アクセス要求の1つ以上のデータ項目としてアクセス要求に含めることができる。例えば、当該要求は、クライアントデバイスに関連付けられたトークン、ユーザおよび/またはクライアントデバイスのID、ユーザおよび/またはクライアントデバイスの位置、またはユーザに関連付けられた他の情報を有する。あるいは、コンテキスト情報は、アクセス要求に基づいて(例えば、ユーザIDに基づいて)認識され、暗示され、決定され、またはそうでなければ推論され得る。一実施形態では、コンテキスト情報の一部またはすべては、アクティブディレクトリ、サービス、サーバ、システム管理者などの別のデバイスから受信される。例えば、ユーザの特性、アクセス要求の特性、リソースの特性、アクセス要求の受信方法、アクセス要求のネットワークルートもしくはトレース、または、ユーザとリソースサービスとの仲介者からの情報などのアクセス要求に関するサードパーティ情報を用いて、ユーザコンテキストを決定することができる。追加の方法として、または、代替方法として、コンテキスト情報をアクセス要求に全体的または部分的に含めることができる。
【0061】
コンテキスト情報のソースの例として以下を挙げることができる:ネットワークルート;ネットワークアドレス;ネットワークの位置;ネットワーク仲介情報;ソフトウェアの種類、バージョンおよび/または構成情報などのユーザ側のソフトウェア情報;デバイスタイプ(携帯電話、ラップトップ、タブレット、インターネットカフェデバイスなど)、構成および/またはバージョンまたはモデル情報などのユーザデバイス情報;ユーザによる要求の頻度;最近の認証要求の結果(許可または阻止)などの最近の要求情報;ユーザの年齢、状況などのユーザの個人情報;ユーザの身体的または精神的能力;ユーザの地理的位置;地理上のユーザの動き;匿名サービス、プロキシ、仮想プライベートネットワークサービスなど、ユーザとリソースサービスとの間の仲介者の使用;ユーザによって、またはユーザとのネットワーク通信の一部として使用されるシステムのセキュリティレベル;ユーザとやり取りする情報の暗号化レベルなど。
【0062】
リソースサービスは、ルールセットにアクセスすることによって要求されたリソースへのアクセスを許可する前に、406で、ユーザ情報および/または現在のコンテキスト情報を用いて、ユーザを認証するための適切な認証プロトコルを識別する。一実施形態では、各リソースおよび/またはリソースサービスは、それ自体のルールセットに関連付けられている。代替方法として、および/または、追加の方法として、1つ以上のリソースおよび/またはリソースサービスが同一のルールセットに関連付けられてもよい。
【0063】
一実施形態では、ルールセットは、ユーザIDおよび/またはコンテキスト情報に基づいてアクセス要求に適切な認証レベルを識別し、当該認証レベルを少なくとも1つの認証プロトコルに関連付けるための論理ルールを含む。例えば、ルールセットは、コンテキスト情報全体に基づいて、リソースへのアクセスを要求しているユーザを認証するために必要な保証のレベルまたは程度として、特定の認証レベルを提供する。したがって、特定のコンテキストタイプおよび/または値は、他のコンテキストタイプおよび/または値よりも高いレベルの保証を要するように事前に決定され、それに応じてコンテキスト情報全体に対する認証レベルが選択される。言い換えれば、認証レベルは、ユーザIDおよび/またはコンテキスト情報に含まれる様々な要素の関数であり、様々な要素の例として、ユーザの位置、ユーザの役割、リソースタイプなどが挙げられるが、これらに限定されない。例えば、場所に関係なくシステム管理者に高い認証レベルを割り当てることができるが、公共の場所からリソースへのアクセス要求があった場合にのみ、別のユーザに高い認証レベルを割り当てることができる。別の例では、1日の特定の時間帯に、またはユーザの位置が認可された企業の場所であると判断された場合に、リソースへのアクセス要求に低い認証レベルを割り当てることができる。いくつかの他の例では、認証レベルは最後に成功した認証要求以降の時間を考慮に入れてもよい。さらに別の例では、認証レベルの決定にリソース情報を用いることもできる。例えば、ゲームアプリケーションではセキュリティ要件を低くし(リスクインデックスが低い。)、一方、銀行サービスではセキュリティ要件を高くする(リスクインデックスが高い。)。進化するセキュリティ要件もこの方法を使ってサポートされ得る(例えば、新しいポリシーにより写真共有サービスのセキュリティ要件が増加する。)。別の例として、ユーザは、それぞれ特定のリスクの可能性がある金額のオンライン取引、例えば、取引金額(例えば、100.00ドル未満に対して低い認証レベル、1000.00ドル未満に対して中間認証レベル、または1000.00ドルを超える場合に高い認証レベル)のオンライン取引の完了を試みることができる。人口統計プロファイルデータもまた、セキュリティ要件を決定する際のコンテキスト入力として利用される。
【0064】
認証レベル(高、低、中など)の選択または定義は例として提供されるものであり、他の適切な認証レベル、値、および/または値の範囲が、本明細書で説明する原理から逸脱することなく定義されることは理解されるであろう。例えば、ユーザIDおよび/または収集されたコンテキスト情報に基づいて、アクセス要求に0~10の認証レベルを割り当てることができる。ここで、0は最低の認証レベルを示し、10は最高の認証レベルを示す。認証レベルの割り当ては、例えば、個々のコンテキスト情報エレメント(または要素)にスコアを割り当て、これらの個々のスコアを組み合わせてアクセス要求の認証レベルを取得するか、他の適切な方法によって行われる。
【0065】
一実施形態において、ルールセットは、様々な認証レベルを少なくとも1つの認証プロトコルに関連付けてもよく、各認証プロトコルは、特定の保証レベルで認証を達成するための1つ以上の認証スキームを有する。したがって、認証プロトコルは、認証レベルにふさわしいと事前に決定された認証の保証のレベルまたは程度を提供するように定義または選択される。認証プロトコルは、多要素アグリゲート認証プロトコルなどの非常に高度なセキュリティ方法から、単純なパスワード入力など、セキュリティは低下するが、より便利で社会的に受け入れられる方法までさまざまである。さらに、認証プロトコルに含まれる認証スキームは、必要な認証レベルに応じて異なる。例えば、第1の知識ベース認証スキームは、ユーザに回答させるための3つの質問を有し、第2の知識ベース認証スキームは、ユーザに回答させるための5つの異なる質問を有する。別の例では、認証プロトコルは、同一の認証スキームに対して異なる信頼レベルを要する。例えば、知識ベース認証スキームを含む認証プロトコルでは、ユーザへの5つの質問に対する応答を提出するようユーザに求める。ユーザが5問中4問に正しく答えると、第1の認証プロトコルが満たされるが、第2の認証プロトコルでは、ユーザが認証スキームに応答する必要があるが、当該認証プロトコルを満たすためには5問すべてに正しく答える必要がある。
【0066】
一実施形態では、ルールセットは、例えば管理者によって、動的に決定および/または事前に決定される。一実施形態では、管理者は、認証レベルおよび/または認証プロトコルを決定するためのルールセットを作成する。一実施形態では、管理者は、新しい認証ルール、レベルおよび/またはプロトコルを作成し、既存のルールセットを変更または削除し、リソースユーザグループおよび/または個々のユーザに認証レベルを割り当て、および再割り当てし、ユーザ登録を削除などする。例えば、管理者は、様々な認証スキームを組み合わせて新しい認証プロトコルを作成し、当該プロトコルを認証レベルに割り当てる。必要に応じて、または、希望に応じて、管理者は、すでに定義済みのスキームに加えて、新しい認証スキームをインポートまたは作成する。管理者は、認証スキームの特性をカスタマイズし、様々な認証プロトコルに対するスキームの合否基準を設定する。管理者は、新しい認証スキームおよび/またはプロトコルを特定のリソース、個々のユーザおよび/またはユーザグループに適用または関連付けることを選択可能である。
【0067】
図4に戻って参照すると、適切な認証プロトコルが識別されると、リソースサービスは、識別された認証プロトコルに含まれる認証スキームを実行するために必要な1つ以上の認証サービスを408で識別する。例えば、識別された認証プロトコルは、知識ベースの認証サービスによって実行される第1認証スキームと、第2要素認証サービスによって実行される第2認証スキームと、生体認証サービスによって実行される第3生体ベース認証スキームとを有する。一実施形態では、1つ以上の認証スキームは同一の認証サービスによって実行されてもよい。代替方法として、および/または、追加の方法として、1つ以上の認証サービスが1つの認証スキームを実行してもよい。一実施形態では、1つ以上の認証スキームが、認証サービスおよび/またはリソースサービスによって実行される。
【0068】
次に、リソースサービスは、認証チャレンジを410で生成し、当該認証チャレンジを、アクセス要求をしたクライアントデバイスの受信機に送信する。一実施形態では、認証チャレンジは初期トークンを有する。初期トークンは、ユーザID、要求されているアクション/リソース、タイムスタンプ、および他の有用な情報などのステートメントを含む初期アサーションを有する。一実施形態では、識別された認証プロトコルに含まれる1つ以上の認証スキームが既に実行されたとリソースサービスが判断した場合、リソースサービスは、初期アサーションにそのような実行済みの認証スキームのステータスも含める。認証チャレンジおよび/または初期アサーションは、識別された認証プロトコルを実行するための認証パラメータを有してよいが、特に限定されない。認証パラメータには、識別された認証プロトコルに含まれる認証スキームに関連する情報、位置(ユニフォームリソースロケータ、IPアドレスなど)および/または識別された認証プロトコルに含まれる識別された認証スキームの実行に必要な認証サービスのID、識別された認証プロトコルに関連付けられた要件および/またはルール(例えば、認証を実行すべき順序、各認証サービスによってどのように成功する認証が実行されるべきかの説明、認証サービスから要求された応答の種類など)、結果のアサーションを認証サービスおよび/またはリソースサービスに返す方法、などが含まれるが、これらに限定されない。認証チャレンジの形式とパラメータは柔軟であり、様々な認証シナリオに対応するように調整される。例えば、Webブラウザベースのアプリケーション用に提供される認証チャレンジには、HTTPリダイレクトが含まれる。認証チャレンジは、現在または今後既知の方法を用いて一時的なものとなるように設計されている。一実施形態では、リソースサービスは、初期トークン、認証チャレンジ、および/または初期アサーションを格納する。
【0069】
一実施形態では、リソースサービスは、初期トークンを提供するためにセキュリティアサーションマークアップ言語(SAML)標準またはJSONウェブトークン(JWT)標準を使用する。SAMLおよびJWTは例示であって、他の適切な標準および/またはプロトコルを使用することができる。初期トークンは、ユーザID、コンテキスト情報、デジタル証明書、秘密キーまたは公開キー、認証プロトコル情報またはパラメータなどの情報を有する。一実施形態では、リソースサービスは、ノンスおよび/またはタイムスタンプを初期トークンに追加してもよい。いくつかの実施形態では、初期トークンは、一度のみの使用を許可する方法で署名されてもよい。一実施形態では、リソースサービスは、受信したアクセス要求が、識別された認証プロトコルに含まれる認証スキームに必要な認証資格情報を有するか否か、および/またはリソースサービスがユーザの認証資格情報を検証することができるか否かを判断してもよい。例えば、アクセス要求には、1つ以上のアサーション(タイムスタンプなど)、ユーザ名、パスワードなどを有する認証トークンが含まれるが、これらに限定されない。識別された認証プロトコルに含まれる認証スキームに必要な認証資格情報が検証された場合、初期トークンは、リソースサービスがアクセス要求に含まれる認証資格情報を検証したことを示すアサーションをさらに有する。
【0070】
認証チャレンジを受信すると、受信機は、認証チャレンジに含まれる認証パラメータを検出し、初期トークンを有する認証要求を412で生成し、認証チャレンジで示されたパラメータに従って、当該認証チャレンジ内で識別された少なくとも1つの認証サービスに認証要求を送信する。例えば、受信機は、認証チャレンジで指定された順序で認証要求を認証サービスに送信する。認証サービスに送信される認証要求には、認証サービスによって実行される認証スキームのためのパラメータと適切な認証要件も含まれる。一実施形態では、受信機は、認証要求内に認証サービスによって実行される認証スキームのための応答または資格情報をさらに有する。一実施形態では、受信機は、自身のアサーションを初期トークンに追加してもよい。例えば、識別された認証プロトコルに含まれる1つ以上の認証スキームがすでに実行済みであると受信機が判断した場合、受信機はそのような実行済みの認証スキームのステータスに対応するアサーションを含める。
【0071】
次に、少なくとも1つの認証サービスは、受信機から認証要求を受信すると、(認証プロトコルに従って)必要な認証スキームをインスタンス化し、実施し、動作し、または414で実行する。一実施形態では、認証サービスは、ユーザ(または、1つ以上の認証スキームの一部を構成するユーザもしくはサードパーティサービスプロバイダに関連付けられたハードウェアもしくはソフトウェアなどの他のシステム)へチャレンジを送信するプロセス、および/または当該ユーザから応答を受信するプロセスのうち1つ以上のプロセスを引き受ける。例えば、知識ベースの認証サービスは、ユーザに回答させるための一連の質問を発行し、ユーザの応答を格納された正解および認証プロトコル要件(例えば、認証プロトコルは、認証を成功させるために5つのうち4つの正解が必要である。)と比較することによってユーザを認証する。認証スキームの実行後、認証サービスは、初期トークンに、当該認証サービスによって実行された認証スキームのステータス(例えば、成功、合格、失敗、再試行、ロックアウト、パスワード変更など)を示す独自のアサーションを含めることで更新されたトークンを416で生成し、当該更新されたトークンを受信機に送信する。例えば、アサーションには、認証サービスによって作成された1つ以上のステートメントが含まれる(例えば、サブジェクトは特定の時間に特定の手段で認証され、サブジェクトは特定の属性と認証のステータス(例えば、成功、合格、失敗、再試行、ロックアウト、パスワード変更など)に関連付けられる。)。別の実施形態では、認証プロトコルに従って、ユーザ応答が格納された正しい情報と一致し、認証が成功したことを示す場合にのみ、認証サービスは初期トークンにアサーションを含める。したがって、認証サービスからアサーションなしで返される初期トークンは、認証が失敗したことを(受信機、認証サービスおよび/またはリソースサービス、または別の仲介者に対して)示している。
【0072】
少なくとも1つの認証サービスからトークンを受信すると、受信機は、認証パラメータをレビューして、受信された認証チャレンジ内のすべての認証スキームが認証パラメータに従って実行されたか否かを418で判断する。
【0073】
418で、受信機が、認証チャレンジ内のすべての認証スキームが実行されたと判断した場合(418:YES)、受信機は、アクセスを要求するために、様々な認証サービスから受信したアサーション付きのトークンをリソースサービスに420で送信する。一方、418で、受信機が、認証チャレンジ内のすべての認証スキームが実行されていないと判断した場合(418:NO)、受信機は、更新されたトークン(以前のアサーションを含む。)を有する新たな認証要求を422で生成し、認証チャレンジで指定されたパラメータに基づいて、認証チャレンジ内で識別された少なくとも1つの認証サービスに当該更新されたトークンを送信し、ステップ414~418が繰り返されるようにする。
【0074】
言い換えれば、受信機からリソースサービスへのトークンの送信は、識別された認証プロトコルの結果を示している。次に、リソースサービスは、トークンに含まれるアサーションをレビューして、受信したトークンに含まれる(または含まれていない。)アサーションが、識別された認証プロトコルを満たすか否か、すなわち、識別された認証プロトコルのステータス(例えば、成功、合格、失敗、再試行、ロックアウト、詳細情報が必要など)を424で判断する。ユーザ認証が成功したと判断された場合(424:YES)、リソースサービスは、要求されたリソースへのアクセスを426で許可する。ユーザ認証が成功しなかったと判断された場合(424:NO)、リソースサービスは、要求されたリソースへのアクセスを428で拒否する。
【0075】
一実施形態では、リソースサービスは、追加のセキュリティのため、識別された認証プロトコルの完了時にトークンを破棄する。別の実施形態では、リソースサービスは、追加のセキュリティのため、識別された認証プロトコルの完了時に初期アサーションを破棄して、トークンを再利用できないようにする。さらに別の実施形態では、認証サービスおよび/またはリソースサービスは、424で、トークンのタイムスタンプを調べて、タイムスタンプが規定の制限時間内にあるか否かを判断することで、アクセスを許可するか否かを判断することで、セキュリティを強化させる。
【0076】
代替方法として、および/または、追加の方法として、受信機は、受信した認証チャレンジ内のすべての認証スキームが実行されたか否かを判断する前に、認証サービスから受信した応答ステータスをレビューして、リソースサービスから受信した認証パラメータに基づいて次のステップを決定してもよい。例えば、認証プロトコルを完了させるために、認証パラメータによってすべての認証スキームの成功が求められる場合において、認証スキームが失敗したことを認証サービスが示したとき、受信機は認証プロセスを中止する。別の例では、受信機は、以前の認証スキームのステータスと認証パラメータにおいて定義されたルールとに基づいて、次の認証スキームおよび/またはモジュールを選択する。
【0077】
なお、402で受信されたアクセス要求は、1つ以上のアサーションを含む認証トークンを有してもよい。リソースサービスは、次の1つ以上の処理を実行するために当該トークンを検証する:トークンに含まれるアサーションが識別された認証プロトコルを満たす場合、アクセスを許可し;トークンに含まれるアサーションが識別された認証プロトコルのすべての要件を満たさない場合、さらなる認証を要請し;および/または、トークンに含まれるアサーションが識別された認証プロトコルの認証要件(上述)を満たさない場合、完全な認証を要請する。
【0078】
ここで図5を参照すると、例示的なメッセージフロー図のステップは、本明細書に記載の方法を用いてアクセス認証情報(例えば、パスワード)を変更するセルフサービスパスワードリセット(SSPR)サービスへのアクセスを要求するユーザを認証する方法を説明している。なお、図5は、第2要素認証スキームおよび知識ベース認証スキームを用いてSSPRサービスへのアクセスを提供する前にユーザを認証する方法を示しているが、本明細書で説明する教示はそれほど限定的ではなく、他の認証プロトコル(上述)を用いてクラウドコンピューティング環境内の他のリソースにアクセスするためのユーザ認証についても同様の原理が用いられる。
【0079】
メッセージフローは502で始まり、リモートコンピューティングデバイスによって提供される受信機は、アカウント(例えば、パスワード)のアクセス認証情報をリセットする要求を外部クラウドのSSPRサービスに送信する。一実施形態では、アクセス認証情報は、ユーザなどの認証情報の所有者を識別および/または認証するために用いられる任意の情報を含む。例えば、認証情報として、ユーザID(例えば、ユーザ番号、ユーザ名など)および/またはパスワード、個人識別番号(PIN)、スマートカードID、セキュリティ証明書(例:公開鍵証明書)、ユーザの特徴(例えば、指紋リーダー、虹彩スキャン、音声認識、または他の生体認証などのセンサーによってキャプチャされたもの)、または特定の内部/外部リソースにアクセスするための認証に用いられる任意のデータが挙げられるが、これらに限定されない。
【0080】
アクセス認証情報のリセット要求を受信すると、図4に関して上述したように、SSPRサービスは、要求に対応するコンテキスト情報を決定し、識別し、および/または読み出し、当該コンテキスト情報を用いて適切な認証プロトコルを識別する。図5に示すメッセージフロー図の例において、識別された認証プロトコルは2つの認証スキーム(第2要素認証スキームと知識ベース認証スキーム)を有している(なお、本明細書で説明する方法はそれほど限定的ではなく、追加および/または代替の認証スキームまたはプロトコルを用いてもよい。)。次に、SSPRサービスは、識別された認証プロトコルに対応する認証パラメータと初期アサーションを含む初期トークン(T(sspr))とを有する認証チャレンジを504で生成し、保存する。例えば、認証チャレンジには、識別された認証プロトコルに含まれる認証スキーム(すなわち、第2要素認証サービスおよび知識ベース認証サービス)を実行する様々な認証サービスの位置および/またはIDが含まれる(auth位置)。初期アサーションには、要求されたアクション/リソース(例えば、本実施形態ではパスワードリセットサービス)とタイムスタンプが含まれる。SSPRサービスは、506でチャレンジを受信機に送信する。
【0081】
次に、受信機は、認証チャレンジに含まれる認証パラメータを検出する。例えば、図5に示すように、認証要求は、識別された認証プロトコルに含まれる認証スキームを実行する際に用いられる認証サービス(第2要素認証サービスおよび知識ベース認証サービス)を識別する認証パラメータを有する。受信機は、508で、初期トークンT(sspr)および適切な認証パラメータとともに第1の認証要求を第2要素認証サービスに送信する。上述のように、第2要素認証サービスは、受信機から認証要求を受信すると、ユーザに関連付けられたデバイス(例えば、受信機、モバイルデバイス、または他のデバイス)に対してパスコード(または他の認証資格情報)要求を510で発行することによって、必要な認証スキーム(すなわち、第2要素認証)を実行し、応答として512でパスコードを受信する。514で、第2要素認証サービスは、受信したパスコードを格納された正しいパスコードと比較することによってユーザを検証し、受信したパスコードが格納されたパスコードと一致する場合、パスコード認証が成功したことを示すアサーションを初期トークンT(sspr)に追加する。次に、第2要素認証サービスは、そのアサーションを有する更新されたトークンT(sspr、2fa)を受信機に516で送信する。
【0082】
第2要素認証サービスからトークンT(sspr、2fa)を受信すると、受信機は、認証パラメータをレビューして、受信した認証チャレンジの認証スキームが認証パラメータに従って実行されていないと判断する(上述のように、識別された認証プロトコルは2つの認証スキームを有する。)。次いで、受信機は、受信したトークンT(sspr、2fa)を含む第2の認証要求を知識ベース認証サービスに518で送信する。次に、知識ベース認証サービスは、ユーザに回答させるための一連の質問を520で発行することによって、必要な認証スキーム(すなわち、知識ベース認証)を実行し、ユーザ応答と格納された正解とを比較することによって、ユーザを認証する。一実施形態では、質問を発行して、ユーザ応答を受信するために、知識ベース認証サービスによって受信機または別のユーザデバイスもしくはポータルが使用される。522で、知識ベース認証サービスは、ユーザから回答を受信し、受信した回答または応答が格納された応答と一致する場合、ユーザを524で認証し、KBA認証が成功したことを示すアサーションをT(sspr、2fa)トークンに追加することでT(sspr、2fa、kba)トークンを生成する。次いで、知識ベース認証サービスは、そのアサーションを有する更新されたトークンT(sspr、2fa、kba)を受信機に526で送信する。
【0083】
知識ベース認証サービスからトークンT(sspr、2fa、kba)を受信すると、受信機は、認証パラメータをレビューして、受信した認証チャレンジの認証スキームが認証パラメータに従って実行されたと判断し、トークンT(sspr、2fa、kba)をSSPRサービスに528で送信する。SSPRサービスは、トークンT(sspr、2fa、kba)を受信すると、アクセス認証情報の変更を許可し、トークンの1回限りの使用を保証するために、受信したトークンを530で破棄する。一実施形態では、SSPRサービスは、保存されたチャレンジの初期アサーションおよび/またはトークンのタイムスタンプを調べて、経過時間に基づいて許可を付与するか否かを決定することで、セキュリティを強化させる。SSPRサービスはまた、アクセス認証情報の変更を許可すると、格納された初期アサーションを削除して、トークンの1回限りの使用を保証することによって、セキュリティを強化させる。
【0084】
代替方法として、および/または、追加の方法として、518で、受信機は、T(sspr)のみを知識ベース認証サービスに送信してもよい。次いで、知識ベース認証サービスは、ユーザに回答させるための一連の質問を520で発行することによって、必要な認証スキーム(すなわち、知識ベース認証)を実行し、ユーザ応答と格納された正解とを比較することによって、ユーザを認証する。一実施形態では、質問を発行し、ユーザ応答を受信するために、知識ベース認証サービスによって受信機または別のユーザデバイスもしくはポータルが使用される。522で、知識ベース認証サービスは、ユーザから回答を受信し、受信した回答または応答が格納された応答と一致する場合、ユーザを524で認証し、KBA認証が成功したことを示すアサーションをT(sspr)トークンに追加することでT(sspr、kba)トークンを生成する。次いで、知識ベース認証サービスは、そのアサーションを有する更新されたトークンT(sspr、kba)を受信機に526で送信する。受信機は、T(sspr、2fa)とT(sspr、kba)とを組み合わせてT(sspr、2fa、kba)を作成し、T(sspr、2fa、kba)をSSPRサービスに528で送信する。
【0085】
代替方法として、および/または、追加の方法として、受信機は、528で、T(sspr、2fa)およびT(sspr、kba)を、それらを結合することなく、SSPRサービスに送信してもよい。
【0086】
本発明を1つ以上の実施に関して図示および説明したが、本明細書および添付図面を読んで理解すると、同等の変更および変形例が当業者に想到されるであろう。さらに、本発明の特定の特徴は、いくつかの実施のうちの1つのみに関して開示されている可能性があるが、そのような特徴は、任意のまたは特定の用途にとって望ましく有利であるように他の実施の1つ以上の他の特徴と組み合わせることができる。したがって、本発明の広さおよび範囲は、上記の実施形態のいずれによっても限定されるべきではない。むしろ、本発明の範囲は、添付の特許請求の範囲およびそれらの均等物に従って定義されるべきである。
図1
図2
図3
図4
図5