説明

アカウント管理のための方法およびシステム

【課題】アカウント管理サーバを通じてプロバイダが共通ログオン手順を使用することを可能にする。
【解決手段】異なるプロバイダのリソースへのアクセスをコントロールするアカウント管理システムは、ユーザがリソースにアクセスすることを要求する場合、動的にアカウントを作成する。リソースにアクセスするため、ユーザは自分のユーザ識別子およびパスワード(クレデンシャル)を、クライアントコンピュータを通じて提供し、アプリケーションなどのリソースを識別する。アカウント管理システムは、アカウントがクレデンシャルについて作成されているか否かを判定する。そうでない場合、アカウント管理システムはユーザを認証し、これらのクレデンシャルについての新しいアカウントを作成(登録)し、識別されたリソースをアカウントに関連付ける。

【発明の詳細な説明】
【技術分野】
【0001】
説明されている技術は一般にアカウントの管理に関し、詳細には、様々なノードからコンピュータリソースにアクセスするためのアカウントの管理に関する。
【背景技術】
【0002】
コンピュータリソース(たとえば、アプリケーションプログラムおよびコンピュータデータ)にアクセスするための技術では、アクセスするユーザがコンピュータリソースにアクセスすることを許可されることが必要である。許可は通常ログオン手順を使用して検証され、ここでユーザは自分のクレデンシャル(たとえば、ユーザ識別子およびパスワード)を、コンピュータリソースへのアクセスをコントロールするシステムに供給する。システムは、クレデンシャルを受信した場合、ユーザのリソースへのアクセスを許可するか否かを判定する(たとえば、ユーザ識別子に関連付けられた機能をチェックすることによる)。許可された場合、システムはユーザによるコンピュータリソースへのアクセスを可能にする。たとえば、データベースプログラムはユーザに、データベース内のデータにアクセス(たとえば、読み取りおよび書き込み)する前に自分のユーザ識別子およびパスワードを供給するように求めることができる。
【0003】
コンピュータリソースにアクセスするためのこのような技術は、コンピュータリソース(たとえば、データベース内のデータ)が単一のソースによって提供される環境に、よく適合されている。たとえば、通信社は、ユーザがログオンセッション中にいずれかのニュース記事にアクセスする前に、ユーザにログオンすることを求めることができる。次いで、通信社はユーザに、月毎にアクセスされたすべてのニュース記事について、毎月請求することができる。コンピュータリソースの各プロバイダは通常、それら自体のログオン手順を開発する。このような開発の問題は、各プロバイダがそれら自体のログオン手順を開発する場合に他のプロバイダの努力を繰り返すことである。このような開発のもう1つの問題は、各プロバイダが異なるタイプのログオン手順を使用する可能性があり、これによってユーザを混乱させる傾向があることである。たとえば、あるプロバイダはパスワードを少なくとも8文字にすることを求める可能性があるが、別のプロバイダはパスワードを5文字から7文字にすることを求める可能性がある。したがって、両方のプロバイダのコンピュータリソースにアクセスするユーザは異なるパスワードを記憶している必要がある。異なるプロバイダが同じログオン手順を使用しようとする場合であっても、ユーザは各プロバイダから別々の請求書を受け取るはずであるという問題がなお存在する。この問題は、ユーザが少数のプロバイダのみのコンピュータリソースを使用する場合には重大とならないかもしれないが、ユーザ(たとえば、インターネットユーザ)が多数の異なるプロバイダ(たとえば、異なる報道機関および協会)のコンピュータリソースにアクセスする場合には重大である。
【発明の開示】
【発明が解決しようとする課題】
【0004】
これらの問題は、プロバイダに関係しないログオン組織によって手順が提供された場合、解決することができる。たとえば、ユーザはログオンを組織を通じて単一のセットのクレデンシャルによりログオンし、次いで、異なるプロバイダについてのコンピュータリソースにアクセスする。しかし、プロバイダは通常、それらのログオン手順が無関係のソースによって提供されることが、いくつかの理由のために望ましくないと感ずる。第1に、プロバイダはそれらのユーザのログオンに関連付けられた表示を、開発者によって提供されたユーザインターフェイスのルックアンドフィールと統合させることを好む。第2に、プロバイダは、プロバイダのサービスおよびリソースにアクセスする場合にプロバイダアカウントが使用されることを好む可能性がある。ログオン組織の利点を結合させてこれらの難点を回避し、しかもプロバイダが、確立されたアカウントおよびプロバイダが供給したログオン要素を使用することができる技術を有することが望ましいであろう。
【課題を解決するための手段】
【0005】
異なるプロバイダのリソースへのアクセスをコントロールする、アカウントを管理するための方法およびシステムが提供される。一実施形態では、アカウント管理システムは、アカウント管理サーバを通じてプロバイダが共通ログオン手順を使用することを可能にする。アカウント管理システムは、ユーザがリソースにアクセスすることを要求する場合、動的にアカウントを作成する。リソースにアクセスするため、ユーザは自分のクレデンシャル(たとえば、ユーザ識別子およびパスワード)を、ある所(たとえば、クライアントコンピュータ)を通じて提供し、リソース(たとえば、アプリケーション)を識別する。アカウント管理システムは、アカウントがすでにこれらのクレデンシャルについて作成されているか否かを判定する。そうでない場合、アカウント管理システムはユーザを認証し、これらのクレデンシャルについての新しいアカウントを作成(すなわち、登録)し、識別されたリソースをアカウントに関連付ける。アカウントがすでにこれらのクレデンシャルについて作成されている場合、アカウント管理システムは、識別されたリソースをそのアカウントに関連付ける。次いで、アカウント管理システムはプロバイダに、ユーザがリソースにアクセスすることを許可されていることを通知する。このようにして、リソースにアクセスする場合、アカウントが自動的に作成され、同じクレデンシャルを使用した異なるリソースへのアクセスが自動的にリソースを同じアカウントに結び付ける。異なるプロバイダによって提供された異なるリソースにアクセスするため、ユーザは再度自分のクレデンシャルを提供し、異なるリソースを識別する。アカウントがすでにこれらのクレデンシャルについて作成されているので、アカウント管理システムは単純に、異なるリソースをそのアカウントに、すでに関連付けられていない場合は関連付ける。各プロバイダは、受け入れ可能なクレデンシャルについてアカウント管理システムによって定義された手順をプロバイダが厳守する限り、それらのログオン手順をカスタマイズすることができる。それらのログオン手順をカスタマイズすることによって、プロバイダはアカウント管理システムを、それらのユーザがアカウント管理システムに気付くことさえないような方法で使用することができる。2つの異なるプロバイダのリソースが単一のアカウントに関連付けられるので、アカウント管理システムはユーザについて、ユーザによる両方のリソースへのアクセスを反映する単一のレポート(たとえば、請求書)を生成することができる。
【0006】
アカウント管理システムの一態様は、ユーザが異なるリソースにアクセスするために異なるクレデンシャルを提供する場合、たとえば、同じユーザがあるユーザ識別子を使用してあるリソースにアクセスし、次いで別のユーザ識別子を使用して別のリソースにアクセスする場合などに、共通アカウントを識別するための技術を提供する。一般に、アカウント管理システムは各ユーザについて別々のアカウントを作成し、ユーザは多数の一意のセットのクレデンシャルを有することができる。アカウント管理システムはアカウントをノードまたは位置に関連付ける。ユーザがあるノードからリソースに、別のノードに関連付けられたアカウントのクレデンシャルを使用してアクセスし、ユーザがリソースにアクセス中である元のノードがすでにそれに関連付けられたアカウントを有する場合、アカウント管理システムは共通アカウントを識別しようと試みる。アカウント管理システムがアカウントを作成する場合、そのアカウントを、それを通じてユーザがリソースにアクセスすることを要求しているノード(たとえば、コンピュータ)に関連付ける。アカウント管理システムが、そのノードのユーザから、別のノードに関連付けられた別のアカウントのリソースにアクセスするための要求を受信する場合、そのノードに関連付けられたアカウントおよび他のノードに関連付けられたアカウントが同じアカウントであると見なされるべきであるか否かを判定する。たとえば、ある世帯は2台のコンピュータを有する可能性がある。ある家族はあるコンピュータからリソースに、それら自体の識別子を使用してアクセスしている可能性があり、別の家族は別のリソース(または同じリソース)に他のコンピュータから、それら自体の識別子を使用してアクセスしている可能性がある。アカウント管理システムは2つのアカウントを作成し、これらのアカウントを異なるコンピュータに関連付ける。ある家族が他のコンピュータを通じてリソースに、それら自体の識別子を使用してアクセスしようと試みる場合、アカウント管理システムは、そのコンピュータに関連付けられたアカウントおよび他のコンピュータに関連付けられたアカウントが、場合によっては共通のアカウントであることを検出する。アカウント管理システムはユーザに、異なるユーザ識別子が実際には同じアカウントを表すべきであるかどうかを示すように促すことができる。そうであった場合、アカウント管理システムはそのレコードを更新して、2つのユーザ識別子が同じアカウントを表すことを反映する。このような場合、ユーザは各リソースに自分自身のユーザ識別子を使用してアクセスする。両方のリソースへのアクセスが単一のアカウントに結び付けられるので、このようなアクセスに関係する情報(たとえば、請求書発送、通知およびプリファレンス)を結合することができる。アカウント管理システムは、1人のユーザが2つの異なるユーザ識別子を使用する場合、類似の方法で共通のアカウントを識別する。代替実施形態では、アカウント管理システムはリソースへのアクセスを、そのクレデンシャルのペアがすでにそのリソースに関連付けられているかどうかに基づいて許可する。そうであった場合、アカウント管理システムはリソースへのアクセスを許可する。この実施形態では、アカウント管理システムはクレデンシャルおよびリソースの組合せを追跡することができる。したがって、1つのアカウント内で異なるセットのクレデンシャル(たとえば、異なるユーザ名およびパスワード)を使用して、異なるリソースまたは同じリソースにもアクセスすることができる。しかし、ユーザの混乱を回避するため、アカウント管理システムは、アカウントの別のリソースを異なるセットのクレデンシャルに関連付けることができるとしても、アカウントに関連付けられた各リソースがただ1つの許可されたセットのクレデンシャルを有することを必要とする。したがって、ある家族のクレデンシャルを使用して共通アカウントのリソースにアクセスすることは、そのリソースが他の家族のクレデンシャルに関連付けられている場合、できない。
【0007】
もう1つの態様のアカウント管理システムでは、ユーザが自分のアカウントに異なるノードからアクセスすることができる。ユーザがノードを使用してリソースにアクセスすることを要求し、ユーザのアカウントが現在はそのノードに関連付けられていない場合、アカウント管理システムはアカウントをそのノードに関連付ける。たとえば、ユーザがそのノードを訪問中であるので、ユーザが、そのノードを通じたそのアクセスが一時的なベースでしかないと指定する場合、リソースへのアクセスに関係するすべての情報が、リソースへのアクセスが完了した後にノードから除去される。一時的なベースでのノードの使用は一般に「ローミング」と呼ばれる。
【図面の簡単な説明】
【0008】
【図1A】ユーザ識別子の入力のための表示ページを例示する図である。
【図1B】それを通じてユーザが自分の一時的パスワードおよび新しいパスワードを入力する表示ページを例示する図である。
【図1C】共通アカウントを識別するための表示ページを例示する図である。
【図2】一実施形態におけるアカウント管理システムを例示するブロック図である。
【図3】一実施形態におけるアカウントデータベースのテーブルを例示するブロック図である。
【図4】一実施形態におけるクライアントコンピュータのコンポーネントを例示するブロック図である。
【図5】クライアントコンピュータのアプリケーション開始コンポーネントの処理を例示する流れ図である。
【図6】クライアントコンピュータのノード接続コンポーネントの流れ図である。
【図7】クライアントコンピュータのユーザ登録コンポーネントの処理を例示する流れ図である。
【図8】一実施形態におけるユーザログオンコンポーネントの処理を例示する流れ図である。
【図9】クライアントコンピュータのログオン応答処理コンポーネントの処理を例示する流れ図である。
【図10】サーバコンピュータのノード登録コンポーネントの処理の流れ図である。
【図11】サーバコンピュータのノード接続コンポーネントの処理の流れ図である。
【図12】サーバコンピュータのノード切断コンポーネントの処理の流れ図である。
【図13】サーバコンピュータのユーザ登録コンポーネントの処理の流れ図である。
【図14】サーバコンピュータのログオン要求処理コンポーネントの処理の流れ図である。
【発明を実施するための形態】
【0009】
図1A〜1Cは、一実施形態におけるアカウント管理システムによって提供された表示ページを例示する。図1Aは、ユーザ識別子の入力のための表示ページを例示する。この表示ページは通常、アプリケーションが開始されるとすぐにそれによって表示される。表示ページ100は、ユーザ識別子フィールド101、パスワードフィールド102、既存のユーザボタン103および新しいユーザボタン104を含む。既存のユーザボタンが選択された場合、アカウント管理システムはユーザをアプリケーションへ、ユーザ識別子およびパスワードを使用してログオンさせようと試みる。新しいユーザボタンが選択された場合、アカウント管理システムはユーザを登録し(すでに登録されていない場合)、一時的パスワードをユーザに送信して、ユーザが既存のユーザとして一時的パスワードを使用してログオンできるようにする。一時的パスワードを、電子メールメッセージまたは電話によるなど、異なる通信チャネルを通じて送信することができる。そのユーザに関連付けられることが知られている異なる通信チャネルの使用は、詐称者がユーザ識別子を使用中でないことを保証する助けとなる。一実施形態では、ユーザ識別子はユーザの電子メールアドレスである。このようにして、アカウント管理システムは電子メールメッセージを、ユーザ識別子によって表されたアドレスに送信することができる。図1Bは、それを通じてユーザが自分の一時的パスワードを変更することができる表示画面を例示する。表示ページ110は、一時的パスワードフィールド111、新しいパスワードフィールド112、パスワード確認フィールド113および継続ボタン114を含む。ユーザが一時的パスワードを受信した後、ユーザはこれを一時的パスワードフィールドに入力し、新しいパスワードを入力し、継続ボタンを選択する。ユーザによって入力された一時的パスワードが、アカウント管理システムによって生成された一時的パスワードに合致すると仮定すると、新しいアカウントがユーザ識別子について確認され、識別されたアプリケーションへのアクセスが許可される。この確認処理は、ユーザの最初の認証の助けとなる。図1Cは、共通アカウントを識別するための表示ページを例示する。アカウント管理システムは、すでに要求側ノードに割り当てられていないアカウントのアプリケーション(すなわち、特定のタイプのリソース)にアクセスすることをユーザが要求し、少なくとも1つのアカウントがすでに要求側ノードに割り当てられている場合に、この表示ページを表示する。表示ページ120は、ラジオボタン付きのアカウント選択エリア121および継続ボタン122を含む。アカウント選択エリアは、2つのアカウントが現在は要求側ノードに割り当てられていることを示す。アカウントをユーザの名前によって識別することができる。ユーザは、アクセスされるべきアプリケーションに関連付けられたアカウントが、表示されたアカウントのうちの1つと同じアカウントであるべきであるかどうかを示す。一実施形態では、アカウント管理システムはユーザに、選択されたアカウントに関連付けられたパスワードを入力するように求めて、詐称者がそのアカウントが共通であるべきであることを指示中でないことを保証することができる。
【0010】
図2は、一実施形態におけるアカウント管理システムを例示するブロック図である。クライアントコンピュータ210がサーバコンピュータ220に、インターネット230を介して接続される。コンピュータは中央処理装置、メモリ、入力デバイス(たとえば、キーボードおよびポインティングデバイス)、出力デバイス(たとえば、表示デバイス)および記憶デバイス(たとえば、ディスクドライブ)を含むことができる。メモリおよび記憶デバイスはコンピュータ可読媒体であり、アカウント管理システムを実施する命令を含むことができる。加えて、データ構造およびメッセージ構造を格納することができ、あるいは通信リンク上の信号など、データ伝送媒体を介して伝送することができる。インターネット以外の様々な通信チャネルを使用することができ、これはローカルエリアネットワーク、広域ネットワーク、またはポイントツーポイント、ダイアルアップ接続などである。サーバコンピュータは、サーバエンジン221、ノード登録コンポーネント222、ノード接続コンポーネント223、ノード切断コンポーネント224、登録要求処理コンポーネント(新しいユーザ)225、ログオン要求処理コンポーネント(既存のユーザ)226およびアカウントデータベース227を含む。サーバエンジンはクライアントコンピュータから要求を受信し、要求を処理するために適切なコンポーネントを呼び出す。ノード登録コンポーネントは、クライアントコンピュータをアカウント管理システムに登録するための要求を受信する。各ノードは、そのノードからのリソースへのアクセスが許可される前に、アカウント管理システムに登録する。ノード接続およびノード切断コンポーネントは、クライアントコンピュータをサーバコンピュータに接続することをコントロールする。登録要求処理コンポーネントが呼び出されて、クライアントコンピュータから受信される新しいユーザからの登録要求が処理される。登録は、新しいユーザ識別子を新しいアカウントに割り当てる処理を指す。ログオン要求処理コンポーネントは、既存のユーザのログオンをコントロールする。ログオンは、ユーザがアプリケーション、アカウントまたはリソースにアクセスすることを認証する処理を指す。アカウントデータベースは、アカウントを管理するための様々なテーブルを含む。
【0011】
図3は、一実施形態におけるアカウントデータベースのテーブルを例示するブロック図である。アカウントデータベースは、登録済ノードテーブル301、アカウントテーブル302、アプリケーションテーブル303、ユーザテーブル304および登録済の接続済ノードテーブル305を含む。登録済ノードテーブルは、各登録済ノードについてのエントリを含み、そのノードに関連付けられたアカウントを示す。たとえば、登録済ノードテーブルの第1のエントリは、ノード識別子「Home」を有するノードがアカウント「A1」およびアカウント「A2」に関連付けられることを示す。この関連付けは、両方のアカウントに関連付けられたすべてのアプリケーションにそのノードからアクセスできることを意味する。アカウントテーブルは、各アカウントについてのエントリを含み、そのアカウントに関連付けられたアプリケーションを示す。たとえば、アカウントテーブルの第1のエントリは、アプリケーション「O1」、「O2」および「O3」がアカウント「A1」に関連付けられることを示す。この関連付けは、これらの3つのアプリケーションへのアクセスが共通アカウントに結び付けられることを意味する。アカウントテーブルはまた、各アカウントの各アプリケーションに関連付けられたクレデンシャルも示すことができる。各アプリケーションについてのクレデンシャルを提供することによって、共通アカウントの複数のユーザはアプリケーションへのアクセスを、そのアプリケーションに関連付けられたクレデンシャルを知っている者に制限させることができる。アプリケーションテーブルは、ユーザによってアクセスするために使用可能である各アプリケーションについてのエントリを含み、アプリケーションが格納される所を示す参照を含むことができる。ユーザテーブルは、各ユーザ(またはより正確には各ユーザ識別子)についてのエントリを含み、パスワードおよび関連付けられたアカウントを含む。たとえば、ユーザテーブルの第1のエントリは、ユーザ「U1」がアカウント「A1」に関連付けられることを示す。これらのテーブルにおける関連付けは、ユーザ「U1」がアカウント「A1」のアプリケーションに、ノード「Home」および「Work1」を通じてアクセスできることを意味する。接続済ノードテーブルは、現在サーバコンピュータに接続されている各ノードについてのエントリを含む。たとえば、第1のエントリは、ノード「Home」が現在サーバコンピュータに接続されていることを示す。
【0012】
最初に、ノードテーブル、アカウントテーブルおよびユーザテーブルは空であり、アプリケーションテーブルは各使用可能アプリケーション(たとえば、アプリケーション「O1」、「O2」、「O3」および「O4」)についてのエントリを含む。ユーザ「U1」がアプリケーション「O1」にアクセスすることを要求する場合、アカウント管理システムは最初に登録済ノードテーブルに、関連付けられたアカウントを有していないノード「Home」についてのエントリを追加して、ノードの登録を実施する。次いで、アカウント管理システムはアカウントテーブルに、アプリケーション「O1」との関連付けを示すアカウント「A1」についてのエントリを追加し、ユーザテーブルに、アカウント「A1」との関連付けを示すユーザ「U1」についてのエントリを追加し、登録済ノードテーブルのノード「Home」についての登録済ノードテーブルについてのエントリを更新して、これをアカウント「A1」と関連付けてユーザの登録を実施する。次いで、ユーザ「U1」は、アプリケーション「O2」へノード「Home」からアクセスすることを要求することができる。応答において、アカウント管理システムは、ユーザ「U1」についてのエントリがすでにユーザテーブルにあること、そのユーザがアカウント「A1」に関連付けられていること、および登録済ノードテーブルにおけるノード「Home」についてのエントリがすでにアカウント「A1」に関連付けられていることを示す。次いで、アカウント管理システムはアカウントテーブルにおけるアカウント「A1」についてのエントリを更新して、これをアプリケーション「O2」に関連付ける。次いで、ユーザ「U1」はアプリケーション「O3」にノード「Work1」からアクセスしようと試みる。ノード「Work1」はまだ登録されていないので、アカウント管理システムは登録済ノードテーブルにノード「Work1」についてのエントリを、アカウントへのいかなる関連付けもなしに追加する。アカウント管理システムは、ユーザテーブルがユーザ「U1」についてのエントリを含むこと、およびそのユーザがアカウント「A1」に関連付けられていることを決定する。次いで、アカウント管理システムは登録済ノードテーブルにおけるノード「Work1」についてのエントリを更新して、これをアカウント「A1」に関連付け、アカウントテーブルにおけるアカウント「A1」についてのエントリを更新して、これをアプリケーション「O3」に関連付ける。次いで、ユーザ「U1」はアプリケーション「O1」、「O2」および「O3」に、ノード「Home」および「Work1」からアクセスすることができる。次いで、ユーザ「U2」はアプリケーション「O1」にノード「Home」からアクセスすることを要求する。ユーザ「U2」は新しいので、アカウント管理システムはアカウントテーブルに、アプリケーション「O1」に関連付けられた新しいアカウント「A2」についてのエントリを追加し、ユーザテーブルに、アカウント「A2」に関連付けられたユーザ「U2」についてのエントリを追加し、登録済ノードテーブルにおけるノード「Home」についてのエントリを更新して、これをアカウント「A2」に関連付けてユーザの登録を実施する。次いで、ユーザ識別子「U2」を使用した人物は、アプリケーション「O4」にノード「Work2」から、ユーザ識別子「U2’」を使用してアクセスすることを要求する。「U2」および「U2’」は同じユーザ識別子ではないので、アカウント管理システムはこれらのユーザが異なると仮定する。アカウント管理システムは最初に登録済ノードテーブルに、ノード「Work2」についてのエントリを、いかなるアカウントにも関連付けられることなく追加する。次いで、アカウント管理システムはアカウントテーブルに、アカウント「A3」についてのエントリを追加し、これをアプリケーション「O4」に関連付け、ユーザテーブルにユーザ「U2’」についてのエントリを追加して、これをアカウント「A3」に関連付け、登録済ノードテーブルにおけるノード「Work2」についてのエントリを更新して、これをアカウント「A3」に関連付ける。次いで、ユーザがアプリケーション「O1」にノード「Work2」から、ユーザ識別子「U2」を使用してアクセスしようと試みた場合、アカウント管理システムはユーザに、アカウント「A2」およびアカウント「A3」が共通アカウントであるかどうかを示すように促す。ユーザが肯定的に応答した場合、アカウント管理システム(テーブルには図示せず)はユーザテーブルにおけるユーザ「U2’」についてのエントリを更新して、これをアカウント「A2」に関連付け、これをアカウント「A3」から関連付け解除し、アカウントテーブルにおけるアカウント「A2」についてのエントリを更新して、これをアプリケーション「O4」に関連付け、登録ノードテーブルにおけるノード「Work2」についてのエントリを更新して、これをアカウント「A3」ではなくアカウント「A2」に関連付ける。次いで、アカウント管理システムはアカウントテーブルにおけるアカウント「A3」についてのエントリを削除する。
【0013】
図4は、一実施形態におけるクライアントコンピュータのコンポーネントを例示するブロック図である。クライアントコンピュータは、オペレーティングシステム410、アプリケーションプラットフォーム420およびアプリケーション記憶領域430を含む。アプリケーションプラットフォームは、アカウント管理システムのクライアント側の部分を含み、これはアプリケーション開始コンポーネント421、ノード接続コンポーネント422、ユーザ登録コンポーネント423、ユーザログオンコンポーネント424、ログオン応答処理コンポーネント425およびキャッシュ426を含む。アプリケーション開始コンポーネントは、ユーザがアプリケーションを開始することを示す場合、呼び出される。ノード接続コンポーネントが呼び出されて、クライアントコンピュータがサーバコンピュータに接続され、クライアントコンピュータがアカウント管理システムに、すでに登録されていない場合は登録される。ユーザ登録コンポーネントが呼び出されて、ユーザがアカウント管理システムに登録され、ユーザログオンコンポーネントが呼び出されて、登録済ユーザがアプリケーションにログオンされる。ログオン応答処理コンポーネントは、クライアントコンピュータがサーバコンピュータからログオン要求への応答を受信する場合、呼び出される。キャッシュは、そのクライアントコンピュータに関係するアカウントデータベースの部分のコピーを含むことができる。このデータのキャッシングにより、クライアントコンピュータは、サーバコンピュータが使用可能でない場合、クライアントコンピュータに関連付けられるアカウントのアプリケーションへのアクセスを許可することができる。
【0014】
図5〜14は、一実施形態のアカウント管理システムの処理を例示する流れ図である。図5〜9は、クライアントコンピュータのコンポーネントの流れ図である。図5は、クライアントコンピュータのアプリケーション開始コンポーネントの処理を例示する流れ図である。このコンポーネントはクライアントコンピュータをサーバコンピュータに接続し、ユーザを、ユーザによって識別されたアプリケーションにログオンさせる。このコンポーネントは、ユーザがラウンチしたアプリケーションによって呼び出される。ブロック501で、コンポーネントがノード接続コンポーネントを呼び出すことによって、クライアントコンピュータをサーバコンピュータに接続する。接続処理の一部として、クライアントコンピュータが登録されていない場合、これがサーバコンピュータに登録される。判断ブロック501aで、接続が失敗した場合、ブロック508で、コンポーネントがエラーをレポートして終了するか、そうでなければコンポーネントがブロック502に進む。ブロック502で、コンポーネントが、ユーザが新しいユーザであるか既存のユーザであるかの指示を入力する。ユーザがすでに存在する場合、コンポーネントがユーザ識別子およびパスワードを入力する。判断ブロック502aで、今回が初めて、アカウント管理システムを使用するいずれかのアプリケーションがクライアントコンピュータでラウンチ中である(次いで、クライアントコンピュータがいかなるユーザについての情報も有していない)か、あるいはユーザが、これらが新しいと示した場合、コンポーネントがブロック503に進み、そうでなければ、コンポーネントがブロック504に進む。ブロック503で、コンポーネントがユーザ登録コンポーネントを呼び出すことによって、新しいユーザを登録し、これによりまたユーザをアプリケーションにログオンさせる。ブロック504で、コンポーネントがユーザログオンコンポーネントを呼び出すことによって、ユーザをアプリケーションにログオンさせる。判断ブロック505で、ユーザがうまくログオンされた場合、コンポーネントがブロック507に進み、そうでなければブロック506で、コンポーネントがエラーをユーザにレポートし、ブロック502にループして、ユーザをアプリケーションにログオンさせようと試みることを開始する。ブロック507で、コンポーネントがアプリケーションプログラムをラウンチし、次いで終了する。
【0015】
図6は、クライアントコンピュータのノード接続コンポーネントの流れ図である。このコンポーネントは、コンピュータがアカウント管理システムに登録されているか否かを判定する。そうでない場合、コンポーネントは、アカウント管理システムへのクライアントコンピュータの登録を実施する。次いで、コンポーネントはクライアントコンピュータをサーバコンピュータに接続する。登録処理は自動的にクライアントコンピュータをサーバコンピュータに接続する。ブロック601で、コンポーネントが、クライアントコンピュータがアカウント管理システムに登録されていた場合、およびその時点に格納されたノード識別子を検索する。ノードの登録を、アカウント管理システムから分離しているノード管理システムによって処理することができる。ノード識別子を、オペレーティングシステムによって提供されたレジストリに格納することができる。ブロック602で、コンポーネントがノード識別子を妥当性検査する。判断ブロック603で、ノード識別子が有効であった場合、コンポーネントがブロック612に進み、そうでなければコンポーネントがブロック604に進む。ブロック604で、コンポーネントが現在のノード識別子をクリアする。ブロック605〜611で、コンポーネントがクライアントコンピュータをアカウント管理システムまたはノード管理システムに登録する。ブロック605で、コンポーネントがノード登録要求をサーバコンピュータに送信する。ブロック606で、コンポーネントがサーバコンピュータから、ノード識別子を含む応答を受信する。ブロック判断607で、応答が成功を示した場合、コンポーネントがブロック608に進み、そうでなければコンポーネントがブロック609に進む。ブロック608で、コンポーネントが、受信されたノード識別子を格納して、ブロック601でコンポーネントが次に呼び出される場合にこれが使用可能であるようにし、次いで成功の指示を返す。ブロック609で、コンポーネントが、ノードをユーザに登録することができなかったことをレポートする。判断ブロック610で、コンポーネントが、登録がある期間の後に検索されるべきであるか否かを判定する。そうであった場合、コンポーネントがブロック611に進み、そうでなければコンポーネントが失敗の指示を返す。ブロック611で、コンポーネントがタイマをセットし(あるいは、ある他の遅延メカニズムを使用し)、タイマが満了した場合、コンポーネントがブロック605に進んで登録をリトライする。ブロック612で、コンポーネントが接続要求をサーバコンピュータに送信する。接続要求はノード識別子およびノードアドレスを含む。ブロック613で、コンポーネントがサーバからの応答を待機する。判断ブロック614で、応答が接続の成功を示した場合、コンポーネントが成功の指示を返し、そうでなければコンポーネントが失敗の指示を返す。
【0016】
図7は、クライアントコンピュータのユーザ登録コンポーネントの処理を例示する流れ図である。ユーザ登録コンポーネントは、クライアントコンピュータに対して新しいユーザの登録を調整する。クライアントコンピュータがすでにユーザ識別子に遭遇している場合、コンポーネントがユーザに、ユーザが本当に同じユーザであるかどうかを確かめるように促す。同じであった場合、コンポーネントがユーザをアプリケーションにログオンさせ始め、そうでなければコンポーネントがエラーを返す。ユーザ識別子がクライアントコンピュータに対して新しかった場合、コンポーネントがユーザをサーバコンピュータに登録し、返しにアカウント識別子を受信し、ユーザをアプリケーションにログオンさせ始める。ブロック701で、コンポーネントが、図1Aの表示を通じて受信されたユーザ識別子を入力する。コンポーネントはまたいくつかの追加の登録情報も入力することができ、これはユーザの名前および請求書発送情報などである。判断ブロック702で、ユーザ識別子がクライアントコンピュータのキャッシュ内にある場合、ユーザ識別子は新しくなく、コンポーネントがブロック703に進み、そうでなければ、コンポーネントがブロック707に進む。ブロック703で、コンポーネントがユーザに、ユーザが本当にこのユーザ識別子を別のアプリケーションについて使用した者と同じユーザであるかどうかを尋ねる。判断ブロック704で、ユーザが、これらが同じでないと示した場合、ブロック706で、重複したユーザ識別子のためにコンポーネントがエラーをユーザにレポートし、次いでエラーを返し、そうでなければコンポーネントがブロック705に進む。ブロック705で、コンポーネントがユーザログオンコンポーネントを呼び出してユーザをアプリケーションにログオンさせ、次いでログオンの結果を返す。ブロック707〜712は、ユーザ識別子が実際にクライアントコンピュータに対して新しい場合に実行される。ブロック707で、コンポーネントが登録要求をサーバコンピュータに送信してユーザを登録する。この要求は、アプリケーション識別子、ユーザ識別子およびノード識別子を含むが、アカウント識別子を含まず、これはこのユーザについてのいずれもが知られていないからである。ブロック708で、コンポーネントがサーバコンピュータからの登録要求への応答を待機する。判断ブロック709で、この応答が、新しいユーザの登録が成功したことを示した場合、応答はアカウント識別子を含み、コンポーネントがブロック710に進み、そうでなければコンポーネントがブロック711に進む。ブロック710で、コンポーネントが新しい識別子、ユーザ識別子およびアプリケーション識別子をキャッシュし、ブロック705に進んでユーザをアプリケーションにログオンさせる。判断ブロック711で、ユーザ識別子がすでに使用中であった場合、コンポーネントがブロック703に進んで、ユーザが本当に同じであるかどうかを確かめ、そうでなければコンポーネントがブロック712に進んである他のエラーをレポートし、次いで失敗の指示を返す。
【0017】
図8は、ユーザログオンコンポーネントの処理を例示する流れ図である。コンポーネントはアプリケーションへのユーザのログオンを調整する。このコンポーネントは、新しいユーザがうまく登録されたか、あるいはユーザが、それらが既存のユーザであることを示した後に呼び出される。ユーザが登録されていなかった場合、コンポーネントがエラーを返す。ユーザがクライアントコンピュータに知られていた場合、コンポーネントがアカウント識別子をログオン要求と共にサーバコンピュータに送信する。ユーザがクライアントコンピュータに知られていなかった場合、コンポーネントがログオン要求をアカウント識別子なしで送信する。サーバコンピュータがうまくユーザをアプリケーションにログオンさせた場合、サーバコンピュータがアカウント識別子を返す。アカウント識別子が、クライアントコンピュータに知られているアカウントに合致した場合、コンポーネントがユーザのクレデンシャルをキャッシュし、そうでなければ、コンポーネントがユーザの要求でこれらのアカウントを結合する。ユーザはアカウントを結合するか、あるいはノードに対して新しいアカウントを使用して開始することを選択することができる。ログオンが成功しなかった場合、コンポーネントがそのアカウントについてのユーザ識別子パスワードのそのキャッシュをクリアする。このコンポーネントは、すでにクライアントコンピュータからアクセスされているアプリケーションにユーザがアクセスすることを要求する場合、または、新しいアプリケーションが、すでにクライアントコンピュータで使用されているユーザ識別子を使用してアクセス中である場合、呼び出される。ブロック801で、コンポーネントがユーザ識別子およびパスワードを入力する。判断ブロック802で、サーバコンピュータが使用可能であった場合、コンポーネントがブロック803に進み、そうでなければコンポーネントがブロック817に進む。ブロック803〜816で、コンポーネントがサーバコンピュータに、ユーザをアプリケーションにログオンさせるように要求する。ブロック803で、コンポーネントがログオン要求をサーバコンピュータに送信する。ログオン要求は、ノード識別子、アプリケーション識別子、ユーザ識別子およびパスワードを含む。このログオン要求は、クライアントコンピュータによってキャッシュされている可能性のあるアカウント識別子を含んでいない。ブロック804で、コンポーネントがサーバコンピュータからそのユーザ識別子についての応答を待機する。たとえば、前にクライアントコンピュータで使用されていないユーザ識別子が使用中である場合、ログオン要求はアカウント識別子を含まない。この応答は、ユーザ識別子に関連付けられたアカウント識別子を含む。ブロック805で、コンポーネントがログオン応答処理コンポーネントを呼び出すことによって、ログオン応答を処理する。判断ブロック806で、ログオンが成功した場合、コンポーネントがブロック807に進み、そうでなければコンポーネントがブロック813に進む。判断ブロック807で、応答において返されたアカウント識別子が、クライアントコンピュータに知られているアカウント識別子に合致した場合、コンポーネントがブロック808に進み、そうでなければコンポーネントがブロック809に進む。ブロック808で、コンポーネントがアカウント識別子に関連したユーザクレデンシャル(ユーザ識別子およびパスワード)をキャッシュし、次いで成功の指示を返す。ブロック809でコンポーネントが、返されたアカウントが実際に、アカウントのうちクライアントコンピュータに知られている物であるかどうかを、図1Cの表示ページを表示することによってユーザに尋ねた。判断ブロック810で、ユーザが知られているアカウントを選択した場合、コンポーネントがブロック812に進み、そうでなければコンポーネントがブロック811に進む。ブロック811で、コンポーネントが新しいアカウント識別子をキャッシュし、ブロック808に進む。ブロック812で、コンポーネントが返されたアカウントおよびユーザ選択アカウントを単一のアカウントに圧縮し、ブロック802に進んで再ログイン要求をユーザ選択アカウントと共にサーバコンピュータに送信して、2つのアカウントを圧縮する。サーバコンピュータは、ユーザ識別子がここでユーザ選択アカウントに関連付けられており、それが返されたアカウントとは異なることを検出し、2つのアカウントを、ユーザ選択アカウントによって識別された共通アカウントに圧縮する。判断ブロック813で、アカウント識別子が応答において返されなかった場合、ユーザはまだ登録されていないか、あるいはユーザの登録がキャンセルされており、コンポーネントがブロック815に進み、そうでなければコンポーネントがブロック814に進む。判断ブロック814で、ログオン要求において送信されたパスワードが無効であった場合、コンポーネントがブロック815に進み、そうでなければコンポーネントがブロック816に進む。ブロック815で、コンポーネントがそのアカウントについての無効なユーザ識別子およびパスワードのキャッシュをクリアし、ブロック820に進んでエラーをレポートする。ブロック816で、コンポーネントが、サーバコンピュータによってレポートされたエラーを処理し、次いで失敗の指示を返す。ブロック817〜820で、コンポーネントが識別されたアプリケーションへのアクセス(ユーザをログオンさせること)をローカルで許可しようと試みる。ブロック817で、コンポーネントがユーザ識別子およびアプリケーション識別子についてキャッシュされたクレデンシャルを検索する。判断ブロック818で、キャッシュされたクレデンシャルが発見された場合、コンポーネントがブロック819に進み、そうでなければコンポーネントがブロック820に進んでエラーをレポートする。判断ブロック819で、入力パスワードが、キャッシュされたクレデンシャルのパスワードに合致した場合、コンポーネントが成功の指示を返し、そうでなければコンポーネントがブロック820に進む。ブロック820で、コンポーネントがエラーをユーザにレポートし、失敗の指示を返す。
【0018】
図9は、クライアントコンピュータのログオン応答処理コンポーネントの処理を例示する流れ図である。このコンポーネントは、ログオン要求への応答がサーバコンピュータから受信される場合に呼び出される。ブロック901で、コンポーネントが応答を検索する。判断ブロック902で、コンポーネントが、ログオンが成功したことを応答が示すか否かを判定する。ログオン要求は、要求において送信されたアカウント識別子が無効であるか、要求において送信されたパスワードが無効であったか、他のサーバコンピュータエラーが起こった場合、不成功になる可能性がある。ログオンが成功した場合、コンポーネントが成功の指示を返し、そうでなければコンポーネントが失敗の指示を返す。
【0019】
図10〜14は、サーバコンピュータのコンポーネントの流れ図である。図10は、サーバコンピュータのノード登録コンポーネントの処理の流れ図である。このコンポーネントは、サーバコンピュータがクライアントコンピュータから、ノードを登録するための要求を受信する場合、呼び出される。このコンポーネントはまた、クライアントコンピュータをサーバコンピュータに接続する。ブロック1001で、コンポーネントが一意のノード識別子を生成する。ブロック1002で、コンポーネントがノード識別子を登録済ノードテーブルに追加して、クライアントコンピュータを登録する。ブロック1003で、コンポーネントがノード識別子およびノードアドレス(たとえば、IPアドレスおよびポートアドレス)を接続済ノードテーブルに追加して、クライアントコンピュータをサーバコンピュータに接続する。ブロック1004で、コンポーネントが、ノード識別子を含む応答をクライアントコンピュータに送信する。次いで、コンポーネントが終了する。
【0020】
(サーバの接続要求の処理)
図11は、サーバコンピュータのノード接続コンポーネントの処理の流れ図である。このコンポーネントは、サーバコンピュータがクライアントコンピュータに接続するための要求を受信する場合、呼び出される。接続要求は、クライアントコンピュータのノード識別子およびノードアドレスを含む。ブロック1101で、コンポーネントがノード識別子を登録済ノードテーブルにおけるエントリと比較することによって、ノード識別子を妥当性検査する。判断ブロック1102で、ノード識別子が登録済ノードテーブルにあった場合、コンポーネントがブロック1103に進み、そうでなければコンポーネントがブロック1104に進む。ブロック1103で、コンポーネントがノード識別子およびノードアドレスのペアについてのエントリを接続済ノードテーブルに追加し、次いで成功の指示を返す。ブロック1104で、コンポーネントがエラーメッセージをクライアントコンピュータに送信し、接続を閉じ、終了する。
【0021】
図12は、サーバコンピュータのノード切断コンポーネントの処理の流れ図である。このコンポーネントは、サーバコンピュータが、接続を閉じる要求をクライアントコンピュータから受信する場合、呼び出される。ブロック1201で、コンポーネントがノード識別子およびノードアドレスのペアについてのエントリを接続済ノードテーブルから除去する。ブロック1202で、コンポーネントがクライアントコンピュータとの接続を閉じ、閉じたことをログし、次いで終了する。
【0022】
(サーバのユーザ登録の処理)
図13は、サーバコンピュータのユーザ登録コンポーネントの処理の流れ図である。このコンポーネントは、サーバコンピュータが、新しいユーザを登録するための要求をクライアントコンピュータから受信する場合、呼び出される。この要求は、ユーザ識別子およびノード識別子を含む。ユーザ識別子がすでに登録されている場合、コンポーネントは、アカウント番号を示し、ユーザ識別子がすでに使用中であることを示す応答を送信する。ユーザ識別子が登録されていない場合、コンポーネントが登録を実施し、一時的パスワードをユーザへ、電子メールを介して送信する。判断ブロック1301で、受信されたノード識別子が接続済ノード識別子テーブルにあった場合、クライアントコンピュータが接続され、コンポーネントがブロック1303に進み、そうでなければブロック1302で、コンポーネントがエラー応答を送信し、次いで終了する。ブロック1303で、コンポーネントが、ユーザ識別子がユーザ識別子テーブルにあるか否かを判定する。ブロック1304で、受信されたユーザ識別子についてのエントリがユーザ識別子テーブルにあった場合、ユーザ識別子がサーバコンピュータに知られており、コンポーネントがブロック1305に進み、そうでなければコンポーネントがブロック1309に進む。ブロック1305で、コンポーネントが、ユーザ識別子についてのアカウント識別子をアカウントテーブルから検索する。次いで、コンポーネントが応答を送信して、ユーザ識別子がすでに登録されていることを示し、次いで終了する。判断ブロック1309で、アカウント識別子が、受信された要求に存在した場合、コンポーネントがブロック1310に進み、そうでなければコンポーネントがブロック1311に進む。ブロック1310で、ユーザ識別子は新しいが、アカウント識別子は登録要求に含まれていた。結果として、コンポーネントが応答をクライアントコンピュータに送信して登録失敗を示し、これによりクライアントに、ユーザにログオンするように求めさせ、次いで終了する。ブロック1311で、コンポーネントが新しいアカウント識別子をアカウントテーブルにおいて作成する。ブロック1312で、コンポーネントがアプリケーション識別子、ユーザ識別子およびノード識別子をアカウントテーブルに追加する。ブロック1313で、コンポーネントが一時的パスワードを生成する。ブロック1314で、コンポーネントが電子メールメッセージをユーザに送信し、一時的パスワードを示す。次いで、コンポーネントが終了する。
【0023】
(サーバのログオン要求の処理)
図14は、サーバコンピュータのログオン要求処理コンポーネントの処理の流れ図である。このコンポーネントは、サーバコンピュータがログオン要求をクライアントコンピュータから受信する場合、呼び出される。ログオン要求は、アプリケーション識別子、ユーザ識別子、パスワード、ノード識別子、およびオプショナルでアカウント識別子を含む。アカウント識別子が要求に含まれ、有効であるが、サーバコンピュータがユーザ識別子と関連付けているアカウント識別子に合致しない場合、サーバコンピュータは2つのアカウントを、受信されたアカウント識別子によって識別される単一のアカウントに圧縮する。そのユーザ識別子が先にクライアントコンピュータで使用されていない場合、アカウント識別子が含まれない。判断ブロック1401で、アカウント識別子が存在した場合、コンポーネントがブロック1402に進み、そうでなければコンポーネントがブロック1408に進む。判断ブロック1402で、アカウントテーブルが、受信されたアカウント識別子についてのエントリを含む場合、アカウント識別子は有効であり、コンポーネントがブロック1403に進み、そうでなければコンポーネントがブロック1409に進んでエラーをレポートする。ブロック1403で、ユーザテーブルが、受信されたユーザ識別子についてのエントリを含む場合、ユーザ識別子は有効であり、コンポーネントがブロック1404に進み、そうでなければコンポーネントがブロック1407に進む。判断ブロック1404で、ユーザ識別子についてのパスワードが有効である場合、コンポーネントがブロック1405に進み、そうでなければコンポーネントがブロック1409に進んでエラーをレポートする。判断ブロック1405で、ユーザ識別子に関連付けられたアカウント識別子が、受信されたアカウント識別子に合致した場合、コンポーネントがブロック1412に進み、そうでなければコンポーネントがブロック1406に進む。ブロック1406で、コンポーネントが2つのアカウントを、受信されたアカウント識別子によって識別された共通アカウントに圧縮し、ブロック1412に進む。ブロック1407で、コンポーネントが、アプリケーション識別子およびユーザ識別子をアカウント識別子にマップするエントリを、アカウントテーブルに追加し、ユーザ識別子を一時的パスワードにマップするエントリをユーザテーブルに追加する。ブロック1407aで、コンポーネントが一時的パスワードをユーザに、電子メールを介して送信し、失敗を示す応答をクライアントコンピュータに送信し、次いで終了する。ブロック1408〜1414は、アカウント識別子が応答に含まれない場合に実行される。判断ブロック1408で、パスワードがユーザ識別子について有効であった場合、コンポーネントがブロック1410に進み、そうでなければコンポーネントがブロック1409に進む。ブロック1409で、コンポーネントがエラー応答をサーバコンピュータに送信し、次いで終了する。ブロック1410で、コンポーネントがユーザテーブルから、ユーザ識別子に関連付けられたアカウント識別子を検索する。判断ブロック1411で、要求におけるノード識別子が、検索されたアカウント識別子に関連付けられた場合、コンポーネントがブロック1414に進み、そうでなければコンポーネントがブロック1412に進む。ブロック1412で、コンポーネントがアカウントテーブルに、アカウント識別子をノード識別子にマップするエントリを追加する。ブロック1413で、コンポーネントがノードテーブルに、ノード識別子をアカウント識別子にマップするエントリを追加し、次いでブロック1414に進む。ブロック1414で、コンポーネントがアプリケーション識別子を、アカウントテーブルにおけるアカウントについてのエントリに追加し、次いでクライアントコンピュータに、アカウント識別子を含む応答を送信し、次いで終了する。
【0024】
上の説明から、技術の特定の実施形態を例示のために説明したが、様々な変更を、本発明の精神および範囲から逸脱することなく行うことができることは理解されよう。一実施形態では、ユーザ識別子およびパスワードのペア以外のクレデンシャルを使用することができる。たとえば、各ユーザはある情報を、公開および秘密鍵のペアのうち自分の秘密鍵により暗号化することができる。サーバコンピュータは公開鍵を使用して情報を解読して、それが正しい秘密鍵により暗号化されたことを保証することができる。また、認証を、分離した認証サーバによって実行することができ、結果がサーバコンピュータまたは直接クライアントコンピュータに送信され戻される。もう1つの実施形態では、各アカウントを、そのアカウントに割り当てられるユーザ識別子によって識別することができる。したがって、アカウントを、1つまたは複数のユーザ識別子のグループと見なすことができる。また、リソースがコンピュータリソースに限定される必要はない。たとえば、リソースには、人々、グループまたはコミュニティ、物質的な物品、通信サービス(たとえば、電話、ビデオ)などが含まれる可能性がある。したがって、特許請求の範囲は、付属の特許請求の範囲以外によって限定されない。

【特許請求の範囲】
【請求項1】
1人のユーザに割り当てられた複数のアカウントを1つのアカウントに結合するための方法であって、ユーザ識別子を含むアカウント情報がクライアントコンピュータからサーバコンピュータへログインするために使用され、第1のアカウントについてのアカウント情報が第1のユーザ識別子および第1のクライアントコンピュータに割り当てられて前記サーバコンピュータのデータベースに登録され、第2のアカウントについてのアカウント情報が第2のユーザ識別子および第2のクライアントコンピュータに割り当てられて前記サーバコンピュータのデータベースに登録され、
前記サーバコンピュータが、通信チャネルを介して、前記第2のクライアントコンピュータから第1のユーザ識別子を含むアカウント情報を取得してログイン要求を受信するステップと、
前記サーバコンピュータが、前記取得した第1のユーザ識別子に割り当てられている第1のアカウントが、前記第2のクライアントコンピュータに割り当てられて前記データベースに登録されている第2のアカウントと一致するかを判定する第1の判定ステップと、
前記サーバコンピュータが、前記第1および第2のアカウントが一致しない場合に、前記第1のアカウントおよび前記第2のアカウントが同一のユーザのアカウントであるかを指示するように前記第2のクライアントコンピュータに要求するステップと、
前記サーバコンピュータが、前記要求に対して第2のクライアントコンピュータから受信した指示に基づいて前記第1のアカウントおよび前記第2のアカウントが同一のユーザのアカウントであるかを判定する第2の判定ステップと、
前記サーバコンピュータが、前記第1のアカウントおよび前記第2のアカウントが同一のユーザのアカウントであると判定された場合に、前記データベースに登録されている第1のアカウントおよび第2のアカウントのいずれか一方のアカウント情報を他方のアカウント情報に結合し、当該結合されたいずれか一方のアカウント情報を前記データベースから削除するステップと
を含むことを特徴とする方法。
【請求項2】
1人のユーザに割り当てられた複数のアカウントを1つのアカウントに結合するための方法であって、ユーザ識別子を含むアカウント情報がクライアントコンピュータからサーバコンピュータへログインするために使用され、第1のアカウントについてのアカウント情報が第1のユーザ識別子および第1のクライアントコンピュータに割り当てられて前記サーバコンピュータのデータベースに登録され、第2のアカウントについてのアカウント情報が第2のユーザ識別子および第2のクライアントコンピュータに割り当てられて前記サーバコンピュータのデータベースに登録され、
前記サーバコンピュータが、通信チャネルを介して、前記第2のクライアントコンピュータから第1のユーザ識別子を含むアカウント情報を取得してログイン要求を受信するステップと、
前記サーバコンピュータが、前記取得した第1のユーザ識別子に割り当てられている第1のアカウントが、前記第2のクライアントコンピュータに割り当てられて前記データベースに登録されている第2のアカウントと一致するかを判定する第1の判定ステップと、
前記サーバコンピュータが、前記第1および第2のアカウントが一致しない場合に、前記第2のクライアントコンピュータに割り当てられて前記データベースに登録されている第2のユーザ識別子が、前記取得した第1のユーザ識別子と一致するかに基づいて前記第1のアカウントおよび前記第2のアカウントが同一のユーザのアカウントであるか否かを判定する第3の判定ステップと、
前記サーバコンピュータが、前記第1のアカウントおよび前記第2のアカウントが同一のユーザのアカウントであると判定された場合に、前記データベースに登録されている第1のアカウントおよび第2のアカウントのいずれか一方のアカウント情報を他方のアカウント情報に結合し、当該結合されたいずれか一方のアカウント情報を前記データベースから削除するステップと
を含むことを特徴とする方法。
【請求項3】
前記第2または第3の判定ステップは、前記第1のアカウントおよび前記第2のアカウントが同一のユーザのアカウントであると判定した場合、前記第2のクライアントコンピュータに対して第2のアカウントに関連付けられた第2のユーザ識別子を提供するように要求することを特徴とする請求項1または2に記載の方法。
【請求項4】
前記結合するステップは、前記一方の削除されたアカウント情報の中のユーザ識別子を、前記他方の結合されるアカウント情報のアカウントに割り当てることを特徴とする請求項1又は2に記載の方法。
【請求項5】
前記削除されるアカウント情報は、ユーザがアクセスを許可されるリソースを示す情報を含むことを特徴とする請求項1又は2に記載の方法。
【請求項6】
前記第2または第3の判定ステップにおいて、前記第1のアカウントおよび第2のアカウントが同一のユーザのアカウントではないと判定された場合、前記サーバコンピュータが、前記第1のアカウントを第2のクライアントコンピュータに関連付けて前記データベースに登録するステップをさらに備えたことを特徴とする請求項1又は2に記載の方法。
【請求項7】
1人のユーザに割り当てられた複数のアカウントを1つのアカウントに結合するためのサーバコンピュータにおける方法であって、前記複数のアカウントおよび前記サーバコンピュータへのログインに使用される複数のログイン情報が複数のクライアントコンピュータに割り当てられてサーバコンピュータのデータベースに登録されており、
前記サーバコンピュータが、通信チャネルを介して、前記クライアントコンピュータからログイン情報を受信するステップと、
前記サーバコンピュータが、前記ログイン情報を送信したクライアントコンピュータが前記ログイン情報に割り当てられて前記データベースに登録されているか否かを判定する第4の判定ステップと、
前記第4の判定ステップにおける判定結果が否の場合、前記サーバコンピュータが、前記クライアントコンピュータに、該クライアントコンピュータに割り当てられているアカウントが同一のユーザが保有する複数のアカウントの1つであるか否かを尋ねる問い合わせを送信し、前記クライアントコンピュータからサーバコンピュータに送信された答えに基づいて、前記クライアントコンピュータに対応するアカウントが、同一のユーザが保有する複数のアカウントの1つであるか否かを判定する第5の判定ステップと、
前記第5の判定ステップにおける判定結果が肯定の場合、前記データベースに登録されている、前記受信したログイン情報に対応するアカウントおよび前記クライアントコンピュータに対応するアカウントのいずれか一方を他方のアカウントに結合するステップと
を含むことを特徴とする方法。
【請求項8】
前記ログイン情報はユーザ識別子を含むことを特徴とする請求項7に記載の方法。

【図1A】
image rotate

【図1B】
image rotate

【図1C】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−33601(P2010−33601A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2009−256057(P2009−256057)
【出願日】平成21年11月9日(2009.11.9)
【分割の表示】特願2002−553624(P2002−553624)の分割
【原出願日】平成13年12月19日(2001.12.19)
【出願人】(503028031)オープンデザイン インコーポレイテッド (3)
【Fターム(参考)】