(57)【要約】【課題】既に設定済みのアクセス制御リストと全く同一のアクセス制御を実現し、かつアクセス制御リストに含まれるルール数を最小化する。【解決手段】アクセス制御行列生成部５は、アクセス制御リストＤＢ４のアクセス制御リストからアクセス制御行列を作成する。アクセス制御リスト最小化部７は、Ｓｕｂｕｊｅｃｔ情報またはアクセス制御リストが更新される頻度、あるいは管理者の要求に応じて、アクセス制御リスト、アクセス制御行列を解析し、アクセス制御ルール数が最小となる最小アクセス制御リストを作成する。リクエスト可否判定部９は、リクエストとアクセス制御行列との内容を比較し、リクエストが許可されるか禁止されるかを判定する。【選択図】図１
2007226495.tif 000002
【特許請求の範囲】
【請求項１】
アクセス対象であるターゲットに対するユーザのアクセス条件を定義する複数のアクセス制御ルールからなるアクセス制御リストに基づいて、前記ターゲットに対する前記ユーザのアクセス権を定義するためのアクセス制御行列を生成するアクセス制御行列生成手段と、
前記アクセス制御行列生成手段によって生成されたアクセス制御行列に基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成するアクセス制御リスト最小化手段と
を具備することを特徴とするポリシー管理装置。
【請求項２】
前記アクセス制御リスト最小化手段は、
前記アクセス制御行列から生成可能なアクセス制御ルールの全ての組み合わせを生成するアクセス制御ルール生成手段と、
前記アクセス制御ルール生成手段によって生成されたアクセス制御ルールの組み合わせのうち、アクセス制御ルール数が最小となる組み合わせを抽出する抽出手段と、
前記抽出手段によって抽出されたアクセス制御ルールの組み合わせに基づいて、前記最小アクセス制御リストを生成する最小アクセス制御リスト生成手段と
を具備することを特徴とする請求項１記載のポリシー管理装置。
【請求項３】
アクセス対象であるターゲットに対するユーザのアクセス条件を定義する複数のアクセス制御ルールからなるアクセス制御リストを記憶するアクセス制御リスト記憶手段と、
前記アクセス制御リスト記憶手段に記憶されているアクセス制御リストに基づいて、前記ターゲットに対する前記ユーザのアクセス権を定義するためのアクセス制御行列を生成するアクセス制御行列生成手段と、
前記アクセス制御行列を記憶するアクセス制御行列記憶手段と、
前記アクセス制御行列記憶手段に記憶されているアクセス制御行列に基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成し、前記アクセス制御リスト記憶手段に出力するアクセス制御リスト最小化手段と、
前記アクセス制御行列記憶手段に記憶されている前記アクセス制御行列に従って、ユーザによるターゲットへのリクエストの可否を判定するリクエスト可否判定手段と
を具備することを特徴とするポリシー管理装置。
【請求項４】
コンピュータに、
アクセス対象であるターゲットに対するユーザのアクセス条件を定義する複数のアクセス制御ルールからなるアクセス制御リストに基づいて、前記ターゲットに対する前記ユーザのアクセス権を定義するためのアクセス制御行列を生成するステップと、
前記アクセス制御リストと前記アクセス制御行列とに基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成するステップと
を実現させることを特徴とするポリシー管理プログラム。
【請求項５】
アクセス対象であるターゲットに対するユーザのアクセス条件が定義されたアクセス制御ルールの集合体であるアクセス制御リストに基づいて、前記ターゲットに対する前記ユーザのアクセス権を定義するためのアクセス制御行列を生成するステップと、
前記アクセス制御リストと前記アクセス制御行列とに基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成するステップと
を含むことを特徴とするポリシー管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポリシー管理装置、ポリシー管理プログラムおよびポリシー管理方法に関する。
【背景技術】
【０００２】
従来より、ファイルサーバやデータベースシステム等への不正アクセスや誤操作による情報漏洩を防ぐために、アクセス制御リストを用いたアクセス制御技術が提案されている（例えば、特許文献１、特許文献２参照）。代表的なアクセス制御方式として、ロールベースアクセス制御技術がある。ロールベースアクセス制御技術には、いくつかの応用事例が存在する。以下、ロールベースアクセス制御技術の一例について説明する。なお、以下の説明において、ポリシーという文言を用いている部分があるが、該ポリシーとは、ファイルサーバやデータベースシステム等へのアクセスできる条件のことである。
【０００３】
まず、アクセス制御ルールについて説明する。ロールベースアクセス制御技術では、アクセス制御の主体を「Ｓｕｂｊｅｃｔ  Ｒｏｌｅ」と呼び、これらをＳ１、Ｓ２、…、Ｓｎとする。また、アクセス制御の客体を「Ｔａｒｇｅｔ」と呼び、Ｔ１、Ｔ２、…、Ｔｎとする。ここで、Ｓｕｂｊｅｃｔ  ＲｏｌｅＳ１、Ｓ２、…、Ｓｎは、それぞれ役職や組織名などを表現しており、添え字の番号順に順序関係が設定されているものとする。例えば、Ｓ１＝一般社員＜Ｓ２＝課長代理＜Ｓ３＝課長＜Ｓ４＝部長代理＜Ｓ５＝部長＜…＜Ｓｎ＝代表取締役といった具合である。また、Ｔａｒｇｅｔは、それぞれ独立したものであり、このような順序関係はないものとする。
【０００４】
ロールベースアクセス制御技術には、アクセス制御ルールとして、「ａｕｔｈｏｒｉｚａｔｉｏｎルール」、「ｐｒｏｐａｇａｔｉｏｎルール」、「ｅｘｃｅｐｔｉｏｎルール」の３種類のアクセス制御ルールが存在する。これらの３種類のアクセス制御ルールは、図９に示すように、ｐｒｏｐａｇａｔｉｏｎルールは、さらに、４つのタイプに、ａｕｔｈｏｒｉｚａｔｉｏｎルールとｅｘｃｅｐｔｉｏｎルールは、それぞれ２つのタイプのルールに分類される。
【０００５】
より具体的には、ａｕｔｈｏｒｉｚａｔｉｏｎルールには、Ａｕｔｈ＋（Ｓａ、Ｔｂ）とＡｕｔｈ−（Ｓａ、Ｔｂ）の２つのタイプがある。Ａｕｔｈ＋（Ｓａ、Ｔｂ）は、Ｓｕｂｊｅｃｔ  ＲｏｌｅがＳａのユーザはＴａｒｇｅｔ  Ｔｂにアクセス可能ということを定義するルールであり、Ａｕｔｈ−（Ｓａ、Ｔｂ）は、Ｓｕｂｊｅｃｔ  ＲｏｌｅがＳａのユーザはＴａｒｇｅｔ  Ｔｂにアクセス禁止ということを定義するルールである。
【０００６】
また、ｐｒｏｐａｇａｔｉｏｎルールには、Ａｕｔｈ＋（Ｔｂ）↑、Ａｕｔｈ＋（Ｔｂ）↓、Ａｕｔｈ−（Ｔｂ）↑、Ａｕｔｈ−（Ｔｂ）↓の４つのタイプがある。Ａｕｔｈ＋（Ｔｂ）↑は、Ｔａｒｇｅｔ  Ｔｂに対して設定されたＡｕｔｈ＋（＊、＊）は、上方のＳｕｂｊｅｃｔ  Ｒｏｌｅに伝播することを定義するルールであり、Ａｕｔｈ＋（Ｔｂ）↓は、Ｔａｒｇｅｔ  Ｔｂに対して設定されたＡｕｔｈ＋（＊、＊）は、下方のＳｕｂｊｅｃｔ  Ｒｏｌｅに伝播することを定義するルールである。
【０００７】
また、Ａｕｔｈ−（Ｔｂ）↑は、Ｔａｒｇｅｔ  Ｔｂに対して設定されたＡｕｔｈ−（＊、＊）は、上方のＳｕｂｊｅｃｔ  Ｒｏｌｅに伝播することを定義するルールであり、Ａｕｔｈ−（Ｔｂ）↓は、Ｔａｒｇｅｔ  Ｔｂに対して設定されたＡｕｔｈ−（＊、＊）は、下方のＳｕｂｊｅｃｔ  Ｒｏｌｅに伝播することを定義するルールである。なお、上記ルールの説明においては、「上方」とは、上記Ｓｕｂｊｅｃｔ  ＲｏｌｅＳ１、Ｓ２、…、Ｓｎを昇順に並べた際の添え字の小さい方を示し、「下方」とは、添え字の大きい方を示す。
【０００８】
また、ｅｘｃｅｐｔｉｏｎルールには、ｅＡｕｔｈ＋（Ｓａ、Ｔｂ）とｅＡｕｔｈ−（Ｓａ、Ｔｂ）の２つのタイプがある。ｅＡｕｔｈ＋（Ｓａ、Ｔｂ）は、Ｓｕｂｊｅｃｔ  ＲｏｌｅがＳａのユーザは、Ｔａｒｇｅｔ  Ｔｂにアクセス禁止ということを定義するルールであり、ｅＡｕｔｈ−（Ｓａ、Ｔｂ）は、Ｓｕｂｊｅｃｔ  ＲｏｌｅがＳａのユーザは、Ｔａｒｇｅｔ  Ｔｂにアクセス禁止ということを定義するルールである。
【０００９】
次に、アクセス制御リストについて説明する。上述した３種類、８タイプのアクセス制御ルールの集合をアクセス制御リストと呼ぶ。アクセス制御リストは、システム管理者により作成されるリストである。アクセス制御リストは、ルールの対象となるＴａｒｇｅｔの種類によって分類される。例えば、ＴａｒｇｅｔＴ１に対して設定されたアクセス制御ルールを全て集めたものを、「アクセス制御リスト（Ｔ１）」と呼ぶ。アクセス制御リスト（Ｔ１）、アクセス制御リスト（Ｔ２）、アクセス制御リスト（Ｔ３）の例を図１０に示す。但し、Ｓｕｂｊｅｃｔ  Ｒｏｌｅには、｛Ｓ１＜Ｓ２＜Ｓ３＜Ｓ４＜Ｓ５＜Ｓ６＜Ｓ７＜Ｓ８｝の８つが、Ｔａｒｇｅｔには、｛Ｔ１、Ｔ２、Ｔ３｝の３つのみがそれぞれ存在しているものとする。
【００１０】
次に、アクセス制御行列について説明する。上記アクセス制御リストに基づいて、全てのＳｕｂｊｅｃｔ  ＲｏｌｅとＴａｒｇｅｔとの組み合わせに設定されているアクセス権を列挙したものをアクセス制御行列と呼ぶ。アクセス制御行列は、システムが実際のアクセス制御処理を行うために、必要に応じてシステム内部で作成されるものであり、一般に、システム管理者がアクセス制御行列を直接作成・編集などする必要はない。上述したアクセス制御リスト（Ｔ１）〜（Ｔ３）に対応するアクセス制御行列を、図１１に示す。
【００１１】
ここで、図１０に示すアクセス制御リストから図１１に示すアクセス制御行列を作成する方法について、アクセス制御リスト（Ｔ１）の場合を例に、図１２を参照して簡単に説明する。まず、縦軸に全てのＳｕｂｊｅｃｔ  Ｒｏｌｅを、Ｓｕｂｊｅｃｔ  Ｒｏｌｅ間に設定されている順序に従って列挙し、横軸にＴａｒｇｅｔの名前を記述した表を作成する（Ｓｔｅｐ１）。次に、アクセス制御リスト（図１０）に記述されている全てのａｕｔｈｏｒｉｚａｔｉｏｎルールに対して、＋・−を上記表に記述する（Ｓｔｅｐ２）。
【００１２】
次に、アクセス制御リスト（図１０）に記述されている全てのｐｒｏｐａｇａｔｉｏｎルールに従って、上記Ｓｔｅｐ２で記述された＋と−とを他の行へ伝播させて記述する（Ｓｔｅｐ３）。次に、アクセス制御リスト（図１０）に記述されている全てのｅｘｃｅｐｔｉｏｎルールに従って、上記Ｓｔｅｐ３までの手順で作成されたアクセス制御行列の＋、−記号を上書きする（Ｓｔｅｐ４）。
【００１３】
上記Ｓｔｅｐ１〜Ｓｔｅｐ４の手順を全てのＴａｒｇｅｔについて実行することにより、アクセス制御行列が完成する。なお、上記手順に従ってアクセス制御行列を作成した場合、１つの行に「＋と−の両方の記号が記述される」、あるいは「＋の記号も−の記号も記述されない」といったケースが発生することが考えられる。これは、先に設定されたアクセス制御リストが不完全なために発生する問題であり、ここでは、対象外とする。すなわち、事前にアクセス制御リストが適正に設定され、アクセス制御行列の中に二重の記号記述や、未定義の箇所が存在しないようにしてあるものとする。
【特許文献１】特開２００５−１８２４７８号公報
【特許文献２】特開２００４−１３９２９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
一般に、管理者が設定するのがアクセス制御リストであり、システム内部では、これを元に自動作成されるアクセス制御行列に基づいて、実際のアクセス制御処理が実施される。このとき、あるアクセス制御行列が作成される元となるアクセス制御リストの記述方法は一意とは限らない。このため、管理者のアクセス制御リストの管理作業が煩雑化する。
【００１５】
例えば、図１３に示すアクセス制御リストからは、全て同一のアクセス制御行列（図１１のＴ１）が作成される。一般に、アクセス制御リストにｅｘｃｅｐｔｉｏｎルールが増えていくと、アクセス制御リストに記述されるルールの数が多くなり、管理者がそれを管理することが困難となる。管理者にとっては、アクセス制御リストに含まれるルールの数が少なければ少ないほどよい。例えば、図１３に示す例では、アクセス制御リスト（Ｔ１）Ｎｏ．２や、アクセス制御リスト（Ｔ１）Ｎｏ．３よりも、アクセス制御リスト（Ｔ１）Ｎｏ．１が最も管理しやすいアクセス制御リストであることは明らかである。
【００１６】
しかしながら、ｅｘｃｅｐｔｉｏｎルールは、運用上、必要に応じて、アクセス制御リストの中に追加されていくものであり、その数が次第に増加していくことは当然である。そこで、設定されたアクセス制御リストを定期的に解析し、同一のアクセス制御行列が作成されるルール数が最小となるアクセス制御リスト（これを最小アクセス制御リストと呼ぶ）を自動的に作成する技術が必要となる。
【００１７】
従来技術（特許文献１）では、アクセス制御リストに設定された矛盾するルールや冗長ルールを検出することは可能である。しかしながら、アクセス制御リストに含まれるルール数を最小化する手法は存在しない。また、従来技術（特許文献２）では、実運用する前にアクセス制御リストの中に、過度に厳しい、また緩いポリシーがないか、診断して提示することが可能である。しかしながら、アクセス制御リストに含まれるルール数を最小化する手法までは言及されていない。
【００１８】
本発明は、このような事情を考慮してなされたものであり、その目的は、既に設定済みのアクセス制御リストと全く同一のアクセス制御を実現することができ、かつアクセス制御リストに含まれるルール数を最小化することができるポリシー管理装置、ポリシー管理プログラムおよびポリシー管理方法を提供することにある。
【課題を解決するための手段】
【００１９】
上述した課題を解決するために、本発明は、アクセス対象であるターゲットに対するユーザのアクセス条件を定義する複数のアクセス制御ルールからなるアクセス制御リストに基づいて、前記ターゲットに対する前記ユーザのアクセス権を定義するためのアクセス制御行列を生成するアクセス制御行列生成手段と、前記アクセス制御行列生成手段によって生成されたアクセス制御行列に基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成するアクセス制御リスト最小化手段とを具備することを特徴とする。
【００２０】
本発明は、上記の発明において、前記アクセス制御リスト最小化手段は、前記アクセス制御行列から生成可能なアクセス制御ルールの全ての組み合わせを生成するアクセス制御ルール生成手段と、前記アクセス制御ルール生成手段によって生成されたアクセス制御ルールの組み合わせのうち、アクセス制御ルール数が最小となる組み合わせを抽出する抽出手段と、前記抽出手段によって抽出されたアクセス制御ルールの組み合わせに基づいて、前記最小アクセス制御リストを生成する最小アクセス制御リスト生成手段とを具備することを特徴とする。
【００２１】
また、上述した課題を解決するために、本発明は、アクセス対象であるターゲットに対するユーザのアクセス条件を定義する複数のアクセス制御ルールからなるアクセス制御リストを記憶するアクセス制御リスト記憶手段と、前記アクセス制御リスト記憶手段に記憶されているアクセス制御リストに基づいて、前記ターゲットに対する前記ユーザのアクセス権を定義するためのアクセス制御行列を生成するアクセス制御行列生成手段と、前記アクセス制御行列を記憶するアクセス制御行列記憶手段と、前記アクセス制御行列記憶手段に記憶されているアクセス制御行列に基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成し、前記アクセス制御リスト記憶手段に出力するアクセス制御リスト最小化手段と、前記アクセス制御行列記憶手段に記憶されている前記アクセス制御行列に従って、ユーザによるターゲットへのリクエストの可否を判定するリクエスト可否判定手段とを具備することを特徴とする。
【００２２】
また、上述した課題を解決するために、本発明は、コンピュータに、アクセス対象であるターゲットに対するユーザのアクセス条件を定義する複数のアクセス制御ルールからなるアクセス制御リストに基づいて、前記ターゲットに対する前記ユーザのアクセス権を定義するためのアクセス制御行列を生成するステップと、前記アクセス制御リストと前記アクセス制御行列とに基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成するステップとを実現させることを特徴とする。
【００２３】
また、上述した課題を解決するために、本発明は、アクセス対象であるターゲットに対するユーザのアクセス条件が定義されたアクセス制御ルールの集合体であるアクセス制御リストに基づいて、前記ターゲットに対する前記ユーザのアクセス権を定義するためのアクセス制御行列を生成するステップと、前記アクセス制御リストと前記アクセス制御行列とに基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成するステップとを含むことを特徴とする。
【発明の効果】
【００２４】
この発明によれば、アクセス対象であるターゲットに対するユーザのアクセス条件を定義する複数のアクセス制御ルールからなるアクセス制御リストに基づいて、アクセス制御行列生成手段によって、ターゲットに対するユーザのアクセス権を定義するためのアクセス制御行列を生成し、アクセス制御リスト最小化手段によって、生成されたアクセス制御行列に基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成する。したがって、既に設定済みのアクセス制御リストと全く同一のアクセス制御を実現することができ、かつアクセス制御リストに含まれるルール数を最小化することができ、アクセス制御リストの管理作業を大幅に軽減することができるという利点が得られる。
【００２５】
また、本発明によれば、アクセス制御リスト最小化手段では、アクセス制御ルール生成手段によって、アクセス制御行列から生成可能なアクセス制御ルールの全ての組み合わせを生成し、抽出手段によって、生成されたアクセス制御ルールの組み合わせのうち、アクセス制御ルール数が最小となる組み合わせを抽出し、最小アクセス制御リスト生成手段によって、抽出されたアクセス制御ルールの組み合わせに基づいて、最小アクセス制御リストを生成する。したがって、既に設定済みのアクセス制御リストと全く同一のアクセス制御を実現することができ、かつアクセス制御リストに含まれるルール数を最小化することができ、アクセス制御リストの管理作業を大幅に軽減することができるという利点が得られる。
【００２６】
また、本発明によれば、アクセス対象であるターゲットに対するユーザのアクセス条件を定義する複数のアクセス制御ルールからなるアクセス制御リストをアクセス制御リスト記憶手段に記憶し、アクセス制御行列生成手段によって、アクセス制御リストに基づいて、ターゲットに対するユーザのアクセス権を定義するためのアクセス制御行列を生成し、該アクセス制御行列をアクセス制御行列記憶手段に記憶し、アクセス制御リスト最小化手段によって、アクセス制御リストとアクセス制御行列とに基づいて、アクセス制御ルール数が最小となる最小アクセス制御リストを生成してアクセス制御リスト記憶手段に出力し、リクエスト可否判定手段によって、アクセス制御行列記憶手段に記憶されているアクセス制御行列に従って、ユーザによるターゲットへのリクエストの可否を判定する。したがって、既に設定済みのアクセス制御リストと全く同一のアクセス制御を実現することができ、かつアクセス制御リストに含まれるルール数を最小化することができ、アクセス制御リストの管理作業を大幅に軽減することができるという利点が得られる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の一実施形態によるポリシー管理装置を、図面を参照して説明する。
図１は、本発明の実施形態によるポリシー管理装置の構成を示すブロック図である。Ｓｕｂｊｅｃｔ（ユーザ）登録・削除・修正部１は、Ｓｕｂｊｅｃｔ（ユーザ）情報ＤＢ（データベース）３に対して、Ｓｕｂｊｅｃｔ（ユーザ）の情報・順序を登録（削除、修正）する。アクセス制御リスト登録・削除・修正部２は、アクセス制御リストＤＢ４に対して、アクセス制御リストを登録（削除、修正）する。アクセス制御行列生成部５は、アクセス制御リストＤＢ４のアクセス制御リストからアクセス制御行列を作成し、アクセス制御行列ＤＢ６に格納する。
【００２８】
アクセス制御リスト最小化部７は、Ｓｕｂｕｊｅｃｔ（ユーザ）情報またはアクセス制御リストが更新される頻度、あるいは管理者の要求に応じて、Ｓｕｂｊｅｃｔ（ユーザ）情報・アクセス制御リスト・アクセス制御行列を解析し、最小なルール数で構成されるアクセス制御リストを作成する。リクエスト受付部８は、Ｓｕｂｊｅｃｔ（ユーザ１２）からｔａｒｇｅｔ（ファイルサーバ１３）へのアクセス要求を受け付ける。リクエスト可否判定部９は、リクエストとアクセス制御行列との内容を比較し、リクエストが許可されるか禁止されるかを判定する。
【００２９】
可否判定結果処理部１０は、上記リクエストの可否判定結果をＴａｒｇｅｔ（ファイルサーバ１３）に通知する。アクセス制御リストチェック部１１は、アクセス制御リストとＳｕｂｊｅｃｔ（ユーザ）情報とを比較し、アクセス制御リストに記述されているＳｕｂｊｅｃｔが存在しない場合には、該当するルールを無効にする作業を行うとともに、アクセス制御リストとＴａｒｇｅｔとを比較し、アクセス制御リストに記述されているＴａｒｇｅｔが存在しない場合には、該当するルールを無効にする作業を行う。
【００３０】
次に、上述した本実施形態の動作について説明する。ここで、図２ないし図４は、本実施形態によるポリシー管理装置の動作を説明するためのフローチャートである。ここでは、図１１に示すアクセス制御行列（Ｔ１）に対する最小アクセス制御リストを導出する場合について説明する。
【００３１】
まず、アクセス制御リストを読み込み（Ｓ１）、既存のアクセス制御行列を一時的に別テーブルにコピーする（Ｓ２）。次に、アクセス制御リストのソート処理として、Ｓｕｂｊｅｃｔ  Ｒｏｌｅ（ユーザルール）の順序に従い、昇順にアクセス制御リストを並び替える（Ｓ３）。次に、ｔ＝（０、１、…、ターゲットの総数）とし（Ｓ４）、ｔを１ずつインクリメントしながら（Ｓ１８）、全てのターゲットに関して以下の処理を繰り返す。
【００３２】
まず、ｉ＝（０、１、…、Ｓｕｂｊｅｃｔ（ユーザ）の総数＋１）とし（Ｓ５）、ｉを１ずつインクリメントしながら（Ｓ９）、以下のステップＳ６〜Ｓ８を繰り返す。第ｉ番目以前のユーザで禁止ルールが設定されているＳｕｂｊｅｃｔ（ユーザ）の総数を変数ｐに代入する（Ｓ６）。次に、第ｉ番目以降のＳｕｂｊｅｃｔ（ユーザ）で許可ルールが設定されているＳｕｂｊｅｃｔ（ユーザ）の総数を変数ｑに代入する（Ｓ７）。そして、ｉ＝０、１、Ｓｕｂｊｅｃｔ（ユーザ）の総数−１、Ｓｕｂｊｅｃｔ（ユーザ）の総数のいずれかの場合には、ｓｕｍ＝（ｐ＋ｑ−１）とｉｎｄｅｘ＝ｉの値とをテーブルＡに書き出し、ｉが上記以外の場合には、ｓｕｍ＝（ｐとｑ）とｉｎｄｅｘ＝ｉの値とをテーブルＡに書き出す（Ｓ８）。
【００３３】
次に、ｊ＝（０、１、…、Ｓｕｂｊｅｃｔ（ユーザ）の総数＋１）とし（Ｓ１０）、ｊを１ずつインクリメントしながら（Ｓ１４）、以下のステップＳ１１〜Ｓ１３を繰り返す。第ｊ番目以前のＳｕｂｊｅｃｔ（ユーザ）で許可ルールが設定されているＳｕｂｊｅｃｔ（ユーザ）の総数を変数ｐに代入する（Ｓ１１）。次に、第ｊ番目以降のＳｕｂｊｅｃｔ（ユーザ）で禁止ルールが設定されているＳｕｂｊｅｃｔ（ユーザ）の総数を変数ｑに代入する（Ｓ１２）。そして、ｊ＝０、１、Ｓｕｂｊｅｃｔ（ユーザ）の総数−１、Ｓｕｂｊｅｃｔ（ユーザ）の総数のいずれかの場合には、ｓｕｍ＝（ｐ＋ｑ−１）とｉｎｄｅｘ＝ｉ＋ｊの値とをテーブルＡに書き出し、ｊが上記以外の場合には、ｓｕｍ＝（ｐとｑ）とｉｎｄｅｘ＝ｉ＋ｊの値とをテーブルＡに書き出す（Ｓ１３）。
【００３４】
次に、テーブルＡの中で値ｓｕｍが最小のものを１つ検索し、そのときのｉｎｄｅｘ値を取り出す（Ｓ１５）。そして、既存のアクセス制御リストを、次のアクセス制御リストで書き換える（Ｓ１６）。すなわち、Ａｕｔｈ＋（ｔ番目のターゲット）↑（ｉｎｄｅｘ＝［２、３、…、ユーザの総数＋１］の場合のみ）、Ａｕｔｈ＋（ｔ番目のターゲット）↑（ｉｎｄｅｘ＝［ユーザの総数＋２、ユーザの総数＋３、…、ユーザの総数×２］の場合のみ、Ａｕｔｈ−（ｔ番目のターゲット）↑（ｉｎｄｅｘ＝［ユーザの総数＋４、ユーザの総数＋５、…、ユーザの総数×２＋２］の場合のみ）、Ａｕｔｈ−（ｔ番目のターゲット）↓（ｉｎｄｅｘ＝［０、１、…、ユーザの総数−１］の場合のみ）、Ａｕｔｈ＋（ｉｎｄｅｘ番目のユーザ、ｔ番目のターゲット）、Ａｕｔｈ−（ｉｎｄｅｘ＋１番目のユーザ、ｔ番目のターゲット）で書き換える。
【００３５】
次に、上記アクセス制御リストを元に、アクセス制御行列を作成し、一時的にコピーしておいた既存のアクセス制御行列と比較し、その結果が一致しない行が存在する場合には、それに対応するｅｘｃｅｐｔｉｏｎルールをアクセス制御リストに記述する（Ｓ１７）。そして、全てのターゲットに関して上記処理が完了すると、一時的に別テーブルにコピーしたアクセス制御行列を削除し（Ｓ１９）、当該処理を終了する。
【００３６】
次に、上述したアクセス制御リストの最小化方式をより具体的に説明する。ここで、図５は、最適アクセス制御リストの検索プロセスを示す概念図である。
【００３７】
Ｓｔｅｐ１〜Ｓｔｅｐ９において、太線より上側の点線ブロックは、｛Ａｕｔｈ−（Ｔ１）↓｝ポリシーを、太線より下側の実線枠は、｛Ａｕｔｈ＋（Ｔ１）↑｝ポリシーを、それぞれ表現している。また、Ｓｔｅｐ１０〜Ｓｔｅｐ１８においては、太線より上側の点線枠は、｛Ａｕｔｈ−（Ｔ１）↑｝ポリシーを、太線より下側の実線枠は、｛Ａｕｔｈ＋（Ｔ１）↓｝ポリシーを、それぞれ表現している。さらに、それぞれのステップ右側の列に記された「○」印は、｛ｅＡｕｔｈ＋（Ｓｘ、Ｔ１）｝または｛ｅＡｕｔｈ−（Ｓｘ、Ｔ１）｝をそれぞれ表している。また、便宜上、各列の境目に０〜８の番号を付与し、これを基準位置と呼ぶ。
【００３８】
Ｓｔｅｐ１：まず、最初に基準位置を０に設定する。図５では、Ｓｔｅｐ１の太線が基準位置を表している。設定した基準に対して、基準位置より上方に｛Ａｕｔｈ＋（Ｔ１）↑｝ポリシーを表現する点線枠を、基準位置より下方に｛Ａｕｔｈ−（Ｔ１）↓｝ポリシーを表現する実線枠を記する。但し、Ｓｔｅｐ１の場合、基準位置が最上端にあるため、点線枠は記されない。次に、記された実線ブロックと点線ブロックとに関してそれぞれ次の処理を行う。
【００３９】
（１）実線ブロックの中に「−」がある場合には、その行の右側に「○」を記入する。
（２）点線ブロックの中に「＋」がある場合には、その行の右側に「○」を記入する。
【００４０】
Ｓｔｅｐ２：次に、基準位置を１に設定し、上記Ｓｔｅｐ１と同じ作業を行う。
Ｓｔｅｐ３〜Ｓｔｅｐ９：以下同様に、基準位置を＋１ずつしながら、（行数＋１）Ｓｔｅｐ目までは、同じ作業を繰り返し行う。
【００４１】
Ｓｔｅｐ１０：次に、基準位置を０に設定し直し、次の作業を実施する。設定した基準位置に対して、基準位置より上方に｛Ａｕｔｈ−（Ｔ１）↑｝ポリシーを表す点線枠を、基準位置より下方に｛Ａｕｔｈ＋（Ｔ１）↓｝ポリシーを表す実線枠を記する。但し、Ｓｔｅｐ１０の場合、基準位置が最上端にあるため、点線枠は記されない。次に、記された実線枠と点線枠とに関してそれぞれ次の処理を行う。
【００４２】
（１）実線ブロックの中に「−」がある場合には、その行の右側に「○」を記入する。
（２）点線ブロックの中に「＋」がある場合には、その行の右側に「○」を記入する。
【００４３】
Ｓｔｅｐ１１：次に、基準位置を１に設定し、Ｓｔｅｐ１０と同じ作業を行う。
Ｓｔｅｐ１２〜Ｓｔｅｐ１８：以下同様に、基準位置を＋１ずつしながら、（２×（行数＋１））Ｓｔｅｐ目までは、同じ作業を繰り返し行う。
【００４４】
Ｓｔｅｐ１９：次に、上記Ｓｔｅｐが全て完了した時点で、Ｓｔｅｐ１〜Ｓｔｅｐ１８の作業で記された「○」の数を、図６に示すテーブルにまとめる。但し、Ｓｔｅｐ１、Ｓｔｅｐ２、Ｓｔｅｐ８、Ｓｔｅｐ９、Ｓｔｅｐ１０、Ｓｔｅｐ１１、Ｓｔｅｐ１７、Ｓｔｅｐ１８においては、実際の「○」の数から１だけ減算した値を記する。これは、これらのＳｔｅｐにおいては、他のＳｔｅｐと比較してｐｒｏｐａｇａｔｉｏｎポリシーが１つ不要なためである。
【００４５】
この事例では、図５に示す最適アクセス制御リストの検索プロセスから、図６に示す結果が得られる。そして、図６に示すテーブルから「○」の数が最小の箇所を検索する。この場合、Ｓｔｅｐ２またはＳｔｅｐ３の２つが最小値であることが分かる。
【００４６】
Ｓｔｅｐ２０：上記Ｓｔｅｐ１９で検索されたものが、求める最小化ポリシーを示している。例えば、Ｓｔｅｐ３の場合、図５のＳｔｅｐ３に示されているように、上から２つ目のＳｕｂｊｅｃｔに対して、｛Ａｕｔｈ＋（Ｓ２、Ｔ１）、Ａｕｔｈ＋（Ｔ１）↑｝を設定して、上から３つ目のＳｕｂｊｅｃｔに対して、｛Ａｕｔｈ−（Ｓ３、Ｔ１）、Ａｕｔｈ−（Ｔ１）↓｝を設定する。さらに、上から５つ目と７つ目のＳｕｂｊｅｃｔに対して、｛ｅＡｕｔｈ＋（Ｓｘ、Ｔ１）｝を設定すればよいことが分かる。すなわち、図７に示す左側が求める最小アクセス制御リストである。同様に、Ｓｔｅｐ２に基づいた最小アクセス制御リストも、図７に示す右側に示すように求められる。この場合、Ａｕｔｈ＋（Ｔ１）↑が不要であることに注意する。
【００４７】
Ｓｔｅｐ２１：上記Ｓｔｅｐ１〜Ｓｔｅｐ２０までの処理をその他のアクセス制御リスト（Ｔ２）、アクセス制御リスト（Ｔ３）に対して行うことによって、全体のアクセス制御リストを最小化することができる。当該事例による最小アクセス制御リスト（Ｔ２）、最小アクセス制御リスト（Ｔ３）の例を、図８に示す。
【００４８】
なお、図７に示すように、複数の最小アクセス制御リストが生成可能なケースが存在する。このような場合には、どの最小アクセス制御リストを利用しても問題ない。
【００４９】
上述した実施形態によれば、現在の制御リストにおいて実現されるルールを表現するポリシーを全パターン検索し、その中から例外ポリシー数が最も少ない制御リストを選択することにより、現在の制御リストから最小アクセス制御ポリシーを自動生成することができ、アクセス制御リストを常に最小の状態に保つことができ、アクセス制御リストの管理作業を大幅に軽減することができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施形態によるポリシー管理装置の構成を示すブロック図である。
【図２】本実施形態によるポリシー管理装置の動作を説明するためのフローチャートである。
【図３】本実施形態によるポリシー管理装置の動作を説明するためのフローチャートである。
【図４】本実施形態によるポリシー管理装置の動作を説明するためのフローチャートである。
【図５】本実施形態による、最適アクセス制御リストの検索プロセスを示す概念図である。
【図６】本実施形態による、例外ポリシー数をまとめたテーブルを示す概念図である。
【図７】本実施形態による、最小アクセス制御リスト（Ｔ１）を示す概念図である。
【図８】最小アクセス制御リスト（Ｔ２）、（Ｔ３）を示す概念図である。
【図９】従来のロールベースアクセス制御技術におけるアクセス制御ルールを説明するための概念図である。
【図１０】従来のロールベースアクセス制御技術におけるアクセス制御リストを説明するための概念図である。
【図１１】従来のロールベースアクセス制御技術におけるアクセス制御行列を説明するための概念図である。
【図１２】従来技術におけるアクセス制御リストからアクセス制御行列を作成する方法を説明するための概念図である。
【図１３】従来技術におけるアクセス制御リストの例を示す概念図である。
【符号の説明】
【００５１】
１  Ｓｕｂｊｅｃｔ登録・削除・修正部
２  アクセス制御リスト登録・削除・修正部
３  Ｓｕｂｊｅｃｔ情報ＤＢ
４  アクセス制御リストＤＢ（アクセス制御リスト記憶手段）
５  アクセス制御行列生成部（アクセス制御行列生成手段）
６  アクセス制御行列ＤＢ
７  アクセス制御リスト最小化部（アクセス制御リスト最小化手段、アクセス制御ルール生成手段、抽出手段、最小アクセス制御リスト生成手段）
８  リクエスト受付部
９  リクエスト可否判定部（リクエスト可否判定手段）
１０  可否判定結果処理部
１１  アクセス制御リストチェック部
１３  Ｔａｒｇｅｔ
【図１】
2007226495.tif 000003
【図２】
2007226495.tif 000004
【図３】
2007226495.tif 000005
【図４】
2007226495.tif 000006
【図５】
2007226495.tif 000007
【図６】
2007226495.tif 000008
【図７】
2007226495.tif 000009
【図８】
2007226495.tif 000010
【図９】
2007226495.tif 000011
【図１０】
2007226495.tif 000012
【図１１】
2007226495.tif 000013
【図１２】
2007226495.tif 000014
【図１３】
2007226495.tif 000015