(57)【特許請求の範囲】
【請求項１】
ポリシーの適用対象となるサブジェクト集合を示す情報を含むロール情報と、前記ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報とを格納するロール情報記憶手段と、
ポリシーを示す情報と、該ポリシーの適用対象となるサブジェクト集合を識別するための情報とを含むポリシー記述を格納するポリシー記述記憶手段と、
前記ポリシー記述記憶手段に格納されている２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、２以上のポリシーを階層化したポリシー階層を生成するポリシー階層化手段と、
前記ポリシー階層化手段によって生成されたポリシー階層を示す情報に基づいて、全順序化の対象である前記２以上のポリシーによるポリシー集合を、階層における上位・下位の関係を維持したまま、全順序化するポリシー順序化手段と、
を備えたことを特徴とするポリシー管理装置。
【請求項２】
ポリシー順序化手段によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合の要素を整列させて一覧表示するポリシーリスト表示手段を備えた請求項１に記載のポリシー管理装置。
【請求項３】
ポリシー順序化手段によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合に含まれる各ポリシー記述をＡＣＬ記述に変換するＡＣＬ生成手段を備えた請求項１または請求項２に記載のポリシー管理装置。
【請求項４】
ポリシー階層化手段は、サブジェクト集合に包含関係があるポリシーノード間に、有向リンクを付加したポリシー階層データを生成することによって、ポリシー階層を生成する請求項１から請求項３のうちのいずれか１項に記載のポリシー管理装置。
【請求項５】
ポリシー順序化手段は、入力リンクのないノードの集合の各要素を起点として、ポリシー階層データに対して、深さ優先探索に従い位相的ソートを行うことによって、全順序化の対象となったポリシー集合を全順序化する請求項４に記載のポリシー管理装置。
【請求項６】
ポリシーの適用対象となるサブジェクト集合を示す情報を含むロール情報と、前記ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報とを格納するロール情報記憶手段を備えるロール記憶装置と、
ポリシーを示す情報と、該ポリシーの適用対象となるサブジェクト集合を識別するための情報とを含むポリシー記述を格納するポリシー記述記憶手段を備えるポリシー記述記憶装置と、
前記ポリシー記述記憶手段に格納されている２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化手段と、
前記ポリシー階層化手段によって生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である前記２以上のポリシーによるポリシー集合を全順序化するポリシー順序化手段と、
を備えるポリシー全順序化装置と、
を有するポリシー管理システム。
【請求項７】
前記ポリシー全順序化装置は、さらに、
ポリシー順序化手段によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合の要素を整列させて一覧表示するポリシーリスト表示手段を備えた請求項６に記載のポリシー管理システム。
【請求項８】
前記ポリシー全順序化装置は、さらに、
ポリシー順序化手段によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合に含まれる各ポリシー記述をＡＣＬ記述に変換するＡＣＬ生成手段を備えた請求項６または請求項７に記載のポリシー管理システム。
【請求項９】
コンピュータが、
ポリシーの適用対象となるサブジェクト集合を示す情報を含むロール情報と、前記ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報と、ポリシーを示す情報と、該ポリシーの適用対象となるサブジェクト集合を識別するための情報とを含むポリシー記述と、を記憶しておき、記憶している情報を利用して、
２以上の前記ポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、２以上のポリシーを階層化したポリシー階層を生成するポリシー階層化工程と、
前記ポリシー階層化工程によって生成されたポリシー階層を示す情報に基づいて、全順序化の対象である前記２以上のポリシーによるポリシー集合を、階層における上位・下位の関係を維持したまま、全順序化するポリシー順序化工程と、
を実行するポリシー管理方法。
【請求項１０】
コンピュータを、
ポリシーの適用対象となるサブジェクト集合を示す情報を含むロール情報と、前記ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報とを格納するロール情報記憶手段、
ポリシーを示す情報と、該ポリシーの適用対象となるサブジェクト集合を識別するための情報とを含むポリシー記述を格納するポリシー記述記憶手段、
前記ポリシー記述記憶手段に格納されている２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、２以上のポリシーを階層化したポリシー階層を生成するポリシー階層化手段、
前記ポリシー階層化手段によって生成されたポリシー階層を示す情報に基づいて、全順序化の対象である前記２以上のポリシーによるポリシー集合を、階層における上位・下位の関係を維持したまま、全順序化するポリシー順序化手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポリシー管理装置、ポリシー管理システム、それに用いる方法およびプログラムに関し、特に、半順序構造をもつポリシー記述を全順序化して、ポリシー一覧を生成またはアクセス制御ルールに変換できるポリシー管理装置、ポリシー管理システム、それに用いる方法およびプログラムに関する。
【背景技術】
【０００２】
近年のコンプライアンス意識の高まりから、多くの企業で自社業務システムにおけるアクセス制御の徹底が図られている。Ｕｎｉｘ（登録商標）ファイルシステムなどのＯＳアクセス機構に見られるように、一般的なアクセス制御ルールは、業務システムを用いる従業員などの「サブジェクト」、業務システムが提供するファイルなどの「オブジェクト」、読み書きなどの当該オブジェクトへのアクセス方法である「アクション」の３つの情報を組み合わせて記述され、アクセス制御機構に適用される。【０００３】
ここで、従業員数や業務ファイル数の規模が大きくなるにつれて、アクセス制御ルールの記述や管理にかかる管理者の負荷が増大するという問題がある。その解決策の１つとして、役割ベースアクセス制御方式（ＲＢＡＣ；Role-based Access Control ）がよく知られている。ＲＢＡＣにおけるアクセス制御ルールには、所属部門や職責など従業員の「役割」と、当該役割に許可されるアクセス権として、オブジェクトとアクションの組の集合を記述する。【０００４】
このような役割単位のルール記述により、サブジェクト単位に記述するよりもルール数の増加を抑制することができるため、管理者の負荷が低減される。なお、混乱を避けるため、以下では、「サブジェクト」「オブジェクト」「アクション」の組からなるアクセス制御ルールをＡＣＬ（Access Control List ）と呼び、ＲＢＡＣにおけるアクセス制御ルールをＲＢＡＣポリシーまたは単にポリシーと呼ぶ。【０００５】
ところで、ＲＢＡＣポリシーの集合を上述のアクセス機構に適用するためには、当該ポリシーの集合を単一のＡＣＬ記述に変換する必要がある。なお、従来のＲＢＡＣ方式では、肯定的ポリシー、すなわち所定の役割について「許可されるアクセス権」のみが記述されるので、単に各ポリシーに関連づけられた役割をもつサブジェクト集合Ｓと、オブジェクトとアクセションの組の集合ＯＡとの直積Ｓ×ＯＡを計算し、それらを任意の記述順序で連結することによって単一のＡＣＬに変換可能である。【０００６】
しかし、ポリシー管理の実務では、否定的ポリシー、すなわち所定の役割について「禁止されるアクセス権」も併せて記述したい場合がある。【０００７】
例えば、「経理部員は共有サーバ上の経理ファイルにアクセスしてもよい。（ポリシー１）」といったより大きなサブジェクト集合に対する肯定的ポリシーに対して、「他部門の兼務者は経理ファイルにアクセスしてはならない。（ポリシー２）」といったより小さなサブジェクト集合に対する否定的なポリシーを例外的なポリシーとして記述したい場合がある。【０００８】
上記単一のＡＣＬへの変換は、肯定的ポリシーと否定的ポリシーとを同時に含むポリシー集合から、許可または拒否すべきサブジェクトとオブジェクトとアクションの組を同定することに他ならない。特許文献１には、ポリシー集合を階層化し、当該階層構造に基づいて、許可または拒否すべきサブジェクトとオブジェクトとアクションの組を決定する方法が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−１５５１０４号公報（段落００７１）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
肯定的ポリシーと否定的ポリシーとを同時に含むポリシー集合を正しく単一のＡＣＬに変換するためには、当該ポリシー集合の各要素についてサブジェクト集合の包含関係に従って、ＡＣＬ上の記述順序を決定することが必要である。【００１１】
例えば上述のポリシー集合を単一のＡＣＬに変換する場合、ポリシー２から導出されるＡＣＬ記述の後にポリシー１から導出されるＡＣＬ記述を連結しなければポリシー間の原則・例外の関係を正しく反映できない。もし、ポリシー１から導出されるＡＣＬ記述が先に連結された場合には、アクセス制御機構は、経理部員の一部である兼務者に対して、ポリシー１から導出されたＡＣＬ記述に従い経理ファイルへのアクセスを許可してしまう。【００１２】
ここで、本発明に用いる用語を以下のように定義する。【００１３】
［ポリシー包含関係の定義］
ある２つのポリシーｐ１，ｐ２があり、それぞれに対応するサブジェクト集合をＳ１，Ｓ２とする。このとき、Ｓ１⊆Ｓ２のとき、かつそのときのみ、ｐ１はｐ２を包含すると定義する。また、この包含関係をｐ１＜ｐ２と書く。【００１４】
［ポリシー集合の全順序の定義］
あるポリシー集合Ｐ＝｛ｐ１，ｐ２，・・・，ｐＮ｝が与えられたとき、次の性質を満たすＰの要素の系列σをＰの全順序と呼ぶ。
・（性質）：「任意のＰの要素ｐｉ，ｐｊについて、ｐｉ＜ｐｊならば、必ずσ中でｐｉはｐｊよりも先に出現する。」【００１５】
上記単一ＡＣＬにおける正しい記述順序は、上述で定義されるポリシー集合の全順序に相当する。すなわち、ｐｉ＜ｐｊなるポリシーｐｉ，ｐｊについて、それぞれに対応するＡＣＬ記述をＡ（ｐｉ），Ａ（ｐｊ）とすると、単一のＡＣＬは、Ａ（ｐｉ│Ａ（ｐｊ））の順に連結したものである。【００１６】
例えば、あるＰ＝｛ｐ１，ｐ２，ｐ３，ｐ４，ｐ５｝について、それぞれのポリシーに対応するサブジェクト集合Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５について、図１８に示すような包含関係があるものとする。このとき、Ｐに含まれるポリシー包含関係は、ｐ１＞ｐ２，ｐ１＞ｐ３，ｐ１＞ｐ４，ｐ１＞ｐ５，ｐ２＞ｐ４，ｐ２＞ｐ５，ｐ３＞ｐ４であり、これらの順序（半順序）を満たす全順序σは、＜ｐ１，ｐ２，ｐ３，ｐ４，ｐ５＞または＜ｐ１，ｐ２，ｐ３，ｐ５，ｐ４＞などである。【００１７】
しかし、ＲＢＡＣポリシ管理方式では、ポリシーに対応するサブジェクト集合の包含関係に基づいて、ポリシー集合の全順序を求める具体的な方法が開示されておらず、肯定的ポリシーと否定的ポリシーとを含むポリシー集合に対応するＡＣＬの記述順序をポリシー管理者に提示したり、単一のＡＣＬに正しく変換することができなかった。【００１８】
例えば、特許文献１に記載されている方法では、オブジェクト集合の階層（制御パス）に基づいて、対象のリソースが重複するアクセス制御設定に矛盾がないかどうかを解析し、矛盾が検出された場合は、所与の矛盾対処ルール（アクセス効果値が所定のアクセス効果値以上であるか否か）によって、矛盾するアクセス制御設定のいずれかを修正する旨が記載されている。【００１９】
しかし、特許文献１に記載されている方法では、サブジェクト集合の包含関係によってポリシー間に原則・例外の関係が生じることについては何ら考慮されていない。例えば、例外が先に登録されていることにより矛盾が検出されれば、正しい順序で適用すれば矛盾が生じない場合であってもポリシー管理者が設定したポリシーを違反として検出してしまう可能性もある。【００２０】
そこで、本発明は、肯定的ポリシーと否定的ポリシーとを同時に含むポリシー集合を正しく単一のアクセス制御ルールに変換することができるポリシー管理システム、ポリシー管理方法およびポリシー管理用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明によるポリシー管理装置は、ポリシーの適用対象となるサブジェクト集合を示す情報を含むロール情報と、前記ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報とを格納するロール情報記憶手段と、ポリシーを示す情報と、該ポリシーの適用対象となるサブジェクト集合を識別するための情報とを含むポリシー記述を格納するポリシー記述記憶手段と、前記ポリシー記述記憶手段に格納されている２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、２以上のポリシーを階層化したポリシー階層を生成するポリシー階層化手段と、前記ポリシー階層化手段によって生成されたポリシー階層を示す情報に基づいて、全順序化の対象である前記２以上のポリシーによるポリシー集合を、階層における上位・下位の関係を維持したまま、全順序化するポリシー順序化手段とを備えたことを特徴とする。【００２２】
また、本発明によるポリシー管理システムは、ポリシーの適用対象となるサブジェクト集合を示す情報を含むロール情報と、前記ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報とを格納するロール情報記憶手段を備えるロール記憶装置と、ポリシーを示す情報と、該ポリシーの適用対象となるサブジェクト集合を識別するための情報とを含むポリシー記述を格納するポリシー記述記憶手段を備えるポリシー記述記憶装置と、前記ポリシー記述記憶手段に格納されている２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化手段と、前記ポリシー階層化手段によって生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である前記２以上のポリシーによるポリシー集合を全順序化するポリシー順序化手段と、を備えるポリシー全順序化装置と、を有することを特徴とする。【００２３】
また、本発明によるポリシー順序化方法は、サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化ステップと、ポリシー階層化ステップで生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である２以上のポリシーによるポリシー集合を全順序化するポリシー順序化ステップとを含むことを特徴とする。【００２４】
また、本発明によるポリシーリスト表示方法は、サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化ステップと、ポリシー階層化ステップで生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である２以上のポリシーによるポリシー集合を全順序化するポリシー順序化ステップと、ポリシー順序化ステップで全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合の要素を整列させて一覧表示する一覧表示ステップとを含むことを特徴とする。【００２５】
また、本発明によるＡＣＬ生成方法は、サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化ステップと、ポリシー階層化ステップで生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である２以上のポリシーによるポリシー集合を全順序化するポリシー順序化ステップと、ポリシー順序化ステップで全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合に含まれる各ポリシー記述をＡＣＬ記述に変換するＡＣＬ生成ステップとを含むことを特徴とする。【００２６】
また、本発明によるポリシー順序化プログラムは、コンピュータに、サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化処理と、ポリシー階層化処理で生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である２以上のポリシーによるポリシー集合を全順序化するポリシー順序化処理とを実行させることを特徴とする。【００２７】
また、本発明によるポリシーリスト表示プログラムは、コンピュータに、サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化処理と、ポリシー階層化処理で生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である２以上のポリシーによるポリシー集合を全順序化するポリシー順序化処理と、ポリシー順序化処理で全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合の要素を整列させて一覧表示する一覧表示処理とを実行させることを特徴とする。【００２８】
また、本発明によるＡＣＬ生成プログラムは、コンピュータに、サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化処理と、ポリシー階層化処理で生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である２以上のポリシーによるポリシー集合を全順序化するポリシー順序化処理と、ポリシー順序化ステップで全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合に含まれる各ポリシー記述をＡＣＬ記述に変換するＡＣＬ生成処理とを実行させることを特徴とする。
【発明の効果】
【００２９】
本発明によれば、肯定的ポリシーと否定的ポリシーとを同時に含むポリシー集合を正しく単一のアクセス制御ルールに変換することができる。
【図面の簡単な説明】
【００３０】
【図１】第１の実施形態のポリシー管理システムの構成例を示すブロック図である。
【図２】ポリシー階層化手段１０３が有する一次記憶装置の例を示す説明図である。
【図３】ポリシー階層の例を示す説明図である。
【図４】第１の実施形態の動作の一例を示すフローチャートである。
【図５】ポリシー階層の例を示す説明図である。
【図６】位相的ソート処理の処理フローの例を示すフローチャートである。
【図７】サブジェクト集合間の包含関係の具体例を示す説明図である。
【図８】ポリシーＤＢ１０２に格納されるポリシー記述の具体例を示す説明図である。
【図９】ポリシー階層の具体例を示す説明図である。
【図１０】第２の実施形態のポリシー管理システムの構成例を示すブロック図である。
【図１１】第２の実施形態の動作の一例を示すフローチャートである。
【図１２】第２の実施形態におけるポリシーＤＢ１０２のスキーマ（ポリシーＤＢスキーマ）の例を示す説明図である。
【図１３】ＡＣＬ記述への変換処理の処理フローの例を示すフローチャートである。
【図１４】第３の実施形態のポリシー管理システムの構成例を示すブロック図である。
【図１５】第３の実施形態の動作の一例を示すフローチャートである。
【図１６】第３の実施形態におけるポリシーＤＢ１０２のスキーマ（ポリシーＤＢスキーマ）の例を示す説明図である。
【図１７】ポリシー順序を表示する一覧画面の例を示す説明図である。
【図１８】サブジェクト集合間の包含関係の例を示す説明図である。
【図１９】本発明の概要を示すブロック図である。
【図２０】本発明の概要としてポリシー管理装置の他の構成例を示すブロック図である。
【発明を実施するための形態】
【００３１】
１．第１実施形態
１．１．構成
以下、本発明の実施形態を図面を参照して説明する。図１は、本発明の第１の実施形態のポリシー管理システムの構成例を示すブロック図である。図１に示すポリシー管理システムは、アクセス制御ポリシー管理装置１を備える。アクセス制御ポリシー管理装置１は、中央処理装置（ＣＰＵ）１００を有するコンピュータであって、ポリシーデータベース（ＤＢ）１０２と、ロールＤＢ１０１と、ポリシー階層化手段１０３と、ポリシー順序化手段１０４とを含む。なお、図１では、アクセス制御ポリシー管理装置１が上記構成要素を全て備える例を示しているが、例えば、ポリシーＤＢ１０２やロールＤＢ１０１が別装置（データベースシステム）として実装され、ネットワークを介して接続されているような構成であってもよい。
【００３２】
ポリシーＤＢ１０２は、ポリシー記述を格納する。ポリシー記述は、例えば、ポリシーの識別子（以下、ポリシーＩＤという。）と、特定のロールの識別子（以下、ロールＩＤという。）と、オブジェクトごとに許可または禁止するアクションを規定した１つ以上の記述要素とを含む情報である。また、ポリシーＤＢ１０２は、ポリシー階層化手段１０３からのポリシーＩＤの入力を受けて、格納しているポリシー記述の中から対応するポリシー記述を出力する。
【００３３】
ロールＤＢ１０１は、ロールＩＤごとに関連付けられたユーザ名などのサブジェクトの集合を示す情報を格納する。以下、ロールＩＤとサブジェクト集合とを対応づけた情報をロール情報という場合がある。また、ロールＤＢ１０１は、ポリシー階層化手段１０３からのロールＩＤの入力を受けて、格納しているサブジェクト集合の中から対応するサブジェクト集合を出力する。なお、ロールＤＢ１０１が格納する情報には、ロール情報のほかに、各ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報が含まれていてもよい。例えば、各サブジェクト集合の帰属に関する情報（そのサブジェクト集合が適用範囲全体からみてどのグループに属しているか等）を含んでいてもよい。
【００３４】
ポリシー階層化手段１０３は、内部的に備える１次記憶装置１０３１（図２参照。）に格納されたポリシーＩＤリスト１０３２から順次ポリシーＩＤを抽出しながら、ポリシーＤＢ１０２から対応するポリシー記述を抽出する。また、抽出したポリシー記述に記述されたロールＩＤをロールＤＢ１０１に入力して、対応するサブジェクト集合を抽出する。さらに、ポリシーＩＤをノードとし、抽出したサブジェクト集合に包含関係があるポリシーＩＤノード間に、有向リンクを付加したポリシー階層データを生成し、ポリシー順序化手段１０４に出力する。
【００３５】
ここで、ポリシー階層データとは、以下のように定義される「ポリシー階層」を記述した情報である。
【００３６】
［ポリシー階層の定義］
あるポリシー集合Ｐ＝｛ｐ１，ｐ２，・・・，ｐＮ｝が与えられたとき、Ｐの各要素をノードとしてもち、任意の要素ｐｉ、ｐｊの間にｐｉ＜ｐｊの関係があれば、ｐｉからｐｊに向かう有向リンクを付加した有向グラフを、ポリシー階層と呼ぶ。このとき、あるノードｐに隣接するノード集合のうち、互いに有向リンクで接続されないノードの集合を層と呼ぶ。
【００３７】
例えば、上述のポリシー集合の全順序の定義において示したポリシー集合の例では、図３のようなポリシー階層が得られる。これに対して、位相的ソートを行うことで、全順序を求めることができる。
【００３８】
本発明では、サブジェクト集合間の含む・含まれる関係を順序づけルールとし、サブジェクト集合の集合に対して、この順序づけルールを適用して各ポリシーを列挙する。このとき、一部の要素について含む・含まれるの関係になくても、元のルールに反しないように列挙するために、ポリシー階層という概念を導入する。例えば、部門単位のアクセス権をＲＢＡＣポリシーとした場合、組織階層に同型のポリシー階層を作成し、下層から上層に向かって適用することにより、複数のＲＢＡＣポリシーを正しい順序で適用することができる。ここで、正しい順序とは、「下位部門のポリシーは上位部門のポリシーよりも先に適用されなければならない」というルールで定められた順序をいう。
【００３９】
ポリシー順序化手段１０４は、ポリシー階層化手段１０３が出力するポリシー階層データに対して、位相的ソートを行って得られる、ポリシー適用順序を示すポリシーＩＤ列を出力する。
【００４０】
なお、本実施形態において、ポリシー階層化手段１０３およびポリシー順序化手段１０４は、それらの機能を実現するためのプログラムとプログラムに従って制御を実行するＣＰＵ１００とによって実現可能である。
【００４１】
１．２．動作
次に、本実施形態の動作について説明する。図４は、本実施形態のポリシー管理システム（より具体的には、アクセス制御ポリシー管理装置１）の動作の一例を示すフローチャートである。
【００４２】
図４に示す例では、まず、ポリシー階層化手段１０３が、Ｎ個のポリシーＩＤを含むポリシーＩＤリスト１０３２を、先頭から走査してｋ番目のポリシーＩＤであるｐｉｄ［ｋ］を抽出する（ステップＡ１）。ここでｋの初期値は１である。
【００４３】
つづいて、ポリシーＤＢ１０２にｐｉｄ［ｋ］を入力して、対応するポリシー記述ｐ［ｋ］を取得し（ステップＡ２）、ｐ［ｋ］に含まれるロールＩＤであるｒｉｄ［ｋ］を、ロールＤＢ１０１に入力して対応するサブジェクト集合Ｓ［ｋ］を取得する（ステップＡ３）。この際、＜ｐｉｄ［ｋ］，Ｓ［ｋ］＞の組を一次記憶装置１０３１のスタック領域にプッシュする（ＬＩＦＯ方式にて格納する）。
【００４４】
以上の処理をＮ個すべてのポリシーＩＤに対して繰り返す（ステップＡ４〜Ａ５）。
【００４５】
そして、ポリシーＩＤリスト１０３２に対して、全ての処理を完了したとき（ｋ＝Ｎ）、ポリシー階層化手段１０３が次の動作を行う。なお、このとき、スタック領域には、＜ｐｉｄ［１］，Ｓ［１］＞，＜ｐｉｄ［２］，Ｓ［２］＞，・・・，＜ｐｉｄ［Ｎ］，Ｓ［Ｎ］＞（以下、＜ｐｉｄ［１］，Ｓ［１］＞ないし＜ｐｉｄ［Ｎ］，Ｓ［Ｎ］＞という。）が格納されている。
【００４６】
ポリシー階層化手段１０３は、＜ｐｉｄ［１］，Ｓ［１］＞ないし＜ｐｉｄ［Ｎ］，Ｓ［Ｎ］＞について、まず当該入力に含まれるＳ［１］〜Ｓ［Ｎ］の中の任意の２つを利用した全ての組み合わせ｛＜Ｓ［１］，Ｓ［２］＞，＜Ｓ［１］，Ｓ［３］＞，・・・，＜Ｓ［１］，Ｓ［Ｎ］＞，・・・，＜Ｓ［Ｎ−１］，Ｓ［Ｎ］＞｝を生成し（ステップＡ６）、各組み合わせについて、以下に示すステップＡ７〜Ａ１２の動作を繰り返す。
【００４７】
まず、ステップＡ７で＜Ｓ［ｉ］，Ｓ［ｊ］＞を参照したとする。このとき、ポリシー階層化手段１０３は、Ｓ［ｉ］，Ｓ［ｊ］の包含関係を判定する（ステップＡ８）。ポリシー階層化手段１０３は、判定結果として、（ア）Ｓ［ｉ］⊆Ｓ［ｊ］、（イ）Ｓ［ｊ］⊆Ｓ［ｉ］、（ウ）包含関係なしの３通りのいずかであることを判別し、それぞれの場合について、以下のように動作する。なお、サブジェクト集合間の包含関係は、例えば、ロールＤＢ１０１に格納されている各サブジェクト集合の帰属に関する情報を参照することによって判別してもよい。
【００４８】
（ア）Ｓ［ｉ］⊆Ｓ［ｊ］の場合、ｐｉｄ［ｉ］およびｐｉｄ［ｊ］に対応するノードｎ［ｉ］，ｎ［ｊ］を生成し、ｎ［ｉ］からｎ［ｊ］に向かう有向リンクを生成する（ステップＡ９）。
【００４９】
（イ）Ｓ［ｊ］⊆Ｓ［ｉ］の場合、ｐｉｄ［ｉ］およびｐｉｄ［ｊ］に対応するノードｎ［ｉ］，ｎ［ｊ］を生成し、ｎ［ｊ］からｎ［ｉ］に向かう有向リンクを生成する（ステップＡ１０）。
【００５０】
（ウ）包含関係なしの場合、ｐｉｄ［ｉ］およびｐｉｄ［ｊ］に対応するノードｎ［ｉ］，ｎ［ｊ］を生成する（ステップＡ１１）。
【００５１】
以上の動作により、ポリシー階層化手段１０３は、図５に示すようなポリシー階層を示すポリシー階層データを生成し、生成したポリシー階層データをポリシー順序化手段１０４に入力する。図５は、ポリシー階層の例を示す説明図である。図５は、ｐｉｄ［１］〜ｐｉｄ［８］を対象にした場合の例であって、上に位置するノードに対応するポリシーほど原則的なポリシーであり、また下に位置するノードに対応するポリシーほど例外的なポリシーであることが示されている。
【００５２】
次に、ポリシー順序化手段１０４は、入力されたポリシー階層データを走査して、位相的ソートを行ってポリシー順序を決定し、決定したポリシー順序を示すポリシーＩＤ列を出力する（ステップＡ１３）。位相的ソートとは、順序づけルールと列挙対象の集合を与えたときに、「ソート出力中、ａ→ｂの順に並んでいる任意の２要素ａ，ｂについて、ａ→ｂは順序づけルールに少なくとも反していないこと、すなわちルールで与えた順序であること、またはルールが適用できない組み合わせであること」という条件を満たしながら全要素を１列に並べるソート方法である。
【００５３】
また、図６は、ポリシー順序化手段１０４による位相的ソート処理の処理フローの一例を示すフローチャートである。図６に示す例では、ポリシー順序化手段１０４は、まず、入力されたポリシー階層データを走査して、入力リンクのないノードの集合Ｎを抽出する（ステップＢ１）。
【００５４】
次に、Ｎの各要素を起点として、ポリシー階層データに対して、深さ優先探索に従い、以下のステップＢ２を再帰的に実行する。
【００５５】
ステップＢ２では、参照中のノードが次の条件を満たす場合に、所定のスタックに当該ノードを追加する。また、当該条件が満たされている場合、当該参照中ノードに訪問ずみフラグを付与する。
・（条件）：当該ノードに出力リンクが一切ないか、あってもリンク先ノードの全てに訪問ずみフラグが付加されている。
【００５６】
そして、当該スタックから１つずつノードを抽出しながら、当該ノードに付与された番号ｋに対応するポリシーＩＤであるｐｉｄ［ｋ］のリストを生成する（ステップＢ３）。
【００５７】
１．３．効果
以上のように生成されたリスト中のポリシーＩＤは、ポリシー階層データにおいて、対応するノードがＮの要素から「深い層→浅い層」の順に整列されている。例えば、ノードｎ［ｊ］からｎ［ｉ］への有向パスが存在する場合、すなわちｎ［ｊ］がｎ［ｉ］よりもより深い層にある場合、かならずｐｉｄ［ｊ］，ｐｉｄ［ｉ］の順にリストに出現する。このとき、ステップＡ８〜Ａ１１におけるポリシー階層データの生成方法から、ｐｉｄ［ｉ］およびｐｉｄ［ｊ］に対応するサブジェクト集合は、かならずＳ［ｊ］⊆Ｓ［ｉ］の関係にあるため、ｐｉｄ［ｉ］およびｐｉｄ［ｊ］に対応するポリシー記述間の包含関係が維持されるという効果が得られる。
【００５８】
すなわち、本実施形態によれば、半順序構造のサブジェクト集合の包含関係に基づいて、ポリシー集合の全順序を一意に求めることができる。
【００５９】
１．４．具体例
以下、より具体的な例を用いて本実施形態の動作を説明する。まず、ロールＤＢ１０１に格納されたサブジェクト集合として、「全社員」「経理部門」「人事部門」「総務部員」「経理・人事兼務者」の４つが格納されており、これら相互の包含関係が図７の通りであるとする。
【００６０】
また、ポリシーＤＢ１０２には、４つのサブジェクト集合のそれぞれに対応するポリシーとして、以下に示す内容をもつポリシー記述が格納されているものとする。
【００６１】
・ポリシーＩＤ＝ｐ１：＜全社ポリシー＞全社員ロールのユーザについて、全社共通Ｗｅｂサーバへのアクセスを許可する。
・ポリシーＩＤ＝ｐ２：＜経理部ポリシー＞経理部ロールのユーザについて、経理部ファイルサーバへのアクセスを許可する。
・ポリシーＩＤ＝ｐ３：＜人事部ポリシー＞人事部ロールのユーザについて、人事部グループウェアサーバへのアクセスを許可する。
・ポリシーＩＤ＝ｐ４：＜総務部ポリシー＞総務部ロールのユーザについて、総務部ファイルサーバへのアクセスを許可する。
・ポリシーＩＤ＝ｐ５：＜経理・人事兼務ポリシー＞経理・人事兼務ロールのユーザについて、経理部ファイルサーバへのアクセスを禁止し、人事部グループウェアサーバへのアクセスを禁止する。
【００６２】
さらに、ポリシー階層化手段１０３のポリシーＩＤリスト１０３２には、上述のポリシーＩＤが、「ｐ１」「ｐ２」「ｐ３」「ｐ４」「ｐ５」の順で記載されているものとする。なお、ポリシー記述フォーマットは、経理部などの「ロール」、Ｗｅｂサーバ・ファイルサーバなどの「リソース」を記述できれば十分であるが、本例では、図８に示すようなＸＡＣＭＬ（eXtende Access control Markup Language）を用いることとする。図８は、ポリシーＤＢ１０２に格納されるポリシー記述の例を示す説明図である。
【００６３】
また、全社員のユーザＩＤとして、｛keiri_ichiro,keiri_jiro,jinji_hanako,jinji_kyouko,soumu_taro｝が与えられているものとする。なお、"keiri_ichiro"および"keiri_jiro"は経理部所属、"jinji_hanako"は経理部と人事部に所属（経理・人事兼務）、"jinji_kyouko"は人事部所属、"soumu_taro"は総務部所属であるとして各サブジェクト集合に関連づけられているものとする。
【００６４】
このとき、ポリシー階層化手段１０３は、ステップＡ１で、ポリシーＩＤリスト１０３２を参照して、まずポリシーＩＤ＝ｐ１（ｐｉｄ［１］＝ｐ１）を抽出する。そして、ステップＡ２で、ｐｉｄ［１］＝ｐ１をポリシーＤＢ１０２に入力して、「全社員ポリシー」を抽出する。そして、ステップＡ３で、対応するロールＩＤである「全社員ロール」をロールＤＢ１０１に入力して、全社員のユーザＩＤを含むサブジェクト集合を取得し、スタック領域にポリシーＩＤとサブジェクト集合との組を格納する。
【００６５】
１回目の処理では、ポリシーＩＤリスト１０３２からｐｉｄ［１］＝ｐ１を抽出し、サブジェクト集合としてＳ［１］＝｛keiri_ichiro,keiri_jiro,jinji_hanako,jinji_kyouko,soumu_taro｝を取得する。そして、スタック領域に、＜ｐ１，｛keiri_ichiro,keiri_jiro,jinji_hanako,jinji_kyouko,soumu_taro｝＞を格納する。
【００６６】
そして、ポリシーＩＤ＝ｐ２〜ｐ５について、同様の動作を繰り返す（ステップＡ４，Ａ５）
【００６７】
２回目の処理では、ポリシーＩＤリスト１０３２からｐｉｄ［２］＝ｐ２を抽出し、サブジェクト集合としてＳ［２］＝｛keiri_ichiro,keiri_jiro｝を取得する。そして、スタック領域に、＜ｐ２，｛keiri_ichiro,keiri_jiro｝＞を格納する。
【００６８】
３回目の処理では、ポリシーＩＤリスト１０３２からｐｉｄ［３］＝ｐ３を抽出し、サブジェクト集合としてＳ［３］＝｛jinji_hanako,jinji_kyouko｝を取得する。そして、スタック領域に、＜ｐ３，｛jinji_hanako,jinji_kyouko｝＞を格納する。
【００６９】
４回目の処理では、ポリシーＩＤリスト１０３２からｐｉｄ［４］＝ｐ４を抽出し、サブジェクト集合としてＳ［４］＝｛soumu_taro｝を取得する。そして、スタック領域に、＜ｐ４，｛soumu_taro｝＞を格納する。
【００７０】
５回目の処理では、ポリシーＩＤリスト１０３２からｐｉｄ［５］＝ｐ５を抽出し、サブジェクト集合としてＳ［５］＝｛jinji_hanako｝を取得する。そして、スタック領域に、＜ｐ５，｛jinji_hanako｝＞を格納する。
【００７１】
５回目の処理を終えて繰り返し動作を完了した後、ポリシー階層化手段１０３のスタック領域には、以下のようなデータが格納されている。
＜ｐ５，｛jinji_hanako｝＞
＜ｐ４，｛soumu_taro｝＞
＜ｐ３，｛jinji_hanako,jinji_kyouko｝＞
＜ｐ２，｛keiri_ichiro,keiri_jiro｝＞
＜ｐ１，｛keiri_ichiro,keiri_jiro,jinji_hanako,jinji_kyouko,soumu_taro｝＞
【００７２】
つづいて、ポリシー階層化手段１０３は、当該スタック領域に格納された５つのサブジェクト集合を抽出して、１０通りのサブジェクト集合の組み合わせを生成する（ステップＡ６）。そして、各組み合わせから、ポリシー階層データを生成する。
【００７３】
ポリシー階層データの生成方法は、包含関係により３通りであるので、それぞれの場合について具体例を示す。
【００７４】
（ア）Ｓ［ｉ］⊆Ｓ［ｊ］の場合
例えば｛keiri_ichiro,keiri_jiro｝と｛keiri_ichiro,keiri_jiro,jinji_hanako,jinji_kyouko,soumu_taro｝の組み合わせの場合、前者のサブジェクト集合に対応するポリシーＩＤはｐ２であり、後者はｐ１であるので、ノードｐ２およびノードｐ１を生成して、ノードｐ２からノードｐ１へ向かう有向リンクを付与する（ステップＡ９）。
【００７５】
（イ）Ｓ［ｊ］⊆Ｓ［ｉ］の場合
例えば｛jinji_hanako,jinji_kyouko｝と｛jinji_hanako｝の組み合わせの場合、前者のサブジェクト集合に対応するポリシーＩＤはｐ３であり、後者はｐ５であるので、ノードｐ３およびノードｐ５を生成して、ノードｐ５からノードｐ３へ向かう有向リンクを付与する（ステップＡ１０）。ただし、ノードｐ３については、前段の動作で既に生成済みである場合には、重複したノードは生成しない。
【００７６】
（ウ）包含関係なしの場合
例えば、｛jinji_hanako,jinji_kyouko｝と｛soumu_taro｝の組み合わせの場合、前者のサブジェクト集合に対応するポリシーＩＤはｐ３であり、後者はｐ４であるので、ノードｐ３およびノードｐ５を生成し、この間に一切の有向リンクを付与しない（ステップＡ１１）。ただし、ノードｐ３については、前段の動作で既に生成済みである場合には、重複したノードは生成しない。
【００７７】
以上の動作により、ポリシー階層化手段１０３は、図９に示すポリシー階層を表現するポリシー階層データを生成する。図９は、ポリシー階層の例を示す説明図である。図９に示す例では、ノードとして、５つのポリシーに対応する５つのノード（ノードｐ１，ｐ２，ｐ３，ｐ４，ｐ５）が生成され、有向リンクとして６つのリンク（ノードｐ５からノード２、ノードｐ５からノードｐ３、ノードｐ４からノードｐ１、ノードｐ３からノードｐ１、ノードｐ２からノードｐ１）が付与されている。
【００７８】
このようなポリシー階層データに対して、ポリシー順序化手段１０４は位相的ソートを行って、ポリシー順序を決定する（ステップＡ１３）。
【００７９】
具体的には、まず、入力リンクのないノード集合｛ノードｐ４，ノードｐ５｝を抽出する（ステップＢ１）。これらいずれのノードから深さ優先探索を行ってもよいが、ここではノードｐ５から探索を行うものとする。
【００８０】
ついで、ノードｐ５を起点として深さ優先探索を行い、上記条件に合致するノードｐ１を検出し、スタックに格納する（ステップＢ２）。また、ノードｐ１に訪問ずみフラグを付与する。
【００８１】
この探索動作は再帰的に行うので、次にポリシー順序化手段１０４は、ノードｐ２ないしノードｐ３について、上記条件判定を行う。今、ノードｐ２を参照中であるとすると、ノードｐ２のリンク先はノードｐ１しかなく、かつノードｐ１には訪問ずみフラグが付与されているので、ノードｐ２は上記条件に合致する。そこで、ノードｐ２をスタックに格納し、訪問ずみフラグを付与する。ノードｐ３についても同様である。最終的にノードｐ５からリンクされた全てのノードｐ１，ノードｐ２，ノードｐ３に訪問ずみフラグが付与されるので、ノードｐ５もスタックに格納され、訪問ずみフラグが付与される。このとき、スタックには、先頭からノードｐ５，ノードｐ３，ノードｐ２，ノードｐ１の順にノードが格納されている。
【００８２】
その後、もうひとつの入力リンクのないノードであるノードｐ４を起点として、深さ優先探索を行う。この場合、ノードｐ４からリンクされているノードは、ノードｐ１のみであり、かつノードｐ１は訪問ずみフラグが付与されているので、ポリシー順序化手段１０４は、単にノードｐ４をスタックに格納し、訪問ずみフラグを付与して探索処理を終了する。
【００８３】
以上の結果、スタックには、先頭からノードｐ４，ノードｐ５，ノードｐ３，ノードｐ２，ノードｐ１の順にノードが格納されている。
【００８４】
そして、ポリシー順序化手段１０４は、スタックの先頭からノードを１つずつ参照しながら、参照ノードに対応するポリシーＩＤのリストを生成する（ステップＢ３）。
【００８５】
すなわち、ｐ４→ｐ５→ｐ３→ｐ２→ｐ１という順序で並んだポリシーＩＤリストを生成する。これは、ポリシー階層データにおいて、「深い層→浅い層」の順にポリシーＩＤを整列した結果に相当する。
【００８６】
２．第２実施形態
２．１．構成
次に、本発明の第２の実施形態について図面を参照して説明する。図１０は、第２の実施形態のポリシー管理システムの構成例を示すブロック図である。図１０に示すポリシー管理システムは、図１に示す第１の実施形態を基本とし、アクセス制御ポリシー管理装置１が、さらに、ＡＣＬ生成条件入力手段１０７と、ＡＣＬ生成手段１０８とを備える。
【００８７】
ＡＣＬ生成条件入力手段１０７は、キーボード装置やマウス装置などのユーザ入力装置を有し、ポリシーの変換範囲に関する条件入力を受けて、当該条件をポリシーＩＤリストの形式で、ポリシー階層化手段１０３に入力する。また、当該変換範囲に含まれるポリシー記述の集合をポリシーＤＢ１０２から抽出し、ＡＣＬ生成手段１０８に入力する。
【００８８】
ＡＣＬ生成手段１０８は、二次記憶装置を有し、ＡＣＬ生成条件入力手段１０７から入力されたそれぞれのポリシー記述について、ポリシー順序化手段１０４から入力されたポリシー順序に従って、ロールＤＢ１０１を参照しながら、順次ＡＣＬ記述に変換し、変換結果（ＡＣＬ記述）を二次記憶装置に格納する。
【００８９】
なお、本実施形態において、ＡＣＬ生成条件入力手段１０７は、ユーザ入力装置とデータ入力の受付や変換に係る機能を実現するためのプログラムとプログラムに従って制御を実行するＣＰＵ１００とによって実現可能である。また、ＡＣＬ生成手段１０８は、その機能を実現するためのプログラムとプログラムに従って制御を実行するＣＰＵ１００とによって実現可能である。
【００９０】
２．２．動作
図１１は、本実施形態のポリシー管理システム（より具体的には、アクセス制御ポリシー管理装置１）の動作の一例を示すフローチャートである。図１１に示す例では、まず、ＡＣＬ生成条件入力手段１０７が、ユーザ入力装置を介して、ポリシー配付条件（ＡＣＬ生成条件ともいう。）の指示入力を受ける（ステップＤ１）。当該条件には、少なくともポリシー生成範囲が含まれる。ここで、ポリシー生成範囲については、例えば「ポリシーＤＢに格納された全てのポリシー」、「過去ＡＣＬ生成が指示されていないポリシー」、「指定したロール集合に対応するポリシー」など、ポリシーＤＢ１０２に格納されたポリシー記述の集合を特定できるものであれば、任意の条件を指示可能である。
【００９１】
次に、ＡＣＬ生成条件入力手段１０７は、入力されたポリシー生成範囲に関する条件に従って、ポリシーＤＢ１０２を参照しながら、当該条件に合致するポリシー集合を同定する（ステップＤ２）。ここで、ポリシー集合の同定方法に関して、例えば図１２に示すようなポリシーＤＢスキーマに従ってポリシーＤＢ１０２にポリシー記述が格納されている場合、生成範囲条件に対応するＡＣＬ生成済みフラグカラムやロールＩＤカラムを参照することで、条件に合致するポリシーＩＤを同定できる。より具体的には、以下のようなＳＱＬ文でビューを生成してもよい。
【００９２】
・ＡＣＬ生成有無の例：SELECT  ポリシーＩＤ  FROM  ポリシーＤＢ  WHERE   ＡＬ生成フラグ＝０（ここでは、未生成を示す値）
・ロールＩＤの例：SELECT  ポリシーＩＤ  FROM  ポリシーＤＢ  WHERE   ロールＩＤ＝（指定されたロールＩＤ［１］）  OR  ロールＩＤ＝（指定されたロールＩＤ［２］）  OR  ・・・
【００９３】
このようにポリシーＩＤリスト１０３２に格納可能なポリシーＩＤの集合としてポリシー集合を抽出すると、ＡＣＬ生成条件入力手段１０７は、当該ポリシー集合のリスト（ポリシーＩＤリスト）を、ポリシー階層化手段１０３の一次記憶装置１０３１にコピーする（格納する）。また、当該ポリシーＩＤリストから、対応するポリシー記述の集合をポリシーＤＢ１０２から抽出して、ＡＣＬ生成手段１０８に入力する。
【００９４】
その後、ポリシー階層化手段１０３およびポリシー順序化手段１０４は、第１の実施形態のステップＡ１〜Ａ１３の動作と同様に、ポリシー階層化手段１０３の一次記憶装置１０３１に格納されているポリシー集合に対するポリシー順序データを生成する（ステップＤ３）。
【００９５】
そして、ＡＣＬ生成手段１０８は、ＡＣＬ生成条件入力手段１０７から入力された各ポリシー記述について、ポリシー順序化手段１０４から入力されたポリシー順序データに従って、ＡＣＬ記述へと変換し、二次記憶装置の同一ファイルへ追記する（ステップＤ４）。
【００９６】
以下、ポリシー記述からＡＣＬ記述への変換方法を図１３を参照してより具体的に説明する。図１３は、ＡＣＬ記述への変換処理の処理フローの一例を示すフローチャートである。図１３に示す例では、ＡＣＬ生成手段１０８は、まず現在参照しているポリシー記述に含まれるロールＩＤ、およびオブジェクト・アクションの組の集合ＯＡを抽出する（ステップＥ１）。ここで、オブジェクトとはアクセス対象であるファイルやコンピュータなどであり、アクションとはオブジェクトに対して行われる操作（例えば、ファイルへの読込みや書込みなど）である。
【００９７】
次に、ロールＩＤをロールＤＢ１０１に入力して、対応するサブジェクト集合Ｓを取得する（ステップＥ２）。その後、サブジェクト集合Ｓとオブジェクト・アクション組集合ＯＡの直積Ｓ×ＯＡを計算する（ステップＥ３）。
【００９８】
例えば、Ｓ＝｛ｓａｔｏ，ｓｕｚｕｋｉ，ｔａｎａｋａ｝であり、ＯＡ＝｛（ファイル１，ｒｅａｄ−ｏｎｌｙ），（ファイル２，ｒｅａｄ−ｗｒｉｔｅ）｝であるとき、以下の６つの（Ｓ，Ｏ，Ａ）の組が得られる。
【００９９】
（１）（ｓａｔｏ，ファイル１，ｒｅａｄ−ｏｎｌｙ）
（２）（ｓａｔｏ，ファイル２，ｒｅａｄ−ｗｒｉｔｅ）
（３）（ｓｕｚｕｋｉ，ファイル１，ｒｅａｄ−ｏｎｌｙ）
（４）（ｓｕｚｕｋｉ，ファイル２，ｒｅａｄ−ｗｒｉｔｅ）
（５）（ｔａｎａｋａ，ファイル１，ｒｅａｄ−ｏｎｌｙ）
（６）（ｔａｎａｋａ，ファイル２，ｒｅａｄ−ｗｒｉｔｅ）
【０１００】
最後に、上記（Ｓ，Ｏ，Ａ）の組のそれぞれをＡＣＬ記述に変換して、二次記憶装置に追記する（ステップＥ４）。ここで、ＡＣＬ記述形式は、Ｓ，Ｏ，Ａが識別可能であれば任意である。例えば、各要素をカンマ区切りで列挙するＣＳＶ（Comma, Separeted Valures）形式を用いる場合、以下のようなＡＣＬ記述を生成してもよい。
【０１０１】
（１）ｓａｔｏ，ファイル１，ｒｅａｄ−ｏｎｌｙ（改行記号）
（２）ｓａｔｏ，ファイル２，ｒｅａｄ−ｗｒｉｔｅ（改行記号）
（３）ｓｕｚｕｋｉ，ファイル１，ｒｅａｄ−ｏｎｌｙ（改行記号）
（４）ｓｕｚｕｋｉ，ファイル２，ｒｅａｄ−ｗｒｉｔｅ（改行記号）
（５）ｔａｎａｋａ，ファイル１，ｒｅａｄ−ｏｎｌｙ（改行記号）
（６）ｔａｎａｋａ，ファイル２，ｒｅａｄ−ｗｒｉｔｅ（改行記号）
【０１０２】
２．３．効果
以上のように、本実施形態によれば、ポリシー間の例外・原則関係について適切に、すなわち例外を優先して、ＡＣＬ記述に変換できる。これは、ポリシー階層化手段１０３が、例外ポリシーをより深い層に配置して、ポリシー階層データを生成し、ポリシー順序化手段１０４が、当該ポリシー階層データのより深い層から浅い層に向けてポリシーＩＤを順序化し、当該順序に基づいてＡＣＬ記述に変換するためである。
【０１０３】
３．第３実施形態
３．１．構成
次に、本発明の第３の実施形態について図面を参照して説明する。図１４は、第３の実施形態のポリシー管理システムの構成例を示すブロック図である。図１４に示すポリシー管理システムは、図１に示す第１の実施形態を基本とし、アクセス制御ポリシー管理装置１が、さらに、ポリシー表示条件入力手段１０５と、ポリシーリスト表示手段１０６とを備える。
【０１０４】
ポリシー表示条件入力手段１０５は、キーボード装置やマウス装置などのユーザ入力装置を有し、ポリシーの表示範囲および表示順序に関する条件入力を受けて、ポリシー表示範囲をポリシーＩＤリストに変換して、ポリシー階層化手段１０３に入力する。また、表示順序については、ポリシーリスト表示手段１０６に入力する。
【０１０５】
ポリシーリスト表示手段１０６は、液晶ディスプレイ装置（ＬＣＤ）などの表示デバイスを有し、ポリシー表示条件入力手段１０５からポリシー順序の順に表示するよう表示条件の入力を受けた際に、ポリシー順序化手段１０４が出力するポリシー順序に従って、各ポリシーの情報（例えば、ポリシーＩＤ）を表示デバイスに一覧表示する。
【０１０６】
なお、本実施形態において、ポリシー表示条件入力手段１０５は、ユーザ入力装置とデータ入力の受付や変換に係る機能を実現するためのプログラムとプログラムに従って制御を実行するＣＰＵ１００とによって実現可能である。また、ポリシーリスト表示手段１０６は、その機能を実現するためのプログラムとプログラムに従って制御を実行するＣＰＵ１００と表示デバイスとによって実現可能である。
【０１０７】
３．２．動作
図１５は、本実施形態のポリシー管理システム（より具体的には、アクセス制御ポリシー管理装置１）の動作の一例を示すフローチャートである。図１５に示す例では、まず、ポリシー表示条件入力手段１０５が、ユーザ入力装置を介して、表示条件の指示入力を受ける（ステップＣ１）。当該表示条件には、少なくともポリリー表示範囲と表示順序に関する条件が含まれる。ここで、ポリシー表示範囲については、例えば「ポリシーＤＢに格納された全てのポリシー」、「更新日時に関する期間」、「ポリシーを作成した管理者ＩＤ」など、ポリシーＤＢ１０２に格納されたポリシー記述の集合を特定できるものであれば、任意の条件を指示可能である。また、表示順序については、例えば「ポリシー適用順」のほか、「ポリシー名称の辞書順」や「ポリシー更新日時順」などを指定できるようにしてもよい。
【０１０８】
次に、ポリシー表示条件入力手段１０５は、入力されたポリシー表示範囲に関する条件に従って、ポリシーＤＢ１０２を参照しながら、当該条件に合致するポリシー集合を同定する（ステップＣ２）。ここで、ポリシー集合の同定方法に関して、例えば図１６に示すようなポリシーＤＢスキーマに従ってポリシーＤＢ１０２にポリシー記述が格納されている場合、表示範囲条件に対応する更新日時カラムや管理者ＩＤカラムを参照することで、条件に合致するポリシーＩＤを同定できる。より具体的には、以下のようなＳＱＬ文でビューを生成してもよい。
【０１０９】
・更新日時の例：SELECT  ポリシーＩＤ  FROM  ポリシーＤＢ  WHERE   （指定された期間の初め）＜  更新日時  AND   更新日時  ＜  （指定された期間の終わり）
・管理者ＩＤの例：SELECT  ポリシーＩＤ  FROM  ポリシーＤＢ  WHERE   管理者ＩＤ＝（指定された管理者ＩＤ）
【０１１０】
このようにポリシーＩＤリスト１０３２に格納可能なポリシーＩＤの集合としてポリシー集合を抽出すると、ポリシー表示条件入力手段１０５は、当該ポリシー集合のリスト（ポリシーＩＤリスト）を、ポリシー階層化手段１０３の一次記憶装置１０３１にコピーする（格納する）。また、受け付けた表示条件をポリシーリスト表示手段１０６に入力する。
【０１１１】
その後、ポリシー階層化手段１０３およびポリシー順序化手段１０４は、第１の実施形態のステップＡ１〜Ａ１３の動作と同様に、ポリシー集合に対するポリシー順序データを生成する（ステップＣ３）。そして、ポリシーリスト表示手段１０６は、生成されたポリシー順序データに従って、ポリシー集合の各要素であるポリシーＩＤまたは関連づけられたポリシー名称を、表示装置を介して表示する（ステップＣ４）。ポリシーリスト表示手段１０６は、例えば、図１７に示すような一覧画面を表示してもよい。図１７に示す例では、ポリシーＩＤを指示された順序で一覧表示する例が示されている。また、表示順序の切替指示として、「優先度順」、「名前順」、「作成日時順」のいずれかを選択するラジオボタンが示されている。
【０１１２】
３．３．効果
以上のように、本実施形態によれば、ポリシー順序に従って一覧表示することで、アクセス制御ポリシー管理装置１のユーザであるポリシー管理者は、直観的にポリシーが適用される順序を認識でき、ポリシーの矛盾などを発見しやすくなる。例えば、ポリシー管理者は、自身が作成したポリシーよりも後に表示されるポリシー（すなわち、より優先度が低いポリシー）を検証するだけで、自身の作成したポリシーに矛盾し、かつ実際に適用される別のポリシーを発見できる。
【０１１３】
以下、本発明の概要について説明する。図１９は、本発明の概要を示すブロック図である。本発明のポリシー管理装置１０は、ロール情報記憶手段１１と、ポリシー記述記憶手段１２と、ポリシー階層化手段１３と、ポリシー順序化手段１４とを備える。
【０１１４】
ロール情報記憶手段１１（例えば、ロールＤＢ１０１）は、ポリシーの適用対象となるサブジェクト集合を示す情報を含むロール情報と、ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報とを格納する。
【０１１５】
ポリシー記述記憶手段１２（例えば、ポリシーＤＢ１０２）は、ポリシーを示す情報と、該ポリシーの適用対象となるサブジェクト集合を識別するための情報とを含むポリシー記述を格納する。
【０１１６】
ポリシー階層化手段１３（例えば、ポリシー階層化手段１０３）は、ポリシー記述記憶手段１２に格納されている２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成する。  
【０１１７】
ポリシー階層化手段１３は、例えば、サブジェクト集合に包含関係があるポリシーノード間に、有向リンクを付加したポリシー階層データを生成することによって、ポリシー階層を生成してもよい。
【０１１８】
ポリシー順序化手段１４（例えば、ポリシー順序化手段１０４）は、ポリシー階層化手段１３によって生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である２以上のポリシーによるポリシー集合を全順序化する。
【０１１９】
ポリシー順序化手段１４は、例えば、入力リンクのないノードの集合の各要素を起点として、ポリシー階層データに対して、深さ優先探索に従い位相的ソートを行うことによって、全順序化の対象となったポリシー集合を全順序化してもよい。
【０１２０】
そのような構成によって、サブジェクト集合の包含関係からポリシーの包含関係を導出し、導出されたポリシーの包含関係に基づいて、ポリシー集合の全順序を一意に求めることができるので、肯定的ポリシーと否定的ポリシーとを同時に含むポリシー集合を正しく単一のアクセス制御ルールに変換することができる。
【０１２１】
また、図２０は、本発明の概要としてポリシー管理装置の他の構成例を示すブロック図である。例えば、図２０に示すように、本発明のポリシー管理装置１は、さらに、ポリシーリスト表示手段１５を備えていてもよい。
【０１２２】
ポリシーリスト表示手段１５（例えば、ポリシーリスト表示手段１０６）は、ポリシー順序化手段１４によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合の要素を整列させて一覧表示する。
【０１２３】
そのような構成によって、ポリシー集合の各要素について、単一のＡＣＬにおける記述順序を一覧表示することができるので、ポリシー管理者によるポリシーの検証を支援できる。
【０１２４】
また、図２０に示すように、本発明のポリシー管理装置１は、さらに、ＡＣＬ生成手段１６を備えていてもよい。
【０１２５】
ＡＣＬ生成手段１６（例えば、ＡＣＬ生成手段１０８）は、ポリシー順序化手段によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合に含まれる各ポリシー記述をＡＣＬ記述に変換する。
【０１２６】
そのような構成によって、肯定的ポリシーおよび否定的ポリシーの両方を要素としてもつポリシー集合について、全順序に従った記述順に単一のＡＣＬを生成することができるので、アクセし制御機構において、例外的に定めたポリシーに従ったアクセス制御を適切に実施させることができる。
【０１２７】
なお、図１９および２０に示すような、物理的に分離した1つの装置（ポリシー管理装置）がすべての手段を有する例のほか、上述の通り２つ以上の物理的に分離した装置で図１９および２０に示す手段を備え、これらの装置を有線または無線で接続することでポリシー管理システムを構成することも可能である。
【０１２８】
例えば、ポリシー管理システムは、ロール情報記憶手段を備えるロール記憶装置と、ポリシー記述記憶手段を備えるポリシー記述記憶装置と、ポリシー階層化手段およびポリシー順序化手段を備えるポリシー全順序化装置と、により構成されてもよい。なお、ポリシー全順序化装置は、さらに、ポリシーリスト表示手段またはＡＣＬ生成手段を備えてもよい。
【０１２９】
このように構成した場合、多数のロール情報および／またはポリシー記述が存在する大規模環境において、ポリシー全順序化装置を複数台備えることで、負荷分散が達成できる。
以下、参考形態の例を付記する。
１．  ポリシーの適用対象となるサブジェクト集合を示す情報を含むロール情報と、前記ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報とを格納するロール情報記憶手段と、
ポリシーを示す情報と、該ポリシーの適用対象となるサブジェクト集合を識別するための情報とを含むポリシー記述を格納するポリシー記述記憶手段と、
前記ポリシー記述記憶手段に格納されている２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、２以上のポリシーを階層化したポリシー階層を生成するポリシー階層化手段と、
前記ポリシー階層化手段によって生成されたポリシー階層を示す情報に基づいて、全順序化の対象である前記２以上のポリシーによるポリシー集合を、階層における上位・下位の関係を維持したまま、全順序化するポリシー順序化手段と、
を備えたことを特徴とするポリシー管理装置。
２．  ポリシー順序化手段によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合の要素を整列させて一覧表示するポリシーリスト表示手段を備えた１に記載のポリシー管理装置。
３．  ポリシー順序化手段によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合に含まれる各ポリシー記述をＡＣＬ記述に変換するＡＣＬ生成手段を備えた１または２に記載のポリシー管理装置。
４．  ポリシー階層化手段は、サブジェクト集合に包含関係があるポリシーノード間に、有向リンクを付加したポリシー階層データを生成することによって、ポリシー階層を生成する１から３のうちのいずれかに記載のポリシー管理装置。
５．  ポリシー順序化手段は、入力リンクのないノードの集合の各要素を起点として、ポリシー階層データに対して、深さ優先探索に従い位相的ソートを行うことによって、全順序化の対象となったポリシー集合を全順序化する４に記載のポリシー管理装置。
６．  ポリシーの適用対象となるサブジェクト集合を示す情報を含むロール情報と、前記ロール情報に含まれるサブジェクト集合間の包含関係を特定可能な情報とを格納するロール情報記憶手段を備えるロール記憶装置と、
ポリシーを示す情報と、該ポリシーの適用対象となるサブジェクト集合を識別するための情報とを含むポリシー記述を格納するポリシー記述記憶手段を備えるポリシー記述記憶装置と、
前記ポリシー記述記憶手段に格納されている２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化手段と、
前記ポリシー階層化手段によって生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である前記２以上のポリシーによるポリシー集合を全順序化するポリシー順序化手段と、
を備えるポリシー全順序化装置と、
を有するポリシー管理システム。
７．  前記ポリシー全順序化装置は、さらに、
ポリシー順序化手段によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合の要素を整列させて一覧表示するポリシーリスト表示手段を備えた６に記載のポリシー管理システム。
８．  前記ポリシー全順序化装置は、さらに、
ポリシー順序化手段によって全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合に含まれる各ポリシー記述をＡＣＬ記述に変換するＡＣＬ生成手段を備えた６または７に記載のポリシー管理システム。
９．  サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、
前記ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化ステップと、
前記ポリシー階層化ステップで生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である前記２以上のポリシーによるポリシー集合を全順序化するポリシー順序化ステップと、
を含むことを特徴とするポリシー順序化方法。
１０．  サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、
前記ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化ステップと、
前記ポリシー階層化ステップで生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である前記２以上のポリシーによるポリシー集合を全順序化するポリシー順序化ステップと、
前記ポリシー順序化ステップで全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合の要素を整列させて一覧表示する一覧表示ステップと、
を含むことを特徴とするポリシーリスト表示方法。
１１．  サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、
前記ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化ステップと、
前記ポリシー階層化ステップで生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である前記２以上のポリシーによるポリシー集合を全順序化するポリシー順序化ステップと、
前記ポリシー順序化ステップで全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合に含まれる各ポリシー記述をＡＣＬ記述に変換するＡＣＬ生成ステップと、
を含むことを特徴とするＡＣＬ生成方法。
１２．  コンピュータに、
サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、
前記ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化処理と、
前記ポリシー階層化処理で生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である前記２以上のポリシーによるポリシー集合を全順序化するポリシー順序化処理と、
を実行させるためのポリシー順序化プログラム。
１３．  コンピュータに、
サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、
前記ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化処理と、
前記ポリシー階層化処理で生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である前記２以上のポリシーによるポリシー集合を全順序化するポリシー順序化処理と、
前記ポリシー順序化処理で全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合の要素を整列させて一覧表示する一覧表示処理と、
を実行させるためのポリシーリスト表示プログラム。
１４．  コンピュータに、
サブジェクト集合間の包含関係が特定可能な所与のサブジェクト集合および適用対象となるサブジェクト集合が示されたポリシー集合に対して、
前記ポリシー集合に含まれる２以上のポリシーについて、各ポリシーをノードとし、各ポリシーが適用されるサブジェクト集合の包含関係に基づいて、互いに包含関係をもたないサブジェクト集合に適用されるポリシーから構成される層を含むポリシー階層を生成するポリシー階層化処理と、
前記ポリシー階層化処理で生成されたポリシー階層を示す情報に基づいて、異なる層のポリシー間の階層関係を維持したまま、全順序化の対象である前記２以上のポリシーによるポリシー集合を全順序化するポリシー順序化処理と、
前記ポリシー順序化ステップで全順序として決定されたポリシー順序にしたがって、全順序化の対象であるポリシー集合に含まれる各ポリシー記述をＡＣＬ記述に変換するＡＣＬ生成処理と、
を実行させるためのＡＣＬ生成プログラム。
【０１３０】
この出願は、２００９年２月１０日に出願された日本出願特願２００９−０２８９８５号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１３１】
本発明は、データベース化されたポリシーについて、ポリシー順序に従った検索ビューを生成するポリシー検索装置や、生成したアクセス制御リストを遠隔サーバに設定するポリシー配付装置といった用途にも適用可能である。
【図１】
0005482667.tif 000002
【図２】
0005482667.tif 000003
【図３】
0005482667.tif 000004
【図４】
0005482667.tif 000005
【図５】
0005482667.tif 000006
【図６】
0005482667.tif 000007
【図７】
0005482667.tif 000008
【図８】
0005482667.tif 000009
【図９】
0005482667.tif 000010
【図１０】
0005482667.tif 000011
【図１１】
0005482667.tif 000012
【図１２】
0005482667.tif 000013
【図１３】
0005482667.tif 000014
【図１４】
0005482667.tif 000015
【図１５】
0005482667.tif 000016
【図１６】
0005482667.tif 000017
【図１７】
0005482667.tif 000018
【図１８】
0005482667.tif 000019
【図１９】
0005482667.tif 000020
【図２０】
0005482667.tif 000021