(57)【要約】  コンピューティング環境内のプリンシパルを識別するためのシステムが開示される。このシステムは、アイデンティティクレームを含むプリンシパルオブジェクトを含んでいる。このプリンシパルオブジェクトをこの環境内のコンピュータプロセスが使用して活性化されたリソースオブジェクトに対するプリンシパルの関連付けに関係するタスクを実施する。例示のプリンシパルは、個人、個人のグループ、組織、ならびにコンピュータモジュールおよびデバイスを含んでいる。各アイデンティティクレームは、特定のスキーム内の特定のプリンシパルを一意に識別する。これを実現するために、各アイデンティティクレームは、この関連するスキーム内のプリンシパルに特有の識別ストリングを指定するアサーションを含んでいる。個人についての例示のスキームは、電子メールアカウント、電話番号、クレジットカードアカウント番号、およびソーシャルセキュリティ番号を含んでいる。したがって、個人についての例示の識別ストリングは、特定の電子メールアドレス、特定の電話番号などである。個人のグループ、および組織についての例示のスキームは、電話番号およびウェブページアドレスを含んでいる。このシステムはまた、２つのプリンシパルオブジェクトが競合するか否かを判定し、それによってアイデンティティフォールトがもたらされる。
2007519076.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング環境内のプリンシパルを識別するためのシステムであって、
複数のプリンシパルオブジェクトであって、各プリンシパルオブジェクトは、前記コンピューティング環境内でデジタルアクションを実施することが認証された特定のプリンシパルに対応しており、各プリンシパルオブジェクトは、前記コンピューティング環境内のコンピュータプロセスが使用するために動作可能になっていて前記プリンシパルオブジェクトに対応する前記特定のプリンシパルに複数のリソースオブジェクトを関連付けるプリンシパルオブジェクトと、
複数のアイデンティティクレームであって、各アイデンティティクレームは、各特定のプリンシパルオブジェクトに対応する前記特定のプリンシパルを一意に識別し、前記複数のプリンシパルオブジェクトの少なくとも１つは、前記少なくとも１つのプリンシパルオブジェクトに対応する前記特定のプリンシパルをそれぞれ一意に識別する２つまたは３つ以上のアイデンティティクレームを含む複数のアイデンティティクレームと
を備えることを特徴とするシステム。
【請求項２】
複数のアイデンティティリファレンスをさらに備え、前記複数の各アイデンティティリファレンスは、前記コンピューティング環境内のリソースオブジェクトに関連付けられ、前記複数の各アイデンティティリファレンスは、特定のアイデンティティクレームに対する前記アイデンティティリファレンス内のリンクアサーションに基づいて特定のプリンシパルに関連付けられるものとして前記関連するリソースオブジェクトを識別することを特徴とする請求項１に記載のシステム。
【請求項３】
前記複数の各アイデンティティクレームは、前記各アイデンティティクレームが関連付けられる前記プリンシパルオブジェクトに対応する前記特定のプリンシパルを一括して識別するタイプアサーションおよびバリューアサーションを含むことを特徴とする請求項２に記載のシステム。
【請求項４】
前記複数の各アイデンティティリファレンス内の前記リンクアサーションは、各アイデンティティリファレンスがリンクされる前記特定のアイデンティティクレームにおいて指定される前記タイプアサーションおよび前記バリューアサーションを含むことを特徴とする請求項３に記載のシステム。
【請求項５】
第１のプリンシパルオブジェクトに関連付けられる第１のアイデンティティクレームについての第１のタイプアサーションは、前記第１のアイデンティティクレーム中の前記バリューアサーションが前記第１のプリンシパルオブジェクトに対応する第１のプリンシパルに一意に関連付けられる電子メールアドレスを含むことを示すことを特徴とする請求項４に記載のシステム。
【請求項６】
前記第１のアイデンティティクレームは、前記電子メールアドレスが前記第１のプリンシパルに最初に関連付けられた時点を示す開始タイムリファレンスアサーションをさらに含むことを特徴とする請求項５に記載のシステム。
【請求項７】
前記第１のアイデンティティクレームは、前記電子メールアドレスと前記第１のプリンシパルとの間の関連付けが消滅する時点を示す終了タイムリファレンスアサーションをさらに含むことを特徴とする請求項６に記載のシステム。
【請求項８】
前記第１のプリンシパルオブジェクトに関連する第２のアイデンティティクレームについての第２のタイプアサーションは、前記第２のアイデンティティクレーム中の前記バリューアサーションが前記第１のプリンシパルに一意に関連付けられた電話番号を含むことを示すことを特徴とする請求項４に記載のシステム。
【請求項９】
前記コンピューティング環境は、分散コンピューティングシステムであり、少なくとも１つのアイデンティティリファレンスは、前記アイデンティティリファレンスにリンクされた前記アイデンティティクレームが保持されるコンピュータシステムとは異なるコンピュータシステム上に保持されることを特徴とする請求項２に記載のシステム。
【請求項１０】
コンピューティング環境内の第１のプリンシパルを識別するためのシステムであって、前記第１のプリンシパルは、前記コンピューティング環境内でデジタルアクションを実施することが認証されており、前記システムは、
前記第１のプリンシパルに対応する第１のプリンシパルオブジェクトであって、前記第１のプリンシパルオブジェクトは、前記コンピューティング環境内のコンピュータプロセスが使用するために動作可能になっていて少なくとも１つのリソースオブジェクトを前記第１のプリンシパルに関連付けるプリンシパルオブジェクトと、
各アイデンティティクレームが前記第１のプリンシパルを一意に識別する複数のアイデンティティクレームとを備え、前記第１のプリンシパルオブジェクトは、前記コンピュータプロセスが前記複数の任意のアイデンティティクレームを使用して前記少なくとも１つのリソースオブジェクトを前記第１のプリンシパルに関連付けることができるように複数のアイデンティティクレームを含むことを特徴とするシステム。
【請求項１１】
前記コンピューティング環境内の第１のリソースオブジェクトに関連付けられる第１のアイデンティティリファレンスをさらに備え、前記第１のアイデンティティリファレンスは、前記複数のアイデンティティクレーム中の第１のアイデンティティクレームに対する前記第１のアイデンティティリファレンス内の第１のリンクアサーションに基づいて前記第１のプリンシパルに関連するものとして前記第１のリソースオブジェクトを識別することを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記コンピューティング環境内の第２のリソースオブジェクトに関連する第２のアイデンティティリファレンスをさらに備え、前記第２のアイデンティティリファレンスは、前記第１のアイデンティティクレームに対する前記第２のアイデンティティリファレンス内の第２のリンクアサーションに基づいて前記第１のプリンシパルに関連するものとして前記第２のリソースオブジェクトを識別することを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記第１のリソースオブジェクトは、第１のアプリケーションプログラムに関連するファイルを表し、前記第２のリソースオブジェクトは、第２のアプリケーションプログラムに関連するファイルを表すことを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記第１のアプリケーションプログラムは、ワードプロセッシングアプリケーションプログラムであることを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記複数の各アイデンティティクレームは、前記第１のプリンシパルを一括して指定するタイプアサーションおよびバリューアサーションを含み、前記第１および第２のリンクアサーションは、前記第１および前記第２のアイデンティティリファレンスがリンクされる前記アイデンティティクレーム中で指定される前記タイプアサーションおよび前記バリューアサーションを含むことを特徴とする請求項１２に記載のシステム。
【請求項１６】
前記第１のアイデンティティクレームについての第１のタイプアサーションは、前記第１のアイデンティティクレーム中の前記バリューアサーションが前記第１のプリンシパルに一意に関連付けられる電子メールアドレスを含むことを示すことを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記第１のアイデンティティクレームは、
前記電子メールアドレスが前記第１のプリンシパルに最初に関連付けられた時点を示す開始タイムリファレンスアサーションと、
前記電子メールアドレスと前記第１のプリンシパルとの間の関連付けが消滅する時点を示す終了タイムリファレンスアサーションと
をさらに含むことを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記第１のプリンシパルは、前記コンピューティング環境内の個人、組織、およびモジュールからなる群から選択されることを特徴とする請求項１０に記載のシステム。
【請求項１９】
前記コンピューティング環境は、分散コンピューティングシステムであることを特徴とする請求項１０に記載のシステム。
【請求項２０】
前記コンピューティング環境は、スタンドアロンコンピューティングシステムであることを特徴とする請求項１０に記載のシステム。
【請求項２１】
コンピューティング環境内でデジタルアクションを実施することが認証されたプリンシパルを識別する際に使用するためのデータ構造がその上に記憶されているコンピュータ読取り可能媒体であって、前記データ構造は、
特定の識別スキーム内の前記プリンシパルを一意に識別するバリューアサーションと、
前記バリューアサーションに対応する前記特定の識別スキームを指し示すタイプアサーションと、
前記プリンシパルが前記特定の識別スキーム内の前記バリューアサーションによって一意に識別されるタイムフレームを指定するタイムリファレンスアサーションと
を含むことを特徴とするコンピュータ読取り可能媒体。
【請求項２２】
前記データ構造は、プリンシパルオブジェクトを前記プリンシパルに関連付けるアイデンティティクレームを表しており、前記プリンシパルオブジェクトは、前記コンピューティング環境内のコンピュータプロセスにより使用され、少なくとも１つのリソースオブジェクトを前記プリンシパルに関連付けるように動作可能であることを特徴とする請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２３】
前記タイムリファレンスは、
前記バリューアサーションが前記プリンシパルに最初に関連付けられた時点を示す開始タイムリファレンスアサーションと、
前記バリューアサーションと前記プリンシパルとの間の関連付けが消滅する時点を示す終了タイムリファレンスアサーションと
を含むことを特徴とする請求項２２に記載のコンピュータ読取り可能媒体。
【請求項２４】
前記データ構造は、
前記コンピューティング環境内の人間のユーザに認識可能な形式でバリューアサーションを指定するディスプレイアサーションをさらに含み、前記コンピュータプロセスは、前記プリンシパルと前記少なくとも１つのリソースオブジェクトとの間の前記関連付けを閲覧するため、ユーザによる要求に応答して前記ディスプレイアサーションを前記ユーザに対して表示することを特徴とする請求項２２に記載のコンピュータ読取り可能媒体。
【請求項２５】
前記プリンシパルは、前記コンピューティング環境内の個人、組織、およびモジュールからなる群から選択されることを特徴とする請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２６】
前記タイプアサーションは、前記バリューアサーションが、前記プリンシパルに一意に関連付けられる電子メールアドレスを含むことを示すことを特徴とする請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２７】
前記タイプアサーションは、前記バリューアサーションが、前記プリンシパルに一意に関連付けられる電話番号を含むことを示すことを特徴とする請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２８】
コンピューティング環境内でデジタルアクションを実施することが認証された第１のプリンシパルを識別するための方法であって、
前記コンピューティング環境内のコンピュータプロセスにより使用され、前記コンピューティング環境内に保持される複数のリソースオブジェクトに関連付けられるものとして前記第１のプリンシパルを識別するように動作可能なプリンシパルオブジェクトを作成する動作と、
特定の識別スキーム内の前記第１のプリンシパルを一意に識別する第１のアイデンティティクレームを前記プリンシパルオブジェクトに関連付ける動作であって、前記特定の識別スキーム内の前記第１のプリンシパルの一意の識別は、複数の各プリンシパルに対する一意の識別ストリングの割当てによって実現される動作と、
複数のアプリケーションプログラムに関連付けられる複数のリソースオブジェクトを受信する動作であって、前記複数の各リソースオブジェクトは、各リソースオブジェクトを前記プリンシパルオブジェクトにリンクする宣言を含むアイデンティティリファレンスに関連付けられる動作と、
前記コンピューティング環境内で前記関連するアイデンティティリファレンス中に含まれる前記宣言リンクに基づいて前記第１のプリンシパルに関連付けられるものとして前記複数の各リソースオブジェクトを識別する動作とを備え、前記コンピュータプロセスは、前記第１のプリンシパルに対する前記複数の各リソースオブジェクトの識別を利用して識別された各リソースオブジェクトに関連して少なくとも１つのタスクを実施することを特徴とする方法。
【請求項２９】
前記受信する動作は、
第１のアプリケーションプログラムに関連する第１のファイルを表す第１のリソースオブジェクトであって、該第１のリソースオブジェクトに関連して前記第１のプリンシパルに割り当てられた一意の識別ストリングを含む第１の宣言に基づいて前記第１のアイデンティティクレームにリンクされた第１のアイデンティティリファレンスを有する第１のリソースオブジェクトを受信する動作と、
第２のアプリケーションプログラムに関連する第２のファイルを表す第２のリソースオブジェクトであって、該第２のリソースオブジェクトに関連して前記第１のプリンシパルに割り当てられた前記一意の識別ストリングを含む第２の宣言に基づいて前記第１のアイデンティティクレームにリンクされた第２のアイデンティティリファレンスを有する第２のリソースオブジェクトを受信する動作と
を含むことを特徴とする請求項２８に記載の方法。
【請求項３０】
前記識別する動作は、
前記第１のアイデンティティリファレンスおよび前記第２のアイデンティティリファレンスの前記第１のアイデンティティクレームに対する前記リンクに基づいて前記第１のプリンシパルに関連するものとして前記第１のファイルおよび前記第２のファイルを識別する動作を含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
前記第１のプリンシパルに関連するプロパティを前記プリンシパルオブジェクトに関連付ける動作をさらに備え、前記識別する動作に応答して前記コンピュータプロセスが実施する前記タスクは、前記プリンシパルオブジェクトにリンクされる前記複数のリソースの少なくとも１つのグラフィック表現に関連して前記第１のプリンシパルに関連するプロパティのグラフィック表現を表示する動作を含むことを特徴とする請求項２８に記載の方法。
【請求項３２】
前記第１のプリンシパルに関連するプロパティを前記プリンシパルオブジェクトに関連付ける動作をさらに備え、前記識別する動作に応答して前記コンピュータプロセスが実施する前記タスクは、前記プリンシパルオブジェクトにリンクされる前記複数のリソースの少なくとも１つに対する前記第１のプリンシパルによるアクセスを認証する動作を含むことを特徴とする請求項３０に記載の方法。
【請求項３３】
前記作成する動作は、
前記リソースオブジェクトを前記プリンシパルオブジェクトにリンクしない宣言であって、前記特定の識別スキーム内の第２のプリンシパルを一意に識別する識別ストリングを含む宣言を含むアイデンティティリファレンスを有するリソースオブジェクトを受信するのに応答して、前記第２のプリンシパルに割り当てられる前記識別ストリングを含めるために作成されるファントムプリンシパルオブジェクトを作成する動作と、
前記第１のプリンシパルに対応する前記プリンシパルオブジェクトを含むデータストアに前記ファントムプリンシパルオブジェクトを保存する動作と
を含むことを特徴とする請求項２８に記載の方法。
【請求項３４】
前記第２のプリンシパルに割り当てられる前記識別ストリングを含む第２のアイデンティティクレームを含む第２のプリンシパルオブジェクトを受信する動作と、
前記ファントムプリンシパルオブジェクトおよび前記第２のプリンシパルが共に前記第２のプリンシパルに対応することを判定するのに応答して、前記ファントムプリンシパルオブジェクトを前記データストアから削除し、前記第２のプリンシパルオブジェクトが前記識別する動作により使用されて動作可能となるように前記第２のプリンシパルオブジェクトを前記データストアに保存する動作と
をさらに備えることを特徴とする請求項３３に記載の方法。
【請求項３５】
前記第１のアイデンティティクレームは、前記コンピューティング環境中のデータストアに記憶され、前記方法は、
前記データストアに記憶するために第２のアイデンティティクレームを受信することに応答して、前記第２のアイデンティティクレームおよび前記第１のアイデンティティクレームが共に同一の一意の識別ストリングを指定するか否かを判定する動作と、
前記第１のアイデンティティクレームおよび前記第２のアイデンティティクレームが共に前記同一の一意の識別ストリングを指定することを判定することに応答して、フォールト解決プロセスを呼び出して、前記データストアに記憶され、かつ前記識別する動作にとって使用可能な主要なアイデンティティクレームを決定する動作と
をさらに備えることを特徴とする請求項２８に記載の方法。
【請求項３６】
前記呼び出す動作は、
前記第２のアイデンティティクレームに記憶されるデータを前記第１のアイデンティティクレーム中にマージする動作を含むことを特徴とする請求項３５に記載の方法。
【請求項３７】
前記呼び出す動作は、
前記第１のアイデンティティクレームを削除する動作と、
前記第２のアイデンティティクレームを前記データストアに記憶する動作と
を含むことを特徴とする請求項３５に記載の方法。
【請求項３８】
コンピュータシステムによって読み取り可能であり、前記コンピュータシステムが実行可能な命令のプログラムを具体的に実施して請求項２８に記載の方法を実施することを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、結び付けられたシステム内においてエンティティを識別することに関し、より詳細にはコンピューティング環境内におけるプリンシパル（ｐｒｉｎｃｉｐａｌ）の識別に関する。
【背景技術】
【０００２】
インターネットや組織におけるイントラネットなど分散コンピュータネットワークは、例えばデータストレージディスクに対するファイルを節約し、このディスクを他のコンピューティングシステムに対して物理的に配布するなど、以前の方法に比べてずっと高速なペースで他のユーザと情報を交換する能力をユーザに提供する。これらの分散環境内においては、電子メールメカニズム、ファイル共用メカニズム、または他の従来からの情報転送メカニズムを手段として情報を転送することを可能にする通信媒体が、少なくとも２つのコンピュータの間で確立される。分散環境は、確かに情報交換について以前の方法に優る利点を有するが、これらの以前の実施に伴ってもたらされたその同じ欠点の多くが、この分散コンピューティングの世界に持ち越されてしまっている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
かかる１つの問題が、受信側のユーザの、他のユーザから送信された情報を閲覧し操作する能力に関連した認証である。すなわち、情報を受信またはアクセスするユーザが、本当にその情報を受信またはアクセスすることが認証されたユーザであることについてのセキュリティ上の問題がある。別の同様な問題は、その情報を送信しているユーザが本当にそのユーザがそうであると主張しているエンティティであるか否かに関連している。これらの問題は両方とも、１つの基礎となる概念−識別に基づいている。実際に、これらのシステムが１つのスタンドアローンのコンピュータを具現するものか、または分散環境内で相互接続された複数のコンピュータを具現するものであるかにかかわらず、現行のシステムでは、その上に実装されるすべてのリソースによってそのシステム全体にわたって使用することができる識別フレームワークが提供されていない。
【０００４】
本発明が開発されてきたのは、これらおよび他の考察に関連している。
【課題を解決するための手段】
【０００５】
本発明によれば、以上および他の問題は、コンピューティング環境内でプリンシパルを識別するためのアイデンティティシステム（ｉｄｅｎｔｉｔｙ  ｓｙｓｔｅｍ）によって解決される。このアイデンティティシステムは、このコンピューティング環境内でデジタルアクションを実施することが認証された特定のものにそれぞれ対応する複数のプリンシパルオブジェクト（ｐｒｉｎｃｉｐａｌ  ｏｂｊｅｃｔ）を使用して実装される。これらの各プリンシパルオブジェクトは、このコンピューティング環境内のコンピュータプロセスが使用してこのプリンシパルオブジェクトに対応するその特定のプリンシパルに少なくとも１つのリソースオブジェクト（ｒｅｓｏｕｒｃｅ  ｏｂｊｅｃｔ）を関連付けるように動作可能である。これらプリンシパルオブジェクトのうちの少なくとも１つは少なくとも２つのアイデンティティクレーム（ｉｄｅｎｔｉｔｙ  ｃｌａｉｍ）に関連付けられる。このプリンシパルに関連付けられる両方のアイデンティティクレームは、このオブジェクトをこの特定のプリンシパルと別々にまた一意に同じであるものと識別する。
【０００６】
一実施形態によれば、本発明は、このコンピュータ環境内でデジタルアクションを実施することが認証されたプリンシパルを識別する際にこのコンピュータプロセスが使用するためのデータ構造の形で実施される。このデータ構造は、特定の識別スキーム内のプリンシパルを一意に識別するバリューアサーション（ｖａｌｕｅ  ａｓｓｅｒｔｉｏｎ）と、このバリューアサーションに対応する特定の識別スキームを指し示すタイプアサーション（ｔｙｐｅ  ａｓｓｅｒｔｉｏｎ）とを含めて、様々なアサーションを含んでいる。さらに、このデータ構造は、このプリンシパルが、この特定の識別スキーム内でバリューアサーションによって一意に識別されるタイムフレームを指定するタイムリファレンスアサーション（ｔｉｍｅ  ｒｅｆｅｒｅｎｃｅ  ａｓｓｅｒｔｉｏｎ）を含んでいる。一実施形態においては、このデータ構造は、この上記のパラグラフにおいて要約されたこのアイデンティティシステムのアイデンティティクレームを表現する。
【０００７】
本発明の実施形態によれば、このデータ構造は、コンピュータプログラム製品やコンピュータ読取り可能媒体など製造業者の商品上に符号化される。このコンピュータプログラム製品は、コンピュータシステムによって読み取り可能であり、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化しているコンピュータストレージ媒体でもよい。このコンピュータプログラム製品はまた、コンピュータシステムによって読み取り可能であり、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化している、搬送波上で伝搬される信号であってもよい。
【０００８】
さらに他の実施形態によれば、本発明は、コンピューティング環境内でデジタルアクションを実施することが認証されたプリンシパルを識別するための方法を対象としている。最初に、プリンシパルオブジェクトが、このコンピューティング環境内でコンピュータプロセスが使用してこのプリンシパルが複数のリソースオブジェクトに関連付けられるものとして識別するために作成される。これらのリソースオブジェクトは、このコンピューティング環境内で保持される。次に、このプリンシパルオブジェクトは、特定の識別スキーム内でこのプリンシパルを一意に識別するアイデンティティクレームに関連付けられる。かかる一意の識別は、一意の識別ストリングをプリンシパルのグループに割り当てることによって達成され、ここで、このプリンシパルは、このグループの一部分である。
【０００９】
次いで、この方法は、複数のリソースオブジェクトを受信する工程を含んでいる。これらのリソースオブジェクトは、複数のアプリケーションプログラムに関連するリソースを表す。さらに、これら複数の各リソースオブジェクトは、各リソースオブジェクトをこのプリンシパルオブジェクトにリンクする宣言を含むアイデンティティリファレンス（ｉｄｅｎｔｉｔｙ  ｒｅｆｅｒｅｎｃｅ）に関連付けられる。次いで、この方法は、この関連するアイデンティティリファレンスに含まれるこれらの宣言リンクに基づいてこれらの受信された各リソースオブジェクトをこのプリンシパルに関連するものとして識別する。次いで、このコンピュータプロセスは、このプリンシパルが、これらの各リソースオブジェクトに関連するものとして識別されることを利用するタスクを実施する。
【００１０】
以上のパラグラフで説明された実施形態による方法は、コンピュータプログラム製品やコンピュータ読取り可能媒体など製造業者の製品上または製品中において符号化される命令に由来するコンピュータプロセスとして一実施形態に従って実装される。このコンピュータプログラム製品は、コンピュータシステムによって読み取り可能であり、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化しているコンピュータストレージ媒体でもよい。このコンピュータプログラム製品はまた、コンピュータシステムによって読み取り可能であり、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化している、搬送波上で伝搬される信号であってもよい。
【００１１】
このようにして、本発明を一般論として説明してきたが、次に添付図面を参照されたい。これらの図面は、必ずしもスケール変更して描く必要はない。
【発明を実施するための最良の形態】
【００１２】
次に、本発明の実施形態が示される添付図面を参照して本発明を以下にさらに十分に説明することにする。しかし、本発明は多くの異なる形態で実施することができ、本明細書中に記述される実施形態に限定されるものと解釈すべきではない。そうではなくて、これらの実施形態は、この開示が十分で完全となるように、当業者に本発明の範囲を十分に伝えるようにするために提供されている。同様な参照番号は、全体にわたって同様な要素を指している。
【００１３】
一般に、本発明は、コンピューティング環境内でプリンシパルを識別することに関する。本発明の代替実施形態によれば、このコンピューティング環境は、１式のスタンドアロンコンピュータシステム、またはインターネットやイントラネットなどの分散コンピュータネットワークを形成するために相互接続された複数のコンピュータシステムのどちらであってもよい。
【００１４】
本明細書中で定義されるように、プリンシパルとは、コンピューティング環境中で何らかのアクションを実施するどのような個人、個人のグループ、またはコンピュータモジュールであってもよい。例示的なプリンシパルには、オペレーティングシステム、オペレーティングシステム上に実装されたコンピュータアプリケーションプログラムおよびプロセス、個人、ならびに人々のグループ（例えば、世帯、会社、組織など）が含まれる。
【００１５】
本明細書中では、リソースは、電子ファイルを構成するような方法で構成される機械読み取り可能な形式のデータとして定義される。例示的なリソースには、制限なしに、ウェブページ、電子ドキュメント（電子メール、ワードプロセッシングドキュメント、スプレッドシート、図面、グラフィックスなど）、サウンドファイル、映画ファイル、またはコンピュータシステムによって読み取り可能なデータの他の任意部分が含まれる。本発明の実施形態を明確に示すために、本明細書中で示し説明する例示のリソースは、ワードプロセッシングドキュメントである。したがって、用語「プリンシパル」および「リソース」についての定義を組み合わせると、コンピューティング環境内のプリンシパルが実施することができるアクションの一例は、ワードプロセッシングドキュメントの作成、アクセス、改訂または削除になるはずである。本発明が同様に他のすべてのリソース形態に適用可能であることが、当業者には理解されよう。
【００１６】
これらの定義および例示の実施形態を考慮して、図１は、本発明の実施形態が実行されるコンピューティング環境１００の論理的な図を示すものである。このコンピューティング環境１００は、通信ネットワーク１５０によって相互接続されて「分散」コンピューティング環境を形成する複数のコンピュータシステム１４２を含んでいる。このコンピュータシステム１４２は、クライアントマシンまたはサーバマシンのどちらであってもよい。例えば、コンピュータシステム１４２のうちの少なくとも１台が複数のクライアントマシン間の情報交換を管理するために動作可能なサーバマシンであることが、本発明の実施形態内では企図されている。クライアントマシンはまた、通信ネットワーク１５０を手段として、このサーバマシンおよび他のクライアントマシン上のファイルにアクセスすることもできる。
【００１７】
この通信ネットワーク１５０は、当業者に知られているどのようなタイプのネットワークまたはそれに対する等価物でもよいことを理解されたい。一部の例示のネットワークには、制限なしに、インターネット、イントラネット、専用回線ネットワーク、またはコンピュータシステム１４２の間の直接通信リンクでさえ含まれる。この通信ネットワーク１５０は、この実施形態が必要とするファンクションに応じて任意数の通信技術を利用することができることを理解されたい。この通信ネットワーク１５０において使用が企図される特定の技術の実施例には、制限なしに、インターネットに対する地上波接続、セルラ接続、衛星接続、短波接続、およびマイクロ波接続と、モデムまたは他のインターフェースデバイスを使用した設備間の直接接続と、ローカルエリアネットワークやワイドエリアネットワークなど他の通信ネットワークを介した接続とが含まれる。これらまたは他の通信ネットワークの任意の組合せを、本発明の範囲内にとどめながら利用することができる。
【００１８】
本発明によれば、このコンピューティング環境１００中でプリンシパルを識別するためのシステムは、この環境１００中における少なくとも１つのコンピューティングシステム１４２上に実装される。命名の目的では、図１に示す様々な構造の集まりの形で実施されるこのシステムは、以降では「アイデンティティシステム」と称される。図示するために、このアイデンティティシステムは、図１に示され、１式のコンピュータシステム１４２’上で実装されているものとして以下で説明される。しかし、本明細書中で説明するこのアイデンティティシステムは、実際には、この環境１００中の他のコンピュータシステム１４２上で実装される。本発明の一実施形態によれば、このアイデンティティシステムは、すべてのシステム１４２上で実装される。あるいは、このアイデンティティシステムは、この環境１００中のすべてのシステム１４２よりも少ないシステム上で実装することもできる。
【００１９】
このアイデンティティシステムは、本明細書中で「プリンシパルオブジェクト」１１０と称されるプリンシパルの電子表現を含んでいる。「プリンシパルオブジェクト」以外のこれらの電子表現を表すために使用することができる他の名前は、「アイデンティティ情報オブジェクト（ｉｄｅｎｔｉｔｙ  ｉｎｆｏｒｍａｔｉｏｎ  ｏｂｊｅｃｔ）」および「アイデンティティ情報ドキュメント（ｉｄｅｎｔｉｔｙ  ｉｎｆｏｒｍａｔｉｏｎ  ｄｏｃｕｍｅｎｔ）」である。このプリンシパルオブジェクト１１０は、各オブジェクト１１０が対応するこのプリンシパルを一意に識別するアイデンティティクレーム１３４と、このプリンシパルをさらに記述するプロパティデータオブジェクト（ｐｒｏｐｅｒｔｙ  ｄａｔａ  ｏｂｊｅｃｔ）１３８に関連している。このアイデンティティクレーム１３４とプロパティデータオブジェクト１３８の間の違いは、プロパティデータオブジェクト１３８は、この関連するプリンシパルを一意に識別しないが、その代わりにこのプリンシパルに関連する特徴と他のプロパティを簡単に記述する情報を含んでいることである。
【００２０】
アイデンティティクレーム１３４は、このクレーム１３４が関連するプリンシパルオブジェクト１１０を一意に識別する（本明細書中で「アサーション」と呼んでいる）情報を含むデータ構造の形で実施される。アイデンティティクレーム１３４を形成するために使用することができる例示のアサーションには、それだけには限定されないが、電子メールアドレス、電話番号（地上通信線およびモバイル）、クレジットカードアカウント番号、ソーシャルセキュリティ番号、運転免許番号などが含まれる。プリンシパルは、複数のアサーション（すなわち、ほとんどの人々が、少なくとも電子メールアドレスおよび電話番号をもつ）を使用して一意に識別することができるので、このアイデンティティシステム中の各プリンシパルオブジェクト１１０は、複数のアイデンティティクレーム１３４に関連付けられるように動作可能である。アイデンティティクレーム１３４からのプロパティデータオブジェクト１３８の違いを簡単に際立たせるために、個人であるプリンシパルについての例示のプロパティデータオブジェクト１３８は、その個人の年齢、性別、身長および体重に関連したデータを含んでいる。この情報はどの個人に対しても一意的ではないので、このタイプの情報は、アイデンティティクレーム１３４のためのアサーションとはなり得ない。
【００２１】
プリンシパルオブジェクト１１０、アイデンティティクレーム１３４、およびプロパティデータオブジェクト１３８のほかに、このアイデンティティシステムは、アイデンティティリファレンス１３６も含んでいる。アイデンティティリファレンス１３６は、このコンピューティング環境１００中のリソース１０４を関連するプリンシパルにリンクするアイデンティティクレーム１３４に対するリファレンスである。例えば、ワードプロセッシングドキュメントに関連付けられることになるプリンシパルの一例は、著者である。ワードプロセッシングドキュメントについての他の例示のアイデンティティリファレンス１３６は、このドキュメントを閲覧および／または改訂することが認可されたプリンシパルに関連付けられたアイデンティティクレーム１３４にリンクするリファレンス１３６のこともある。アイデンティティクレーム１３４とアイデンティティリファレンス１３６の間の関係と違いについては、図３〜５に関連して以下でより詳細に説明される。
【００２２】
一実施形態においては、このプリンシパルオブジェクト１１０、アイデンティティクレーム１３４、アイデンティティリファレンス１３６、およびプロパティデータオブジェクト１３８は、ＣＯＭ（Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌコンポーネントオブジェクトモデル）に準拠したオブジェクトである。したがって、このコンピューティング環境１００中の任意のコンピュータシステム１４２のプロセスおよび他のオブジェクトは、各オブジェクト１１０に関連するＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅアプリケーションプログラムインターフェース）１２８を手段としてこれらのオブジェクト１１０と通信可能に対話する。当業者に知られているように、ＡＰＩ１２８は、オブジェクト（例えば、１１０、１３４、１３６および１３８）のプロパティおよびメソッド（データおよびファンクションメンバ）をコンピューティング環境（例えば、１００）内のプロセスおよび他のオブジェクトに対して公開する。
【００２３】
このアイデンティティリファレンス１３６、アイデンティティクレーム１３４、およびプロパティデータオブジェクト１３８は、他のオブジェクトによって囲まれているので、これらの囲まれたオブジェクトはそれぞれ、このコンピューティング環境１００内のこの囲んでいるオブジェクト（すなわち、このアイデンティティクレーム１３４についてのプリンシパルオブジェクト１１０と、このアイデンティティリファレンス１３６についてのプロパティデータオブジェクト１３８およびリソースオブジェクト１０４）に対してのみ公開され他のオブジェクトに対しては公開されないＡＰＩ１２８を含んでいる。したがって、アイデンティティクレーム１３４またはプロパティデータオブジェクト１３８に対してアクセスを要求する、コンピューティング環境１００内のオブジェクトまたはプロセスについては、オブジェクトまたはプロセスは、このオブジェクト１１０についてのＡＰＩ１２８を介して関連するプリンシパルオブジェクト１１０に対してかかる要求を発行し、これが、次にどちらが要求されたとしても、このアイデンティティクレーム１３４またはプロパティデータオブジェクト１３８についてのＡＰＩ１２８を介してこの要求されたデータにアクセスする。
【００２４】
コンピュータシステム１４２上のプロセスまたはモジュールがこのプリンシパルオブジェクト１１０を利用し、したがってその上のオブジェクト（例えばアイデンティティクレーム１３４およびプロパティデータ１３８）上に含まれるデータを利用するために、これらのオブジェクトは、ＣＯＭに準拠した他の任意のオブジェクトと同様に、最初にインスタンス化される（ｉｎｓｔａｎｔｉａｔｅｄ）必要がある。このオブジェクト１１０を形成するデータがメモリにロードされ、このアイデンティティクレーム１３４のデータおよびプロパティデータ１３８、ならびにこのオブジェクト１１０の任意のファンクションメンバ（すなわち、メソッド）が他のオブジェクトにとって使用可能になる場合に、プリンシパルオブジェクト１１０は、「インスタンス化されている」と言われる。この専門用語は、プリンシパルオブジェクト１１０と、このオブジェクト１１０をインスタンス化するためにメモリに読み込む必要がある生データとを区別する際に有用である。しかし、説明する目的、およびこの明細書の全体にわたって明確にするために、図３〜７に関連して提供される本発明の様々な実施形態の記述では、オブジェクト（例えば、プリンシパルオブジェクト１１０、アイデンティティクレーム１３４、アイデンティティリファレンス１３６、およびプロパティデータオブジェクト１３８）の生の形式上で実施されるプロセスと、オブジェクトのインスタンス化された形式上で実施されるプロセスとの間で区別が行われない。むしろこれら両方の形式は、単に用語「オブジェクト」の形で実施される。それにもかかわらず、図１では、このコンピュータシステム１４２’上で、このプリンシパルオブジェクト１１０を形成するために使用される生データである「プリンシパルデータ（ｐｒｉｎｃｉｐａｌ  ｄａｔａ）」をこのデータストア１０８内部に含め、ならびにアイデンティティクレーム１３４およびプロパティデータ１３８を含めることにより、この違いが示されている。
【００２５】
図２は、本発明の実施形態を実装することができる適切なコンピューティングシステム２００の一実施例を示すものである。したがって、このシステム２００は、この分散コンピューティング環境１００中のコンピュータシステム１４２として機能するように使用することができるシステムを表している。その最も基本的な構成においては、システム２００は、少なくとも１つの処理装置２０２およびメモリ２０４を含んでいる。コンピューティングデバイスの厳密な構成およびタイプに応じて、メモリ２０４は、（ＲＡＭなどのような）揮発性、（ＲＯＭやフラッシュメモリなどのような）不揮発性、またはこれら２つの何らかの組合せでもよい。この最も基本的な構成は、図２に破線２０６によって示されている。
【００２６】
メモリ２０４に加えて、このシステム２００は、少なくとも１つの他の形式のコンピュータ読取り可能媒体を含むことができる。「コンピュータプログラム製品」とも呼ばれるコンピュータ読取り可能媒体は、このシステム２００がアクセスすることができる使用可能な任意の媒体とすることができる。一例として、限定するものではないが、コンピュータ読取り可能媒体は、コンピュータストレージ媒体および通信媒体を含むこともある。
【００２７】
コンピュータストレージ媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、他のデータなどの情報を記憶するための任意の方法または技術の形で実装される揮発性および不揮発性の、着脱可能および固定の媒体を含んでいる。メモリ２０４、着脱可能なストレージ２０８、および固定のストレージ２１０は、すべてコンピュータストレージ媒体の実施例である。コンピュータストレージ媒体には、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは所望の情報を記憶するために使用することができシステム２００によってアクセスすることができる他の任意の媒体が含まれる。かかる任意のコンピュータストレージ媒体は、システム２００の一部分であってもよい。
【００２８】
例示のコンピューティングシステム２００はまた、このシステムが他のデバイスと通信できるようにする１つまたは複数の通信接続２１２を含むこともできる。この通信接続２１２は、通信媒体の一実施例である。通信媒体は一般に、搬送波や他の搬送メカニズムなどの変調されたデータ信号の形のコンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータを実施し、任意の情報配信媒体を含んでいる。この用語「変調されたデータ信号」は、その１つまたは複数の特性が、その信号中の情報を符号化するようにして設定または変更された信号を意味する。一例として、限定するものではないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体とが含まれる。本明細書中で使用される用語、コンピュータ読取り可能媒体は、ストレージ媒体も通信媒体も含んでいる。
【００２９】
一実施形態によれば、このシステム２００は、入力デバイス２１４および／または出力デバイス２１６などの周辺デバイスを含んでいる。例示の入力デバイス２１４には、限定するものではないが、キーボード、コンピュータマウス、ペンまたはスタイラス、音声入力デバイス、触覚入力デバイスなどが含まれる。例示の出力デバイス２１６には、限定するものではないが、ディスプレイ、スピーカ、およびプリンタが含まれる。これらの「周辺デバイス」は、当技術分野においてよく知られており、したがって、本明細書中では詳細に説明していない。
【００３０】
このコンピューティング環境を考慮して、本発明の実施形態は、本発明の様々な実施形態を実施するプロセスを実装するように実施される論理オペレーションに関して説明されている。これらの論理オペレーションは、（１）コンピューティングシステム上で実行されるコンピュータ実装されたステップまたはプログラムモジュールのシーケンスとして、および／または（２）このコンピューティングシステム内の相互接続されたマシンロジック回路または回路モジュールとして実装される。この実装は、本発明を実装するコンピューティングシステムの性能要件に応じた選択の問題である。したがって、本明細書中で説明される本発明の実施形態を構成する論理オペレーションは、オペレーション、構造デバイス、動作またはモジュールと様々に呼ばれる。これらのオペレーション、構造デバイス、動作およびモジュールは、添付の特許請求の範囲内に記載される本発明の趣旨および範囲を逸脱することなく、ソフトウェアの形、ファームウェアの形、特定目的のデジタルロジックの形、およびこれらの任意の組合せで実装することができることが当業者には理解されよう。
【００３１】
次に図３を参照すると、アイデンティティシステム３００内のアイデンティティリファレンス１３６とアイデンティティクレーム１３４の間の関係が、本発明の一実施形態に従って論理的に示されている。より詳細には、図３は、複数のアイデンティティリファレンス１３６ａ、１３６ｂおよび１３６ｃの１つのアイデンティティクレーム１３４ａに対するリンク、ならびに１つのアイデンティティリファレンス１３６ｄの１つのアイデンティティクレーム１３４ｂに対するリンクを示すものである。図３は、アイデンティティリファレンス１３６とアイデンティティクレーム１３４の間の関係の高レベルの図であり、任意数のアイデンティティリファレンス１３６を任意数のアイデンティティクレーム１３４ａおよび１３４ｂのいずれかにリンクできることを理解されたい。
【００３２】
一実施形態においては、アイデンティティシステム３００を構成するアイデンティティリファレンス１３６およびアイデンティティクレーム１３４が、この分散コンピューティング環境内の複数のコンピュータ上で実装される。例示の、アイデンティティリファレンス（例えば、１３６ｂ）は、第１のコンピュータシステム１４２上に記憶されるリソースに関連付けることができるのに対して、このリファレンス１３６ｂがリンクされる対象のアイデンティティクレーム１３４ａは、第２のコンピュータシステム１４２上に保持されるプリンシパルオブジェクト１１０中に含まれている。あるいは、このアイデンティティシステム３００を構成するアイデンティティリファレンス１３６およびアイデンティティクレーム１３４は、１つのスタンドアロンコンピュータシステム１４２上に記憶される。アイデンティティリファレンス１３６とアイデンティティクレーム１３４の間のリンクの確立については、図４および５に関連して詳細に説明しており、したがって図３を説明する間には反復はしていない。その代わりに、これらのオブジェクトの間の論理的な関係についてだけ説明する。
【００３３】
この１つのアイデンティティクレーム１３４ａにリンクされる各アイデンティティリファレンス１３６ａ、１３６ｂおよび１３６ｃは、異なるリソースに関連付けられる。例えば、アイデンティティリファレンス１３６ａは、ワードプロセッシングドキュメントに関連付けることができ、アイデンティティリファレンス１３６ｂは、スプレッドシートドキュメントに関連付けることができ、アイデンティティリファレンス１３６ｃは、電子メールドキュメントに関連付けることができる。これらの各アイデンティティリファレンス（１３６ａ、１３６ｂおよび１３６ｃ）は、同じアイデンティティクレーム１３４ａにリンクされ、したがってこのアイデンティティクレーム１３４ａに対応するプリンシパルに関連するものとしてこれらの各リソースを識別する。このプリンシパルは、例えば、これらの各ドキュメントを執筆した個人とすることができる。別の例示のプリンシパルとしては、この執筆する個人を雇用している組織でもよい。同様に、このアイデンティティリファレンス１３６ｄは、このリファレンス１３６ｄが関連するリソースをこのアイデンティティクレーム１３４ｂに対してリンクする。したがって、このリソースは、このクレーム１３４ｂに対応するプリンシパルに関連するものとしてこのアイデンティティシステム３００によって識別される。
【００３４】
次に図４および５を参照すると、アイデンティティクレーム１３４およびアイデンティティリファレンス１３６についての例示のデータ構造が、それぞれ本発明の一実施形態に従って示されている。一実施形態によれば、これらの各データ構造は、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ拡張マークアップ言語）ベースのソフトウェアモジュールであるが、他のプログラミング言語を使用してこれらのデータ構造を作成することもでき、これらの他の言語も、本発明の範囲内に含まれるものと企図されている。具体的に図４を参照すると、このアイデンティティクレーム１３４は、１つのプリンシパルを一括して一意に識別する様々なアサーション４０２〜４１４を含んでいる。前述のように、このプリンシパルは、コンピュータエンティティまたはデバイス、コンピュータエンティティまたはデバイスのグループ、個人、あるいは個人のグループのこともある。しかし、本発明の実施形態について例示するために、このアイデンティティクレーム１３４は、以下では１人の個人を識別するものとして説明される。
【００３５】
このアイデンティティクレーム１３４についてのデータ構造は、アイデンティティクレーム１３４であるものとしてその構造を識別するタイプ宣言４００を含んでいる。したがって、このタイプ宣言４００は、「ＩｄｅｎｔｉｔｙＣｌａｉｍ」というフレーズで表現される。このデータ構造は、タイプアサーション４０２およびバリューアサーション４０４をさらに含んでいる。オプションとしてのアサーションは、ディスプレイアサーション４０６、ウェブサイトアサーション４０８、開始タイムフレームアサーション４１０、終了タイムフレームアサーション４１２、および署名アサーション４１４を含んでいる。
【００３６】
このタイプアサーション４０２は、このアイデンティティクレーム１３４に関連付けられることになる一意の識別子のタイプを示している。例示のタイプアサーション４０２には、制限なしに、以下のもの、すなわちその一意の識別子が電話番号であることを示す「ｔｅｌ」または「ｆａｘ」と、その一意の識別子が電子メールアドレスであることを示す「ｍａｉｌｔｏ」と、その一意の識別子がウェブアドレスであることを示す「ｈｔｔｐ」と、その一意の識別子がセキュリティ識別子であることを示す「ｓｉｄ」と、その一意の識別子がソーシャルセキュリティ番号であることを示す「ｓｓｎ」と、その一意の識別子がクレジットカードアカウント番号であることを示す「ｃｃ＃」が含まれる。他の多くのタイプの一意のアサーションが、本発明の範囲内に含まれるものと企図されるが、前記文章中にはリストアップされていない。実際に、アサーションが、１つの、しかもたった１つのプリンシパルに特有の値を指定するタイプのものである限りは、このアサーションは、タイプアサーション４０２として機能するように動作可能である。
【００３７】
このバリューアサーション４０４は、タイプアサーション４０２に基づいており、このプリンシパルを一意に識別するキャラクタシーケンス（アルファニューメリックおよび／またはシンボル）を示す。例示のバリューアサーション４０４には、制限なしに、以下のもの、すなわち電話番号（例えば、００１８００４５６８４９４）、電子メールアドレス（例えば、ｔｅｍｐｕｓｅｒ＠ｓａｍｐｌｅｓｅｒｖｅｒ．ｃｏｍ）、ウェブアドレス（例えば、ｗｗｗ．ｔｅｍｐｃｏｍａｎｙ．ｃｏｍ）、ソーシャルセキュリティ番号（例えば、４２７８９４４７８）、およびクレジットカードアカウント番号（例えば、４４１７３５４３９８４７８４７４）が含まれる。プリンシパルのアイデンティティは、バリューアサーション４０６に結び付けられる。バリューアサーション４０６は、個人またはデバイスを、あるいはその代わりに個人またはデバイスのグループを識別できることを理解されたい。例えば、電話番号は、個人、世帯、または会社を識別することができる。この電話番号が世帯または会社に属する場合、この識別されたプリンシパルは、グループを識別するのに対して、この電話番号が個人に属する場合には、この識別されたプリンシパルは、個人となる。
【００３８】
ある種のタイプアサーション４０２は、異なるタイムフレーム中に関連するバリューアサーション４０４が異なるプリンシパルを一意に識別できるというタイプのものであるので、アイデンティティクレーム１３４についてのデータ構造は、開始タイムフレームアサーション４１０および終了タイムフレームアサーション４１２をオプションとして含んでいる。例えば、これらのアサーション４１０および４１２は、これらのタイプが時間と共に変化する一意の識別子タイプを示すので、このタイプアサーションが「ｔｅｌ」、「ｆａｘ」、または「ｍａｉｌｔｏ」というタイプのものであるときに使用される。
【００３９】
この開始タイムフレームアサーション４１０は、バリューアサーション４０４が、一意に識別するプリンシパルに関連付けられるようになる日付を指定する。この終了タイムフレームアサーション４１２は、この関連付けが終了された日付を指定する。例えば、１タイムフレームにおいて、某氏（Ｊｏｈｎ  Ｄｏｅ）は、電話番号００１８００４７６３８４９によって一意に識別されることがあるのに対して、別のタイムフレームにおいては、代わりにＪａｎｅ  Ｄｏｅがこの電話番号によって一意に識別されることもある。この開始タイムフレームアサーション４１０および終了タイムフレームアサーション４１２は、これらの各タイムフレームについての開始日付および終了日付を指定し、それによってＪｏｈｎ  ＤｏｅおよびＪａｎｅ  Ｄｏｅに対するこれらのアイデンティティクレーム１３４の一意の識別が完了される。終了タイムフレームアサーション４１２は提供されていないが開始タイムフレームアサーション４１２が提供されている場合には、このバリューアサーション４０４とそのプリンシパルの間の関連付けは、依然として継続していることを理解されたい。
【００４０】
別のオプションとしてのアサーションは、ディスプレイアサーション４０６である。このディスプレイアサーション４０６は、バリューアサーション４０４に基づいた、また人間にとって認識可能な形式のアルファニューメリックキャラクタのストリングである。例えば、このディスプレイアサーション４０６は、バリューアサーション４０４が電子メールアドレスである場合にこの個人の電子メールアドレスに関連して表示される個人の名前とすることができる。さらに別のオプションとしてのアサーションは、ウェブサイトアサーション４０８であり、これは、プリンシパルに関連したさらなる情報を見出すことができるウェブアドレスを示す。別のオプションとしてのアサーションは、署名アサーション４１４であり、これはプリンシパルの署名のデジタル表現を示す。
【００４１】
前述の各アサーションは、これらオプションとしてのアサーションを含めて、このアイデンティティクレーム１３４を特定のプリンシパルに一意にリンクするために使用される。このようなものが、アイデンティティクレーム１３４の意図である。他方、アイデンティティリファレンス１３６は、リソース（例えば、電子ドキュメント）をプリンシパルに関連付ける際に使用するためのものである。以上で指摘したように、これは、アイデンティティリファレンス１３６内の特定のアイデンティティクレーム１３４を参照することによって実現される。次に図５を参照すると、アイデンティティリファレンス１３６内で行われる宣言を示すデータ構造が、本発明の一実施形態に従って示されている。このアイデンティティリファレンス１３６についてのデータ構造は、アイデンティティリファレンス１３６であるものとしてこの構造を識別するタイプ宣言５００を含んでいる。したがって、このタイプ宣言５００は、「ＩｄｅｎｔｉｔｙＲｅｆｅｒｅｎｃｅ」というフレーズで表される。
【００４２】
特定のアイデンティティクレーム１３４を指定するために、このアイデンティティリファレンス１３６は、参照されているアイデンティティクレーム１３４に対応するタイプアサーション５０２およびバリューアサーション５０４を含んでいる。したがって、このリソースの開発業者は、このリソースの開発中に適切なアイデンティティクレーム１３４に対するリファレンスを確立する。リファレンス日付宣言５０６は、このアイデンティティリファレンス１３６についてのその構造内にも含まれ、このアイデンティティリファレンス１３６に関連するリソースが、該当するアイデンティティクレーム１３４に有効にリンクされる日付を指し示す。
【００４３】
コンピュータシステム１４２のオペレーティングシステムが、アイデンティティリファレンス１３６が関連付けられるリソースを活性化するときに、このオペレーティングシステムは、このアイデンティティリファレンス１３６をインスタンス化してこの適切なプリンシパルオブジェクト１１０のメソッドをインスタンス化し呼び出すように指示される。この適切なプリンシパルオブジェクト１１０は、どのアイデンティティクレーム１３４がこのアイデンティティリファレンス１３６によって参照されるかに基づいて決定される。この適切なプリンシパルオブジェクト１１０、したがってこの対応するアイデンティティクレーム１３４が、インスタンス化された後に、このリソースオブジェクト１０４上のメソッドは、このプリンシパルオブジェクト１１０に対応するこのプリンシパルにそのリソースを関連付ける、このプリンシパルオブジェクト１１０上のメソッドを呼び出す。次いで、このオペレーティングシステムは、このプリンシパルオブジェクト１１０に対するリソースの識別を利用する、このリソース上のタスクを実施する。例示のタスクには、制限なしに、このリソースを閲覧および／または改訂するための認可、このリソースに関連したプリンシパルの特徴およびプロパティの表示、ならびにこのリソースを介して通信媒体をこのプリンシパルに提供することが含まれる。
【００４４】
次に図６を参照すると、リソースとプリンシパルオブジェクト１１０の間の関連付けを確立するためのプロセス（以下では、「確立プロセス」）６００が、本発明の一実施形態に従って示されている。この確立プロセス６００は、開始オペレーション６０２で開始され、終了オペレーション６１８で終了されるオペレーションのフロー（「オペレーションフロー」）を使用して実施される。この開始オペレーション６０２は、リソースがコンピュータシステム１４２上のある方法でアクセスされているときに開始される。開始オペレーション６０２から、このオペレーションフローは、確立プロセス６００中へとこのアクセスされたリソースを受信し、このリソースに関連するアイデンティティリファレンス１３６を位置決めする受信オペレーション６０４へと進む。この用語「受信する」は、一般的な意味で使用されて、このコンピュータシステム１４２のオペレーティングシステムによるこのリソースのアクセスを意味することを理解されたい。したがって、リソースの受信は、別のコンピュータシステム１４２からそのリソースの受信だけでなく、このリソースにアクセスするコンピュータシステム１４２にローカルなストレージからのこのリソースの受信も包含している。実際に、後者の場合には、このコンピュータシステム１４２のユーザは、このリソースが活性化されるように要求している。この受信オペレーション６０４から、このオペレーションフローは、第１のクエリオペレーション６０６へと進む。
【００４５】
この第１のクエリオペレーション６０６は、この活性化されたリソースに、この見出されたアイデンティティリファレンス１３６にマッピングするアイデンティティクレーム１３４を含むプリンシパルオブジェクト１１０が付随するか否かを検出する。付随する場合には、このプリンシパルオブジェクト１１０は、このリソースに対して「ピギーバックされる（ｐｉｇｇｙ−ｂａｃｋｅｄ）」と言われ、このオペレーションフローは、セーブオペレーション６０７へと進む。この場合には、このアイデンティティリファレンス１３６とその関連するアイデンティティクレーム１３４との間のリンクは、この関連するアイデンティティクレーム１３４を有するプリンシパルオブジェクト１１０に対応するプリンシパルで識別されるものとしてこのリソースを関連付ける。この識別関連付けをこのオペレーティングシステムが使用してある種の識別に関連したタスクが実施される。さらにこのセーブオペレーション６０７は、このアイデンティティクレーム１３４にリンクするこのアイデンティティリファレンス１３６と他のアイデンティティリファレンス１３６との間のリンクを実装する際に将来的に使用するためにこのプリンシパルオブジェクト１１０をこのデータストア１０８に保存する。このセーブオペレーション６０７から、このオペレーションフローは、その終了オペレーション６１８で終了する。
【００４６】
他方、この第１のクエリオペレーション６０６がこの受信されたリソースにピギーバックされたプリンシパルオブジェクト１１０を検出しない場合、このオペレーションフローは、アクセスデータストアオペレーション６０８へと渡される。このアクセスデータストアオペレーション６０８は、この位置が見出されたアイデンティティリファレンス１３６において指定されるタイプアサーション４０２およびバリューアサーション４０４を使用して、関連するアイデンティティクレーム１３４を含むプリンシパルオブジェクト１１０がすでにデータストア１０８に記憶されているか否かを調べる。このアクセスデータストアオペレーション６０８から、このオペレーションフローは、第２のクエリオペレーション６１０へと進む。
【００４７】
この第２のクエリオペレーション６１０は、このアクセスデータストアオペレーション６０８が、この位置が突き止められたアイデンティティリファレンス１３６において指定されたこのタイプアサーション５０２およびバリューアサーション５０４を有するアイデンティティクレーム１３４を含むプリンシパルオブジェクト１１０を見出したか否かを照会する。見出した場合には、このオペレーションフローは、リンクオペレーション６１２へと進む。このリンクオペレーション６１２は、このアイデンティティリファレンス１３６をそれに関連するアイデンティティクレーム１３４に対してリンクし、それによってこのオペレーティングシステムがこのリソース上の識別に関連したタスクを実施できるように、このプリンシパルオブジェクト１１０に対応するプリンシパルにこのリソースが関連付けられる。
【００４８】
他方、この第２のクエリオペレーション６１０が、この位置が突き止められたアイデンティティリファレンス１３６において指定されたタイプアサーション５０２およびバリューアサーション５０４を有するアイデンティティクレーム１３４を含むプリンシパルオブジェクト１１０の位置を突き止められない場合には、このオペレーションフローは、作成ファントムオブジェクトオペレーション６１４へと進む。このアイデンティティシステムにおいて現在、アイデンティティリファレンス１３６がリンクすることができるアイデンティティクレーム１３４がないので、この作成ファントムオブジェクトオペレーション６１４は、ファントムプリンシパルオブジェクトを作成する。このアイデンティティシステムがこの全体の分散コンピューティング環境１００に及ぶ一実施形態においては、このデータストア１０８は、この環境１００中のすべてのコンピュータシステム１４２に対して動作可能である。したがって、特定のアイデンティティリファレンス１３６に関連するアイデンティティクレーム１３４の位置を突き止めることに失敗することは、このクレーム１３４がこの分散環境１００の一部分を形成しないシステム上で保持されることを意味する。このファントムプリンシパルオブジェクトは、このアイデンティティリファレンス１３６において指定されるタイプアサーション５０２およびバリューアサーション５０４を有するアイデンティティクレーム１３４を含むように構築される。作成された後に、このオペレーションフローは、第２のセーブオペレーション６１６へと進む。
【００４９】
この第２のセーブオペレーション６１６は、まずこのアイデンティティリファレンス１３６をファントムプリンシパルオブジェクトにリンクし、それによってこのオペレーティングシステムがこのリソース上で識別に関連したタスクを実施することができるようにファントムプリンシパルオブジェクトに対応するプリンシパルにこのリソースが関連付けられる。このファントムプリンシパルオブジェクトが記憶されるデータストア１０８は、この分散コンピューティング環境内の他のコンピュータシステム１４２によってリモートにアクセスすることができることを理解されたい。したがって、この第２のクエリオペレーション６１０をさらに反復することにより、このデータストア１０８に対するリモート接続上でこのファントムプリンシパルオブジェクトの位置を突き止め、検索することができる。あるいは、この環境がスタンドアロンコンピュータシステムである場合には、このファントムプリンシパルオブジェクトは、ローカルストレージから位置を突き止められ検索される。
【００５０】
次に、このオブジェクトが、このファントムオブジェクトに関連するものとしてこのリソースおよび他のリソースを識別するために将来において使用できるように、この第２のセーブオペレーション６１６は、このファントムプリンシパルオブジェクトをこのデータストア１０８に保存する。また、このファントムオブジェクト中に含まれる情報に補足しまたは追加するより多くの情報が受信される場合、この情報をこのファントムオブジェクト中にマージしてその後により完全なプリンシパルオブジェクトを構築することができる。あるいは、この新しい情報がプリンシパルオブジェクト１１０を実施する場合には、このファントムオブジェクトは、この新しい情報で置き換えられる。この第２のセーブオペレーション６１６から、このオペレーションフローは、終了オペレーション６１８で終了する。
【００５１】
図７は、受信したプリンシパルオブジェクト１１０が、この新しいプリンシパルオブジェクト１１０が受信される時刻にこのデータストア１０８に記憶される別のプリンシパルオブジェクト１１０と競合するか否かを検出するプロセス７００を示している。かかる競合は、本明細書中では、「フォールト（ｆａｕｌｔ）」と呼ばれ、受信されたプリンシパルオブジェクト１１０が、このデータストア１０８にすでに記憶されているプリンシパルオブジェクト１１０中に含まれるアイデンティティクレーム１３４中で指定されるアサーションと同一のアサーションを指定するアイデンティティクレーム１３４を含んでいる状況を意味する。この「検出」プロセス７００は、開始オペレーション７００を用いて開始され終了オペレーション７２０を用いて終了されるオペレーションフローを使用して実施される。
【００５２】
開始オペレーション７０２は、コンピューティング環境１００において受信されるプリンシパルオブジェクト１１０に応答して開始される。この開始オペレーション７０２からこのオペレーションフローは、受信オペレーション７０４へと進み、この受信オペレーションは、このプリンシパルオブジェクトをこの検出プロセス７００中へと受信する。このプリンシパルオブジェクト１１０は、少なくとも１つのアイデンティティクレーム１３４を含んでおり、オプションとしてプロパティデータオブジェクト（群）１３８を含んでいる。この検出プロセス７００を簡単に説明するために、この受信されたプリンシパルオブジェクト１１０は、１つのアイデンティティクレーム１３４しか有さないものとして説明される。このプリンシパルオブジェクト１１０が複数のアイデンティティクレーム１３４を含むこともできることを理解されたい。複数のアイデンティティクレーム１３４がこの受信したプリンシパルオブジェクト１１０に付随する状況においては、このアクセスオペレーション７０６およびこのフォールトオペレーション７０８（共に以下で説明される）が、これら複数の各アイデンティティクレーム１３４について実施すべきであることを理解されたい。
【００５３】
図６の流れ図と同様に、用語「受信する」は、一般的な意味で使用されていて、このコンピュータシステム１４２のオペレーティングシステムによる任意のプリンシパルオブジェクトの受信を意味する。プリンシパルオブジェクト１１０の受信をもたらす例示のプロセスには、それだけには限定されないが、ユーザによるプリンシパルオブジェクト１１０の入力と、コンピュータシステム１４２間の通信ネットワーク１５０を横切るプリンシパルオブジェクト１１０の伝送とが含まれる。例えば、このプリンシパルオブジェクト１１０は、送信コンピュータシステム１４２から受信コンピュータシステム１４２へと送信されるリソースにピギーバックされていてもよい。このプリンシパルオブジェクト１１０が検出プロセス７０４へと受信された後に、このオペレーションフローは、アクセスオペレーション７０６へと進む。
【００５４】
このアクセスオペレーション７０６は、アイデンティティクレーム１３４中で指定されるタイプアサーション４０２およびバリューアサーション４０４を使用してアイデンティティクレーム１３４を含むプリンシパルオブジェクト１１０がすでにデータストア１０８に記憶されているか否かを調べる。アクセスオペレーション７０６から、このオペレーションフローは、第１のクエリオペレーション７０８へと進む。この第１のクエリオペレーション７０８は、このアクセスオペレーション７０６が、このアクセスオペレーション７０６により使用されてこのデータストア１０８中のルックアップを実施するこのアイデンティティクレーム１３４を含むプリンシパルオブジェクト１１０を見出したか否かを照会する。一実施形態においては、この検査は、タイプアサーション４０２およびバリューアサーション４０４に基づいて、またオプションとして、この受信されたプリンシパルオブジェクト１１０のアイデンティティクレーム１３４中で指定されるタイムフレームアサーション４１０および４１２に基づいて実施される。あるいは、他のアサーション（すなわち、署名アサーション４１４またはウェブページアサーション４０８）をこの検査において使用することができる。この評価されたアサーションを有するプリンシパルオブジェクト１１０がデータストア１０８中で見出されない場合には、フォールトは存在せず、このオペレーションフローは、セーブオペレーション７１０へと進む。このセーブオペレーション７１０は、このプリンシパルオブジェクトに含まれるアイデンティティクレーム１３４にリンクするアイデンティティリファレンス１３６に関連するリソースを識別する際に将来使用するためにこの受信されたプリンシパルオブジェクト１１０をこのデータストア１０８に保存する。このセーブオペレーション７１０から、このオペレーションフローは、終了オペレーション７２０で終了する。
【００５５】
この第１のクエリオペレーション７０８がこのアクセスオペレーション７０８によって評価されるものと同じアサーションを指定するアイデンティティクレーム１３４を含むプリンシパルオブジェクト１１０を見出す場合には、アイデンティティフォールトが検出され、このオペレーションフローは、第２のクエリオペレーション７１２へと進む。フォールトがこのアイデンティティシステム上で作成され得る多数の方法がある。かかる１つの方法は、ユーザが、このアイデンティティシステム上にすでに存在しているプリンシパルオブジェクト１１０を追加しようとするか否かである。フォールトが作成され得る第２の方法は、２つ以上のシステムがこの同じプリンシパルに対応するプリンシパルオブジェクトを含むときであり、個人またはアプリケーションがこれらのオブジェクトをこの分散環境１００へと伝送するので、これらのオブジェクトは、最終的にこの同じアイデンティティシステム上にロードされてしまう。かかる第３の方法は、攻撃者が偽オブジェクトをこのアイデンティティシステム中に注入しようとするか否かである。
【００５６】
この第２のクエリオペレーション７１２は、このフォールトとなるプリンシパルオブジェクト１１０、すなわちこのデータストア１０８中で見出されたものを検査してこのオブジェクト１１０が、図６のこの確立プロセス６００によって作成されるファントムオブジェクトなどのファントムオブジェクトであるか否かを判定する。このオブジェクトがファントムオブジェクトである場合、このオペレーションフローは、削除オペレーション７１４へと進む。この削除オペレーション７１４は、この受信されたプリンシパルオブジェクト１１０をこのセーブオペレーション７１０によってそのデータストアに保存できるようにしてこのファントムオブジェクトを削除する。したがって、この削除オペレーション７１４からこのオペレーションフローは、このセーブオペレーション７１０へと進み、以前に説明したように続行される。
【００５７】
他方、このフォールトとなるプリンシパルオブジェクト１１０がファントムオブジェクトでない場合には、このオペレーションフローは、マージオペレーション７１６へと進む。このマージオペレーション７１６は、この受信したプリンシパルオブジェクト１１０に関連するすべてのデータをこのフォールトとなるプリンシパルオブジェクト１１０中にマージする。例えば、この受信したプリンシパルオブジェクト１１０がディスプレイアサーション４０６を含んでいるが、このフォールトとなるプリンシパルオブジェクト１１０は含んでいない場合、このディスプレイアサーション４０６はこのフォールトとなるオブジェクト１１０中にコピーされる。同様に、このフォールトとなるオブジェクト１１０内に含まれない受信するプリンシパルオブジェクト１１０のプロパティデータオブジェクト１３８中に含まれるデータは、このフォールトとなるオブジェクト中にコピーされる。何らかの理由で、ある種のアサーションまたはデータのフィールドが、競合し、同じデータを指定しない（すなわち、受信されたオブジェクト１１０のディスプレイアサーション４０６についてのディスプレイストリングが、フォールトとなるオブジェクト１１０のディスプレイアサーション４０６とは異なる）場合には、このフォールトは、ユーザまたはコンピュータアプリケーションがこのフォールトとなるプリンシパルオブジェクト１１０内に含まれるべきこの２つの選択肢のうちの１つを選択するプロセスを使用して解決される。このマージオペレーション７１６から、このオペレーションフローはセーブオペレーション７１８へと進む。
【００５８】
このセーブオペレーション７１８は、この更新済みのプリンシパルオブジェクト中に含まれるアイデンティティクレーム１３４にリンクするアイデンティティリファレンス１３６に関連するリソースを識別する際に将来使用するためにこの更新済みのプリンシパルオブジェクト１１０をデータストア１０８に保存する。このセーブオペレーション７１８から、このオペレーションフローは、この終了オペレーション７２０において終了する。
【００５９】
以上で説明した様々な実施形態は、例示の手段としてのみ提供され、本発明を限定するものと解釈すべきではない。本明細書中で例示され説明される例示の実施形態および用途に従うことなく、また添付の特許請求の範囲に記載の本発明の真の趣旨および範囲を逸脱することなく本発明に対して行うことができる様々な修正形態および変更形態が当業者には簡単に理解されよう。
【図面の簡単な説明】
【００６０】
【図１】本発明によるアイデンティティシステムが、一実施形態に従って実行される例示の環境を示す図である。
【図２】本発明の特定の態様に従って使用することができるコンピュータシステムを示す図である。
【図３】図１に示すアイデンティティシステムのアイデンティティクレームとアイデンティティリファレンスの間の関係する態様を論理的に示すブロック図である。
【図４】本発明の一実施形態による、アイデンティティクレームを実施するデータ構造についてコードリストの例示の一部分を示す図である。
【図５】本発明の一実施形態による、アイデンティティリファレンスを実施するデータ構造についてコードリストの例示の一部分を示す図である。
【図６】本発明の一実施形態による、図１のコンピューティング環境内のリソースと、このアイデンティティシステム内のプリンシパルとの間の関連を識別するためのプロセスについての操作の特徴を示す流れ図である。
【図７】本発明の一実施形態による、図１のアイデンティティシステム内のアイデンティティクレーム間の競合を検出するためのプロセスを示す図である。
【図１】
2007519076.tif 000003
【図２】
2007519076.tif 000004
【図３】
2007519076.tif 000005
【図４】
2007519076.tif 000006
【図５】
2007519076.tif 000007
【図６】
2007519076.tif 000008
【図７】
2007519076.tif 000009