(57)【特許請求の範囲】
【請求項１】
セキュリティアイデンティティを表すためのデータモデルを実行するように構成されたコンピュータを備えるシステムであって、前記データモデルは、
少なくとも１つの他のエンティティに対する複数の属性によって示されるエンティティのアイデンティティを表す少なくとも１つのアイデンティティコンポーネント、
前記エンティティのアイデンティティに関連付けられたセキュリティ情報を表す少なくとも１つのアイデンティティ・プリンシパル・コンポーネント、
前記エンティティによって少なくとも１つの他のエンティティに対して作成された宣言を表す少なくとも１つのクレームコンポーネント、および
前記宣言に関連付けられたメタデータを表す少なくとも１つのクレーム・プロパティ・コンポーネントを備え、
少なくとも１つのクレームを表すために、前記アイデンティティコンポーネント、アイデンティティ・プリンシパル・コンポーネント、クレームコンポーネント、クレーム・プロパティ・コンポーネントが組み合わされ、
前記データモデルが前記エンティティまたは前記データモデルを作成したコンピュータから他のエンティティに送られ、
前記他のエンティティは、前記エンティティまたは前記データモデルを作成したコンピュータから受け取ったデータモデルを使用することにより前記エンティティのアイデンティティを認証することを特徴とするシステム。
【請求項２】
前記アイデンティティコンポーネントは、前記クレームのコレクション、ラベル、および委任アイデンティティのフィールドを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記アイデンティティ・プリンシパル・コンポーネントは、アイデンティティコレクションのフィールドを含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記クレームコンポーネントは、前記クレームのタイプ、クレーム値、クレーム値タイプ、プロパティコレクション、発行者、および対象者のフィールドを含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記少なくとも１つのクレーム・プロパティ・コンポーネントは、前記各々の少なくとも１つのクレームコンポーネントに関連付けられ、前記少なくとも１つのクレームコンポーネントは、前記少なくとも１つのアイデンティティ・プリンシパル・コンポーネントに関連付けられ、前記少なくとも１つのクレーム・プロパティ・コンポーネントは、前記少なくとも１つのクレームコンポーネントに関連付けられることを特徴する請求項１に記載のシステム。
【請求項６】
前記少なくとも１つのクレーム・アイデンティティ・コンポーネントは、１つのクレームコンポーネントに関連付けられることを特徴とする請求項１に記載のシステム。
【請求項７】
前記データモデルを作成したコンピュータにより前記クレームがセキュリティトークンに変換されることをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項８】
エンティティのアイデンティティを少なくとも１つの他のエンティティに対する複数の属性として表す第１のパラメータ、
前記エンティティのアイデンティティに関連付けられたセキュリティ情報を表す第２のパラメータ、
前記エンティティによって前記少なくとも１つの他のエンティティに対して作成された宣言を表す第３のパラメータ、
前記宣言に関連付けられたメタデータを表す第４のパラメータ、および
前記第１〜第４のパラメータを格納するステップと、
当該格納された第１〜第４のパラメータを使用することにより前記エンティティのアイデンティティを認証するステップと
を、コンピュータに実行させるプログラム
を記憶していることを特徴とするコンピュータ可読記憶媒体。
【請求項９】
前記第１のパラメータは、クレーム・アイデンティティ・パラメータであることを特徴とする請求項８に記載のコンピュータ可読記憶媒体。
【請求項１０】
前記第２のパラメータは、アイデンティティ・プリンシパル・パラメータであることを特徴とする請求項８に記載のコンピュータ可読記憶媒体。
【請求項１１】
前記第３のパラメータは、クレームパラメータであることを特徴とする請求項８に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記第４のパラメータは、クレーム・プロパティ・パラメータであることを特徴とする請求項８に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記クレーム・アイデンティティ・パラメータは、クレームのコレクション、ラベル、および委任アイデンティティのフィールドを含むことを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記アイデンティティ・プリンシパル・パラメータは、前記アイデンティティのコレクションのフィールドを含むことを特徴とする請求項１０に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記クレームパラメータは、クレームのタイプ、クレーム値、クレーム値タイプ、プロパティコレクション、発行者、および対象者のフィールドを含むことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１６】
第１のコンピュータが、第１のエンティティに関連付けられている第１のセキュリティ識別子を発行するステップ、
前記第１のコンピュータが、前記第１のセキュリティ識別子を少なくとも１つの処理サーバに送信するステップ、
第２のコンピュータが、第２のエンティティに関連付けられている第２のセキュリティ識別子を発行するステップであって、前記第２のセキュリティ識別子には前記第１のセキュリティ識別子が組み込まれている、第２のセキュリティ識別子を発行するステップ、および
第３のコンピュータが、前記第２のセキュリティ識別子を受信し、前記第１のエンティティに関して、前記第２のセキュリティ識別子に基づいて認証決定を行うことを特徴とする方法。
【請求項１７】
前記第１のセキュリティ識別子は少なくとも１つのクレームを含み、前記第２のセキュリティ識別子は少なくとも１つのクレームを含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記少なくとも１つのクレームは、エンティティに関する宣言を含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記第１のコンピュータで、前記第１のセキュリティ識別子を第１のセキュリティトークンにパッケージ化して前記第２のコンピュータに送信するステップおよび前記第２のコンピュータで前記第２の識別子を前記第２のセキュリティトークンにパッケージ化して前記第３のコンピュータに送信するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項２０】
前記第３のコンピュータは、前記第１のエンティティのアイデンティティに関して、前記第２のセキュリティ識別子の中に組み込まれた第１のセキュリティ識別子に基づいて認証決定を行うことを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クレームを使用したセキュリティアイデンティティの表示に関する。
【背景技術】
【０００２】
ほとんどの現在の企業のセキュリティ基盤は、同じセキュリティドメイン（例えば、Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ  Ｔｒｕｓｔ  Ｄｏｍａｉｎｓ）内のリソースにアクセスするユーザを識別するように設計されている。この環境では、ＫＤＣ（Ｋｅｙ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｃｅｎｔｅｒ、以下ＫＤＣ）と通信するのに、Ｋｅｒｂｅｒｏｓのような対称鍵プロトコルが使用され、クライアントとドメイン内の保護情報をホスティングするサーバとの間で交換される証明書を作成し、検証する。サーバは、各保護リソースに関連付けられたアクセス制御リストに関連してこれらの証明書を評価して、アクセスを決定する。
【０００３】
クライアントとサーバとが異なるセキュリティドメイン内にある時、このモデルは、１つのＫＤＣが存在しない時に機能することができない。その代わり、信頼のポイントが各ドメインにおいて確立されて、異質なセキュリティドメイン内のリソースへのアクセスを要求するアプリケーションおよびユーザのアイデンティティの信頼できるステートメントを生成する（および潜在的に検証する）フェデレーテッドモデルが使用されなければならない。このフェデレーテッドモデルは、以下でより詳細に説明するが、ＷＳ−Ｔｒｕｓｔ、ＷＳ−Ｆｅｄｅｒａｔｉｏｎ、ＳＡＭＬ（Ｓｅｃｕｒｉｔｙ  Ａｓｓｅｒｔｉｏｎ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、以下ＳＡＭＬ）などの多くの公的規格によってサポートされ、採用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述の点を考慮すると、先行技術の欠点を克服し、セキュリティドメイン全体のアクセス制御に影響を与えることができるシステムおよび方法が必要である。
【課題を解決するための手段】
【０００５】
以下に、読者が基本的な理解を得ることができるように、本開示の簡単な概略を示す。この概略は、本開示の広範な概要ではなく、また重要／決定的な要素を特定するものではない。単に、本明細書内に開示されるいくつかの概念を、後述する詳細な説明の前置きとして簡略化して示すためのものである。
【０００６】
対象者のアイデンティティは、クレームのセットとして表すことができる。クレームは、発行者によって同意された、対象者に関連付けられた属性である。デジタルアイデンティティは、デジタルエンティティによって自身または別のデジタル対象者に関して作成されたクレームのセットである。クレームは、クレームベースのセキュリティスキームの基本要素である。クレームベースのデータモデルは、主な要素として、クレーム、クレームアイデンティティ、クレームプリンシパルを有する。クレームモデルは、本明細書内で説明するいくつかの実施形態では、セキュリティアイデンティティをモデル化して別のセキュリティアイデンティティとして機能することができる。セキュリティアイデンティティのアイデンティティ委任チェーンの長さは、任意の長さにすることができる。最後に、クレームベースのセキュリティスキームは、既存の．ＮＥＴアイデンティティモデルに統合することができる。
【０００７】
多くの付随する特徴は、添付図面と併せて考察された以下の詳細な説明を参照することによってより十分に理解された時に、より容易に認識できるであろう。
【図面の簡単な説明】
【０００８】
本発明の説明は、添付図面に照らした以下の詳細な説明からより十分に理解できるであろう。
【図１】コンピューティング環境の態様が実装される例示的なコンピューティング環境のブロック図である。
【図２】例示的なフェデレーテッドモデルのブロック図である。
【図３】データモデルの種々の要素間の動作関係を示すデータモデルの図である。
【図４】クレームベースのセキュリティモデルの態様が実装される例示的なプラットフォーム環境のブロック図である。
【図５】クレームベースのセキュリティモデルと共に使用できる方法を示すフロー図である。
【０００９】
同一の附番は、添付図面内の同一の部分を指すのに使用される。
【発明を実施するための形態】
【００１０】
添付図面と併せて以下に示した詳細な説明は、本発明の一例として示されたものであって、本発明の例を構成し、利用する唯一の形態を示すものはない。説明は、本発明の例の機能および本発明の例を構成および動作するためのステップの順序を示すものである。しかし、異なる例によって、同一または等価な機能および順序を達成してもよい。
【００１１】
アイデンティティ認証システムおよびプロトコルによって、種々のドメインやプラットフォームにわたるコンピュータネットワークがユーザを認証することができ、ネットワーク上に記憶されている種々のリソースへのユーザアクセスが可能になる。詳細な説明および関連図面に示されたデータモデルにより、アイデンティティをクレームのセットとして表示し、アイデンティティを認証するのに使用された認証機構を抽象化することができる。モデルは、クレーム内に含まれている情報を表し、同時に、クレームによって示されたセキュリティアイデンティティ間の関係をキャプチャする。最後に、データモデルは、ＣＬＲ（ｃｏｍｍｏｎ  ｌａｎｇｕａｇｅ  ｒｕｎｔｉｍｅ：共通言語ランタイム）クラスのセットに変換され、．ＮＥＴ環境からクレームベースのモードにアクセスすることができる。さらに、変換は、クレームベースのアイデンティティモデルを既存の．ＮＥＴアイデンティティモデルと統合し、同時に、これらを再実装しなくても、既存の．ＮＥＴアプリケーションが新しいクレームベースのアイデンティティモデルと共に使用できるように下位互換性を保つことができる。
【００１２】
図１は、種々の態様の環境が実装される例示的なコンピューティング環境を示す図である。コンピューティングシステム環境１００は、適切なコンピューティング環境の単なる一例であり、コンピューティングシステム環境の使用または機能性の範囲を限定するものではない。また、コンピューティング環境１００は、例示的なオペレーティング環境１００に示されるコンポーネントのいずれか１つまたは組み合わせに関する依存関係または要件を有するものと解釈すべきでない。
【００１３】
本システムは、多数の他の汎用または専用のコンピューティングシステムの環境または構成と共に動作可能である。本システムとの使用に適した周知のコンピューティングシステム、環境および／または構成の例として、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、埋め込みシステム、任意の上述のシステムまたは装置を含む分散コンピューティング環境などが挙げられるが、これらに限定されない。
【００１４】
クレームベースのアイデンティティモデルは、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストに記述される。一般に、プログラムモジュールは、特定のタスクを実行または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。クレームベースのアイデンティティモデルはさらに、通信ネットワークまたは他のデータ送信媒体を介してリンクされた遠隔処理装置によってタスクが実行される分散コンピューティング環境で実施することも可能である。分散コンピューティング環境では、プログラムモジュールおよび他のデータは、メモリ記憶装置などのローカルおよび遠隔の両方のコンピュータ記憶媒体に置くことができる。
【００１５】
図１では、クレームベースのアイデンティティモデルを実装する例示的なシステムは、コンピュータ１１０の形で汎用コンピューティング装置を含む。コンピュータ１１０のコンポーネントは、処理ユニット１２０、システムメモリ１３０、およびシステムメモリなどの種々のシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１を含むが、これらに限定されない。処理ユニット１２０は、マルチスレッドプロセッサによってサポートされるような複数の論理処理ユニットを表すことができる。システムバス１２１は、例えば、メモリバスまたはメモリコントローラ、周辺バス、種々のバスアーキテクチャのいずれかを使用するローカルバスのような複数のタイプのバス構造のいずれかとすることができる。例として、このようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、以下ＩＳＡ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス（Ｍｅｚｚａｎｉｎｅバスとしても周知である）が挙げられるが、これらに限定されない。システムバス１２１はさらに、通信装置間でポイント・ツー・ポイント接続、スイッチングファブリックなどとして実装することもできる。
【００１６】
コンピュータ１１０は、典型的には、種々のコンピュータ可読媒体を含む。コンピュータ可読記憶媒体は、コンピュータ１１０によってアクセス可能で、揮発性および不揮発性媒体、取り外し可能および取り外し不可能な媒体の両方を含む任意の利用可能な媒体とすることができる。例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、これらに限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能な媒体の両方を含む。コンピュータ記憶媒体として、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ：デジタル多用途ディスク）もしくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクもしくは他の磁気記憶装置、または所望の情報を記憶するのに使用可能で、コンピュータ１１０によってアクセス可能な任意の他の媒体が挙げられるが、これらに限定されない。
【００１７】
通信媒体は、典型的には、搬送波または他の搬送機構のような変調データ信号でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具現化し、任意の情報送達媒体を含む。用語「変調データ信号」は、１つまたは複数の特徴セットを有し、信号で情報を符号化するように変化された信号を意味する。例として、通信媒体は、有線ネットワークもしくは直接有線接続のような有線媒体、音響、ＲＦ、赤外線および他の無線媒体のような無線媒体を含むが、これらに限定されない。上述のいずれかの組み合わせもコンピュータ可読媒体の範囲に含まれる。
【００１８】
システムメモリ１３０は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：リード・オンリ・メモリ、以下ＲＯＭ）１３１やＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ランダム・アクセス・メモリ、以下ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形態でコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間で情報を伝達するのを助ける基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ：基本入出力システム）１３３は、典型的には、ＲＯＭ１３１内に記憶される。ＲＡＭ１３２は、典型的には、処理ユニット１２０により即座にアクセス可能な、および／または現在動作されているデータおよび／またはプログラムモジュールを含む。例として、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、プログラムデータ１３７を示しているが、これらに限定されない。
【００１９】
コンピュータ１１０はさらに、他の取り外し可能／取り外し不可能、揮発性／不揮発性のコンピュータ記憶媒体を含むことができる。例としてのみ、図１では、取り外し不可能で不揮発性の磁気媒体に対して読み出しまたは書き込みをするハードディスクドライブ１４０、取り外し可能で不揮発性の磁気ディスク１５２に対して読み出しまたは書き込みをする磁気ディスクドライブ１５１、ＣＤ  ＲＯＭまたは他の光媒体などの取り外し可能で不揮発性の光ディスク１５６に対して読み出しまたは書き込みをする光ディスクドライブ１５５が挙げられる。例示的なオペレーティング環境で使用可能な他の取り外し可能／取り外し不可能、揮発性／不揮発性のコンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含むことができるが、これらに限定されない。ハードディスクドライブ１４１は、典型的には、インタフェース１４０、磁気ディスクドライブ１５１などの取り外し不可能メモリインタフェースを介してシステムバス１２１に接続され、光ディスクドライブ１５５は、典型的には、インタフェース１５０などの取り外し可能なメモリインタフェースによってシステムバス１２１に接続される。
【００２０】
上述の図１に示されたドライブとそれに関連するコンピュータ記憶媒体は、コンピュータ１１０のコンピュータ可読命令、データ構造、プログラムモジュール、他のデータの記憶を行う。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、プログラムデータ１４７を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、プログラムデータ１３７と同一または異なるものとすることができる。
【００２１】
オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、プログラムデータ１４７は、ここでは、所与の異なる数であり、最低でも、これらが異なるコピーであることを示している。ユーザは、キーボード１６２および通常はマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力装置によってコンピュータ２０にコマンドや情報を入力することができる。他の入力装置（図示せず）は、マイクロホン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどが挙げられる。これらの入力装置および他の入力装置は、システムバスに結合されるユーザ入力インタフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポートまたはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）などの他のインタフェースやバス構造によって接続されてもよい。モニタ１９１または他のタイプのディスプレイ装置も、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続される。モニタの他に、コンピュータはさらに、出力周辺インタフェース１９０を介して接続できるスピーカ１９７、プリンタ１９６などの他の周辺出力装置を含むことができる。
【００２２】
コンピュータ１１０は、リモートコンピュータ１８０のような１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードとすることができる。図１には、メモリ記憶装置１８１のみが示されているが、典型的には、リモートコンピュータ１８０は、コンピュータ１１０に関して上述した多くのまたは全ての要素を含む。図１に示されている論理接続は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ、以下ＬＡＮ）１７１およびＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ：広域エリアネットワーク、以下ＷＡＮ）１７３を含むが、他のネットワークを含んでもよい。このようなネットワーク環境は、オフィス、企業のコンピュータネットワーク、イントラネット、インターネットにおいて一般的である。
【００２３】
ＬＡＮネットワーク環境で使用される時、コンピュータ１１０は、ネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用される時、コンピュータ１１０は、典型的には、モデム１７２またはインターネットなどのＷＡＮ１７３経由の通信を確立するための他の手段を含む。モデム１７２は、内蔵または外付けにしてもよいが、ユーザ入力インタフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して示されているプログラムモジュールまたはその一部は、リモートメモリ記憶装置内に記憶することができる。例として、図１は、リモートアプリケーションプログラム１８５はメモリデバイス１８１に常駐するものとして示しているが、これに限定されない。図示されたネットワーク接続は一例であって、コンピュータ間の通信リンクを確立するための他の手段が使用されてもよいことは理解されたい。
【００２４】
図２は、フェデレーテッドモデルの略ブロック図である。フェデレーテッドモデル２００は、ユーザが同一または類似のユーザ名を使用して、複数のネットワークにわたるリソースにアクセスするフレームワークを提供する。図２に示されるように、フェデレーテッドモデル２００は、アイデンティティプロバイダＳＴＳ（Ｓｅｃｕｒｉｔｙ  Ｔｏｋｅｎ  Ｓｅｒｖｉｃｅ、以下ＳＴＳ）２１０、フェデレーションプロバイダＳＴＳ２２０、クライアント２３０、およびサービス２４０を含む。図２は、フェデレーテッドシステムにおけるメッセージの流れの一例を示す図である。
【００２５】
いくつかの実施形態によれば、クライアント２３０を介するユーザ（図示せず）は、アイデンティティプロバイダＳＴＳ２１０を使用してアイデンティティを認証する。認証プロセスは、アイデンティティプロバイダＳＴＳ２１０によって決定することができる。当業者は、アイデンティティプロバイダＳＴＳ２１０によって発行される証明書はプラットフォーム固有であり、任意の特定のフォーマットに限定されるものではないことを理解できるだろう。クライアントの証明書の認証の際に、アイデンティティプロバイダＳＴＳ２１０は、クライアント２３０にトークン（トークンＡ）を発行する。トークンＡは、ユーザレベルのアクセスおよび認証を示す。トークンＡは、ＳＡＭＬトークンとすることができる。クライアント２３０は、そのトークンをフェデレーションプロバイダＳＴＳ２２０に送信する。フェデレーションプロバイダＳＴＳ２２０は、トークンＡを受信すると、トークンＡによって作成されたクレームを評価し、クライアント２３０がフェデレーションプロバイダＳＴＳ２２０に位置するリソースにアクセス可能か否かを判断する。フェデレーションプロバイダＳＴＳ２２０が正確にトークンを認証した場合、フェデレーションプロバイダＳＴＳ２２０はクライアント２３０にトークンＢを発行する。トークンＢは、サービス２４０に必要な認証を示すものである。クライアント２３０は、トークンＢを受領すると、トークンＢをサービス２４０に提示し、トークンＢが認証されると、クライアント２３０のユーザは２４０のリソースにアクセスすることができる。フェデレーションデータモデルは、クレームベースのセキュリティモデルにおけるエンティティ関係のデータモデルである。これについては、図３に関してより詳細に説明する。
【００２６】
図３は、データモデル３００のエンティティ関係の略ブロック図である。データモデル３００は、クレームベースのセキュリティモデルの要素間の動作関係を示している。データモデル３００は、クレームがセキュリティアイデンティティを示すのに使用されるセキュリティフレームワークを実現化する。セキュリティアイデンティティは、対象者が自身または別の対象者に関して作成した１つまたは複数のクレームとすることができる。本明細書で説明されるいくつかの実施形態では、データモデル３００は、．ＮＥＴ環境で動作することができる。しかし、当業者は、データモデルは特定の環境に限定されないことを理解するであろう。先行技術のシステムでは、セキュリティアイデンティティは、ＳＡＭＬおよびＫｅｒｂｅｒｏｓトークンで維持されるものであった。本明細書で説明されるいくつかの実施形態では、データモデル３００は、エンティティ、発行者、クレームに関して、セキュリティアイデンティティを処理する。クレームは、エンティティによって作成される宣言である。例えば、クレームは、バンクアプリケーションサーバに、ボブが特定の財務記録にアクセスする特権を有すると宣言することができる。この例では、ボブはエンティティと見なされ、ボブのアイデンティティは、クレームで表されるエンティティが財務記録にアクセスする特権を有するとの宣言を含む、信頼できるエンティティによって作成されたクレームによって特徴付けられる。当業者は、上述の例は単なる例であって、何ら実施形態を制限するものではない。
【００２７】
本明細書で説明されるいくつかの実施形態では、宣言は、エンティティに関して作成される属性を含むステートメントである。これらの属性は、名前／値の組とすることができる。この場合、値はデータまたは情報であり、名前はＵＲＩ（ｕｎｉｖｅｒｓａｌ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ：ユニバーサルリソース識別子）である。本明細書で説明されるいくつかの実施形態では、属性値は、．ＮＥＴ環境における文字列形態を有する。文字列の属性値は、文字列形態（例えば、ＸＭＬ要素またはＸＭＬスキーマのストリング表示）への属性値のシリアライゼーションと見なすことができる。クレームは、（シリアライゼーションプロセスによって）ドメイン間での送信のためのセキュリティトークンに表すことができる。
【００２８】
図３に見られるように、本明細書で説明されるいくつかの実施形態では、モデル３００の要素は、クレームアイデンティティ３１０、クレームプリンシパル３２０、クレーム３３０、クレームプロパティ３４０から成る。これらの要素間の相互関係は、自己完結型のクレームを作成する効果がある。クレームに一致すると、関連する識別情報の全てにアクセスするのに、外部情報は必要でなくなる。
【００２９】
クレームアイデンティティ３１０は、エンティティの表示である。表１は、クレームアイデンティティ３１０オブジェクトの表示例である。
（表１）
【００３０】
【表１】
0005513500.tif 000002
【００３１】
クレームプリンシパル３２０は、アプリケーションコードが正確なアイデンティティに関連する決定を行うために、アプリケーションコードに対する発信者のアイデンティティ（単数または複数）の表示である。表２は、クレームプリンシパル３２０オブジェクトの表示例である。
（表２）
【００３２】
【表２】
0005513500.tif 000003
【００３３】
本明細書で説明されるいくつかの実施形態では、クレームプリンシパル３２０は、アプリケーションコードがアイデンティティに関連する決定を行うために、アプリケーションコードに対する発信者のエンティティセキュリティ情報を表す。クレームプリンシパル３２０は、．ＮＥＴフレームワークにおけるＩＰｒｉｎｃｉｐａｌクラスと同様の用法でクレームアイデンティティ（単数または複数）をアプリケーションコードに提示する。当業者は、要求に関連付けられた異なる役割で動作する複数のエンティティがある場合、アプリケーションコードに提示された１つのクレームプリンシパル３２０が複数のクレームアイデンティティ３１０を含むことを理解するであろう。
【００３４】
クレーム３３０は、エンティティ（単数または複数）によって作成された宣言の表示である。表４は、クレーム３３０構造の表示例である。
（表４）
【００３５】
【表３】
0005513500.tif 000004
【００３６】
本明細書で説明されるいくつかの実施形態では、クレームプロパティ３４０により、メタデータをクレーム３３０内に記憶されている宣言に関連付けることができる。クレームプロパティ３４０の例は、クレーム値照合エンティティの識別子またはその照合の終了の識別子である。
【００３７】
本明細書で説明されるいくつかの実施形態では、クレームアイデンティティ３１０、クレーム３３０、クレームプロパティ３４０、クレームプリンシパル３２０に関連付けられたフィールドがある。クレーム３３０は、クレームタイプ、クレーム値、クレーム値タイプ、プロパティコレクション、発行者、対象者（図示せず）のフィールドを含むことができる。本明細書で説明されるいくつかの実施形態では、クレームアイデンティティ３１０は、クレームのコレクション、ラベル、委任アイデンティティ（図示せず）のフィールドを含むことができる。クレームプリンシパル３２０は、アイデンティティコレクション（図示せず）のフィールドを含むことができる。当業者は、種々のフィールドは、文字列形態で実装されてもよいが、フィールドの他の表示も可能であることを理解できるであろう。
【００３８】
図３に示されるように、エンティティ関係図は、データモデルの基本要素間の関係を示す。クレーム３３０は、クレームアイデンティティ３１０およびクレームプロパティ３４０と直接的な関係を有する。クレームアイデンティティ３１０は、クレーム３３０およびクレームプリンシパル３２０と直接的な関係を有することができる。クレーム３３０は、複数（０〜Ｎ）のクレームアイデンティティ３１０を含むことができる。また、複数のクレーム３３０は、クレームアイデンティティ３１０によって発行することができる。クレーム３３０は、複数のクレームプロパティ３４０を有することができる。また、クレームプリンシパル３２０は、複数のクレームアイデンティティを含むことができる。
【００３９】
クレームアイデンティティ３１０は、０または複数のクレーム３３０を所有し、０から１つのクレームアイデンティティ３１０を委任することができる。委任については、図４に関して、より詳細に説明する。上述したように、クレームアイデンティティ３１０は、クレームを発行するエンティティを表すのにも使用される。本明細書で説明されるいくつかの実施形態では、クレームは、クレームが関係する情報に関して自己完結型である。クレームのコンテンツ、クレームが参照するクレームとエンティティとの関係、クレームを発行するエンティティ（単数または複数）間の関係を理解するのに追加のデータが通信される必要はない。
【００４０】
データモデル３００は、クレームベースのアイデンティティシステムの主エンティティ間の関係を示す。しかし、クレームベースのアイデンティティシステムにおいて重要な要素は、１つのエンティティが別のエンティティとして動作する場合である。これは、アイデンティティ委任と呼ばれる。
【００４１】
図４は、委任システムの動作例を示すブロック図４００である。ブロック図４００は、クライアント４１０、企業サーバ（複数可）４２０、バックエンドユニット（複数可）４３０を含む。本明細書で説明されるいくつかの実施形態では、ファイアウォールまたは他の既知のセキュリティ装置（図示せず）が少なくとも１つの企業サーバ４２０および少なくとも１つのデータベース４３０へのアクセスを承認する。クライアントのユーザは、既知のセキュリティ方法（例えば、トークン、ユーザ名／パスワード、および他の既知の方法）を使用して、企業サーバ（複数可）４２０にアクセスする。本明細書で説明されるいくつかの実施形態では、クレームシリアライゼーションを使用して、クライアント４１０と企業サーバ（複数可）４２０との間、企業サーバ（複数可）４２０とバックエンドユニット３３０との間でクレームを送信することができる。例えば、クレームをトークンに変換して、要素間で送信することができる。
【００４２】
アイデンティティ委任システムでは、企業サーバ（複数可）４２０は、元の要求者（クライアント）が自身の要求を満たすためにバックエンドユニット（複数可）４３０にアクセスする時に、そのクライアントとして動作することができる。本明細書で説明されるいくつかの実施形態では、信頼できる第三者の要求者（図示せず）も元の要求者として動作することができる。この場合、クライアント４１０は、信頼できる第三者の要求者に代わりにクレームを発行してもらえるか尋ねる。第三者の要求者は、クライアント４１０のアイデンティティを承認して、クライアントに代わってクレームを発行する。本明細書で説明されるいくつかの実施形態では、バックエンドユニット（複数可）４３０におけるクレーム処理サービスは、発信者のアイデンティティの委任プロパティを見てエンティティを見分けることができる。ここで示されるモデル４００により、元の発信者（クライアント４１０）のアイデンティティと中間処理ユニット（企業サーバ（複数可）４２０）のアイデンティティとの両方がバックエンド処理ユニット（複数可）３３０に可視となる。本明細書で説明されるいくつかの実施形態では、元の発信者のアイデンティティ（クライアント３１０）は最上位のクレームアイデンティティにあり、個々の仲介者のアイデンティティは、元の発信者のアイデンティティから、呼び出しが仲介者に渡った同じ順序でつながれることになる。
【００４３】
図３にもどって、データモデル３００のアイデンティティ（またはエンティティ）の委任を表すのに、委任構造が存在する。表１は、さらにエンティティ構造の表示例を示している。
（表１）
【００４４】
【表４】
0005513500.tif 000005
【００４５】
図５は、使用される方法５００を示すフロー図である。方法５００の実行は、クレーム生成ブロック５１０で始まり、アイデンティティブロック５５０におけるクレーム基づくサーバ認証へと続く。プロセスブロック５１０では、図３に関して上述したデータモデルを使用して、クライアントを表すクレームセットが生成される。図３に関して上述したデータモデルに従って、クレームセット内の各クレームは、クレーム発行者による宣言を作成するエンティティを示す特定のアイデンティティに関連付けられる。本明細書で説明されるいくつかの実施形態では、クレームセットが発行者によって生成されると、クレームは、通常は、（ＳＡＭＬ）のようなセキュリティトークンの形態でまとめてパッケージ化され、クライアントに送信される。図４に関して上述したように、クレームセットは信頼できる第三者（図示せず）によって発行されてもよい。信頼できる第三者は、クライアントのアイデンティティを承認し、代わりにクレームを発行する。本明細書で説明されるいくつかの実施形態では、その後、クライアントは、処理ブロック５２０で示されるように、パッケージ化されたクレームを中間処理ユニットに送信する。当業者は、他の送信方法も可能であり、これは方法の範囲を制限するものではないことを理解するであろう。セキュリティトークンは、中間処理ユニットによって受信され、中間処理ユニットによって、周知のプロセスを使用してクレームセットと共にクレームアイデンティティに変換される。
【００４６】
プロセスブロック５３０では、中間処理ユニットは、バックエンドユニットと通信する前に、バックエンドユニットによって信頼されているクレーム発行者によって発行されたパッケージ化されたクレーム（例えば、セキュリティトークン）を取得する必要がある。本明細書で説明されるいくつかの実施形態では、中間ユニットは自身のアイデンティティとクライアントのアイデンティティとの両方をクレーム発行者に送信する。クレーム発行者は、両方のアイデンティティからの情報を変換し組み合わせて、アイデンティティ委任チェーン情報を形成する適切な関係（中間ユニットを介してクライアントが呼び出しを行う）で中間ユニットのアイデンティティとクライアントのアイデンティティとの両方を表すパッケージ化されたクレームセット、つまりセキュリティトークンを中間ユニットに送り返す。当業者は、本発明の方法は、１つの処理ユニットに限定されず、複数の処理ユニットがある場合には、各処理ユニットが対応するクレーム発行者によって別のアイデンティティとしてアイデンティティ委任チェーンに追加できることを理解できるであろう。処理ブロック４４０では、中間サーバがセキュリティトークンをバックエンド処理ユニットに送信する。本明細書で説明されるいくつかの実施形態では、バックエンド処理ユニットまたはデータベースは、セキュリティトークンを受信し、セキュリティトークンをクレームアイデンティティに変換する。クライアントのアイデンティティは、中間サーバのアイデンティティと同じようにバックエンド処理ユニットには可視である。つまり、クライアントのアイデンティティは与えられた最上位のアイデンティティで表わされ、中間ユニットのアイデンティティはクライアントのアイデンティティに関する委任プロパティを使用してクライアントのアイデンティティに添付されることになる。処理ブロック４５０では、バックエンドサーバは、中間サーバおよびクライアントの両方のアイデンティティを受けてセキュリティに関する決定を行うことができる。
【００４７】
この例では、本発明の方法は、クライアントのアイデンティティと中間サーバのアイデンティティとを共につなぐ方法とした。当業者は、本発明の方法がバックエンド処理ユニットに達する前に複数の中間サーバを共につなぐことも可能であることを理解できるであろう。この場合、クライアントのアイデンティティと複数の中間サーバのアイデンティティとが、バックエンド処理ユニットに可視となる。
【００４８】
上述したように、本明細書で説明されるいくつかの実施形態では、データモデル３００は、．ＮＥＴプラットフォーム上に存在してもよい。当業者は、データモデルが．ＮＥＴプラットフォームに限定されず、例えば、ＪＡＶＡ（登録商標）などの他のプラットフォームにも適用できることを理解できるであろう。データモデル３００は、既存の．ＮＥＴアイデンティティモデルに統合できる構造であり、アプリケーションコードをさらに符号化または調整せずに、既存の．ＮＥＴアプリケーションによって採用可能である。表５に、データモデル３００の．ＮＥＴへの統合を示すＣ＃疑似コードの表示例を示す。
（表５）
【００４９】
【表５】
0005513500.tif 000006
【００５０】
当業者は、プログラム命令を記憶するのに使用される記憶装置がネットワークにわたって分散されてもよいことを理解するであろう。例えば、リモートコンピュータは、ソフトウェアとして記述されるプロセスの例を記憶することができる。ローカルまたはターミナルコンピュータは、リモートコンピュータにアクセスして、プログラムを実行するソフトウェアの一部または全てをダウンロードすることができる。あるいは、ローカルコンピュータは、必要に応じてソフトウェアをダウンロードしてもよいし、またはローカル端末でいくつかのソフトウェア命令を実行し、リモートコンピュータ（またはコンピュータネットワーク）でいくつかのソフトウェア命令を実行してもよい。また、当業者は、当業者に既知の従来の技術を使用することで、ソフトウェア命令の全てまたは一部が、ＤＳＰ、プログラム可能な論理アレイなどの専用回路によって実行されてもよいことを理解するであろう。
【図１】
0005513500.tif 000007
【図２】
0005513500.tif 000008
【図３】
0005513500.tif 000009
【図４】
0005513500.tif 000010
【図５】
0005513500.tif 000011