説明

あるユーザに成り代わるための方法およびシステム

【課題】本発明は、認証ユーザが別のユーザに成り代わってリソースを改変する方法を提供する。
【解決手段】該方法は、改変対象のリソースに対するロックを取得するステップと、該認証ユーザの身元情報および成り代わられたユーザの身元情報をロック・オブジェクトの内部に格納するステップと、該ロックが、別のユーザに成り代わった該認証ユーザによって成功裏に取得されたことを示すメッセージを生成するステップとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、あるユーザに成り代わるための方法およびシステムに関し、さらに具体的には、別のユーザに成り代わったユーザがリソースを改変する方法に関する。
【背景技術】
【0002】
IT環境で、ユーザ認証は、ずいぶん前から専門化されたコンポーネントに委託されてきた。しかしながら、リソースにアクセスするためのユーザ認可は、この認可プロセスが、アプリケーションによって管理されているビジネス・ロジックおよびリソースの内容に大きく左右されるので、今でも一般に同じアプリケーション管理リソースによって管理されている。アプリケーションの複雑性が高まるにつれて、これらアプリケーションは、ユーザおよびユーザの分野の数が増大し、彼らの各々がアプリケーションに対し非常に異なった必要性を有することを考慮に入れざるを得なくなっている。しかして、特定のユーザに利用可能なユーザ・インタフェース、機能、およびビジネス・データは、多くのファクタによって決まり、これらのコンポーネントのどれが特定のユーザに利用可能かを判断するのがアプリケーション中の認可コンポーネントの役割となっている。上記に関連して、アプリケーションに関する問題を有するユーザは、その問題が該アプリケーションが特定のユーザに対しどのように調整されているかにつながっていて、そのため再現が困難なことがあり、トラブル・シューティングすることが難しくなってきている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許第7,225,256号
【発明の概要】
【発明が解決しようとする課題】
【0004】
ユーザをサポートする管理者は、ユーザが経験した通りの経験をし、問題を正確に再現するためには、そのユーザのユーザ名とパスワードとが必要になろう。
【0005】
2007年5月29日付でVillaviencioに付与された特許文献1は、第一エンティティが、成り代わられた第二エンティティの身元情報に基づいてリソースにアクセスすることを許可するためのシステムを提供している。
【課題を解決するための手段】
【0006】
本発明の第一態様によって、コンピュータ・システム中のリソースにアクセスする方法が提供され、該方法は、
− 第一および第二識別エレメントを包含する第一身元情報オブジェクトを受信するステップであって、各識別エレメントは、該コンピュータ・システムにおいて宣言された第一および第二ユーザをそれぞれ一意的に識別し、第一および第二ユーザは相異なる、上記受信するステップと、
− 第一ユーザからリソースを改変するための第一要求を受信するステップと、
− 第二ユーザがリソースを改変することを認可されているかどうかを検証するよう指示する第一メッセージを送信するステップであって、該第一メッセージは、第二識別エレメントおよびリソースへの参照を含む、上記送信するステップと、
− 上記検証に基づいて、第二ユーザがリソースを改変することを認可されているかどうかを示す第二メッセージを受信するステップと、
− 第二ユーザがリソースを改変することを認可されている場合は、
− 第一および第二識別エレメントを包含する第一ロック・アナンシエータ(annunciator)を設定するステップであって、該ロック・アナンシエータは、該リソースがロックされていることを示すようになされており、第一ユーザが第二ユーザに成り代わりながらリソースをロックしていることを証している、上記設定するステップと、
を含む。
【0007】
この態様の利点は、誰が、別のユーザに成り代わらせながらリソースを改変しているかを把握するので、システムの安全性が高まることである。
【0008】
第一態様の第一展開において、該方法は、
− 第一ユーザに対する身元ベリフィケータ(verificator)を受信するステップと、
− 第一ユーザを認証するよう指示する第三メッセージを送信するステップであって、該第三メッセージは、第一識別エレメントおよび身元ベリフィケータを包含する、上記送信するステップと、
− 該認証に基づいて第一ユーザが認証されているかどうかを示す、第四メッセージを受信するステップと、
をさらに含む。
【0009】
利点は、該方法を実行するシステムの外部のシステムによって上記認証が行えることである。
【0010】
第一態様の第二展開において、第一識別エレメントはユーザ名であり、身元ベリフィケータはパスワードである。
【0011】
利点は、この情報がほとんどのアプリケーションに対して一般化していることである。
【0012】
第一態様の第三展開において、該方法は、第二ユーザがリソースを改変することを認可された段階で、
− 該リソースが、第三および第四識別エレメントを包含する第二ロック・アナンシエータによって既にロックされていることを示す、第五メッセージを受信するステップと、
− 該第一識別エレメントと第三識別エレメントとが整合していることを検証するステップと、
− 該第二識別エレメントと第四識別エレメントとが相異なることを検証するステップと、
をさらに含む。
【0013】
利点は、成り代わられるユーザに当初取得されていたロックを、上記認証ユーザに再割り当てできることである。これは、成り代わられるユーザが自分のアカウントの問題のためロックを解除できない場合のサポート環境において特に利点がある。
【0014】
第一態様の第四展開において、該方法は、該第一および第二識別エレメントを包含する第六メッセージと、リソースへの参照と、タイムスタンプとを含む第二要求を送信するステップであって、該第二要求は、監査証跡(audit trail)に第六メッセージを記録するよう指示している、該送信するステップをさらに含む。
【0015】
利点は、アプリケーションが、誰がリソースを改変したかを正しく把握していることである。通常の環境において、監査証跡は、成り代わり機能の特定の状況の如何にかかわらず、認証ユーザがリソースを改変したことを追跡記録することになる。
【0016】
本発明の第二態様によって、本発明の第一態様による方法の各ステップを遂行するようになされた手段を含む装置が提供される。
【0017】
利点は、この装置が極めてたやすく得られ、しかして上記方法の実行を容易にすることである。
【0018】
本発明の第三態様によって、コンピュータ・プログラムがコンピュータ上で実行されるとき本発明の第一態様による方法の各ステップを遂行するための命令を含む該コンピュータ・プログラムが提供される。
【0019】
利点は、本発明が容易に再生でき、いろいろなコンピュータ・システムで実行できることである。
【0020】
本発明の第四態様によって、符号化された、本発明の第三態様によるコンピュータ・プログラムを有するコンピュータ可読媒体が提供される。
【0021】
利点は、この媒体を使って、該方法をさまざまな装置に容易にインストールできることである。
【0022】
当業者は、図面および詳細な説明を調べることによって、本発明のさらなる利点を明らかにできよう。本発明には任意の追加的な利点を組込むことが意図されている。
【0023】
以降に、本発明の添付の図面を参照しながら、例証として本発明の実施形態を説明するものとし、図面中の類似の参照番号は類似のエレメントを示す。
【図面の簡単な説明】
【0024】
【図1】本発明が実装可能なシステムを示す。
【図2】ユーザが特定のリソースにアクセスするのを認証し許可するプロセスのハイレベル図を示す。
【図3】本発明の実行における、ユーザによるリソースの改変を管理するためのプロセスを示す。
【図4】本発明の実行における、ユーザによるロックされたリソースの改変を管理するためのプロセスを示す。
【発明を実施するための形態】
【0025】
図1は、
− アプリケーション(100)と
− ユーザまたは外部システム(110)と、
− 認証システム(120)と、
を含むシステムを示す。
該アプリケーションは、以下のオブジェクトの一組、
− いくつかの機能オブジェクト(140)と、
− いくつかのリソース・オブジェクト(150)と、
− アプリケーションの認可コンポーネントと、
を含む。
アプリケーション(100)は、安全な環境においてリソースを管理する、任意のコンピュータ・アプリケーションであり得る。該アプリケーションは、通常データベースに格納されたリソースの一組(150)へのアクセスを提供する。また、アプリケーション(100)は、機能オブジェクト(140)によって実行される何らかのビジネス・ロジックおよびグラフィカル・ユーザ・インタフェースも提供する。リソース・オブジェクト(150)にアクセスする必要があり機能オブジェクト(140)中に包含されるビジネス・ロジックを利用する外部システムまたはユーザ(110)は、まず、認証システム(120)に認証されなければならない。アプリケーションは、認証システム(120)が行う認証に依存している。通常、外部システムまたはユーザ(110)は、アプリケーションにおいて、自分を一意的に代表する識別エレメントを提示することになる。この識別エレメントは、一般にはユーザ名であり、これはeメール・アドレスまたは任意の番号であってもよい。外部システムは、要求している身元が真正であることを検証するための別のエレメントも提示することになる。これは、通常、パスワードなどユーザが知っているエレメントであるが、生体識別などのユーザの特徴、またはトークンに格納されたIDなどユーザが固有する何らかのものであればよい。これらのエレメントは、該ユーザに対応し、事前にシステムに格納されている身元情報オブジェクトと照合されることになる。認証システム(120)は、ユーザの身元を検証する責任を負う。一般に、このコンポーネントは、アクセスの制御を必要とするアプリケーション(100)の外部にある。この認証システムは通常LDAPである。これをアプリケーション自体のコンポーネントとすることもできる。
ユーザの身元が検証されたならば、アプリケーションは、該ユーザが要求するオブジェクト(150)へのアクセス、または要求する機能オブジェクト(140)に包含されるビジネス・ロジックの実行を確かに認可されているかどうかを管理することになる。リソース・オブジェクトは、短期のまたは長期の保存手段に格納することができる。これは、データベース・エントリ、ファイルなどさまざまなフォームで実装することができる。ビジネス・ロジックは、オブジェクト指向言語、手続き言語、関数型言語などを使って実装することができる。上記認可はアプリケーションにおけるユーザの権利に基づく。これは、ユーザがあるユーザ・クラスのメンバーであるという事実に基づくロール・ベースの認可など、さまざまな形を取ることができ、ACL(access control list(アクセス制御リスト))などを使ってリソース・レベルでも権利の定義が可能な、インスタンス・ベースの認可とすることもでき、認可コンポーネントは、アプリケーション自体の一部とすることも、アプリケーションの外部のコンポーネントとすることも、あるいはこれら2つの組合せとすることもできる。例えば、ロール・ベースの認可は、J2EE環境におけるように、多くの場合アプリケーションの外部に実装されることになる。また一方、インスタンス・ベースの認可は、この別の認可モデルがアプリケーション中に実装された特定のビジネス・ロジックに深く関係しているので、多くの場合アプリケーションの内部に実装されることになる。ユーザが特定のリソースへのアクセスを認可されていることの点検は、一般に、ユーザ身元情報およびアクセスが要求されているオブジェクトの識別子を添えて認可コンポーネント(160)に要求を送信することによって行われる。本発明の実行において、上記認証ユーザは、前もってシステムで宣言された別のユーザに成り代わって処置をすることができる。これは、典型的には、システム管理者が、別のユーザがアプリケーションについて抱えている問題を解決しなければならないときに必要となる。こういったとき、非常に多くの場合において別のユーザが遭遇した問題を再現するのは困難である。システム管理者にとって明らかな代替策は、該別のユーザのユーザ名とパスワードとを使ってシステムに接続することである。さすれば、管理者は、別のユーザが経験していることを正確に知ることができよう。しかしながら、これは、パスワードを共用することが必要になるので、保安上の点からは問題がある。また、管理者が他の人としてシステムにログ・インするのに多大の時間を浪費することもあって非効率的でもある。本発明の実行において、アプリケーション(100)は、外部ユーザ(110)に別のユーザに成り代わる可能性を提供する。この機能は、通常は管理者などシステム中のある特定のユーザに限定すべきである。また、ユーザはこの機能を臨時的に別のユーザに付与することもできる。本発明の実行において、外部ユーザ(110)が、別のユーザに成り代わりながらリソース・オブジェクト(150)または機能オブジェクト(140)へのアクセスを試みるとき、これらのオブジェクトへのアクセスの許可は該他のユーザの身元に対して行われることになる。かくして、該外部ユーザ(110)に対し、ユーザ・インタフェース・レベルであれ、ビジネス・ロジック・レベルであれ、またはデータ・レベルであれ、特定ユーザに固有であり何らかの認可を必要とする全てのエレメントは、あたかも該ユーザが成り代わったユーザとしてシステムに接続したかのように見えることになる。
【0026】
図2は、ユーザが特定のリソースにアクセスするのを認証し認可するハイレベルでのプロセスを示し、該プロセスは、以下のアクテビティ、
− 開始アクテビティ(200)と、
− ユーザがシステムにアクセスする過程のアクテビティ(210)と、
− 身元マネージャがユーザを認証する過程のアクテビティ(220)と、
− 該ユーザが認証されているかどうかを検証する判定アクテビティ(230)と、
− 認証されていない場合、ユーザに認証エラーを通知し(240)、プロセスを終了するアクテビティ(245)と、
− 認証されている場合、身元マネージャからのユーザの信用証明を使って、全てのロールに対する認可を点検するアクテビティ(250)と、
− アクセス・トークンを格納するアクテビティ(260)と、
− ユーザのロールがアクセスできる利用可能なリソースを識別するアクテビティ(270)と、
− ユーザがアクセス権を有するかどうかを検証する判定アクテビティ(280)と、
− 有しない場合、プロセスを終了するアクテビティ(245)と、
− 有する場合、成り代わり機能を有効にして(290)、プロセスを終了する(245)ステップと、
を含む。
ユーザがアプリケーション(100)またはシステム(210)にアクセスをしようとするとき、該ユーザは自分の身元の証拠を提示しなければならない。これは、通常、ユーザ名およびパスワードである。このユーザ名は、eメール・アドレス、番号、または、システムもしくはアプリケーション(100)において該ユーザを一意的に代表する任意の値とすることができる。パスワードは、アクセスを要求するユーザが真正であることの実証を可能にする。ユーザが認証されたならば、認証システム(120)は、ユーザ・セッション・オブジェクトを生成し、ユーザは、その後のシステムまたはアプリケーション(100)に対する要求の中で該オブジェクトを用いることになる。ユーザ・セッション・オブジェクトは、通常、タイムアウト値を有し、異なるクライアント・システムの間で共有することはできない。本発明のある好適な実施形態において、ユーザ・セッション・オブジェクトは、ユーザIDなど、システムにおいて認証ユーザを一意的に代表する識別子を格納するための、authenticatedUserSN(認証ユーザSN)フィールド、および上記認証ユーザが成り代わる対象のユーザを一意的に代表する身元情報を格納するための、authorisedUserSN(許可ユーザSN)フィールドを含む。ユーザ・セッション・オブジェクトは、ユーザが成功裏に認証された(230)時点で生成される。生成される時点では、authenticatedUserSNとauthorisedUserSNとは、同じ値、すなわち認証ユーザのユーザIDに設定される。以降のアクテビティにおいて、アプリケーション(100)は、ユーザの身元を知得して、該ユーザに関連するロール、リソースに関連するアクセス制御リスト、および、近年の多くのアプリケーションに見られるような他の認可ルールに基づいて、ユーザがアクセスできる利用可能なリソースを判定する(270)。ある好適な実施形態において、別のユーザに成り代わる機能(290)は、管理者の役割を有するユーザに限定される(280)。成り代わり機能を有効にすること(290)は、その機能に対応するビジネス・オブジェクトまたは機能オブジェクト(140)が、成り代わったユーザに対し利用可能になるという効用をもたらし、グラフィカル・ユーザ・インタフェースもこの機能を可能にする選択ができるように変更される。
成り代わり機能の実行のためには、第二ユーザの身元情報をインプットとして提示する必要がある。次いで、アクセス・トークンのauthorisedUserSNフィールドが、インプットとして提示された第二ユーザのユーザIDにセットされる。認証ユーザは、該第二ユーザの選択を、任意に、もしくは認証ユーザ、リソースのタイプ、リソース自体、現在の時刻等々などに基づいた何らかの事前設定ルールに従って、行うことができる。これら事前設定ルールは、選択肢がより少なくなるので、該機能に関連する安全リスクの限定を可能にする。また、別のユーザに成り代わる機能は、通常の勤務時間内に日常的に行われているようなサポート業務など、特定の状況に基づいて制限することもできる。成り代わり機能へのアクセスを持たせるユーザのクラスの選択は、本発明では限定しない。管理者クラスに加えて、この機能へのアクセスを有する、ユーザの特別なクラスを設けることもできる。管理者に加えこの機能を必要とする典型的なユーザとして、支援担当ユーザ、別のユーザから委任を受けているユーザなどがあり得る。
【0027】
図3は、ユーザによるリソースの改変を管理するためのプロセスを示し、該プロセスは以下のアクテビティ、
− 開始アクテビティ(300)と、
− ユーザからリソースにアクセスする要求を受信するアクテビティ(310)と、
− 認可されたユーザ・ロールに関連する利用可能なアクションを提示するアクテビティ(320)と、
− ユーザからアクションを実行する要求を受信するアクテビティ(330)と、
− 該要求が、リソースを変更または改変するためのものどうかを判定するアクテビティ(340)と、
− 変更・改変でない場合、該アクションを実行し(370)、アクセス・トークンとともに該アクションを監査証跡中に記録し(380)、プロセスを終了する(365)アクテビティと、
− リソースの改変または変更である場合、該リソースに対するロックを取得する(350)アクテビティと、
− ロックが取得された場合にあっては(356)、改変を実行し(370)、アクセス・トークンとともに該アクションを監査証跡中に記録し(380)、プロセスを終了する(365)アクテビティと、
− ロックが拒否された場合にあっては(360)、ユーザに通知し(360)、プロセスを終了する(365)アクテビティと、
を含む。
このプロセスの過程で、ユーザは、自分がアクセスできる利用可能なリソースのリストに目を通す(210)。該ユーザに利用可能なリソースのセットは、ユーザ・セッション・オブジェクト中のauthorisedUserSNの値に基づいている。アプリケーション(100)は、authorisedUserSNフィールド中の値を使って、選択されたリソースに対しユーザに認可された全てのロールをクエリする。次いで、返答されたアプリケーション(100)の各ロールに対しそのロールに関連するアクションをアクションの累積セットに加える。認証ユーザも、特定のリソース・オブジェクト(150)に対し利用可能なこれらアクション(140)を見知する。次いで、該ユーザはリソースを改変する許可を受けることができるが、かかるアクションは、該ユーザが別のユーザに成り代わっていなければ、該ユーザには利用できなかったものである。リソースへのアクセス許可に対し、ユーザ・セッション・オブジェクトのauthorisedUserSNフィールドへの考慮を、アプリケーションの改変に取り入れることは認可コンポーネント(160)において行うことができる。ユーザがリソースを変更することを認可されているかどうかの判定(340)は、そのリソースに関連するアクセス制御リストを、このユーザが、書き込みアクセスなど十分な許可レベルを有してこのアクセス制御リストの一員となっているかどうか検索することによって実施することができる。一部のアプリケーションは、ユーザが、リソースに関連するリンクの変更を可能にすることによって該リソース自体を改変できる、リンク許可などの中間許可を可能にしている。あるリソースまたはあるリソースに関連するリンクを改変する場合、該リソースの同時並行の改変を防止するために、該リソースに対するロックを取得しなければならない。本発明の実施における、リソースに対するロックの取得のプロセス(350)は、図4に関連してさらなる詳細を説明する。このプロセスの結果は2つに成り得る。一つは、例えば別のユーザが既にリソースを改変しつつありそれに対するロックを先に取得しているという理由で、ロックが拒否される(353)。この場合、ユーザに、現時点では該リソースをユーザが改変することはできないことが通知され(360)てプロセスが終了する。あるいは、ロックが取得され(356)、ユーザは改変アクションを実行できる(370)。リソースの改変後ロックは開放される。最新のアプリケーションは、該アプリケーションが管理するリソースの改変をモニタし、かかる変更の追跡を可能にする関連情報を監査証跡中に記録する(380)ようになっている。本発明のある実施形態において、アプリケーション(100)は、他の証跡中に、認証ユーザの識別子、成り代わられた認可ユーザの識別子、改変されたリソースへの参照、システム中で該リソースを一意的に識別することを可能にする参照、および、改変が行われた時間を正確に示すためのタイムスタンプを記録する。また、リソースの内容、別ユーザに成り代わったユーザによって改変が行われたことを示すタグを含め、さらなる情報を監査証跡に格納することもできる。これは、後日、誰かが、何らかの成り代わりアクテビティに対する監査証跡に関し調査を必要とするとき有用となろう。
【0028】
図4は、ユーザによるロックされたリソースの改変を管理するためのプロセスを示し、該プロセスは、以下のアクテビティ、
− 開始アクテビティ(400)と、
− リソースが、リソース・ロック・オブジェクトに関連付けられているかどうかを点検するアクテビティ(405)と、
− 関連付けられていない場合は、リソース・ロック・オブジェクトを生成し(407)、それをユーザに割り当て(410)、直近アクセス時間を更新し(415)、ロック取得メッセージを送信し(420)、プロセスを終了する(425)アクテビティと、
− 関連付けられている場合は、該リソースに関連付けられたロック・オブジェクトを読み出すアクテビティ(430)と、
− このロックが保有状態かどうかを点検するアクテビティ(435)と、
− 保有状態でない場合、ロック・オブジェクトの盗窃(stealing)を可能にし(440)、ロック・オブジェクトについての競合状態の点検がOKかどうかを判定し(445)、この判定がOKでない場合にあっては、ロック拒否メッセージを送信し(450)、この判定がOKの場合にあっては、該ロックをユーザに割り当て(410)、直近アクセス時間を更新し(415)、ロック取得メッセージを送信し(420)、プロセスを終了するアクテビティ(425)と、
− 保有状態の場合、処理中のロック・オブジェクトをユーザ・セッション・オブジェクトと対比点検するアクテビティ(455)と、
− ロックが同じセッションによって保有されているかどうかを判定するアクテビティ(460)と、
− 保有されている場合には、該ロックが同一のユーザ身元によって保有されているかどうかを判定し(465)、ユーザの身元が同一の場合にあっては、直近アクセス時間を更新して(415)ロック取得メッセージを送信し(420)、ユーザ身元が異なる場合にあっては、ロック・オブジェクトの盗窃を可能にし(440)、ロックについての競合状態の点検がOKかどうかを判定し(445)、その判定の後、既述の全てのアクテビティを実行する、アクテビティと、
− ロックが同じセッションに保有されていない場合は、該ロックが期限切れかどうかを判定するアクテビティ(470)と、
− 期限が切れている場合にあっては、ロックについての競合状態の点検がOKかどうかを判定し(445)、その判定の後、既述の全てのアクテビティを実行する、アクテビティと、
− 期限が切れていない場合にあっては、ロックが、同一のauthenticatedUserSNまたはauthorisedUserSNによって保有されているどうかか判定するアクテビティ(475)と、
− ロックが同一のユーザIDによって保有されていなければ、ロック拒否メッセージを送信するアクテビティ(450)と、
− ロックが同じユーザIDに保有されていれば、ユーザに該ロックを盗窃するかどうかを問い合わせるアクテビティ(480)と、
− ユーザがロックの取得を望むかどうかについてユーザのレスポンスを判定するアクテビティ(485)と、
− ユーザが望んでいる場合、ロックについての競合状態の点検がOKかどうかを判定し(445)、その判定の後、既述の全てのアクテビティを実行する、アクテビティと、
− ユーザがロックの取得を望まない場合、ロック拒否メッセージを送信するアクテビティ(450)と、
を含む。
リソース(150)の改変を可能にする前に、アプリケーション(100)は、該リソースの同時並行改変が生じ得ないことを確実にする必要がある。典型的なメカニズムに、ロック・オブジェクトをリソースと関連付け、これにより、該リソースに対する書き込みが行われていることを具現化し、他のユーザが同時に書き込みを行うのを防止することがある。本発明の好適な実施形態において、ロック・オブジェクトは、成り代わり機能のサポートのため、authenticatedUserSNおよびauthorisedUserSNフィールドを含む。また、ロック・オブジェクトには、該ロックが取得されたときにアクティブであったセッションを識別するためのセッションIDフィールドも含めることができる。該セッションIDフィールドは、ユーザ・セッション・オブジェクトからコピーすることができる。ロック・オブジェクトには、ロックが対応するリソース中に取得された時点を表すtimeWhenAcquired(取得時点)フィールド、リソースに対するロックが有効であった間の、読み取りまたは書き込みいずれか直近のアクションが実施された時点を表すtimeWhenLastAccessed(直近のアクセス時点)フィールド、および該ロック・オブジェクトにより制御されるリソースへの参照をさらに含めることができる。リソースが既にロックされているのでなければ、ユーザは、該リソースに対するロックを安全に取得し(407)、ロック・オブジェクト中に全ての関連パラメータを設定することができる(410、415)。このとき、フィールドauthenticatedUserSNおよびauthorisedUserSNの値は、それぞれ、ユーザ・セッション・オブジェクトの対応するフィールドからコピーされる。認証ユーザが別のユーザに成り代わる場合、これはリソース・ロック・オブジェクトに反映される。リソース(150)がリソース・ロック・オブジェクトによって既に保護されている場合、アプリケーション(100)は、只今のユーザが別のユーザに成り代わろうとしている可能性を考慮に入れて、該ロック・オブジェクトをそのユーザに再割り当てしようとする。
アプリケーション(100)は、最初に、既存のロック・オブジェクトが既に保有状態にあるかどうかを、具体的には該既存のロック・オブジェクトのフィールドを解析することによって点検する(435)。ロックが保有状態にない場合、すなわち、authenticatedUserSNおよびauthorisedUserSNなど、一部のフィールドが空白の場合、アプリケーションは、該ユーザにリソースのロック・オブジェクト安全に割り当て(410)、該ロック・オブジェクトに適切なフィールド値を設定する(415)ことができる。具体的には、フィールドauthenticatedUserSNおよびauthorisedUserSNの値は、それぞれ、ユーザ・セッション・オブジェクト中の対応するフィールドからコピーされる。
ロックが既に保有されている場合、リソース・ロック・オブジェクト中のフィールドの値とユーザ・セッション・オブジェクト中のフィールドの値との照合(455)が実行される。リソース・ロック・オブジェクトのセッションIDフィールド値が、ユーザ・セッション・オブジェクトのセッションIDフィールド値と整合し、同一のセッションにおいて、ユーザ・セッション・オブジェクト中およびリソース・ロック・オブジェクト中のauthenticatedUserSNフィールドが整合している場合、たとえauthorisedUserSNフィールドが異なっていたとしても、認証ユーザは別のユーザに成り代わる要求を前に行っており、現在の要求に先立って該オブジェクトのロックを得ている。このとき、オブジェクトのロックを要求しているユーザの身元は同じであり(465)、ロック・オブジェクトの盗窃を可能にする(440)のは、特にアプリケーションで多重スレッドの実行が可能でない場合には、安全である。ロックを只今のユーザに割り当てる前に、アプリケーション(100)は、別のセッションが、同じロックを獲得するための競合状態で競っていないことを点検する(445)。このステップに問題がなければ、次いで、ロックを該ユーザに割り当て(410)、ロック・オブジェクトの関連フィールドを更新する(415)のは安全である。このステップが不首尾の場合、すなわち他のセッションが競合状態に勝った場合、このときは、リソースに対するロック取得するのは不可能でありロック拒否メッセージを生成(450)しなければならない。ロックが別のセッションに保有されている場合、該ロックがまだ有効か期限切れかを点検(470)しなければならない。期限切れの場合、該ロックを現在のユーザに割り当てることは安全であり得る。アプリケーション(100)は、再び、前述のような、ロックを獲得するための競合状態についての点検(445)をしなければならない。
該ロックが期限切れでない場合、その状況のさらなる解析を行わなければならない。ロック・オブジェクトのフィールドauthenticatedUserSNによって示されるエンティティが、セッション・オブジェクトの対応するフィールドと整合する場合、このとき、このロックは、同一のユーザによって異なったセッション(おそらく中断)で取得されていたに違いない。この場合、ユーザにロックの盗窃について尋ねる(480)のが適切である。authenticatedUserSNフィールド中の身元が異なる場合、このとき、ユーザはauthorisedUserSNフィールドの値を検討する。ユーザ・セッション・オブジェクト中のauthorisedUserSNフィールドの値が、ソース・ロック・オブジェクト中のauthenticatedUserSNまたはauthorisedUserSNの値と整合する場合、それは、認証ユーザによって成り代わられた他のユーザ、またはこの他のユーザに成り代わった別のユーザ(例えば、サポート・チームの別の要員など)が、リソースを改変しようと試み、それに対するロック・オブジェクトを取得したことを意味する。このときは、これらの他のユーザは、これ以上リソースにアクセスすることができないことがあり得るので、該ロック・オブジェクトを盗窃しそれを只今の認証ユーザに再割り当するのが適切であり得る。只今のユーザは、ロックを盗窃するかどうかを尋ねられる(480)。ユーザが受諾した場合(485)、次いで該ロックの盗窃が監査証跡に記録される。ユーザが拒否した場合には、ロック拒否メッセージが生成される(450)。
ユーザ・セッション・オブジェクト中のauthorisedUserSNフィールドの値が、リソース・ロック・オブジェクト中のauthenticatedUserSNまたはauthorisedUserSNの値と整合しない場合、このときロックは取得できず、ロック拒否メッセージが生成される(450)。
ユーザがロックの盗窃を受諾したあらゆる場合において、次のステップは、前述のように競合状態について点検する(445)ことである。これらの競合状態に問題がなければ、ロックは只今のユーザに割り当てられ(410)、ロック・オブジェクトの関連フィールドは更新され(415)ロック取得メッセージが生成される(420)。
【0029】
別の実施形態は、ウェブ・アプリケーションにおいて別のユーザに成り代わる方法を含み、該方法は、現在のユーザ・セッションに関連するデータ制御ブロックのフィールドauthenticatedUserSN中にユーザ身元情報を組み入れて、外部アクセス管理システムを使いユーザを認証するステップと、外部アクセス管理システムとアプリケーション・コンテナとの協調した動きにより、外部アクセス管理システム中の一つ以上のグループ中に該ユーザを包含することによって、アプリケーション・ロールを該認証されたユーザに関連付けるステップと、相異なる認証ユーザに対し、認証時にユーザに認可されているロールの機能として各種機能が実施できるようにするステップと、成り代わり機能を実施可能にするステップと、成り代わり機能の実行に際し、第一ユーザが成り代わりたい第二ユーザの(パスワード以外の)身元情報を受信するステップと、成り代わられるユーザに対しカスタム化された情報を反映するため、アプリケーションのユーザ・インタフェースを操作して、現在のユーザ・セッションに関連するデータ制御ブロックのauthorisedUserSNフィールド中にこの身元情報を組み入れるステップと、を含む。
【0030】
さらに別の実施形態は、別のユーザに成り代わった認証ユーザがリソースを改変する方法を含み、該方法は、改変対象のリソースに対するロックを取得するステップと、認証ユーザの身元情報および成り代わられるユーザの身元情報をロック・オブジェクトの内部に格納するステップと、該ロックが、別のユーザに成り代わった認証ユーザによって首尾よく取得されたことを示すメッセージを生成するステップと、を含む。
【0031】
本発明は、全体がハードウエア実施形態の形、全体がソフトウエア実施形態の形、またはハードウエアおよびソフトウエア両方のエレメントを包含する実施形態の形を取ることができる。ある好適な実施形態において、本発明は、以下に限らないが、ファームウエア、常駐ソフトウエア、マイクロコードなどを含むソフトウエアに実装される。
【0032】
さらに、本発明は、コンピュータまたは任意の命令実行システムでの使用またはこれらに関連させての使用のためのプログラム・コードを備えた、コンピュータ可用またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形を取ることもできる。この説明の目的の上で、コンピュータ可用またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスでの使用またはこれらに関連させての使用のためのプログラムを、包含、格納、通信、伝播、または移送可能な任意の装置とすることができる。
【0033】
該媒体は、電子的、磁気的、光学的、電磁気的、赤外的な、または半導体のシステム(または装置またはデバイス)あるいは伝播媒体とすることができる。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、着脱可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛体磁気ディスク、および光ディスクが含まれる。光ディスクの現今の例には、読み取り専用コンパクト・ディスク(CD−ROM)、読み取り/書き込みコンパクト・ディスク(CD−R/W)およびDVDが含まれる。
【0034】
プログラム・コードを格納または実行あるいはその両方を行うのに適したデータ処理システムは、システム・バスを介して直接的または間接的にメモリ・エレメントに連結された少なくとも一つのプロセッサを包含することになる。該メモリ・エレメントには、プログラム・コードの実際の実行の過程で用いられるローカル・メモリ、大容量記憶装置、および、実行の間に大容量記憶装置からコード読み出しを行わねばならない回数を低減するため、少なくとも一部のプログラム・コードの一時的保存を提供するキャッシュ・メモリを含めることができる。
【0035】
システムには、直接に、あるいは介在I/Oコントローラを通して、入力/出力またはI/Oデバイス(以下に限らないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む)を連結することができる。
【0036】
また、ネットワーク・アダプタをシステムに連結し、該データ処理システムが、介在する私的または公共的ネットワークを通して、他のデータ処理システム、もしくは遠隔のプリンタまたは記憶デバイスに連結できるようにすることができる。モデム、ケーブル・モデムおよびイーサネット(R)カードは、現在利用可能なネットワーク・アダプタのほんの一部である。

【特許請求の範囲】
【請求項1】
コンピュータ・システム中のリソースにアクセスする方法であって、
− 第一および第二識別エレメントを包含する第一身元情報オブジェクトを受信するステップであって、各識別エレメントは、前記コンピュータ・システムにおいて宣言された第一および第二ユーザをそれぞれ一意的に識別し、前記第一および第二ユーザは相異なる、前記受信するステップと、
− 前記第一ユーザから前記リソースを改変するための第一要求を受信するステップと、
− 前記第二ユーザが前記リソースを改変することを認可されているかどうかを検証するよう指示する第一メッセージを送信するステップであって、前記第一メッセージは、前記第二識別エレメントおよび前記リソースへの参照を含む、前記送信するステップと、
− 前記検証に基づいて、前記第二ユーザが前記リソースを改変することを認可されているかどうかを示す第二メッセージを受信するステップと、
− 前記第二ユーザが前記リソースを改変することを認可されている場合は、
− 前記第一および第二識別エレメントを包含する第一ロック・アナンシエータを設定するステップであって、前記ロック・アナンシエータは、前記リソースがロックされていることを示すようになされており、前記第一ユーザが前記第二ユーザに成り代わりながら前記リソースをロックしていることを証している、前記設定するステップと、
を含む、前記方法。
【請求項2】
− 前記第一ユーザに対する身元ベリフィケータを受信するステップと、
− 前記第一ユーザを認証するよう指示する第三メッセージを送信するステップであって、前記第三メッセージは、前記第一識別エレメントおよび前記身元ベリフィケータを包含する、前記送信するステップと、
− 前記認証に基づいて前記第一ユーザが認証されているかどうかを示す、第四メッセージを受信するステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記第一識別エレメントはユーザ名であり、前記身元ベリフィケータはパスワードである、請求項2に記載の方法。
【請求項4】
前記第二ユーザが前記リソースを改変することを認可された段階で、
− 前記リソースが、第三および第四識別エレメントを包含する第二ロック・アナンシエータによって既にロックされていることを示す、第五メッセージを受信するステップと、
− 前記第一識別エレメントと第三識別エレメントとが整合していることを検証するステップと、
− 該第二識別エレメントと第四識別エレメントとが相異なることを検証するステップと、
を含む、先行する請求項のいずれかに記載の方法。
【請求項5】
− 前記第一および第二識別エレメントを包含する第六メッセージと、前記リソースへの参照と、タイムスタンプとを含む第二要求を送信するステップであって、前記第二要求は監査証跡に前記第六メッセージを記録するよう指示している、前記送信するステップを、
さらに含む、先行する請求項のいずれかに記載の方法。
【請求項6】
請求項1〜5のいずれか一つに記載の前記方法の各ステップを遂行するようになされた手段を含む装置。
【請求項7】
コンピュータ・プログラムがコンピュータ上で実行されたとき請求項1〜5のいずれか一つに記載の前記方法の前記ステップを遂行するための命令を含む、前記コンピュータ・プログラム。
【請求項8】
符号化された、請求項7に記載のコンピュータ・プログラムを有するコンピュータ可読媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2012−512450(P2012−512450A)
【公表日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2011−539986(P2011−539986)
【出願日】平成21年11月12日(2009.11.12)
【国際出願番号】PCT/EP2009/065023
【国際公開番号】WO2010/069682
【国際公開日】平成22年6月24日(2010.6.24)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】