(57)【要約】【課題】  複数の保護されたオブジェクトに対する許可情報が共通して格納されるのを可能にするシステムおよび方法を提供する。【解決手段】  本発明の一実施形態によれば、アプリケーションプログラムにおける機能へのアクセスを制御する方法は、アプリケーションプログラム内の少なくとも１つのパーミッションセットを登録することを含む。パーミッションセットは、アプリケーションプログラムの機能カテゴリに関連する複数の特権動作を含む。本方法はさらに、プリンシパルに対してパーミッションセットにおける特権動作のうちの少なくとも１つへの権限を認可する情報を受取ることと、プリンシパルによって開始されると、受取られた情報にしたがって許可された特権動作を実行することと、を含む。【選択図】  図１
2004158007.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムにおけるオブジェクトへのアクセスを制御する方法であって、
複数の保護されたオブジェクトに対する権限情報を共通テーブルに格納することを含む方法。
【請求項２】
格納することは、前記複数の保護されたオブジェクトの各々に対し、その保護されたオブジェクトに関してプリンシパルが許可される１つまたは複数の動作を識別する情報を格納することを含む、請求項１記載の方法。
【請求項３】
格納することは、前記複数の保護されたオブジェクトの各々に対し、その保護されたオブジェクトに関して権限が認可された前記プリンシパルを識別する情報を格納することを含む、請求項２記載の方法。
【請求項４】
アプリケーションプログラムにおける機能に対するアクセスを制御する方法であって、
前記アプリケーションプログラム内の少なくとも１つのパーミッションセットを登録することであって、該パーミッションセットは、該アプリケーションプログラムの機能カテゴリに関連する複数の特権動作を含む、登録すること、
プリンシパルに対し前記パーミッションセットにおける前記特権動作のうちの少なくとも１つへの権限を認可する情報を受取ること、
前記プリンシパルによって開始されると、前記受取られた情報にしたがって前記特権動作のうちの前記少なくとも１つを実行することと、
を含む方法。
【請求項５】
前記受取られた情報をテーブルに格納することをさらに含む、請求項４記載の方法。
【請求項６】
前記テーブルは、前記パーミッションセットを識別するための第１のデータフィールドと、前記プリンシパルを識別するための第２のデータフィールドと、前記プリンシパルが許可される前記特権動作のうちの前記少なくとも１つを識別するための第３のデータフィールドと、を含む、請求項５記載の方法。
【請求項７】
前記特権動作のうちの前記少なくとも１つの実行は、複数のオブジェクトに対するアクセスを必要とする、請求項４記載の方法。
【請求項８】
前記パーミッションセットは、前記アプリケーションプログラムによってサポートされる実質的にすべての特権動作を含む、請求項４記載の方法。
【請求項９】
前記パーミッションセットは、前記アプリケーションプログラムのコンポーネントによってサポートされる実質的にすべての特権動作を含む、請求項４記載の方法。
【請求項１０】
前記パーミッションセットは、前記アプリケーションプログラムの複数のアドインコンポーネントによってサポートされる実質的にすべての特権動作を含む、請求項４記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムにおけるオブジェクトへのアクセスを制御する方法に関する。
【背景技術】
【０００２】
多くのコンピュータアプリケーションでは、ある機能に対するアクセスが、許可されたユーザに制限される。これは通常、アクセス制御リストを保護された各オブジェクト（すなわち、機能が権限制約を受ける各オブジェクト）と関連付けることによって達成される。アクセス制御リストは、対応する保護されたオブジェクトにアクセスするよう許可された特定のユーザと、かかるユーザの各々に許可された特定の動作とを定義する。各リストのエントリは通常、＜プリンシパル、ビット＞の組から構成され、「プリンシパル」は、ユーザまたはグループであり、「ビット」は、この特定の保護されたオブジェクトに関してユーザに許可された動作を識別する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本出願の発明者によって認識されるように、特に、実行に複数の保護されたオブジェクトに対するアクセスが必要である動作を実行するために、ユーザ権限を認可することが有利である場合、各保護されたオブジェクトに対してアクセス制御リストを作成することは、時に厄介である。
【０００４】
従来技術におけるこれらおよび他の必要を解決するために、本出願の発明者は、複数の保護されたオブジェクトに対する許可情報が共通して格納されるのを可能にするシステムおよび方法の設計に成功した。本発明者はまた、ユーザに対し、アプリケーションプログラムの事前定義された機能カテゴリを通して動作を実行するのを許可することができる、システムおよび方法の開発にも成功した。
【課題を解決するための手段】
【０００５】
本発明の一実施形態によれば、アプリケーションプログラムにおける機能へのアクセスを制御する方法は、アプリケーションプログラム内の少なくとも１つのパーミッションセットを登録することを含む。パーミッションセットは、アプリケーションプログラムの機能カテゴリに関連する複数の特権動作を含む。本方法はさらに、プリンシパルに対してパーミッションセットにおける特権動作のうちの少なくとも１つへの権限を認可する情報を受取ることと、プリンシパルによって開始されると、受取られた情報にしたがって許可された特権動作を実行することと、を含む。
【０００６】
本発明の実施形態の適用性のさらなる範囲は、下に提供する詳細な説明から明らかとなろう。詳細な説明と特定の実施例とは、本発明の例示的な実施形態を示しているが、単に例示の目的のためであり、本発明の範囲を限定するように解釈されるべきではない、ということが理解されなければならない。
【０００７】
本発明は、詳細な説明と添付図面からより完全に理解されるであろう。
【発明を実施するための最良の形態】
【０００８】
本発明は、その機能の一部またはすべてに対するユーザアクセスを管理するいかなるコンピュータシステムまたはアプリケーションにも適用可能である。本発明の例示的な実施形態を、コンピュータネットワークおよびストレージエリアネットワーク（ＳＡＮ）に関連して下に説明するが、当業者は、本発明の範囲が、そのように限定されず、たとえばスタンドアロンコンピュータデバイスおよびアプリケーションにも適用することができる、ということを認めるであろう。
【０００９】
図１を参照すると、記憶装置１４に関連する管理サーバ１６を有するコンピュータベースネットワーク１０が示されている。一実施形態では、記憶装置１４は、図１に示すように管理サーバ１６から遠隔に存在する。たとえば、記憶装置１４は、管理サーバ１６に関連するＳＡＮに存在することができる。代替的に、管理サーバ１６は、記憶装置１４を含むことができる。管理サーバ１６は、サーバ機能を実行することができるいかなるコンピュータベース機器であってもよい。たとえば、管理サーバ１６は、単一コンピュータであっても、複数のコンピュータに接続されたネットワークサーバであってもよい。管理サーバ１６は、好ましくは、情報、データおよびグラフィックスを閲覧するためのモニタ１８と、キーボード、タッチスクリーンまたはマウス等のユーザ入力装置２０と、データベース２２と、を有する。
【００１０】
管理サーバ１６は、記憶装置１４に格納されたデータを管理するために使用されるアプリケーションプログラム２６を含む。たとえば、アプリケーションプログラム２６は、ＳＡＮのストレージおよび資源を管理するために使用されるストレージエリアマネージャ（ＳＡＭ）アプリケーションであってもよい。アプリケーションプログラム２６は、権限・認証（authorization and authentication（Ａ＆Ａ））モジュール３０と少なくとも１つのサブプロダクト３４（たとえば、アドインコンポーネント）と、を有する。Ａ＆Ａモジュール３０は、サブプロダクト３４を含むアプリケーションプログラム２６によって提供される機能に対するユーザによるアクセスを制御する。
【００１１】
図２は、本発明の一実施形態により、Ａ＆Ａモジュール３０によってデータベース２２に格納されるあらゆるデータ構造を示す。Ａ＆Ａモジュール３０は、本明細書では「パーミッションセット」と呼ぶ、アプリケーションプログラム２６の１つまたは複数の機能カテゴリに関連する特権動作（すなわち、実行が権限制約を受ける動作）の事前定義されたセットを利用して、アプリケーションの機能に対するアクセスを制御する。
【００１２】
一実施形態では、ＧｅｎｅｒａｌＰｅｒｍｉｓｓｉｏｎＳｅｔ（汎用パーミッションセット）と呼ぶ単一パーミッションセットが、サブプロダクト３４によってサポートされる特権動作を含むアプリケーションプログラム２６全体に対して実施される。ＧｅｎｅｒａｌＰｅｒｍｉｓｓｉｏｎＳｅｔは、データベース２２に格納されるＡｐｐｌｉｃａｔｉｏｎｓ（アプリケーション）データ構造１０４に格納される。ＧｅｎｅｒａｌＰｅｒｍｉｓｓｉｏｎＳｅｔは、２つの広い特権、すなわち、ＲＥＡＤ（読出し）が可能であることとＲＥＡＤ＿ＷＲＩＴＥ（読出し・書込み）が可能であることとを定義する。前者の特権を有するユーザは、記憶装置１４の情報にアクセスすることができるが、記憶装置１４内の情報を構成することはできない。後者の特権を有するユーザは、記憶装置１４に格納された情報にアクセスすることもそれを構成することも可能である。
【００１３】
ＧｅｎｅｒａｌＰｅｒｍｉｓｓｉｏｎＳｅｔにおいて定義される２つの許可を実施するために、Ａ＆Ａモジュール３０は、データベース２２を初期化する。これは、データベース２２に存在するＡＡＵｓｅｒｓ（ＡＡユーザ）データ構造１０８とＡＡＵｓｅｒＧｒｏｕｐ（ＡＡユーザグループ）データ構造１１２とを利用して行われる。Ａ＆Ａモジュール３０は、２つのデフォルトユーザグループ、すなわちＡｄｍｉｎｉｓｔｒａｔｏｒｓ（管理者）グループとＧｕｅｓｔｓ（ゲスト）グループとを作成し、それらグループをＡＡＵｓｅｒＧｒｏｕｐデータ構造１１２に格納する。Ａｄｍｉｎｉｓｔｒａｔｏｒｓグループに属しているユーザは、アプリケーションプログラム２６とアプリケーションプログラム２６のすべてのコンポーネント（サブプロダクトを含む）とに関してＲＥＡＤ＿ＷＲＩＴＥ特権を有する。Ｇｕｅｓｔｓグループに属しているユーザは、アプリケーションプログラム２６とそのあらゆるコンポーネントとに関してＲＥＡＤ特権のみを有する。さらに後述するように、システム１０の各ユーザは、少なくとも１つのグループに割当てられ、そのグループに関連する特権をすべて享受する。Ａ＆Ａモジュール３０は、システム１０のユーザの名前と各ユーザが割当てられたグループ（複数可）とをデータベーステーブル１０８に格納する。
【００１４】
最初に、ＡＡＵｓｅｒｓデータ構造１０８は、２つのデフォルトユーザ、すなわちＡｄｍｉｎｉｓｔｒａｔｏｒグループに属する「Ａｄｍｉｎｉｓｔｒａｔｏｒ（管理者）」とＧｕｅｓｔグループに属する「Ｇｕｅｓｔ（ゲスト）」とを含む。これらデフォルトユーザにより、システム管理者は、Ａ＆Ａモジュール３０をそのインストールの後に構成することができる。さらに後述するように、Ａ＆Ａモジュール３０による初期化に続いて、システム管理者は、Ａ＆Ａモジュール３０がアクセス制御リスト（ＡＣＬ）データ構造１１６においてエントリを作成するために使用する情報を入力する。たとえば、システム管理者からの入力に基づいて、Ａ＆Ａモジュール３０は、ＡＣＬ１１６内に、Ａｄｍｉｎｉｓｔｒａｔｏｒグループを含むエントリと、Ｇｕｅｓｔグループを含むエントリと、サブプロダクト３４を含むエントリと、を作成する。ＡＣＬ１１６にユーザグループとサブプロダクト３４とを含むエントリを作成することにより、アプリケーションプロダクト２６のコンテキストにおいてＡｄｍｉｎｉｓｔｒａｔｏｒｓグループにＲＥＡＤ＿ＷＲＩＴＥ特権が認可され、アプリケーションプロダクト２６のコンテキストにおいてＧｕｅｓｔｓグループにＲＥＡＤ特権が認可される。
【００１５】
別の実施形態では、Ａ＆Ａモジュール３０は、少なくとも１つのサブプロダクト３４が、サブプロダクト３４のコンテキストにおいて行使することができる特権動作を定義し実施することができるように適合される。さらに、Ａ＆Ａモジュール３０は、保護されたオブジェクトクラスをサポートするように適合される。保護されたオブジェクトクラスは、保護されたオブジェクトクラスの特定のインスタンスに対して行使することができる動作のセットから構成されるパーミッションセットを定義する。さらに、保護されたオブジェクトクラスは、パーミッションセットにおいて定義される動作の意味論を定義する。
【００１６】
サブプロダクト３４が、サブプロダクト３４のコンテキストにおいて行使することができる特権動作を定義し実施することが可能である場合、Ａｐｐｌｉｃａｔｉｏｎｓデータ構造１０４は複数のエントリを含むことになる。たとえば、Ａｐｐｌｉｃａｔｉｏｎｓデータ構造１０４は、ＧｅｎｅｒａｌＰｅｒｍｉｓｓｉｏｎＳｅｔとサブプロダクト３４に特定のパーミッションセット、たとえばＳｕｂＰｒｏｄＰｅｒｍｉｓｓｉｏｎＳｅｔ（サブプロダクトパーミッションセット）とを含む。サブプロダクトパーミッションセットは、データベース２２に登録され、サブプロダクトパーミッションセットを識別する状態情報は、サブプロダクト３４がインストールされる時に、Ａｐｐｌｉｃａｔｉｏｎｓデータベーステーブル１０４に格納される。インストール中、サブプロダクト３４は、Ａ＆Ａモジュール３０を利用して、サブプロダクトパーミッションセットを登録しサブプロダクトパーミッションセット状態情報をＡｐｐｌｉｃａｔｉｏｎｓデータ構造１０４に格納する。
【００１７】
さらに後述するように、サブプロダクトパーミッションセットの登録に続いて、システム管理者は、Ａ＆Ａモジュール３０がＡＣＬデータ構造１１６にエントリを作成するために使用する情報を入力することができる。たとえば、システム管理者からの入力に基づいて、Ａ＆Ａモジュール３０は、ＡＣＬ１１６に、少なくとも１つのプリンシパルに対してサブプロダクトパーミッションセットに含まれる少なくとも１つの特定の特権動作を実行することを許可するエントリを作成してもよい。
【００１８】
図３は、一実施形態においてＡ＆Ａモジュール３０によって利用されるＡＣＬ１１６を示す。ここでは、Ａ＆Ａモジュール３０は、単一データ構造、すなわちＡＣＬ１１６を利用して複数の保護されたオブジェクトと各保護されたオブジェクトに対して行使することができる特権動作とを列挙する。より詳細には、ＡＣＬ１１６は、ユーザが特定の保護されたオブジェクトに対して行使することができる特定の動作を定義する。ＡＣＬ１１６におけるエントリは、保護オブジェクト識別子２０４と、プリンシパル（すなわち、ユーザまたはユーザのグループ）識別子２０８と、ビットマスク２１２と、を含む。保護オブジェクト識別子２０４は、アクセスが制御されるオブジェクトに対する参照である。たとえば、保護オブジェクト識別子２０４は、記憶装置１４に含まれる相互接続装置等、アプリケーションプログラム２６の外部の物理的または論理的資源を表すことができ、あるいは、ファイル、ディレクトリまたはネットワーク接続等、アプリケーションプログラム２６内のオブジェクトクラスを表すことができ、あるいは、電子メールサービスまたはイベントエクスポートサービス等、アプリケーションプログラムによって提供されるサービスを表すことができる。
【００１９】
一実施形態では、保護オブジェクト識別子２０４とプリンシパル識別子２０８とは、数値コーディングを使用してＡＣＬ１１６に入力され、ビットマスク２１２は、６４ビット整数を使用して実施される。しかしながら、システム１０によって解釈可能ないかなる適当な識別子方式もしくはコードを採用してもよい。例示の目的のために、図３のエントリを、データコード及びビットマスクとは対照的にアルファテキストで示す。
【００２０】
プリンシパル識別子２０８は、保護オブジェクト識別子２０４によって識別される保護されたオブジェクトに対するアクセスが制御されるプリンシパルを表すオブジェクトに対する参照である。プリンシパルは、単一ユーザであってもユーザのグループであってもよい。ビットマスク２１２は、個々のデータビットが設定されるビットフィールドであって、それらは、プリンシパル識別子２０８によって識別されるプリンシパルが実行することができる、保護オブジェクト識別子２０４によって識別される保護されたオブジェクトに対するアクセスを表す。ビットマスク２１２のビットの意味論的な意味は、保護オブジェクト識別子２０４によって表されるオブジェクトのクラスまたはカテゴリによって定義される。
【００２１】
単に例示の目的のために、図３は、ＡＣＬ１１６をＳＡＭアプリケーションで利用されてもよいように示す。図３に示す１つの例示的なエントリは、ユーザ「ジョー」が、ストレージアレイ「サンタバーバラ・エンジニアリング・ラボ・アレイ」に対し「ストレージユニットを定義」し「バックアップ構成を編集」することを可能にする。
【００２２】
図４は、別の実施形態による、Ａ＆Ａモジュール３０によって利用されるＡＣＬ１１６を示す。ここでは、Ａ＆Ａモジュール３０は、少なくとも１つのサブプロダクト３４が１つまたは複数のパーミッションセットを登録することができるように適合される。例示の目的のために、図４のエントリを、上述したようにデータコードおよびビットマスクとは対照的にアルファテキストで示す。この実施形態では、Ａ＆Ａモジュール３０は、単一データ構造、すなわちＡＣＬ１１６を利用して、サブプロダクト３４がプリンシパルに、個々のオブジェクトに焦点が絞られない広いカテゴリ的な特権を認可するのを可能にする。たとえば、保護オブジェクト識別子２０４は、サブプロダクト３４を表すことができ、ビットマスク２１２において識別される特権動作の実行には、サブプロダクト３４および／またはアプリケーションプログラム２６内の複数のオブジェクトに対するアクセスが必要である。Ａ＆Ａモジュール３０は、各サブプロダクト３４をカテゴライズし、各サブプロダクトはこれらの作成されたカテゴリの各々に対してパーミッションセットを登録し、特権カテゴリをもたらす。たとえば、「Ａｃｃｏｕｎｔｉｎｇ（課金）」サブプロダクト３４は、動作「ストレージティア価格を設定」と「ホストにストレージを割当」とを含むパーミッションセットを定義してもよい。動作の各々は、プリンシパル識別子２０８によって識別されるプリンシパルが、指定された動作「ストレージティア価格を設定」および「ホストにストレージを割当」を実行するために有することが許可されなければならない特権を定義する、特定のビットマスク２１２に対応する。このように、Ａ＆Ａモジュール３０は、サブプロダクト特権カテゴリを、ＡＣＬ１１６において保護オブジェクト識別子２０４によって識別される保護されたオブジェクトとして、モデル化すなわち表現する。
【００２３】
サブプロダクト３４は、特権動作のセットを定義するパーミッションセットを登録する場合、あらゆるビットマスク２１２を解釈するように適合される、対応するプログラミング状態も登録する。このプログラミング状態は、データベース２２に保護されたオブジェクトとして配置される識別子を有する。したがって、ＡＣＬ１１６におけるサブプロダクト関連エントリの保護オブジェクト識別子２０４は、データベース２２に格納される、対応するプログラミング状態識別子、すなわち保護されたオブジェクトを指す。プログラミング状態識別子を使用して、ＡＣＬ１１６エントリのビットマスク２１２に意味論的な意味を提供するプログラミング状態が識別される。
【００２４】
図５は、別の実施形態によるＡＣＬ１１６を示す。ここでは、Ａ＆Ａモジュール３０は、少なくとも１つのサブプロダクト３４がサブプロダクトパーミッションセットを登録するのを可能にするように適合され、さらに、複数の保護されたオブジェクトと各オブジェクトに対して行使することができる特権動作とを列挙するように適合される。したがって、パーミッションセットと保護されたオブジェクトとはともに、同様に処理される。例示の目的のために、図５のエントリを、上述したように、データコードおよびビットマスクとは対照的にアルファテキストで示す。図示するように、ＡＣＬ１１６は、特定のサブプロダクト特権化カテゴリを識別する保護オブジェクト識別子２０４を有するエントリおよび／またはエンジニアリングラボアレイ等の特定のオブジェクトを識別するエントリを含むことができる。特定のオブジェクトに対応するビットマスク２１２は、アプリケーションプログラム２６によって定義される特権動作を識別し、一方サブプロダクトエントリのビットマスク２１２は、特定のサブプロダクト３４のコンテキストで定義される特権を識別する。サブプロダクト特権は、特定のタイプのオブジェクト許可に関して定義されるのではなく、特定のサブプロダクト３４のコンテキストで定義される。
【００２５】
より詳細には、各サブプロダクト３４は、特定のサブプロダクト３４のコンテキストで行使することができる特権動作を指定するパーミッションセットを定義する。パーミッションセットは、オブジェクト許可タイプには分類されないが、特定のサブプロダクト３４の意味論に関して定義される。各サブプロダクト３４は、Ａ＆Ａモジュール３０を利用してこれらのパーミッションセットを登録し、許可を実施するように適合される。Ａ＆Ａモジュール３０は、各サブプロダクト３４によって定義されるパーミッションセットを含む特権化カテゴリを作成し、その後、ＡＣＬ１１６において保護されたオブジェクトとして各特権化カテゴリをモデル化する。言換えれば、各サブプロダクト３４によって定義されるパーミッションセットは、アクセス可能性を限定しなければならない保護されたオブジェクトとして扱われ、安全にされる。これらの限定の性質は、パーミッションセット内で定義される個々の許可によって確定される。パーミッションセットは、全体として、ＡＣＬ１１６において保護されたオブジェクトとしてモデル化されるカテゴリとして表され、それはデータベース２２に格納される。この「モデル化された」保護されたオブジェクトに対するアクセスは、特定のサブプロダクト３４のコンテキストにおいてプリンシパルによって享受される許可によって確定される。このため、Ａ＆Ａモジュール３０により、ＡＣＬ１１６のエントリは、サブプロダクト内の１つまたは複数のオブジェクトに対し誰が何を行うことができるかを定義することができる。また、それは、パーミッションセットが動的に登録され、そこに定義された許可が実施されるのを可能にする。さらに、すべてのサブプロダクトカテゴリおよびオブジェクトクラスに対するアクセス制御情報のすべてが、単一データ構造、すなわちＡＣＬ１１６に格納される。
【００２６】
図６は、本発明の一実施形態において実行されるステップの簡易フローチャート５００である。最初にＡ＆Ａモジュール３０がロードされると、ステップ５０２に示すように、Ａ＆Ａモジュール３０は、複数のユーザグループを作成し、それらユーザグループをＡＡＵｓｅｒＧｒｏｕｐsデータ構造１０８に格納する。さらに、ステップ５０４に示すように、Ａ＆Ａモジュール３０は、複数のデフォルトユーザを作成し、デフォルトユーザをＡＡＵｓｅｒデータ構造１０８に格納し、各デフォルトユーザをユーザグループの１つに割当てることにより、割当てられたユーザグループに対応するすべての特権を各デフォルトユーザに割当てる。さらに、ステップ５０６に示すように、Ａ＆Ａモジュール３０は、汎用パーミッションセットをデータベース２２に登録し、汎用パーミッションセットを識別する状態情報をＡｐｐｌｉｃａｔｉｏｎｓデータ構造１０４に格納する。汎用パーミッションセットは、アプリケーションプログラム２６全体と、アプリケーションプログラム２６に含まれるすべての機能カテゴリ、たとえば、後にロードしてもよい任意のサブプロダクト３４とに適用される特権動作を含む。
【００２７】
そして、ステップ５０８に示すように、Ａ＆Ａモジュール３０は、汎用パーミッションセットからの少なくとも１つの特権動作をユーザグループの各々に割当てることにより、ＡＣＬ１１６にエントリを作成する。このため、各エントリの保護オブジェクト識別子２０４は、Ａｐｐｌｉｃａｔｉｏｎｓテーブル１０４における汎用パーミッションセットを識別する状態情報を含み、プリンシパル識別子２０８は、ＡＡＵｓｅｒＧｒｏｕｐsデータ構造１１２におけるユーザグループのうちの１つを識別する状態情報を含み、ビットマスク２１２は、同じエントリのプリンシパル識別子２０８によって識別されるユーザグループが、アプリケーションプログラム２６および／または任意のサブプロダクト３４内で実行することが許可される１つまたは複数の特権動作を識別する。
【００２８】
システム管理者が新たなユーザを作成したいと望む場合、ステップ５１０に示すように、システム管理者は、入出力装置２０とモニタ１８に表示されるグラフィカルユーザインタフェース（図示せず）とを使用して、新たなユーザの名前およびパスワードを入力し、その新たなユーザをユーザグループのうちの少なくとも１つに割当てる。そして、ステップ５１２に示すように、Ａ＆Ａモジュール３０は、システム管理者によって入力される情報を使用して、ＡＡＵｓｅｒデータ構造１０８に、新たなユーザが属するＡＡＵｓｅｒＧｒｏｕｐsデータ構造のユーザグループを指す状態情報を含む新たなエントリを作成する。このため、ステップ５１４に示すように、新たなユーザがシステム１０にログオンすると、Ａ＆Ａモジュール３０は、ＡＡＵｓｅｒｓデータ構造１０８において新たなユーザの名前を見出し、ＡＡＵｓｅｒＧｒｏｕｐｓデータ構造１１２から新たなユーザが属する対応するユーザグループを見出す。そして、ステップ５１６に示すように、Ａ＆Ａモジュールは、ＡＣＬ１１６をチェックすることにより、ＡＣＬ１１６において新たなユーザが属するユーザグループに割当てられている特権動作に基づいて、新たなユーザが実行することが許可されている特権動作を確定する。
【００２９】
図７は、本発明の別の実施形態において実行されるステップの簡易フローチャート６００である。Ａ＆Ａモジュール３０は、最初にロードされると、ステップ６０２に示すように、複数のユーザグループを作成し、それらユーザグループをＡＡＵｓｅｒＧｒｏｕｐsデータ構造１０８に格納する。さらに、ステップ６０４に示すように、Ａ＆Ａモジュール３０は、複数のデフォルトユーザを作成し、デフォルトユーザをＡＡＵｓｅｒデータ構造１０８に格納し、各デフォルトユーザをユーザグループのうちの１つに割当てることにより、各デフォルトユーザに、割当てられたユーザグループに対応する特権のすべてを割当てる。さらに、ステップ６０６に示すように、Ａ＆Ａモジュール３０は、汎用パーミッションセットをデータベース２２に登録し、汎用パーミッションセットを識別する状態情報をＡｐｐｌｉｃａｔｉｏｎｓデータ構造１０４に格納する。汎用パーミッションセットは、アプリケーションプログラム２６のコア機能のみに適用され、単一オブジェクトに対するアクセスを必要とする特権動作を含む。
【００３０】
その後、ステップ６０８に示すように、少なくとも１つのサブプロダクト３４は、Ａ＆Ａモジュール３０を利用してサブプロダクト３４に特定のパーミッションセットをデータベース２２に登録し、Ａ＆Ａモジュール３０は、サブプロダクトパーミッションセットを識別する状態情報をＡｐｐｌｉｃａｔｉｏｎｓデータ構造１０４に格納する。サブプロダクトパーミッションセットは、サブプロダクト３４のみに適用され複数のオブジェクトに対するアクセスを必要とする、特権動作を含む。
【００３１】
そして、ステップ６１０に示すように、システム管理者は、入出力装置２０とモニタ１８に表示されるグラフィカルユーザインタフェース（図示せず）とを使用することによりＡＣＬデータ構造１１６をポピュレートする。ステップ６１２に示すように、システム管理者は、汎用パーミッションセットからの少なくとも１つの特権動作をユーザグループの各々に割当てる情報を入力する。ステップ６１４に示すように、Ａ＆Ａモジュール３０は、この情報を使用して、ＡＣＬ１１６に、各ユーザグループの少なくとも１つの特権動作メンバが実行することが許可されることを識別する、複数のエントリを作成する。
【００３２】
サブプロダクト関連の特権を割当てるために、ステップ６１６に示すように、システム管理者は、新たなプリンシパル、すなわち1人または複数のユーザを、新たなプリンシパルの名前およびパスワードを入力することにより作成し、その新たなプリンシパルをユーザグループのうちの少なくとも１つに割当てる。次に、ステップ６１８に示すように、システム管理者は、サブプロダクトパーミッションセットからの少なくとも１つの特権動作を新たなプリンシパルに割当てる。そして、ステップ６２０に示すように、Ａ＆Ａモジュール３０は、システム管理者による情報入力を使用して、ＡＡＵｓｅｒデータ構造１０８に、新たなプリンシパルを識別し新たなプリンシパルが属するＡＡＵｓｅｒＧｒｏｕｐsデータ構造のユーザグループを指す状態情報を含む新たなエントリを作成する。さらに、ステップ６２２に示すように、Ａ＆Ａモジュール３０は、ＡＣＬ１１６に、サブプロダクトパーミッションセットが保護されたオブジェクトとしてモデル化される新たなエントリを作成する。このため、保護オブジェクト識別子２０４は、サブプロダクトパーミッションセットを識別する状態情報を含む。さらに、新たなエントリのプリンシパル識別子２０８とビットマスク２１２とは、それぞれ、プリンシパルを識別する状態情報と、プリンシパルがサブプロダクトのコンテキストにおいて実行することが許可される特権動作とを含む。このため、ステップ６２４に示すように、新たなプリンシパルがシステム１０にログオンすると、Ａ＆Ａモジュール３０は、ＡＣＬ１１６におけるプリンシパルに関連するすべてのエントリを確定し、ＡＣＬ１１６に示されるようにプリンシパルが実行を許可されるすべての特権動作を可能にする。これらの特権動作は、プリンシパルがユーザグループのメンバとして実行することが許可されている動作であっても、またはプリンシパルがサブプロダクトのコンテキストで実行することが許可されている動作であってもよい。
【００３３】
代替的に、システム管理者は、ＡＡＵｓｅｒＧｒｏｕｐsデータ構造１１２において少なくとも１つのセキュリティグループを作成するための情報を入力し、サブプロダクトパーミッションセットからの少なくとも１つのサブプロダクト特権動作をセキュリティグループに割当てることができる。そして、Ａ＆Ａモジュール３０は、ＡＣＬ１１６にエントリを作成する。そこで、プリンシパル識別子２０８は、セキュリティグループを識別し、保護オブジェクト識別子２０４は、サブプロダクトパーミッションセットに対応するＡｐｐｌｉｃａｔｉｏｎｓテーブル１０４におけるエントリを識別し、ビットマスク２１２は、少なくとも１つのサブプロダクト特権動作を識別する。そして、システム管理者は、新たなプリンシパルをセキュリティグループに割当てる。新たなエントリは、サブプロダクトパーミッションセットに対応する状態情報と、ＡＡＵｓｅｒデータ構造２０８におけるエントリと、セキュリティグループが実行することが許可される少なくとも１つの特権動作とを含む。このため、新たなプリンシパルがログオンすると、Ａ＆Ａモジュール３０は、プリンシパルに関連するＡＣＬ１１６のすべてのエントリを確定し、プリンシパルが個々に実行することが許可されている特権動作のすべてと、プリンシパルが属するセキュリティグループがＡＣＬ１１６に示すように実行することが許可されている特権動作のすべてとを可能にする。
【００３４】
このように、各エントリの保護オブジェクト識別子２０４は、Ａｐｐｌｉｃａｔｉｏｎｓテーブル１０４におけるパーミッションセットを識別する状態情報を含み、プリンシパル識別子２０８は、ＡＡＵｓｅｒＧｒｏｕｐsデータ構造１１２におけるユーザグループのうちの１つを識別する状態情報を含み、ビットマスク２１２は、同じエントリのプリンシパル識別子２０８によって識別されるユーザグループが、アプリケーションプログラム２６および／または任意のサブプロダクト３４内で実行することが許可される１つまたは複数の特権動作を識別する。
【００３５】
例示的な実施形態の上記説明は、本質的に単に例示的であり、そのため、本発明の実施形態の要旨から逸脱しない変形形態は、本発明の実施形態の範囲内にあるように意図される。かかる変形形態は、本発明の実施形態の精神および範囲から逸脱するものとしてみなされるべきではない。
【００３６】
以下に本発明の実施態様の例を列挙する。
〔実施態様１〕
アプリケーションプログラムにおけるオブジェクトへのアクセスを制御する方法であって、
複数の保護されたオブジェクトに対する権限情報を共通テーブルに格納することを含む方法。
〔実施態様２〕
格納することは、前記複数の保護されたオブジェクトの各々に対し、その保護されたオブジェクトに関してプリンシパルが許可される１つまたは複数の動作を識別する情報を格納することを含む、実施態様１記載の方法。
〔実施態様３〕
格納することは、前記複数の保護されたオブジェクトの各々に対し、その保護されたオブジェクトに関して権限が認可された前記プリンシパルを識別する情報を格納することを含む、実施態様２記載の方法。
〔実施態様４〕
アプリケーションプログラムにおける機能に対するアクセスを制御する方法であって、
前記アプリケーションプログラム内の少なくとも１つのパーミッションセットを登録することであって、該パーミッションセットは、該アプリケーションプログラムの機能カテゴリに関連する複数の特権動作を含む、登録すること、
プリンシパルに対し前記パーミッションセットにおける前記特権動作のうちの少なくとも１つへの権限を認可する情報を受取ること、
前記プリンシパルによって開始されると、前記受取られた情報にしたがって前記特権動作のうちの前記少なくとも１つを実行することと、
を含む方法。
〔実施態様５〕
前記受取られた情報をテーブルに格納することをさらに含む、実施態様４記載の方法。
〔実施態様６〕
前記テーブルは、前記パーミッションセットを識別するための第１のデータフィールドと、前記プリンシパルを識別するための第２のデータフィールドと、前記プリンシパルが許可される前記特権動作のうちの前記少なくとも１つを識別するための第３のデータフィールドと、を含む、実施態様５記載の方法。
〔実施態様７〕
前記特権動作のうちの前記少なくとも１つの実行は、複数のオブジェクトに対するアクセスを必要とする、実施態様４記載の方法。
〔実施態様８〕
前記パーミッションセットは、前記アプリケーションプログラムによってサポートされる実質的にすべての特権動作を含む、実施態様４記載の方法。
〔実施態様９〕
前記パーミッションセットは、前記アプリケーションプログラムのコンポーネントによってサポートされる実質的にすべての特権動作を含む、実施態様４記載の方法。
〔実施態様１０〕
前記パーミッションセットは、前記アプリケーションプログラムの複数のアドインコンポーネントによってサポートされる実質的にすべての特権動作を含む、実施態様４記載の方法。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施形態によるコンピュータネットワークのブロック図である。
【図２】本発明の別の実施形態による、図１に示す権限・認証（Ａ＆Ａ）モジュールによって使用されるあらゆるデータ構造を示す。
【図３】本発明の別の実施形態による、図１に示すＡ＆Ａモジュールによって利用されるアクセス制御リスト（ＡＣＬ）を示す。
【図４】ＡＣＬの別の実施形態を示す。
【図５】ＡＣＬのさらに別の実施形態を示す。
【図６】本発明の一実施形態で実行されるステップの簡易フローチャートである。
【図７】本発明の別の実施形態で実行されるステップの簡易フローチャートである。
【図１】
2004158007.tif 000003
【図２】
2004158007.tif 000004
【図３】
2004158007.tif 000005
【図４】
2004158007.tif 000006
【図５】
2004158007.tif 000007
【図６】
2004158007.tif 000008
【図７】
2004158007.tif 000009