説明

クレームを使用したセキュリティアイデンティティの表示

クレームベースのアイデンティティモデルは、セキュリティアイデンティティをクレームに関連付けるモデルを提供する。モデルは、クレーム内に含まれる情報を表示し、それと同時に、クレーム内に記述されているセキュリティアイデンティティ間の関係をキャプチャする。最後に、データモデルは、既存の.NETアプリケーションの下位互換性を損なうことなく、容易に既存の.NET環境に変換可能である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クレームを使用したセキュリティアイデンティティの表示に関する。
【背景技術】
【0002】
ほとんどの現在の企業のセキュリティ基盤は、同じセキュリティドメイン(例えば、Active Directory Trust Domains)内のリソースにアクセスするユーザを識別するように設計されている。この環境では、KDC(Key Distribution Center、以下KDC)と通信するのに、Kerberosのような対称鍵プロトコルが使用され、クライアントとドメイン内の保護情報をホスティングするサーバとの間で交換される証明書を作成し、検証する。サーバは、各保護リソースに関連付けられたアクセス制御リストに関連してこれらの証明書を評価して、アクセスを決定する。
【0003】
クライアントとサーバとが異なるセキュリティドメイン内にある時、このモデルは、1つのKDCが存在しない時に機能することができない。その代わり、信頼のポイントが各ドメインにおいて確立されて、異質なセキュリティドメイン内のリソースへのアクセスを要求するアプリケーションおよびユーザのアイデンティティの信頼できるステートメントを生成する(および潜在的に検証する)フェデレーテッドモデルが使用されなければならない。このフェデレーテッドモデルは、以下でより詳細に説明するが、WS−Trust、WS−Federation、SAML(Security Assertion Markup Language、以下SAML)などの多くの公的規格によってサポートされ、採用されている。
【発明の開示】
【発明が解決しようとする課題】
【0004】
前述の点を考慮すると、先行技術の欠点を克服し、セキュリティドメイン全体のアクセス制御に影響を与えることができるシステムおよび方法が必要である。
【課題を解決するための手段】
【0005】
以下に、読者が基本的な理解を得ることができるように、本開示の簡単な概略を示す。この概略は、本開示の広範な概要ではなく、また重要/決定的な要素を特定するものではない。単に、本明細書内に開示されるいくつかの概念を、後述する詳細な説明の前置きとして簡略化して示すためのものである。
【0006】
対象者のアイデンティティは、クレームのセットとして表すことができる。クレームは、発行者によって同意された、対象者に関連付けられた属性である。デジタルアイデンティティは、デジタルエンティティによって自身または別のデジタル対象者に関して作成されたクレームのセットである。クレームは、クレームベースのセキュリティスキームの基本要素である。クレームベースのデータモデルは、主な要素として、クレーム、クレームアイデンティティ、クレームプリンシパルを有する。クレームモデルは、本明細書内で説明するいくつかの実施形態では、セキュリティアイデンティティをモデル化して別のセキュリティアイデンティティとして機能することができる。セキュリティアイデンティティのアイデンティティ委任チェーンの長さは、任意の長さにすることができる。最後に、クレームベースのセキュリティスキームは、既存の.NETアイデンティティモデルに統合することができる。
【0007】
多くの付随する特徴は、添付図面と併せて考察された以下の詳細な説明を参照することによってより十分に理解された時に、より容易に認識できるであろう。
【図面の簡単な説明】
【0008】
本発明の説明は、添付図面に照らした以下の詳細な説明からより十分に理解できるであろう。
【図1】コンピューティング環境の態様が実装される例示的なコンピューティング環境のブロック図である。
【図2】例示的なフェデレーテッドモデルのブロック図である。
【図3】データモデルの種々の要素間の動作関係を示すデータモデルの図である。
【図4】クレームベースのセキュリティモデルの態様が実装される例示的なプラットフォーム環境のブロック図である。
【図5】クレームベースのセキュリティモデルと共に使用できる方法を示すフロー図である。
【0009】
同一の附番は、添付図面内の同一の部分を指すのに使用される。
【発明を実施するための形態】
【0010】
添付図面と併せて以下に示した詳細な説明は、本発明の一例として示されたものであって、本発明の例を構成し、利用する唯一の形態を示すものはない。説明は、本発明の例の機能および本発明の例を構成および動作するためのステップの順序を示すものである。しかし、異なる例によって、同一または等価な機能および順序を達成してもよい。
【0011】
アイデンティティ認証システムおよびプロトコルによって、種々のドメインやプラットフォームにわたるコンピュータネットワークがユーザを認証することができ、ネットワーク上に記憶されている種々のリソースへのユーザアクセスが可能になる。詳細な説明および関連図面に示されたデータモデルにより、アイデンティティをクレームのセットとして表示し、アイデンティティを認証するのに使用された認証機構を抽象化することができる。モデルは、クレーム内に含まれている情報を表し、同時に、クレームによって示されたセキュリティアイデンティティ間の関係をキャプチャする。最後に、データモデルは、CLR(common language runtime:共通言語ランタイム)クラスのセットに変換され、.NET環境からクレームベースのモードにアクセスすることができる。さらに、変換は、クレームベースのアイデンティティモデルを既存の.NETアイデンティティモデルと統合し、同時に、これらを再実装しなくても、既存の.NETアプリケーションが新しいクレームベースのアイデンティティモデルと共に使用できるように下位互換性を保つことができる。
【0012】
図1は、種々の態様の環境が実装される例示的なコンピューティング環境を示す図である。コンピューティングシステム環境100は、適切なコンピューティング環境の単なる一例であり、コンピューティングシステム環境の使用または機能性の範囲を限定するものではない。また、コンピューティング環境100は、例示的なオペレーティング環境100に示されるコンポーネントのいずれか1つまたは組み合わせに関する依存関係または要件を有するものと解釈すべきでない。
【0013】
本システムは、多数の他の汎用または専用のコンピューティングシステムの環境または構成と共に動作可能である。本システムとの使用に適した周知のコンピューティングシステム、環境および/または構成の例として、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、埋め込みシステム、任意の上述のシステムまたは装置を含む分散コンピューティング環境などが挙げられるが、これらに限定されない。
【0014】
クレームベースのアイデンティティモデルは、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストに記述される。一般に、プログラムモジュールは、特定のタスクを実行または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。クレームベースのアイデンティティモデルはさらに、通信ネットワークまたは他のデータ送信媒体を介してリンクされた遠隔処理装置によってタスクが実行される分散コンピューティング環境で実施することも可能である。分散コンピューティング環境では、プログラムモジュールおよび他のデータは、メモリ記憶装置などのローカルおよび遠隔の両方のコンピュータ記憶媒体に置くことができる。
【0015】
図1では、クレームベースのアイデンティティモデルを実装する例示的なシステムは、コンピュータ110の形で汎用コンピューティング装置を含む。コンピュータ110のコンポーネントは、処理ユニット120、システムメモリ130、およびシステムメモリなどの種々のシステムコンポーネントを処理ユニット120に結合するシステムバス121を含むが、これらに限定されない。処理ユニット120は、マルチスレッドプロセッサによってサポートされるような複数の論理処理ユニットを表すことができる。システムバス121は、例えば、メモリバスまたはメモリコントローラ、周辺バス、種々のバスアーキテクチャのいずれかを使用するローカルバスのような複数のタイプのバス構造のいずれかとすることができる。例として、このようなアーキテクチャには、ISA(Industry Standard Architecture、以下ISA)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、PCI(Peripheral Component Interconnect)バス(Mezzanineバスとしても周知である)が挙げられるが、これらに限定されない。システムバス121はさらに、通信装置間でポイント・ツー・ポイント接続、スイッチングファブリックなどとして実装することもできる。
【0016】
コンピュータ110は、典型的には、種々のコンピュータ可読媒体を含む。コンピュータ可読記憶媒体は、コンピュータ110によってアクセス可能で、揮発性および不揮発性媒体、取り外し可能および取り外し不可能な媒体の両方を含む任意の利用可能な媒体とすることができる。例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、これらに限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能な媒体の両方を含む。コンピュータ記憶媒体として、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CDROM、DVD(digital versatile disk:デジタル多用途ディスク)もしくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクもしくは他の磁気記憶装置、または所望の情報を記憶するのに使用可能で、コンピュータ110によってアクセス可能な任意の他の媒体が挙げられるが、これらに限定されない。
【0017】
通信媒体は、典型的には、搬送波または他の搬送機構のような変調データ信号でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具現化し、任意の情報送達媒体を含む。用語「変調データ信号」は、1つまたは複数の特徴セットを有し、信号で情報を符号化するように変化された信号を意味する。例として、通信媒体は、有線ネットワークもしくは直接有線接続のような有線媒体、音響、RF、赤外線および他の無線媒体のような無線媒体を含むが、これらに限定されない。上述のいずれかの組み合わせもコンピュータ可読媒体の範囲に含まれる。
【0018】
システムメモリ130は、ROM(read only memory:リード・オンリ・メモリ、以下ROM)131やRAM(random access memory:ランダム・アクセス・メモリ、以下RAM)132などの揮発性および/または不揮発性メモリの形態でコンピュータ記憶媒体を含む。起動時などにコンピュータ110内の要素間で情報を伝達するのを助ける基本ルーチンを含むBIOS(basic input/output system:基本入出力システム)133は、典型的には、ROM131内に記憶される。RAM132は、典型的には、処理ユニット120により即座にアクセス可能な、および/または現在動作されているデータおよび/またはプログラムモジュールを含む。例として、図1は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、プログラムデータ137を示しているが、これらに限定されない。
【0019】
コンピュータ110はさらに、他の取り外し可能/取り外し不可能、揮発性/不揮発性のコンピュータ記憶媒体を含むことができる。例としてのみ、図1では、取り外し不可能で不揮発性の磁気媒体に対して読み出しまたは書き込みをするハードディスクドライブ140、取り外し可能で不揮発性の磁気ディスク152に対して読み出しまたは書き込みをする磁気ディスクドライブ151、CD ROMまたは他の光媒体などの取り外し可能で不揮発性の光ディスク156に対して読み出しまたは書き込みをする光ディスクドライブ155が挙げられる。例示的なオペレーティング環境で使用可能な他の取り外し可能/取り外し不可能、揮発性/不揮発性のコンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体RAM、固体ROMなどを含むことができるが、これらに限定されない。ハードディスクドライブ141は、典型的には、インタフェース140、磁気ディスクドライブ151などの取り外し不可能メモリインタフェースを介してシステムバス121に接続され、光ディスクドライブ155は、典型的には、インタフェース150などの取り外し可能なメモリインタフェースによってシステムバス121に接続される。
【0020】
上述の図1に示されたドライブとそれに関連するコンピュータ記憶媒体は、コンピュータ110のコンピュータ可読命令、データ構造、プログラムモジュール、他のデータの記憶を行う。図1では、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、プログラムデータ147を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、プログラムデータ137と同一または異なるものとすることができる。
【0021】
オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、プログラムデータ147は、ここでは、所与の異なる数であり、最低でも、これらが異なるコピーであることを示している。ユーザは、キーボード162および通常はマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力装置によってコンピュータ20にコマンドや情報を入力することができる。他の入力装置(図示せず)は、マイクロホン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどが挙げられる。これらの入力装置および他の入力装置は、システムバスに結合されるユーザ入力インタフェース160を介して処理ユニット120に接続されることが多いが、パラレルポート、ゲームポートまたはUSB(universal serial bus)などの他のインタフェースやバス構造によって接続されてもよい。モニタ191または他のタイプのディスプレイ装置も、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続される。モニタの他に、コンピュータはさらに、出力周辺インタフェース190を介して接続できるスピーカ197、プリンタ196などの他の周辺出力装置を含むことができる。
【0022】
コンピュータ110は、リモートコンピュータ180のような1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードとすることができる。図1には、メモリ記憶装置181のみが示されているが、典型的には、リモートコンピュータ180は、コンピュータ110に関して上述した多くのまたは全ての要素を含む。図1に示されている論理接続は、LAN(local area network、以下LAN)171およびWAN(wide area network:広域エリアネットワーク、以下WAN)173を含むが、他のネットワークを含んでもよい。このようなネットワーク環境は、オフィス、企業のコンピュータネットワーク、イントラネット、インターネットにおいて一般的である。
【0023】
LANネットワーク環境で使用される時、コンピュータ110は、ネットワークインタフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境で使用される時、コンピュータ110は、典型的には、モデム172またはインターネットなどのWAN173経由の通信を確立するための他の手段を含む。モデム172は、内蔵または外付けにしてもよいが、ユーザ入力インタフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータ110に関して示されているプログラムモジュールまたはその一部は、リモートメモリ記憶装置内に記憶することができる。例として、図1は、リモートアプリケーションプログラム185はメモリデバイス181に常駐するものとして示しているが、これに限定されない。図示されたネットワーク接続は一例であって、コンピュータ間の通信リンクを確立するための他の手段が使用されてもよいことは理解されたい。
【0024】
図2は、フェデレーテッドモデルの略ブロック図である。フェデレーテッドモデル200は、ユーザが同一または類似のユーザ名を使用して、複数のネットワークにわたるリソースにアクセスするフレームワークを提供する。図2に示されるように、フェデレーテッドモデル200は、アイデンティティプロバイダSTS(Security Token Service、以下STS)210、フェデレーションプロバイダSTS220、クライアント230、およびサービス240を含む。図2は、フェデレーテッドシステムにおけるメッセージの流れの一例を示す図である。
【0025】
いくつかの実施形態によれば、クライアント230を介するユーザ(図示せず)は、アイデンティティプロバイダSTS210を使用してアイデンティティを認証する。認証プロセスは、アイデンティティプロバイダSTS210によって決定することができる。当業者は、アイデンティティプロバイダSTS210によって発行される証明書はプラットフォーム固有であり、任意の特定のフォーマットに限定されるものではないことを理解できるだろう。クライアントの証明書の認証の際に、アイデンティティプロバイダSTS210は、クライアント230にトークン(トークンA)を発行する。トークンAは、ユーザレベルのアクセスおよび認証を示す。トークンAは、SAMLトークンとすることができる。クライアント230は、そのトークンをフェデレーションプロバイダSTS220に送信する。フェデレーションプロバイダSTS220は、トークンAを受信すると、トークンAによって作成されたクレームを評価し、クライアント230がフェデレーションプロバイダSTS220に位置するリソースにアクセス可能か否かを判断する。フェデレーションプロバイダSTS220が正確にトークンを認証した場合、フェデレーションプロバイダSTS220はクライアント230にトークンBを発行する。トークンBは、サービス240に必要な認証を示すものである。クライアント230は、トークンBを受領すると、トークンBをサービス240に提示し、トークンBが認証されると、クライアント230のユーザは240のリソースにアクセスすることができる。フェデレーションデータモデルは、クレームベースのセキュリティモデルにおけるエンティティ関係のデータモデルである。これについては、図3に関してより詳細に説明する。
【0026】
図3は、データモデル300のエンティティ関係の略ブロック図である。データモデル300は、クレームベースのセキュリティモデルの要素間の動作関係を示している。データモデル300は、クレームがセキュリティアイデンティティを示すのに使用されるセキュリティフレームワークを実現化する。セキュリティアイデンティティは、対象者が自身または別の対象者に関して作成した1つまたは複数のクレームとすることができる。本明細書で説明されるいくつかの実施形態では、データモデル300は、.NET環境で動作することができる。しかし、当業者は、データモデルは特定の環境に限定されないことを理解するであろう。先行技術のシステムでは、セキュリティアイデンティティは、SAMLおよびKerberosトークンで維持されるものであった。本明細書で説明されるいくつかの実施形態では、データモデル300は、エンティティ、発行者、クレームに関して、セキュリティアイデンティティを処理する。クレームは、エンティティによって作成される宣言である。例えば、クレームは、バンクアプリケーションサーバに、ボブが特定の財務記録にアクセスする特権を有すると宣言することができる。この例では、ボブはエンティティと見なされ、ボブのアイデンティティは、クレームで表されるエンティティが財務記録にアクセスする特権を有するとの宣言を含む、信頼できるエンティティによって作成されたクレームによって特徴付けられる。当業者は、上述の例は単なる例であって、何ら実施形態を制限するものではない。
【0027】
本明細書で説明されるいくつかの実施形態では、宣言は、エンティティに関して作成される属性を含むステートメントである。これらの属性は、名前/値の組とすることができる。この場合、値はデータまたは情報であり、名前はURI(universal resource identifier:ユニバーサルリソース識別子)である。本明細書で説明されるいくつかの実施形態では、属性値は、.NET環境における文字列形態を有する。文字列の属性値は、文字列形態(例えば、XML要素またはXMLスキーマのストリング表示)への属性値のシリアライゼーションと見なすことができる。クレームは、(シリアライゼーションプロセスによって)ドメイン間での送信のためのセキュリティトークンに表すことができる。
【0028】
図3に見られるように、本明細書で説明されるいくつかの実施形態では、モデル300の要素は、クレームアイデンティティ310、クレームプリンシパル320、クレーム330、クレームプロパティ340から成る。これらの要素間の相互関係は、自己完結型のクレームを作成する効果がある。クレームに一致すると、関連する識別情報の全てにアクセスするのに、外部情報は必要でなくなる。
【0029】
クレームアイデンティティ310は、エンティティの表示である。表1は、クレームアイデンティティ310オブジェクトの表示例である。
(表1)
【0030】
【表1】

【0031】
クレームプリンシパル320は、アプリケーションコードが正確なアイデンティティに関連する決定を行うために、アプリケーションコードに対する発信者のアイデンティティ(単数または複数)の表示である。表2は、クレームプリンシパル320オブジェクトの表示例である。
(表2)
【0032】
【表2】

【0033】
本明細書で説明されるいくつかの実施形態では、クレームプリンシパル320は、アプリケーションコードがアイデンティティに関連する決定を行うために、アプリケーションコードに対する発信者のエンティティセキュリティ情報を表す。クレームプリンシパル320は、.NETフレームワークにおけるIPrincipalクラスと同様の用法でクレームアイデンティティ(単数または複数)をアプリケーションコードに提示する。当業者は、要求に関連付けられた異なる役割で動作する複数のエンティティがある場合、アプリケーションコードに提示された1つのクレームプリンシパル320が複数のクレームアイデンティティ310を含むことを理解するであろう。
【0034】
クレーム330は、エンティティ(単数または複数)によって作成された宣言の表示である。表4は、クレーム330構造の表示例である。
(表4)
【0035】
【表3】

【0036】
本明細書で説明されるいくつかの実施形態では、クレームプロパティ340により、メタデータをクレーム330内に記憶されている宣言に関連付けることができる。クレームプロパティ340の例は、クレーム値照合エンティティの識別子またはその照合の終了の識別子である。
【0037】
本明細書で説明されるいくつかの実施形態では、クレームアイデンティティ310、クレーム330、クレームプロパティ340、クレームプリンシパル320に関連付けられたフィールドがある。クレーム330は、クレームタイプ、クレーム値、クレーム値タイプ、プロパティコレクション、発行者、対象者(図示せず)のフィールドを含むことができる。本明細書で説明されるいくつかの実施形態では、クレームアイデンティティ310は、クレームのコレクション、ラベル、委任アイデンティティ(図示せず)のフィールドを含むことができる。クレームプリンシパル320は、アイデンティティコレクション(図示せず)のフィールドを含むことができる。当業者は、種々のフィールドは、文字列形態で実装されてもよいが、フィールドの他の表示も可能であることを理解できるであろう。
【0038】
図3に示されるように、エンティティ関係図は、データモデルの基本要素間の関係を示す。クレーム330は、クレームアイデンティティ310およびクレームプロパティ340と直接的な関係を有する。クレームアイデンティティ310は、クレーム330およびクレームプリンシパル320と直接的な関係を有することができる。クレーム330は、複数(0〜N)のクレームアイデンティティ310を含むことができる。また、複数のクレーム330は、クレームアイデンティティ310によって発行することができる。クレーム330は、複数のクレームプロパティ340を有することができる。また、クレームプリンシパル320は、複数のクレームアイデンティティを含むことができる。
【0039】
クレームアイデンティティ310は、0または複数のクレーム330を所有し、0から1つのクレームアイデンティティ310を委任することができる。委任については、図4に関して、より詳細に説明する。上述したように、クレームアイデンティティ310は、クレームを発行するエンティティを表すのにも使用される。本明細書で説明されるいくつかの実施形態では、クレームは、クレームが関係する情報に関して自己完結型である。クレームのコンテンツ、クレームが参照するクレームとエンティティとの関係、クレームを発行するエンティティ(単数または複数)間の関係を理解するのに追加のデータが通信される必要はない。
【0040】
データモデル300は、クレームベースのアイデンティティシステムの主エンティティ間の関係を示す。しかし、クレームベースのアイデンティティシステムにおいて重要な要素は、1つのエンティティが別のエンティティとして動作する場合である。これは、アイデンティティ委任と呼ばれる。
【0041】
図4は、委任システムの動作例を示すブロック図400である。ブロック図400は、クライアント410、企業サーバ(複数可)420、バックエンドユニット(複数可)430を含む。本明細書で説明されるいくつかの実施形態では、ファイアウォールまたは他の既知のセキュリティ装置(図示せず)が少なくとも1つの企業サーバ420および少なくとも1つのデータベース430へのアクセスを承認する。クライアントのユーザは、既知のセキュリティ方法(例えば、トークン、ユーザ名/パスワード、および他の既知の方法)を使用して、企業サーバ(複数可)420にアクセスする。本明細書で説明されるいくつかの実施形態では、クレームシリアライゼーションを使用して、クライアント410と企業サーバ(複数可)420との間、企業サーバ(複数可)420とバックエンドユニット330との間でクレームを送信することができる。例えば、クレームをトークンに変換して、要素間で送信することができる。
【0042】
アイデンティティ委任システムでは、企業サーバ(複数可)420は、元の要求者(クライアント)が自身の要求を満たすためにバックエンドユニット(複数可)430にアクセスする時に、そのクライアントとして動作することができる。本明細書で説明されるいくつかの実施形態では、信頼できる第三者の要求者(図示せず)も元の要求者として動作することができる。この場合、クライアント410は、信頼できる第三者の要求者に代わりにクレームを発行してもらえるか尋ねる。第三者の要求者は、クライアント410のアイデンティティを承認して、クライアントに代わってクレームを発行する。本明細書で説明されるいくつかの実施形態では、バックエンドユニット(複数可)430におけるクレーム処理サービスは、発信者のアイデンティティの委任プロパティを見てエンティティを見分けることができる。ここで示されるモデル400により、元の発信者(クライアント410)のアイデンティティと中間処理ユニット(企業サーバ(複数可)420)のアイデンティティとの両方がバックエンド処理ユニット(複数可)330に可視となる。本明細書で説明されるいくつかの実施形態では、元の発信者のアイデンティティ(クライアント310)は最上位のクレームアイデンティティにあり、個々の仲介者のアイデンティティは、元の発信者のアイデンティティから、呼び出しが仲介者に渡った同じ順序でつながれることになる。
【0043】
図3にもどって、データモデル300のアイデンティティ(またはエンティティ)の委任を表すのに、委任構造が存在する。表1は、さらにエンティティ構造の表示例を示している。
(表1)
【0044】
【表4】

【0045】
図5は、使用される方法500を示すフロー図である。方法500の実行は、クレーム生成ブロック510で始まり、アイデンティティブロック550におけるクレーム基づくサーバ認証へと続く。プロセスブロック510では、図3に関して上述したデータモデルを使用して、クライアントを表すクレームセットが生成される。図3に関して上述したデータモデルに従って、クレームセット内の各クレームは、クレーム発行者による宣言を作成するエンティティを示す特定のアイデンティティに関連付けられる。本明細書で説明されるいくつかの実施形態では、クレームセットが発行者によって生成されると、クレームは、通常は、(SAML)のようなセキュリティトークンの形態でまとめてパッケージ化され、クライアントに送信される。図4に関して上述したように、クレームセットは信頼できる第三者(図示せず)によって発行されてもよい。信頼できる第三者は、クライアントのアイデンティティを承認し、代わりにクレームを発行する。本明細書で説明されるいくつかの実施形態では、その後、クライアントは、処理ブロック520で示されるように、パッケージ化されたクレームを中間処理ユニットに送信する。当業者は、他の送信方法も可能であり、これは方法の範囲を制限するものではないことを理解するであろう。セキュリティトークンは、中間処理ユニットによって受信され、中間処理ユニットによって、周知のプロセスを使用してクレームセットと共にクレームアイデンティティに変換される。
【0046】
プロセスブロック530では、中間処理ユニットは、バックエンドユニットと通信する前に、バックエンドユニットによって信頼されているクレーム発行者によって発行されたパッケージ化されたクレーム(例えば、セキュリティトークン)を取得する必要がある。本明細書で説明されるいくつかの実施形態では、中間ユニットは自身のアイデンティティとクライアントのアイデンティティとの両方をクレーム発行者に送信する。クレーム発行者は、両方のアイデンティティからの情報を変換し組み合わせて、アイデンティティ委任チェーン情報を形成する適切な関係(中間ユニットを介してクライアントが呼び出しを行う)で中間ユニットのアイデンティティとクライアントのアイデンティティとの両方を表すパッケージ化されたクレームセット、つまりセキュリティトークンを中間ユニットに送り返す。当業者は、本発明の方法は、1つの処理ユニットに限定されず、複数の処理ユニットがある場合には、各処理ユニットが対応するクレーム発行者によって別のアイデンティティとしてアイデンティティ委任チェーンに追加できることを理解できるであろう。処理ブロック440では、中間サーバがセキュリティトークンをバックエンド処理ユニットに送信する。本明細書で説明されるいくつかの実施形態では、バックエンド処理ユニットまたはデータベースは、セキュリティトークンを受信し、セキュリティトークンをクレームアイデンティティに変換する。クライアントのアイデンティティは、中間サーバのアイデンティティと同じようにバックエンド処理ユニットには可視である。つまり、クライアントのアイデンティティは与えられた最上位のアイデンティティで表わされ、中間ユニットのアイデンティティはクライアントのアイデンティティに関する委任プロパティを使用してクライアントのアイデンティティに添付されることになる。処理ブロック450では、バックエンドサーバは、中間サーバおよびクライアントの両方のアイデンティティを受けてセキュリティに関する決定を行うことができる。
【0047】
この例では、本発明の方法は、クライアントのアイデンティティと中間サーバのアイデンティティとを共につなぐ方法とした。当業者は、本発明の方法がバックエンド処理ユニットに達する前に複数の中間サーバを共につなぐことも可能であることを理解できるであろう。この場合、クライアントのアイデンティティと複数の中間サーバのアイデンティティとが、バックエンド処理ユニットに可視となる。
【0048】
上述したように、本明細書で説明されるいくつかの実施形態では、データモデル300は、.NETプラットフォーム上に存在してもよい。当業者は、データモデルが.NETプラットフォームに限定されず、例えば、JAVA(登録商標)などの他のプラットフォームにも適用できることを理解できるであろう。データモデル300は、既存の.NETアイデンティティモデルに統合できる構造であり、アプリケーションコードをさらに符号化または調整せずに、既存の.NETアプリケーションによって採用可能である。表5に、データモデル300の.NETへの統合を示すC#疑似コードの表示例を示す。
(表5)
【0049】
【表5】

【0050】
当業者は、プログラム命令を記憶するのに使用される記憶装置がネットワークにわたって分散されてもよいことを理解するであろう。例えば、リモートコンピュータは、ソフトウェアとして記述されるプロセスの例を記憶することができる。ローカルまたはターミナルコンピュータは、リモートコンピュータにアクセスして、プログラムを実行するソフトウェアの一部または全てをダウンロードすることができる。あるいは、ローカルコンピュータは、必要に応じてソフトウェアをダウンロードしてもよいし、またはローカル端末でいくつかのソフトウェア命令を実行し、リモートコンピュータ(またはコンピュータネットワーク)でいくつかのソフトウェア命令を実行してもよい。また、当業者は、当業者に既知の従来の技術を使用することで、ソフトウェア命令の全てまたは一部が、DSP、プログラム可能な論理アレイなどの専用回路によって実行されてもよいことを理解するであろう。

【特許請求の範囲】
【請求項1】
セキュリティアイデンティティを表示するためのコンピュータ実装データモデルであって、
エンティティのアイデンティティを少なくとも1つの他のエンティティに対する複数の属性として表示するための少なくとも1つのアイデンティティコンポーネント、
前記エンティティのアイデンティティに関連付けられたセキュリティ情報を表示するための少なくとも1つのアイデンティティ・プリンシパル・コンポーネント、
前記エンティティによって少なくとも1つの他のエンティティに対して作成された宣言を表示するための少なくとも1つのクレームコンポーネント、および
前記宣言に関連付けられたメタデータを表示するための少なくとも1つのクレーム・プロパティ・コンポーネントを備え、
前記アイデンティティコンポーネント、アイデンティティ・プリンシパル・コンポーネント、クレームコンポーネント、クレーム・プロパティ・コンポーネントが組み合わされて、少なくとも1つのクレームを表示することを特徴とするコンピュータ実装データモデル。
【請求項2】
前記アイデンティティコンポーネントは、前記クレームのコレクション、ラベル、および委任アイデンティティのフィールドを含むことを特徴とする請求項1に記載のデータモデル。
【請求項3】
前記アイデンティティ・プリンシパル・コンポーネントは、アイデンティティコレクションのフィールドを含むことを特徴とする請求項1に記載のデータモデル。
【請求項4】
前記クレームコンポーネントは、前記クレームのタイプ、クレーム値、クレーム値タイプ、プロパティコレクション、発行者、および対象者のフィールドを含むことを特徴とする請求項1に記載のデータモデル。
【請求項5】
前記少なくとも1つのクレーム・プロパティ・コンポーネントは、前記各々の少なくとも1つのクレームコンポーネントに関連付けられ、前記少なくとも1つのクレームコンポーネントは、前記少なくとも1つのアイデンティティ・プリンシパル・コンポーネントに関連付けられ、前記少なくとも1つのクレーム・プロパティ・コンポーネントは、前記少なくとも1つのクレームコンポーネントに関連付けられることを特徴する請求項1に記載のデータモデル。
【請求項6】
前記少なくとも1つのクレーム・アイデンティティ・コンポーネントは、1つのクレームコンポーネントに関連付けられることを特徴とする請求項1に記載のデータモデル。
【請求項7】
前記クレームをセキュリティトークンに変換することをさらに含むことを特徴とする請求項1に記載のデータモデル。
【請求項8】
コンポーネントからの呼び出しに応答する機能を記憶するコンピュータ可読記憶媒体であって、前記機能は、
エンティティのアイデンティティを少なくとも1つの他のエンティティに対する複数の属性として表示する第1のパラメータ、
前記エンティティのアイデンティティに関連付けられたセキュリティ情報を表示する第2のパラメータ、
前記エンティティによって前記少なくとも1つの他のエンティティに対して作成された宣言を表示する第3のパラメータ、
前記宣言に関連付けられたメタデータを表示する第4のパラメータ、および
前記入力パラメータを受信するように適合され、セキュリティクレームを計算する実行可能なソフトウェア
を含むことを特徴とする、コンピュータ可読記憶媒体。
【請求項9】
前記第1のパラメータは、クレーム・アイデンティティ・パラメータであることを特徴とする請求項8に記載のコンピュータ可読記憶媒体。
【請求項10】
前記第2のパラメータは、アイデンティティ・プリンシパル・パラメータであることを特徴とする請求項8に記載のコンピュータ可読記憶媒体。
【請求項11】
前記第3のパラメータは、クレームパラメータであることを特徴とする請求項8に記載のコンピュータ可読記憶媒体。
【請求項12】
前記第4のパラメータは、クレーム・プロパティ・パラメータであることを特徴とする請求項8に記載のコンピュータ可読記憶媒体。
【請求項13】
前記アイデンティティコンポーネントは、前記クレームのコレクション、ラベル、および委任アイデンティティのフィールドを含むことを特徴とする請求項9に記載のコンピュータ可読記憶媒体。
【請求項14】
前記アイデンティティ・プリンシパル・コンポーネントは、前記アイデンティティのコレクションのフィールドを含むことを特徴とする請求項10に記載のコンピュータ可読記憶媒体。
【請求項15】
前記クレームコンポーネントは、前記クレームのタイプ、クレーム値、クレーム値タイプ、プロパティコレクション、発行者、および対象者のフィールドを含むことを特徴とする請求項11に記載のコンピュータ可読記憶媒体。
【請求項16】
コンピュータシステムにおいて、方法が、
第1のセキュリティ識別子を発行するステップ、
前記第1のセキュリティ識別子を少なくとも1つの処理サーバに送信するステップ、
第2のセキュリティ識別子が前記第1のセキュリティ識別子を組み込むように、前記第2のセキュリティ識別子を発行するステップ、および
前記第2のセキュリティ識別子を少なくとも1つのバックエンドサーバに送信するステップを含み、
それにより、前記少なくとも1つのバックエンドサーバが前記第1のセキュリティ識別子および前記第2のセキュリティ識別子に基づいて認証決定を行うことを特徴とするコンピュータシステム。
【請求項17】
前記第1のセキュリティ識別子は少なくとも1つのクレームを含み、前記第2のセキュリティ識別子は少なくとも1つのクレームを含むことを特徴とする請求項16に記載のコンピュータシステム。
【請求項18】
前記少なくとも1つのクレームは、エンティティに関する宣言を含むことを特徴とする請求項17に記載のコンピュータシステム。
【請求項19】
前記第1のセキュリティ識別子を前記少なくとも1つの処理サーバに送信するためにセキュリティトークンにパッケージ化し、前記第1および第2の識別子を前記少なくとも1つの処理サーバから前記少なくとも1つのバックエンドサーバに送信するためにパッケージ化するステップをさらに含むことを特徴とする請求項16に記載のコンピュータシステム。
【請求項20】
前記少なくとも1つの処理サーバは、前記第1のセキュリティ識別子に基づいて認証決定を行うことを特徴とする請求項16に記載のコンピュータシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2011−527482(P2011−527482A)
【公表日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2011−517472(P2011−517472)
【出願日】平成21年6月26日(2009.6.26)
【国際出願番号】PCT/US2009/048893
【国際公開番号】WO2010/005813
【国際公開日】平成22年1月14日(2010.1.14)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】