説明

対話式認証チャレンジ

リソースリクエストを認証するためのシステムおよび方法を提供する。リクエスタは、第1のプロトコルでサーバにリソースリクエストを送信する。サーバは、チャレンジメッセージをリクエスタに送信することができる。それに応答して、リクエスタは、第2のプロトコルでチャレンジサーバと対話チャレンジを実行するチャレンジハンドラを使用する。対話チャレンジが無事に終了すると、チャレンジハンドラは、リクエストハンドラと同期し、リクエストハンドラはチャレンジ応答メッセージをサーバに送信する。次に、サーバは、要求されたリソースへのアクセスを可能にすることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、ネットワーク技術に関し、より詳細には、ネットワーク環境におけるリクエストの対話式認証に関する。
【背景技術】
【0002】
コンピュータネットワークは、さまざまなセキュリティ侵害を被っている。このようなタイプの侵害の1つは、ユーザまたはコンピュータシステムが、アクセスが認証されていないリソースにアクセスするために、またはリクエストに正確に関連付けられることを避けるために自身を誤って識別する時に生じる。リクエスト認証を容易にするために、リライングパーティ(relying party)に対するリソースリクエストは、リライングパーティがアイデンティティの認証を確認できるようにリクエスタ(requester)のアイデンティティを含む。リクエスト認証は、リクエストの送信者のアイデンティティを確認するプロセスである。それぞれの当事者のIDが正確であると認証することで、ある程度のセキュリティが得られる。リクエスタのアイデンティティは、リライングパーティによって行われるアクセス制御の判断の基礎となる。また、リクエスタのアイデンティティにより、リライングパーティは正確にそのリクエストがそのリクエスタからのものであると見なすことができる。
【0003】
あるタイプのリクエスト認証は、ユーザ名とパスワードとの使用を含む。より厳密なタイプの認証は、セキュリティトークンの使用を伴う。いくつかのタイプのセキュリティトークンは、信頼できるアイデンティティプロバイダによって提供される。セキュリティトークンを所有することで、所有者のアイデンティティの証明をすることになる。あるセキュリティトークンには、より厳密なセキュリティのために暗号鍵が埋め込まれている。鍵を含むセキュリティトークンの例として、セッションキーを含むKerberos v5チケットおよび「holder−of−key」サブジェクト確認が行われたSAML v1.1もしくはv2.0が挙げられる。
【0004】
あるタイプの対話(interaction)では、リクエスタはアイデンティティプロバイダからセキュリティトークンを取得する。次に、リクエスタは、リソースを提供している可能性のあるリライングパーティへのリクエストと共にセキュリティトークンを提示する。リライングパーティは、セキュリティキーの信頼性を保証する働きをするアイデンティティプロバイダと信頼関係を有する。
【0005】
アイデンティティプロバイダからセキュリティトークンを取得する時に、リクエスタは、ユーザ名やパスワードなどのいくつかの識別情報を提供することができる。アイデンティティプロバイダが最初のリクエストで提出された認証証明書を補うためにリクエスタとのリアルタイムの対話を要求する多くのシナリオがある。アイデンティティプロバイダがこのシナリオを行うことができる1つの方法は、リクエスタに追加の認証データを提供するように要求することによる方法である。例えば、アイデンティティプロバイダは、正確に答えられる質問でユーザにさらに信頼性の証拠を提供するように促すことができる。
【0006】
WS−SecurityやWS−Trustは、ウェブサービスにセキュリティを付与するためにOASISによって規定された通信プロトコルである。これらは、SOAP(Simple Object Access Protocol)プロトコルと共に動作するように設計されている。WS−Trustによって規定されたSTS(セキュリティ・トークン・サービス)フレームワークによって、セキュリティトークンおよび拡張機構を要求するための単純なリクエスト/応答パターンがネゴシエーションおよびチャレンジを交換できるようになる。
【発明の概要】
【0007】
この発明の概要は、以下の発明を実施するための形態でさらに詳細に説明される概念の選択を簡易な形で紹介するものである。以下の発明の概要は、特許請求の主題の主要な特徴または基本的な特徴を特定するものでなく、また特許請求の主題の範囲を制限するのに使用されるものでもない。
【0008】
簡単に言えば、システム、メソッド、コンポーネントが、リクエスタからチャレンジャ(challenger)に送信されたリソースリクエストを認証するために動作する。一実施形態では、リクエストは、第1のプロトコルで送信される。チャレンジャは、リクエストを受信してチャレンジメッセージを作成してそのメッセージを第1のプロトコルでリクエスタに送信する。チャレンジメッセージは、チャレンジサーバのアドレスを示すURIを含むことができる。チャレンジメッセージの受信に応答して、リクエスタはチャレンジハンドラをインスタンス化して、URIをチャレンジハンドラに伝える。チャレンジハンドラは、URIを使用してチャレンジサーバに接続し、第2のプロトコルで対話チャレンジを開始する。対話チャレンジが成功した場合、チャレンジサーバはチャレンジハンドラに、成功した対話チャレンジを示すウェブトークンを含むメッセージを送信することができる。チャレンジハンドラは、ウェブトークンをリクエストクライアントに伝えることができる。リクエストクライアントは、成功した対話チャレンジを示すウェブトークンを含むチャレンジ応答メッセージを送信することができる。それに応じて、チャレンジャは、チャレンジャの応答メッセージが成功した対話チャレンジを示すウェブトークンを含むかどうかに基づいて、選択的に要求されたリソースにアクセスすることができる。
【0009】
一実施形態では、第2のプロトコルはHTMLを使用し、第1のプロトコルはHTMLを使用しない。対話チャレンジは、チャレンジャからチャレンジハンドラへの1ページまたは複数ページのHTMLページの送信を含むことができる。チャレンジハンドラは、HTTP GETメッセージ、HTTP POSTメッセージ、または通信を開始するためまたはHTMLページに応答するための別のメッセージを送信することができる。一実施形態では、第1のプロトコルは、WS−Trustプロトコルに従うものである。
【0010】
上述した目的およびそれに関連した目的を達成するために、システムの特定の例示的態様が以下の説明および添付図面と関連して本明細書に記載されている。しかし、これらの態様は本発明の原理が使用される種々の方法のうちのほんの数例を示したものであり、本発明は全てのこのような態様およびそれらの等価物を含むものである。本発明の他の利点および新規な特徴は、図面と併せて考察されると本発明の以下の詳細な説明から明らかになるであろう。
【0011】
以下の図面を参照しながら本発明の非制限的および非包括的な実施形態を説明する。図面では、別段の指定がない限り、個々の図面全体にわたって同じ参照符号は同じ部品を指すものとする。
【0012】
本発明の理解を助けるために、以下に発明を実施するための形態について言及するが、これは添付図面に関連させて読まれるべきである。
【図面の簡単な説明】
【0013】
【図1A】実施形態が実施される環境のブロック図である。
【図1B】実施形態が実施される環境のブロック図である。
【図2】リクエスタを実装するのに使用されるコンピューティングシステムの実施形態例を示すブロック図である。
【図3】チャレンジャを実装するのに使用されるコンピューティングシステムの実施形態例を示すブロック図である。
【図4】対話チャレンジが実施される環境例を示す図である。
【図5A】第1の通信チャネルのリクエストを認証するために第2の通信チャネルのチャレンジを使用するプロセスの実施形態例を示すフロー図である。
【図5B】第1の通信チャネルのリクエストを認証するために第2の通信チャネルのチャレンジを使用するプロセスの実施形態例を示すフロー図である。
【発明を実施するための形態】
【0014】
本明細書の一部を形成し、例として本発明が実施される特定の実施形態例を示した添付図面を参照しながら、本発明の実施形態例を以下でより詳細に説明する。しかし、本発明は多くの異なる形で具現化されてもよく、本明細書で説明される実施形態に限定されるものと解釈すべきでなく、むしろこれらの実施形態は、本開示が徹底的かつ完全なものとなるように、また本開示が当業者に本発明の範囲を十分に伝えることができるように提供されるものである。特に、本発明は、メソッドまたはデバイスとして具現化されてもよい。したがって、本発明は、完全なハードウェアの実施形態、完全なソフトウェアの実施形態、またはソフトウェア的側面とハードウェア的側面とを組み合わせた実施形態の形をとることができる。したがって、以下の詳細な説明を制限的な意味でとらえるべきでない。
【0015】
明細書および特許請求の範囲全体を通して、以下の用語は、文脈上明確な指示がない限り、明らかに本明細書に関連した意味をとる。本明細書で使用される句「一実施形態では」は、必ずしも前述の実施形態を指すとは限らないが、前述の実施形態を指してもよい。また、本明細書で使用される句「別の実施形態では」は、必ずしも異なる実施形態を指すとは限らないが、異なる実施形態を指してもよい。したがって、本発明の範囲または精神から逸脱せずに、本発明の種々の実施形態を容易に組み合わせることができる。同様に、本明細書で使用される句「一実装では」は、必ずしも同じ実装を指すとは限らないが、同じ実装を指してもよく、種々の実装の技術を組み合わせてもよい。
【0016】
さらに、本明細書で使用される場合、用語「または(「or」)」は包括的な「or」演算子であり、文脈上明確な指示がない限り、用語「および/または」に等しい。用語「〜に基づく」は、文脈上明確な指示がない限り、排他的な意味ではなく、説明されていない追加の要因に基づくことを容認するものである。さらに、明細書全体を通して、「一〜」(「a」「an」)、及び「その」(「the」)の意味は、複数のものを含むこととする。「〜では」(「in」)の意味は、「〜内で」(「in」)と「〜上で」(「on」)とを含む。
【0017】
本明細書で使用される場合、用語「認証する(authenticate)」は、事実または主張が許容程度の確度まで本物であることを確認するという意味である。ユーザまたはユーザのアイデンティティを認証することは、ユーザの提示されたアイデンティティが十分なもので正確であることを確認することに当てはまる。ユーザからのリクエストを認証することは、リクエストと共に含まれるアイデンティティ情報が正確であること、リクエストが識別されたユーザによるものである、または識別されたユーザによって承認されたものであること、またはリクエスト内の他の情報が正確であることを確認することを含んでもよい。認証は、関連した程度の確度を有するので、すでに認証された情報がまだ正確でないかもしれない状況を許容することができる。
【0018】
本明細書に記載されているコンポーネントは、種々のデータ構造を有する種々のコンピュータ可読媒体から実行することができる。コンポーネントは、例えば、1つまたは複数のデータパケット(例えば、ローカルシステムにおいて、分散システムにおいて、または信号を介する他のシステムとのインターネットなどのネットワーク経由で別のコンポーネントと対話している1つのコンポーネントからのデータ)を有する信号に従って、ローカルまたはリモートプロセスを介して通信することができる。ソフトウェアコンポーネントは、例えば、コンピュータ可読記憶媒体に記憶することができ、コンピュータ可読記憶媒体として、例えば、本発明の実施形態に従った、ASIC(特定用途向け集積回路)、CD(コンパクトディスク)、DVD(デジタル多用途ディスク)、RAM(ランダム・アクセス・メモリ)、ROM(リード・オンリ・メモリ)、フロッピーディスク、ハードディスク、EEPROM(電気的消去可能ROM)、フラッシュメモリ、またはメモリスティックが挙げられるが、これらに限定されない。
【0019】
図1Aは、実施形態が実施される環境例100のブロック図である。図1Aによって環境例の基本を理解することができるが、多くの構成が使用されてもよく、図1Aには多くの詳細な部分が示されていない。図1Aに示されるように、環境例100は、リクエスタ102を含む。リクエスタ102は、クライアント・コンピューティング・デバイス、プロセス、または別のエンティティからのリソースまたはサービスを要求する任意のコンポーネントとしてよい。本明細書で使用される場合、サービスは、リソースであると見なされるので、リソースの表現の中に含まれる。
【0020】
環境例100は、チャレンジャ104を含む。チャレンジャ104は、コンピューティングデバイス、サーバ、または複数のサーバを含むサーバファームとしてよい。一実施形態では、チャレンジャ104は、コンピューティングデバイス上で実行するプロセスである。チャレンジャ104は、リクエスタ102からのリクエストに応答して、リソースを提供する。
【0021】
図1Aに示されるように、リクエスタ102とチャレンジャ104とは、ネットワーク120を介して互いに通信することができる。ネットワーク120は、ローカルエリアネットワーク、広域エリアネットワーク、またはそれらの組み合わせを含むことができる。一実施形態では、ネットワーク120は、複数のネットワークのうちの1つのネットワークであるインターネットを含む。ネットワーク120は、有線通信機構、無線通信機構、またはそれらの組み合わせを含むことができる。リクエスタ102とチャレンジャ104との間における互いに対する通信または他のコンピューティングデバイスとの通信は、1つまたは複数の種々の有線または無線通信プロトコル、例えば、IP、TCP/IP、UDP、HTTP、SSL、TLS、FTP、SMTP、WAP、Bluetooth(登録商標)、WLANを使用することができる。
【0022】
一実施形態では、リクエスタ102およびチャレンジャ104は、2つの通信チャネルを使用して互いに通信する。矢印で示されるように、リクエストチャネル106は、リクエスタ102とチャレンジャ104とがリクエスト・応答に関するメッセージを通信することができるようにし、チャレンジチャネル108は、リクエスタ102とチャレンジャ104とがチャレンジに関するメッセージを通信できるようにする。これらのチャネルおよびメッセージについては、本明細書内でさらに詳しく説明する。
【0023】
一実施形態では、リクエスタ102は、リクエストチャネル106を使用して1つまたは複数のリクエストをチャレンジャ104に送信する。リクエストは、何らかの識別情報を含むことができる。チャレンジャ104は、リクエストを処理し、リクエストが十分にリクエストまたはリクエスタ102のユーザを認証するための情報を含むかどうかを判断することができる。いくつかの状況では、チャレンジャ104は、提供された識別情報よりも厳密な認証が必要であることを判断することができる。チャレンジャ104は、リクエスタ102にチャレンジを知らせることができる。一実施形態では、リクエスタ102とチャレンジャ104とは、チャレンジチャネル108を使用して対話チャレンジを実行する。一実施形態では、対話チャレンジは、HTML(ハイパーテキスト・マークアップ言語)プロトコルを使用して、HTTP経由で通信する。チャレンジの機構およびコンテンツについては、本明細書内でさらに詳しく説明する。
【0024】
図1Bは、実施形態が実施される環境150のブロック図である。環境150は、環境100のより具体的な例であり、環境100に関する説明は環境150にも適用できる。図1Bに示されるように、環境例150は、リクエスタ152を含むが、リクエスタ102としてもよい。
【0025】
環境例150は、リライングパーティ156を含む。リライングパーティ156は、コンピューティングデバイス、サーバ、または複数のサーバを含むサーバファームとしてよい。
【0026】
一実施形態では、リクエスタ152は、1つまたは複数のリクエストをリライングパーティ156に送信する。リクエストは、何らかの識別情報を含むことができる。リライングパーティ156は、リクエストを処理し、リクエストが十分にリクエスタ152を識別するための情報を含むかどうかを判断することができる。この情報は、セキュリティ証明書と呼ばれる場合もある。セキュリティ証明書がリクエストに含まれていない、または不十分である場合、リライングパーティ156は、リクエストを拒否し、リクエスタ152に十分なセキュリティ証明書を提供するように指示することができる。
【0027】
環境例100は、アイデンティティプロバイダ150を含む。アイデンティティプロバイダ160は、セキュリティ証明書をリクエスタ152のような要求エンティティに提供するネットワークエンティティである。セキュリティ証明書は、リライングパーティ156に信頼されたリクエスタ152に関するクレームを表すものである。したがって、アイデンティティプロバイダ160は、リライングパーティ156によって信頼された当事者と見なされる。一実施形態では、セキュリティ証明書はセキュリティトークンを含み、アイデンティティプロバイダ160はセキュリティトークンを提供するセキュリティ・トークン・サービスを含む。一実施形態では、チャレンジャ104は、アイデンティティプロバイダ160である。
【0028】
セキュリティトークンは、リクエスタ152のユーザなどのエンティティに関する1つまたは複数のクレームのコレクションを表すデータを含む。クレームは、クレーマに関連する情報が正確であるというアサーションと見なされる。これには、例えば、名前、識別子、鍵、グループメンバシップ、特権、能力などが挙げられる。いくつかの実施形態では、セキュリティトークンは、1つまたは複数の暗号鍵を含む。
【0029】
リクエスタ152は、ネットワーク120を介してリライングパーティ156またはアイデンティティプロバイダ160と通信することができる。一実施形態では、図1Aに関して説明したように、リクエスタ152は、第1の通信チャネル経由でアイデンティティプロバイダ160と通信し、さらに第2の通信チャネル経由でもアイデンティティプロバイダ160と通信する。矢印で示されるように、リクエスタ152とアイデンティティプロバイダ160とはリクエストチャネル162経由でリクエスト・応答に関するメッセージを通信し、リクエスタ152とアイデンティティプロバイダ160とはチャレンジチャネル164経由で対話チャレンジに関するメッセージを通信する。
【0030】
図1A〜1Bは、適切な環境の例に過ぎず、本発明の使用および機能性の範囲を制限することを示唆するものではない。したがって、本発明の範囲または精神から逸脱せずに種々のシステム構成を採用してもよい。例えば、チャレンジャ104、アイデンティティプロバイダ160、リクエスタ102もしくは152、またはリライングパーティ156の機能のうちのいずれかがさまざまな方法で1つまたは複数のコンピューティングデバイスに組み合わされてもよいし、複数のコンピューティングデバイスに分散または複製されてもよい。
【0031】
図2は、リクエスタ102もしくは152、またはその一部を実装するのに使用されるコンピューティングシステム200の実施形態例を示すブロック図である。
【0032】
図示されるように、コンピューティングシステム200は、種々のコンピュータプログラムの命令を実行するためのアクションを実施する1つまたは複数のプロセッサ202を含む。一構成では、プロセッサ202は、1つまたは複数の中央処理装置と、1つまたは複数のプロセッサコアと、ASICと、他のハードウェア処理コンポーネントおよび関連プログラムロジックとを含むことができる。図示されている実施形態では、コンピューティングシステム200は、揮発性または不揮発性メモリを備えることができるメモリ220を含む。一実施形態では、HTTPスタック204、RCCプロセッサ206、CCCプロセッサ208、リクエストクライアント210、チャレンジハンドラ212がメモリ220内に存在する。
【0033】
図示されている実施形態では、コンピューティングシステム200はHTTPスタック204を含む。HTTPスタックは、HTTP標準に従って、本明細書内で説明される少なくともいくつかの機構によって、HTTP(ハイパーテキストプロトコル)メッセージを受信、処理、送信のアクションを実行するように構成されたプログラム命令を含むコンポーネントである。
【0034】
一実施形態では、コンピューティングシステム200は、RCC(リクエスト通信チャネル)プロセッサ206とCCC(チャレンジ通信チャネル)プロセッサ208とを含む。RCCプロセッサ206およびCCCプロセッサ208のそれぞれは、それぞれの通信チャネルを実装するためのアクションを実行する。本明細書で使用される場合、通信チャネルは、別のエンティティとメッセージを通信するのに使用するプロトコルによって、またメッセージが搬送するペイロードのプロトコルによって定義される。例えば、一実施形態では、RCCプロセッサ206が、XMLコンテンツを搬送するHTTPメッセージを送受信し処理する。一実施形態では、CCCプロセッサ208が、HTMLコンテンツを搬送するHTTPメッセージを送受信し処理する。XML(拡張可能マークアップ言語)コンテンツを搬送するHTTPメッセージを含むチャネルは、HTMLコンテンツを搬送するHTTPメッセージを含むチャネルと区別できるので、HTMLチャネルと異なるチャネルであると見なされる。
【0035】
一実施形態例では、RCプロセッサ206が、XMLを使用して構造化されたSOAP(Simple Object Access Protocol)エンベロープなどの(少なくともアプリケーションレベルで)階層的に構造化されたフォーマットのメッセージを送受信し処理するが、そうとも限らない。一例は、ヘッダ情報がWS−Securityに従って提供されることが多く、本体の大部分がWS−Trustに従って構造化されているSOAPメッセージである。
【0036】
RCCプロセッサ206およびCCCプロセッサ208のそれぞれは、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができ、プログラム、ライブラリ、または命令セットを備えることができる。
【0037】
一実施形態では、コンピューティングシステム200は、リクエストクライアント210を含む。リクエストクライアント210は、リクエストをチャレンジャ104に通信し、応答を受信するアクションおよびその他のアクションを実行することができる。そのいくつかのアクションについて、本明細書内で説明する。一実施形態では、リクエストクライアント210は、チャレンジメッセージの受信に応答して、チャレンジハンドラ212をインスタンス化する。
【0038】
一実施形態では、コンピューティングシステム200は、チャレンジハンドラ212を含み、チャレンジハンドラ212はユーザがチャレンジャ104と対話できるようにするアクションを実行する。一実施形態では、チャレンジハンドラ212は、HTMLを受信してレンダリングし、ユーザからの入力を受信し、HTTPメッセージをチャレンジャ104に通信するHTMLクライアントである。HTMLクライアントは、HTMLページをレンダリングして、ユーザ入力を1ページまたは複数ページのウェブページとの対話の一部として受け入れる。ウェブブラウザはHTMLクライアントの一例であるが、HTMLクライアントはウェブブラウザとしてではなく、それ以外の種々の方法で実装されてもよい。一実施形態例では、チャレンジハンドラ212は、Internet Explorer(登録商標)(Microsoft社、ワシントン州レドモンド)などの市販のウェブブラウザである。一実施形態では、チャレンジハンドラ212は、ユーザとチャレンジャ104との間の音声メッセージの送信を容易にすることができる。
【0039】
一実施形態では、リクエストクライアント210は、RCCプロセッサ206を使用してチャレンジャ104に対してメッセージの送受信を行うことができる。同じく、RCCプロセッサ206は、HTTPスタック204を使用してチャレンジャ104に対してメッセージの送受信を行うことができる。一実施形態では、チャレンジハンドラ212は、CCCプロセッサ208を使用してチャレンジャ104に対するメッセージの送受信を行うことができる。チャレンジプロセッサ208は、HTTPスタック204を使用してチャレンジャ104に対するメッセージの送受信を行うことができる。したがって、図2の実施形態に見られるように、リクエストクライアント210およびチャレンジハンドラ212はそれぞれ、通信チャネルと他と区別できる対応プロトコルとを使用する。
【0040】
一実施形態では、コンピューティングシステム200は、同期化コンポーネント214を含む。特に、チャレンジハンドラ212は、同期化コンポーネント214のサービスを含んでもよいし、そのサービスと統合されてもよいし、またはそのサービスを使用してもよい。同期化コンポーネント214は、チャレンジハンドラ212とリクエストクライアント210との間のアクションの同期化を容易にするアクションを実行することができる。一実施形態では、同期化コンポーネント214またはその一部は、HTTPメッセージで受信されるActiveXコントロールまたはJavaアプレットなどのソフトウェアコントロールとしてよい。
【0041】
一実施形態では、コンピューティングシステム200は、ランデブ機構216を含む。ランデブ機構216は、チャレンジハンドラ212がその1つまたは複数のアクションをリクエストクライアント210と同期させることができるようにする、またはリクエストクライアント210にデータを渡すことができるようにする任意の機構としてよい。ランデブ機構216のいくつかの例としては、共有ファイル、共有メモリブロック、プロセス間信号、またはプロセス間通信を可能にするシステムサービスが挙げられる。本明細書で述べられているように、チャレンジハンドラ212は、ランデブ機構216を使用してリクエストクライアント210に対話チャレンジが完了したことを通知する、またはリクエストクライアント210にトークン情報を渡すことができる。ランデブ機構216は、それぞれ異なる通信チャネルを使用するリクエストプロセスとチャレンジプロセスとの橋渡しをする。
【0042】
一実施形態では、コンピューティングシステム200は、ユーザがコンピューティングシステムと、具体的にはチャレンジハンドラ212と対話することができるようにする入出力機構218を含む。さまざまな実施形態では、入出力機構218は、ディスプレイ、タッチスクリーン、キーボード、マウスもしくは他のポインティングデバイス、音声スピーカ、マイクロフォン、カメラ、または他の機構、またはそれらの組み合わせを含むことができる。
【0043】
コンピューティングシステム200を実装するのに使用されるコンピューティングデバイスの例として、メインフレーム、サーバ、ブレードサーバ、パーソナルコンピュータ、ポータブルコンピュータ、通信装置、家庭用電化製品などが挙げられる。コンピューティングデバイスは、リクエストクライアント210およびチャレンジハンドラ212にシステムサービスを提供する汎用もしくは専用オペレーティングシステムと他のコンポーネントとを含むことができる。Microsoft社(ワシントン州レドモンド)のWindows(登録商標)ファミリーのオペレーティングシステムは、コンピュータシステム200のコンピューティングデバイス上で実行できるオペレーティングシステムの例である。
【0044】
図3は、チャレンジャ104、アイデンティティプロバイダ160、またはそれらの一部を実装するのに使用されるコンピューティングシステム300の実施形態例を示すブロック図である。
【0045】
図示されるように、コンピューティングシステム300は、1つまたは複数のプロセッサ302と、HTTPスタック304と、RCCプロセッサ306と、CCCプロセッサ308とを含む。これらのコンポーネントのぞれぞれは、図2の対応するプロセッサ302、HTTPスタック204、RCCプロセッサ206と、CCCプロセッサ208と同様であり、図2についての説明は図3の対応するコンポーネントに適用されるが、それぞれの実装は異なる。コンピューティングシステム300は、揮発性または不揮発性メモリを備えることができるメモリ320を含む。一実施形態では、HTTPスタック304、RCCプロセッサ306、CCCプロセッサ308、認証コンポーネント310、およびチャレンジサーバ312がメモリ320内に存在する。
【0046】
一実施形態では、コンピューティングシステム300は、認証コンポーネント310を含む。認証コンポーネント310は、リクエスタからリクエストを受信するアクション、要求ユーザを認証するアクション、認証要件を判断するアクション、リクエスタに認証要件またはチャレンジを通知するアクションおよび他のアクションを実行することができる。このうちのいくつかについて、本明細書内で説明する。
【0047】
一実施形態では、コンピューティングシステム300は、リクエスタに対するチャレンジを実装するアクションを実施することができるチャレンジサーバ312を含む。一実施形態では、チャレンジサーバ312は、HTMLコンテンツを作成および送信し、要求デバイスからの入力を受信し、HTTPメッセージをリクエスタに通信するHTMLサーバである。チャレンジサーバ312は、activeXオブジェクトなどのスクリプトまたはプログラムオブジェクトをリクエスタに送信することができる。一実施形態では、チャレンジサーバ312は、リクエスタに対する音声メッセージの送受信を容易にすることができる。
【0048】
一実施形態では、認証コンポーネント310は、RCCプロセッサ306を使用してリクエスタ102または152に対してメッセージを送受信することができる。同様に、RCCプロセッサ306は、HTTPスタック304を使用してリクエスタ102または152に対してメッセージを送受信することができる。一実施形態では、チャレンジサーバ312は、CCCプロセッサ308を使用してリクエスタ102または152に対してメッセージを送受信することができる。チャレンジサーバ312は、HTTPスタック304を使用してリクエスタ102または152に対してメッセージを送受信することができる。したがって、図3で示した実施形態から分かるように、認証コンポーネント310およびチャレンジサーバ312はそれぞれ、通信チャネルおよび他と区別できる対応プロトコルを使用する。
【0049】
コンピューティングシステム300を実装するのに使用されるコンピューティングデバイスの例として、メインフレーム、サーバ、ブレードサーバ、パーソナルコンピュータ、ポータブルコンピュータ、通信装置、家庭用電化製品などが挙げられる。一実施形態では、認証コンポーネント310およびRCCプロセッサ306は、チャレンジサーバ312およびCCCプロセッサ308とは異なるコンピューティングデバイス上に存在する。コンピュータシステム300の要素は、種々の構成の1つまたは複数のコンピューティングデバイスに複製または分散されてもよい。コンピューティングデバイスは、認証コンポーネント310およびチャレンジサーバ312にシステムサービスを提供する汎用または専用オペレーティングシステムを含むことができる。Microsoft社(ワシントン州レドモンド)のWindows(登録商標)ファミリーのオペレーティングシステムは、コンピューティングシステム300上で実行できるオペレーティングシステムの例である。
【0050】
図4は、対話チャレンジが実施される環境例400を示す図である。環境400は、図1Aの環境100、図1Bの環境150、またはその変形形態とともに存在する。図示されるように、環境400は、リクエスタ102とチャレンジャ104とを含む。リクエスタ102は、リクエストクライアント210とチャレンジハンドラ212とを含む。チャレンジャ104は、認証コンポーネント310とチャレンジサーバ312とを含む。リクエスタ102は、チャレンジャ104と直接または間接的に通信する。通信は、直接またはネットワーク120などのネットワーク経由で行われる。
【0051】
図4の矢印は、図示されたコンポーネントの1つから送受信されるメッセージを示す。また、一実施形態では、メッセージの参照符号は図面の上から下に向かって時系列に対応しているが、種々の実施形態でその順序は異なる。一実施形態では、図示されているメッセージのそれぞれはHTTPメッセージであるが、そのコンテンツについては以下でより詳細に説明する。
【0052】
図4のメッセージについて、図5A〜Bと併せて説明する。図5A〜Bは、第2の通信チャネルのチャレンジを使用して第1の通信チャネルのリクエストを認証するプロセス500の実施形態例を示すフロー図である。プロセス500のアクションのいくつかは、リクエスタ102(図1〜B)によって実行され、図5A〜Bの左側の列のヘッダ「リクエスタ」の下に示される。これらのアクションのいくつかは、リクエストクライアント210によって実行されることが可能で、図5A〜Bの左下のヘッダ「リクエストクライアント」の下に示される。他のリクエスタのアクションは、チャレンジハンドラ212によって実行され、図5A〜Bの右下のヘッダ「チャレンジハンドラ」の下に示されている。プロセス500の他のアクションは、チャレンジャ104によって実行され、図5A〜Bの右側の列のヘッダ「チャレンジャ」の下に示されている。プロセス500のアクションのいくつかは、図4に示されたメッセージの送受信に関係する。次に、図4のメッセージおよびコンポーネントを参照して説明する。
【0053】
プロセス500の図示されている部分は、リクエストクライアント210がチャレンジャ104にリクエストメッセージ(リクエストメッセージ402)を送信するブロック502から開始されてもよい。一実施形態では、リクエストメッセージ402は、認証プロセスによってアクセスが保護されたリソースに対するリクエストである。一実施形態例では、要求されるリソースは、セキュリティトークンである。リクエストは、セキュリティトークンに関連付けられたリソースのアイデンティティ、セキュリティトークンに含まれるべきリクエスタ102に関する1つまたは複数のクレーム、またはその他の情報のような種々の情報を含むことができる。一実施形態では、リクエストメッセージ402は、WS−Trustによって定義されたRequestSecurityTokenの要素を含む。
【0054】
プロセスは、ブロック502からブロック504に進み、ここでチャレンジャ104はリクエストメッセージ402を受信することができる。プロセス500は、ブロック504からブロック506に進み、多数の要因に基づいて、リクエスタ102から送信されたリクエストを厳密に認証するために行われる対話チャレンジの判断がなされる。一実施形態では、ブロック504において、チャレンジャ104は、リクエストメッセージ402と共に受信されたアイデンティティ情報に基づいて仮認証を行うことができる。例えば、リクエストメッセージ402は、ユーザ名やパスワードを含むことができるが、これらはチャレンジャ104によって認証される。
【0055】
どの対話チャレンジを使用するかの判断は、多数の要因のうちの1つまたは複数の要因に基づいて行われる。要因の一例として、リクエスタ102によって要求されるリソース値がある。環境例150では、リライングパーティ156は、リクエスタ152がセキュリティトークンにリクエスタ152に関する1つまたは複数のクレームを提供することを規定することができる。クレームは、クレーマに関連する情報が正確であるというアサーションと見なすことができる。これには、例えば、名前、識別子、鍵、グループメンバシップ、特権、能力などが挙げられる。一実施形態では、アイデンティティプロバイダ160のようなチャレンジャは、要求されるトークンのタイプおよびクレームのタイプに対応する対話チャレンジを管理するように構成されたポリシーストアを含む。別個のリライングパーティのない環境では、チャレンジャ104は、これらの要因のうちの任意の1つまたは複数の要因を考慮することができる。考えられ得る他の要因には、リクエスタまたはユーザの特性、例えば、グループメンバシップ、リクエスタの位置、リクエスタ102を実装するコンピューティングデバイスのタイプ、時刻、リクエスタもしくはユーザによるリクエストの履歴、またはリクエスタもしくはユーザが使用するチャレンジの履歴が含まれる。
【0056】
チャレンジャ104は、発行されるチャレンジのレベルもしくはタイプに基づいて、チャレンジの実装を判断することができる。チャレンジャ104は、発行されるチャレンジのレベルを満たすことができる多数のチャレンジを使用することができる。一例として、1つまたは複数の質問をする1ページまたは複数ページのHTMLページがある。別の例として、ユーザに、1ページまたは複数ページのHTMLページの画像、グラフィックス、映像、またはアニメーションなどのコンテンツを提示すること、ユーザにアクションを実行するように、またコンテンツに関する質問に答えるように命令することが挙げられる。例えば、ユーザは、名前または他の識別子を入力することで画像の中の人を識別する、画像の中の位置をクリックする、画像に関連付けられた位置を識別する、表示されたチェスボードのピースを操作するもしくは他のゲームを操作する、または他のこのようなアクションを求められる可能性がある。HTMLページは、ユーザに、画像を操作する、ゲームをする、音声もしくは映像プレゼンテーションに応答するなどの動作をするように命令することができる。一実施形態では、チャレンジは、ウェブブラウザまたはHTMLページをレンダリングしユーザ入力を可能にする他のタイプのチャレンジハンドラと行われる実質的に任意のタイプの対話を含んでもよい。対話は、チャレンジャ104から送信されたスクリプトまたはコントロールを使用することができる。したがって、チャレンジのタイプは、複合ユーザインタフェースを含むことができる。特に、チャレンジハンドラは、ユーザインタフェースの範囲または使用され得る対話チャレンジと共に構成される必要はない。
【0057】
一実施形態では、ブロック508で、チャレンジャ104は、リクエスタ102にチャレンジとチャレンジを開始する機構とを通知するチャレンジメッセージ404を作成してリクエスタ102に送信する。一実施形態では、機構は、通信チャネルの接続ポイント、より詳細には、チャレンジサーバ312のアドレスを含む。一実施形態では、機構は、チャレンジサーバへのアクセスに使用できるURI(uniform resource identifier)またはURL(uniform resource lacator)を含む。メッセージは、チャレンジのコンテキストを識別するデータ、例えば、ユーザID、実行されるチャレンジのID、要求されるセキュリティトークン、タイムスタンプ、または他のコンテキスト情報、またはそれらの任意の組み合わせを含むことができる。一実施形態では、少なくともいくつかのコンテキスト情報は、リクエスタに送信されるURI内で符号化される。
【0058】
プロセス500は、ブロック508からブロック510に進み、リクエストクライアント210はチャレンジメッセージ404を受信することができる。次に、プロセスはブロック512に進み、リクエストクライアント210は、チャレンジメッセージ404の受信に応答して、チャレンジハンドラ212をインスタンス化することができる。一実施形態では、チャレンジハンドラ212のインスタンス化は、チャレンジハンドラ212を備えるプロセスの作成を含むことができる。一実施形態では、チャレンジハンドラプロセスが実行中であり、チャレンジハンドラのインスタンス化は新規ウィンドウ、新規タブ、またはユーザにページを表示することができる別のビューアコンポーネントを作成するためにそのプロセスに信号を送信することを含むことができる。
【0059】
一実施形態では、ブロック512のアクションは、チャレンジハンドラ212に、チャレンジメッセージ404のコンテンツの少なくとも一部であって、チャレンジを開始する機構を含む部分を伝えることを含む。機構は、例えば、URIを含むことができる。リクエストクライアント210は、本明細書に記載されているようなチャレンジメッセージ404と共に受信されたコンテキスト情報を伝えることができる。矢印405は、チャレンジハンドラ212へのコンテキスト情報の伝達を示している。
【0060】
プロセス500は、ブロック512からブロック514に進み、チャレンジハンドラ212が、チャレンジ接続ポイントに接続することでチャレンジャ104との対話チャレンジを開始する。接続ポイントのIDを、チャレンジメッセージ404でチャレンジャ104から、例えば、URIの形で受信することができる。ブロック514のアクションは、接続ポイントとのTCP接続を確立することを含むことができる。一実施形態では、接続ポイントは、チャレンジサーバ312のアドレスに相当する。対話チャレンジの開始は、チャレンジハンドラ212からチャレンジサーバ312にチャレンジ接続メッセージ406を送信することを含むことができる。対話チャレンジは、チャレンジチャネル108(図1A)と同時にCCCプロセッサ208(図2)およびCCCプロセッサ308(図3)を使用することができる。
【0061】
一実施形態では、チャレンジメッセージ404内のURIは、チャレンジのコンテンツおよび機構の判断などを含む対話チャレンジの確立の際にチャレンジャ104またはチャレンジサーバ312の助けとなる追加情報を含むことができる。一実装では、URIは、チャレンジメッセージ404でリクエストクライアント210によって受信されたコンテキスト情報の少なくとも一部を含むことができる。一実施形態では、チャレンジ接続メッセージ406は、URIに基づいたHTTPリクエスト、例えば、HTTP「GET」メソッドを含むことができる。コンテキスト情報は、URI以外の形で受信される場合もある。一実施形態では、チャレンジ接続メッセージ406は、URIに基づき、「POST」メッセージと共にメッセージ本体で送信されたデータの中の受信コンテキスト情報の少なくとも一部を含むHTTP「POST」メソッドを有するHTTPリクエストを含む。
【0062】
図4または図5に示されていないが、いくつかの実装では、対話チャレンジを開始するために複数のチャレンジ接続メッセージ406が送信される場合がある。例えば、チャレンジャ104は、HTTP「リダイレクト」メッセージを送信し、チャレンジハンドラ212に異なるURL付きの別のHTTPメッセージを送信するように指示することによって最初のチャレンジ接続メッセージ406に応答することができる。一実施形態では、対話チャレンジは、SSL(Secure Sockets Layer)もしくはTLS(Transport Layer Security)通信内で実行される場合があるが、これはブロック514で設定することができる。
【0063】
プロセス500は、ブロック514からブロック516aおよび516bに進み、対話チャレンジメッセージ408で示されるように、対話チャレンジが実行される。対話チャレンジは、リクエスタ102とチャレンジャ104との間、より詳細には、チャレンジハンドラ212とチャレンジサーバ312との間で交換される任意の数の対話チャレンジメッセージ408を含むことができる。本明細書内で説明したように、対話チャレンジは、チャレンジサーバ312からチャレンジハンドラ212に送信された1ページまたは複数ページのHTMLページと、それに応答して送信された対応する対話チャレンジメッセージとを含み、実質的に任意のタイプのHTMLベースの対話を含むことができる。特に、リクエスタ102およびチャレンジハンドラ212は、対話フォーマットの限られた数の選択肢の情報で構成される必要はない。一実施形態では、チャレンジハンドラ212からの応答を受信すると、チャレンジサーバ312はその応答に基づいて送信する次のHTMLを決定することができる。一実施形態では、対話チャレンジは、HTML以外のプロトコルを有する通信チャネルで、リクエストクライアント210が使用するリクエスト通信チャネルとは異なる通信チャネルを使用することができる。
【0064】
一実施形態では、交換されるそれぞれの対話チャレンジメッセージ408は、コンテキストデータを含む。チャレンジサーバ312は、それぞれのメッセージと共に、対話の現在の状態を示す新規コンテキストデータを送信することができる。チャレンジハンドラ212は、次の新規メッセージで受信コンテキストデータをチャレンジサーバに返すことができる。本明細書で説明したように、コンテキストデータは、URLの中、HTTPのPOSTメッセージの中で返されてもよいし、または別の機構で返されてもよい。
【0065】
チャレンジサーバ312は、コンテキストデータをチャレンジハンドラ212に送信し、それを次のメッセージで再び受信することでステートレスマシンとして実装され、それぞれの対話リクエストは受信するコンテキストデータに基づいて処理され、またチャレンジサーバ312は、チャレンジハンドラ212との過去の対話の記録を保持する必要がない。一実施形態では、チャレンジサーバ312または認証コンポーネント310は、複数のコンピューティングデバイスに分散される場合がある。それぞれのリクエスタのメッセージ内のコンテキストデータがこの構成を容易にして、それぞれのコンピューティングデバイスがリクエスタに関する情報を交換する必要がないようにする。
【0066】
プロセス500は、ブロック516Bからブロック518に移ることができる(図5B)。一実施形態では、ブロック518で、リクエスタ102との対話に応答して、チャレンジサーバ312は、チャレンジハンドラ212から受信した応答に基づいて、対話チャレンジの結果を判断する。この判断は、受信した1つまたは複数の応答が受け入れ可能であるかどうかに基づいて、成功または失敗の状態を判断することを含むことができる。応答を、チャレンジサーバ312の構成、リクエスタ102もしくは要求ユーザに関連付けられたデータ、または対話チャレンジのロジックに基づいて受け入れ可能であると見なすことが可能である。
【0067】
一実施形態では、チャレンジサーバ312はチャレンジハンドラ212に対して、対話チャレンジの結果を含むチャレンジ結果メッセージ410を送信する。結果は、成功もしくは失敗などの状態を含むことができ、またはより精密な状態値を含むこともできる。チャレンジ結果メッセージは、対話チャレンジを終了することができる。このメッセージは、ウェブトークン412を含むことができる。ウェブトークンは、リクエスタメッセージ402でリクエスタ102によって送信されたリクエスタを識別または参照するデータを含むコンテキストデータを表すデータを含む。ウェブトークン412は、対話チャレンジの終了が成功したかどうかを示す状態データを含むことができる。一実施形態では、ウェブトークン412は、成功した対話チャレンジにのみ応答して送信される。リクエスタ102が「成功」ウェブトークンを有することで、対応する対話チャレンジが無事に完了したことを示すことになる。一実施形態では、ウェブトークンは、暗号的に安全なデータを含む。それは、任意の種々のフォーマットのデータとしてよい。
【0068】
一実施形態では、チャレンジサーバ312は、同期化コンポーネント214の少なくとも一部をリクエスタ102に送信する。これは、対話チャレンジメッセージ408の1つの本体内で、チャレンジ応答メッセージ416で、または別のメッセージで行われてよい。チャレンジハンドラ212は、同期化コンポーネントを受信するとそれをインストールすることができる。一実施形態では、同期化コンポーネントは、別の方法で、例えば、チャレンジハンドラの分散によってチャレンジハンドラ212内にインストールされる。同期化コンポーネント214は、activeXコントロールなどのスクリプトまたはプログラムオブジェクトとしてよい。
【0069】
一実装では、チャレンジ応答メッセージ416は、タグがウェブトークンを含むことを表すオブジェクトタグを有するHTMLページを含む。HTMLのセクション例は、以下の通りである。
<OBJECT
MimeType=WebToken>
(WebToken inserted here)
/OBJECT>
【0070】
一実施形態では、このタグの受信に応答して、チャレンジハンドラ212は、特定のMIMEタイプに関連付けられたプログラムオブジェクトなどの同期化コンポーネントを呼び出す。
【0071】
本明細書で説明したように、一実施形態では、チャレンジハンドラ212によるウェブトークンの受信は、対話チャレンジが完了したことを示し、さらに対話チャレンジの結果を示す。
【0072】
図示されていないが、対話チャレンジは、リクエスタ102による応答によっては失敗状態に終わる場合もある。チャレンジャ104は、失敗の通知としてリクエスタ102にメッセージを送信することができる。一実装では、このメッセージはHTTPエラーメッセージとすることができる。
【0073】
プロセス500は、ブロック518からブロック520に進み、チャレンジハンドラ212は、チャレンジャ104からチャレンジ結果メッセージ410を受信することができる。このメッセージは、チャレンジハンドラ212に対話チャレンジが無事に終了したことを通知するものである。プロセスは、ブロック522に進み、チャレンジハンドラ212は、ウェブトークン412をリクエストクライアント210に伝えることができる。これは、図4の矢印414で示されている。
【0074】
一実施形態では、チャレンジハンドラ212からリクエストクライアント210にウェブトークン412を含む情報を伝えるのに、ランデブ機構216が使用される場合がある。同期化コンポーネント214は、ブロック522のアクションの少なくとも一部を実行することができる。図5Bに示されるように、一実施形態では、ブロック522のアクションは、リクエストクライアント210とチャレンジハンドラ212とによって実行され、リクエストクライアント210は、通知またはウェブトークンを受信するアクションを実行する。
【0075】
プロセスは、ブロック522からブロック524に進み、ここで、一実装では、チャレンジハンドラ212を終了する。これは、チャレンジハンドラ212によって実行することができる。一実装では、リクエストクライアント210は、通知の受信に応答してチャレンジハンドラ212の終了を開始する。一実装では、ブロック524のアクションの少なくとも一部は、しばらく経つまで遅らされてもよい。一実施形態では、チャレンジハンドラの終了は、チャレンジハンドラを備えるプロセスの終了を含む。いくつかの実施形態では、チャレンジハンドラを終了させることは、ウィンドウ、タブ、または別のビューアコンポーネントを閉じることを含む。
【0076】
プロセス500は、ブロック524からブロック526に進み、リクエスタ102がリクエスト通信チャネルでチャレンジ104にメッセージを送信することができる。このメッセージは、チャレンジ応答メッセージ416と呼ばれる。チャレンジ応答メッセージ416は、チャレンジャ104から受信されたコンテキスト情報を含むことができる。さらに、チャレンジハンドラ212によって受信され、リクエストクライアント210に伝えられるウェブトークン412を含むこともできる。
【0077】
プロセス500は、ブロック526からブロック528に進み、チャレンジャ104はウェブトークン412を含むチャレンジ応答メッセージ416を受信することができる。一実施形態では、このメッセージは、チャレンジャ104に対話チャレンジが無事に完了したか否かを通知する。チャレンジ応答メッセージ416にコンテキスト情報を含むことで、チャレンジャ104はステートレスマシンとして実装されてもよい。プロセスは、ブロック530に進み、チャレンジャ104はリクエスト応答メッセージ418をリクエスタ102に送信することができる。このメッセージは、リクエスタ102によってチャレンジャ104に送信された元のリクエストメッセージ402に対する応答を含むことができる。例えば、一実施形態では、このメッセージは、本明細書で説明したようにセキュリティトークンを含む。いくつかの実施形態では、リクエスト応答メッセージ418は、別のタイプのリソースまたはリソースを取得するための機構を含むことができる。
【0078】
一実施形態では、ウェブトークンは、プロセス500の一部として含まれない。例えば、チャレンジャ104は、対話チャレンジが成功したか否かを示す状態情報などのリクエスタ102との対話のコンテキストを保持することができる。チャレンジ応答メッセージ416は、リクエスタおよびリクエスト対話を識別するためにチャレンジャ104によって使用される識別子を含むことができる。識別子は、この情報を使用して、対話チャレンジが成功したか否か、およびそれに応じて応答すべきか否かを判断することができる。
【0079】
プロセスはブロック532に進み、リクエスタ102はリクエスト応答メッセージ418を受信することができる。一実施形態では、例えば、図1Bの環境150のように、リクエスタ102は、リクエストをリライングパーティに送信することができる。リクエストは、リクエスト応答メッセージ418で受信されたセキュリティトークンを含む。
【0080】
一実施形態では、リクエストメッセージ402、チャレンジメッセージ404、チャレンジ応答メッセージ416、リクエスト応答メッセージ418のそれぞれは、リクエストクライアント210と認証コンポーネント310との間で交換される。これらのメッセージのそれぞれは、第1のプロトコルで、リクエスタサイドでRCCプロセッサ206を、およびチャレンジャサイドでRCCプロセッサ306を使用して送信することができる。
【0081】
一実施形態では、チャレンジ接続メッセージ406、対話チャレンジメッセージ408、チャレンジ結果メッセージ410のそれぞれは、チャレンジハンドラ212とチャレンジサーバ312との間で交換される。これらのメッセージのそれぞれは、第2のプロトコルで、リクエスタサイドでCCCプロセッサ208を、およびチャレンジャサイドでCCCプロセッサ308を使用して送信することができる。
【0082】
一実施形態では、リクエストメッセージ402、チャレンジメッセージ404、チャレンジ応答メッセージ416、リクエスト応答メッセージ418のそれぞれは、例えば、XMLを使用して構造化されたSOAP(Simple Object Access Protocol)エンベロープのような(少なくともアプリケーションレベルで)階層的に構造化されたメッセージであり、チャレンジ接続メッセージ406、対話チャレンジメッセージ408、チャレンジ結果メッセージ410のそれぞれは、HTMLページもしくは形式を含む。したがって、一実施形態では、リクエストクライアント210およびチャレンジハンドラ212のそれぞれは、互いに異なるプロトコルでメッセージの送受信を行う。本明細書で説明した機構は、HTMLベースの対話チャレンジを実施する方法と共にWS−Trustリクエストフレームワークを提供し、対話チャレンジの結果はWS−Trust交換フレームワークに組み込まれる。
【0083】
(メッセージ例)
【0084】
この節は、環境400で説明したメッセージまたは他のメッセージを実装するのに使用されるメッセージコンテンツの例について説明する。これらの説明は、一組の例として理解されたい。種々の実施形態で、これらの例をエンティティもしくはサブセット内で使用して、認証スキームまたはプロトコルを形成することができる。種々の実施形態では、キーワードまたはパラメータは異なるが、本明細書に記載した機構の少なくともいくつかを実行するのに使用される。一実施形態では、これらの例のいずれも使用されない。
【0085】
以下は、使用できるチャレンジメッセージ404の例の一部である。この例では、「WebTokenChallenge」要素は、チャレンジおよびチャレンジを開始する機構を示している。「WebURL」フィールドは、通信チャネルの接続ポイントとなるURL、より詳細には、チャレンジサーバ312のアドレスを含む。「RelayContext」フィールドは、本明細書に記載したチャレンジのコンテキストを識別するデータを含む。
<Sll:Envelope ...>
<Sll:Header> ... </Sll:Header>
<Sll:Body>
<wst:RequestSecurityTokenResponse>
<WebTokenChallenge xmlns="...">
<RequiredWebToken>
<WebURL>https://www.contoso.com/sts/interactive</WebURL>
<RelayContext> Eq9UhAJ8C9K514Mr3qmgX0XnyLlChKs2PqMj0Sk6snw/IRNtXqLzmgbj2Vd3v
FA4VxlhileSTyq
</RelayContext>
</RequiredWebToken>
</WebTokenChallenge>
</wst:RequestSecurityTokenResponse>
</Sll:Body>
</Sll:Envelope>
【0086】
以下は、使用できるチャレンジ接続メッセージ406の例の一部である。この例では、HTTP POSTが使用される。この例では、RelayContext要素は、チャレンジメッセージ404からのデータを含む。
POST /sts/interactive HTTP/1.1
Host: www.contoso.com
・・・
<RelayContext>
Eq9UhAJ8C9K514Mr3qmgX0XnyLlChKs2PqMj0Sk6snw/IRNtXqLzmgbj2Vd3v
FA4VxlhileSTy
</RelayContext>
【0087】
以下は、使用できるチャレンジ結果メッセージ410の例の一部である。この例では、ウェブトークンは、定義済みオブジェクトタグを使用して組み込まれる。
HTTP/1.1 200 OK
Content-Type: text/html
・・・
<html>
<body>
<OBJECT type="application/x-webToken">
<PARAMName="WebToken"
Value="kAsskqpqBc4bMHT61wlfONxU1OHDorODlNVcVDm/A£LcyLqEP+oh05
B+5ntVIJzL8Ro3typF0eoSm">
</OBJECT>
</body>
</html>
【0088】
以下は、使用できるチャレンジ応答メッセージ416の例の一部である。この例では、チャレンジ結果メッセージ410からのウェブトークンは、WebToken要素に含まれる。
<Sll:Envelope...>
<Sll:Header>
・・・
</Sll:Header>
<Sll:Body>
<wst:RequestSecurityTokenResponse>
<WebTokenChallengeResponse xmlns="...">
<WebToken>
kAsskqpqBc4bMHT6IwIfONxU10HDor0DlNVcVDm/AfLcyLqEP+oh05B+5ntV
IJzL8Ro3typF0eoSm
</WebToken>
</WebTokenChallengeResponse>
</wst:RequestSecurityTokenResponse>
</Sll:Body>
</Sll:Envelope>
【0089】
図5A〜Bのフロー図のそれぞれのブロックおよびフロー図のブロックの組み合わせは、ソフトウェア命令によって実装することができることが理解されよう。これらのプログラム命令は、マシンを生成するプロセッサに対して出されて、プロセッサ上で実行する命令がフロー図のブロック(単数または複数)で規定されたアクションを実装するための手段を作成できるようにする。ソフトウェア命令はプロセッサによって実行されて、フロー図のブロック(単数または複数)で規定されたアクションを実装するためのステップを行うことができる。さらに、フロー図の1つまたは複数のブロックもしくはブロックの組み合わせは、本発明の範囲または精神から逸脱せずに、他のブロックもしくはブロックの組み合わせと同時に実行されてもよいし、図示された以外の異なる順序で実行されてもよい。
【0090】
上述の仕様、例、データは、本発明の構成の作成および使用を詳細に説明するものである。本発明の精神および範囲から逸脱せずに本発明の多くの実施形態が可能であるので、本発明は以下の添付の請求項の範囲に属するものとする。

【特許請求の範囲】
【請求項1】
要求デバイスからのリクエストを認証するためのコンピュータ実装方法であって、
a)前記要求デバイスからのリクエストメッセージであって、XMLプロトコルを使用する第1の通信チャネルで受信され、リソースを要求するリクエストメッセージを受信するステップと、
b)前記リクエストメッセージの受信に応答して、実行すべき対話チャレンジを判断するステップと、
c)前記対話チャレンジとチャレンジサーバのアドレスを示すチャレンジサーバURLとを識別するコンテキストデータを含むチャレンジメッセージを作成するステップと、
d)前記第1の通信チャネルで前記リクエスタに前記チャレンジメッセージを送信するステップと、
e)HTMLプロトコルを使用する第2の通信チャネルで、前記リクエスタに送信される少なくとも1つのHTMLページと前記リクエスタから受信された少なくとも1つの応答とを含む前記リクエスタとの対話チャレンジを実行するステップと、
f)前記第2の通信チャネルで、前記リクエスタに、前記少なくとも1つの応答に基づいて、成功した対話チャレンジを示すメッセージを選択的に送信するステップと、
g)前記第1の通信チャネルで、前記リクエスタからのチャレンジ応答メッセージを受信するステップと、
h)前記チャレンジ応答メッセージの受信に応答して、前記チャレンジ応答メッセージが前記成功した対話チャレンジを示しているかどうかに応じて、前記リクエスタに選択的に前記リソースを提供するステップと
を含むことを特徴とするコンピュータ実装方法。
【請求項2】
前記リクエストメッセージ、前記チャレンジメッセージ、前記チャレンジ応答メッセージは、WS−Trustプロトコルに従うことを特徴とする、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記リクエストメッセージは、成功した対話チャレンジを示しコンテキストデータを表すウェブトークンを含む前記成功した対話チャレンジを示すことを特徴とする、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記チャレンジメッセージはさらに、前記判断された対話チャレンジを表すコンテキストデータを含み、前記方法はさらに、前記リクエスタから、前記コンテキストデータを含むHTTP POSTメッセージ、またはURL内に前記コンテキストデータを含むHTTP GETメッセージの少なくとも1つを受信するステップを含むことを特徴とする、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記第1の通信チャネルで通信する第1のリクエスタコンポーネントを前記第2の通信チャネルで通信する第2のリクエスタコンポーネントに同期させるのを容易にする命令を備える同期化コンポーネントを前記リクエスタに送信するステップをさらに含むことを特徴とする、請求項1に記載のコンピュータ実装方法。
【請求項6】
管理者が前記対話チャレンジを提供できるようにするステップをさらに含み、前記対話チャレンジは前記対話チャレンジの前に前記リクエスタ上で構成される一組の対話チャレンジに限定されないことを特徴とする、請求項1に記載のコンピュータ実装方法。
【請求項7】
要求デバイスからのリクエストを認証するためのコンピュータ実装方法であって、選択的に前記リソースを提供する前に前記対話チャレンジの状態を記述したデータを記憶せずに、ステートレスマシンとして請求項1に記載の方法を実行するステップを含むことを特徴とする、コンピュータ実装方法。
【請求項8】
請求項1に記載された方法を実行するように構成されたプロセッサ実行可能命令を備えることを特徴とする、コンピュータ可読媒体。
【請求項9】
リソースを取得するためのコンピュータベースのシステムであって、
a)リソースのリクエストを表すリクエストメッセージであって、第1のプロトコルに従うリクエストメッセージをリクエストサーバに送信するリクエストクライアントと、
b)前記第1のプロトコルと異なる第2のプロトコルに従う複数の対話チャレンジメッセージをチャレンジサーバと交換するチャレンジハンドラとを備え、
前記リクエストクライアントは、
i)前記リクエストサーバからのURLを含むチャレンジメッセージの受信に応答して、前記URIを前記チャレンジハンドラに伝えること、
ii)前記チャレンジハンドラから、成功した対話チャレンジを表すデータを受信すること、
iii)前記リクエストサーバに、前記成功した対話チャレンジを送信すること
を含む追加のアクションを実行し、
前記チャレンジハンドラは、
i)前記URIを使用して、前記複数の対話チャレンジメッセージのうちの少なくとも1つの対話チャレンジメッセージを受信すること、および少なくとも1つの応答を送信することを含む前記チャレンジサーバとの対話チャレンジを実行すること、
ii)前記チャレンジサーバから、前記成功した対話チャレンジを表すデータを受信すること、および
iii)前記リクエストクライアントに、前記成功した対話チャレンジを表すデータを含むリクエスト応答メッセージを伝えること
を含む追加のアクションを実行することを特徴とするシステム。
【請求項10】
前記第1のプロトコルは、WS−Trustプロトコルに従うXMLベースのプロトコルであり、前記第2のプロトコルは、HTMLであることを特徴とする、請求項14に記載のシステム。
【請求項11】
前記チャレンジハンドラは、HTMLクライアントであり、少なくとも1つの対話チャレンジメッセージは、少なくとも1つのHTMLページを含み、前記リクエストメッセージ、前記チャレンジメッセージ、前記リクエスト応答メッセージは、HTMLデータを含まないことを特徴とする、請求項14に記載のシステム。
【請求項12】
前記チャレンジャサーバの追加のアクションはさらに、前記チャレンジャサーバから同期化コンポーネントを受信すること、および前記同期化コンポーネントを使用して前記成功した対話チャレンジを表すデータを前記リクエストクライアントに伝えることを含むことを特徴とする、請求項14に記載のシステム。
【請求項13】
前記チャレンジャサーバの追加のアクションはさらに、前記少なくとも1ページのHTMLページをレンダリングすること、ユーザ入力を受信すること、前記少なくとも1つの応答で前記ユーザ入力を前記HTMLに送信することを含むことを特徴とする、請求項14に記載のシステム。
【請求項14】
前記チャレンジハンドラの追加のアクションはさらに、HTMLユーザインタフェース型の以前の構成なしでHTMLユーザインタフェースをレンダリングすることを含むことを特徴とする、請求項14に記載のシステム。
【請求項15】
前記チャレンジハンドラの追加のアクションはさらに、前記チャレンジサーバと音声データを交換することを含むことを特徴とする、請求項14に記載のシステム。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate


【公表番号】特表2012−527049(P2012−527049A)
【公表日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2012−510940(P2012−510940)
【出願日】平成22年5月11日(2010.5.11)
【国際出願番号】PCT/US2010/034397
【国際公開番号】WO2010/132458
【国際公開日】平成22年11月18日(2010.11.18)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
2.JAVA
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】