(57)【要約】【課題】  階層構造を構成するデータの整合性を判定する。【解決手段】  互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置であって、各々が複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、複数のアクセス制御ルールの各々が、当該アクセス制御ルールによりアクセスを許可されるオブジェクトの祖先の各オブジェクトに対するアクセスが複数のアクセス制御ルールの何れかにより許可される旨の条件である整合性条件を満たすか否か判断するルール判断部と、何れかのアクセス制御ルールが整合性条件を満たさない場合に、複数のアクセス制御ルールを変更する旨の指示を通知する通知部とを備える判定装置を提供する。【選択図】図１
2005284883.tif 000002
【特許請求の範囲】
【請求項１】
互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置であって、
各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、
前記複数のアクセス制御ルールの各々が、当該アクセス制御ルールによりアクセスを許可されるオブジェクトの祖先の各オブジェクトに対するアクセスが前記複数のアクセス制御ルールの何れかにより許可される旨の条件である整合性条件を満たすか否か判断するルール判断部と、
何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知部と
を備える判定装置。
【請求項２】
前記通知部は、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、当該アクセス制御ルールを削除する旨を指示するアクセス制限指示、又は、当該アクセス制御ルールがアクセスを許可するオブジェクトの祖先の各オブジェクトに対してアクセスを許可する新たなアクセス制御ルールを追加する指示であるアクセス緩和指示を通知する
請求項１記載の判定装置。
【請求項３】
前記ルール取得部は、アクセスを許可するアクセス要求者を識別する識別情報と、当該アクセス要求者によるアクセスを許可するオブジェクトの識別情報との組を、前記アクセス制御ルールとして取得し、
前記通知部は、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、当該アクセス制御ルールによりアクセスが許可されるアクセス要求者に基づいて、前記アクセス緩和指示又は前記アクセス制限指示を選択して通知する
請求項２記載の判定装置。
【請求項４】
前記複数のアクセス制御ルールの各々は、少なくとも１つのオブジェクトを含むオブジェクト集合に対するアクセスを許可し、
前記ルール判断部は、各アクセス制御ルールについて、前記オブジェクト集合に含まれる何れかのオブジェクトの何れかの祖先のオブジェクトに対するアクセスが、前記複数のアクセス制御ルールの何れによっても許可されない場合に、当該アクセス制御ルールが前記整合性条件を満たさないと判断し、
前記通知部は、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、当該アクセス制御ルールがアクセスを許可するオブジェクト集合を、当該アクセス制御ルールと他の何れかのアクセス制御ルールとが共通してアクセスを許可するオブジェクトの集合に変更する旨の指示を、前記アクセス制限指示として通知する
請求項２記載の判定装置。
【請求項５】
前記複数のオブジェクトは、木構造の親子関係を有し、
前記ルール取得部は、前記アクセス制御ルールとして、アクセスを許可する対象のオブジェクトを、前記木構造の根オブジェクトから当該オブジェクトに至る経路により指定するパス情報を取得し、
前記ルール判断部は、前記複数のアクセス制御ルールの各々におけるパス情報に基づいて当該アクセス制御ルールが前記整合性条件を満たすか否かを判断する
請求項１記載の判定装置。
【請求項６】
前記ルール判断部は、前記整合性条件として、前記複数のアクセス制御ルールの各々がアクセスを許可する各オブジェクトに対するアクセスが、他の何れのアクセス制御ルールによっても禁止されていない旨の条件を更に判断する
請求項１記載の判定装置。
【請求項７】
前記ルール判断部は、前記整合性条件として、全ての前記複数のオブジェクトの各々に対するアクセスが、前記複数のアクセス制御ルールの何れかによって許可又は禁止されている旨の条件を更に判断する
請求項１記載の判定装置。
【請求項８】
互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置であって、
各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、
前記複数のアクセス制御ルールの各々がアクセスを許可する各オブジェクトに対するアクセスが、他の何れのアクセス制御ルールによっても禁止されていない旨の条件である整合性条件を満たすか否か判断するルール判断部と、
何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知部と
を備える判定装置。
【請求項９】
互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置であって、
各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、
全ての前記複数のオブジェクトの各々に対するアクセスが、前記複数のアクセス制御ルールの何れかによって許可又は禁止されている旨の条件である整合性条件を満たすか否か判断するルール判断部と、
何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知部と
を備える判定装置。
【請求項１０】
互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置として、コンピュータを機能させるプログラムであって、
前記プログラムは、前記コンピュータを、
各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、
前記複数のアクセス制御ルールの各々が、当該アクセス制御ルールによりアクセスを許可されるオブジェクトの祖先の各オブジェクトに対するアクセスが前記複数のアクセス制御ルールの何れかにより許可される旨の条件である整合性条件を満たすか否か判断するルール判断部と、
何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知部と
して機能させるプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録した記録媒体。
【請求項１２】
互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定方法であって、
各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得段階と、
前記複数のアクセス制御ルールの各々が、当該アクセス制御ルールによりアクセスを許可されるオブジェクトの祖先の各オブジェクトに対するアクセスが前記複数のアクセス制御ルールの何れかにより許可される旨の条件である整合性条件を満たすか否か判断するルール判断段階と、
何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知段階と
を備える判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定装置、プログラム、記録媒体、及び判定方法に関する。特に本発明は、階層構造を構成する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置、プログラム、記録媒体、及び判定方法に関する。
【背景技術】
【０００２】
近年、XML(Extensible Markup Language)等の構造化言語により記述された文書が広く用いられてきている。XML文書には、複数のオブジェクトと、そのオブジェクト間の親子関係とを共に記述することができる。このため、データを階層的に管理したいデータベースなどにおいて広く用いられている。更に、近年、XML文書に含まれる複数のオブジェクトに対して、アクセスを許可又は禁止する旨を設定する技術が用いられている。この技術によると、文書単位のみならずオブジェクト単位でアクセスの許可又は禁止を設定できる。
【０００３】
従来、多くのデータベースシステムにおいて、XML等における親子関係を有するオブジェクトを表記する方法としてXpathが用いられている。Xpathは、所定の条件を満たすオブジェクトや、所定のオブジェクトの集合を適切に表現することができる。このため、Xpathに関する研究は広く行なわれており、例えば、Xpathにより指定されるオブジェクトを、XML文書全体の中から効率的に検索する方法が提案されている（非特許文献１及び２参照。）。
【０００４】
非特許文献３については後述する。
【非特許文献１】F. Neven and T Schwentick. XPath containment in the presence of disjunction, DTDs, and variable, In ICDT, 2003.
【非特許文献２】G. Mikalu and D. Suciu, Containment and equivalence for an XPath fragment, In PODS,
【非特許文献３】J.E.Hopcroft and J.D.Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 1979
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のように、XML文書を構成する各オブジェクトには、アクセスの許可又は禁止をそれぞれ設定することができる。しかしながら、親のオブジェクトに対するアクセスが禁止されているのにも関わらず子のオブジェクトに対するアクセスのみが許可されている場合には、様々な不都合がある。例えば、このようなXML文書にアクセスすると、子のオブジェクトのみを読み出すことができるが、読み出したXML文書においては親子関係が適切に記述されておらず不完全なXML文書が生成されてしまう。このため、このようなXML文書を、XML文書を入力とする従来のプログラムモジュール、例えばXML文書の階層構造を解析するDOM又はSAXといったAPIにより取扱うことができなかった。
【０００６】
そこで本発明は、上記の課題を解決することのできる判定装置、プログラム、記録媒体、及び判定方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の第１の形態においては、  互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置であって、各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、前記複数のアクセス制御ルールの各々が、当該アクセス制御ルールによりアクセスを許可されるオブジェクトの祖先の各オブジェクトに対するアクセスが前記複数のアクセス制御ルールの何れかにより許可される旨の条件である整合性条件を満たすか否か判断するルール判断部と、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知部とを備える判定装置、コンピュータを当該判定装置として機能させるプログラム、プログラムを記録した記録媒体、及び当該判定装置による判定方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【０００８】
本発明によれば、階層構造を構成するデータの整合性を判定することができる。
【発明を実施するための最良の形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、判定装置１０のブロック図を示す。判定装置１０は、XML文書等の階層構造のデータにおいて、互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定することを目的とする。判定装置１０は、ルール展開部１００と、ルール取得部１１０と、ルール判断部１２０と、通知部１３０とを備える。
【００１１】
ルール展開部１００は、階層構造のデータに対するアクセスの許可又は禁止を設定したアクセス制御ポリシー２０を取得する。そして、ルール展開部１００は、取得したアクセス制御ポリシー２０を、各々が複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールに展開する。展開した複数のアクセス制御ルールを、例えば、アクセス制御ルール３０−１〜Ｎとする。
【００１２】
ルール取得部１１０は、アクセス制御ルール３０−１〜Ｎを取得してルール判断部１２０に送る。ルール判断部１２０は、アクセス制御ルール３０−１〜Ｎの各々が整合性条件を満たすか否かを判断し、判断結果を通知部１３０に送る。あるアクセス制御ルールが満たす整合性条件とは、例えば、そのアクセス制御ルールによりアクセスを許可されるオブジェクトの祖先の各オブジェクトに対するアクセスがアクセス制御ルール３０−１〜Ｎの何れかにより許可される旨の条件である。
【００１３】
また、ルール判断部１２０は、各アクセス制御ルールが複数のオブジェクトの集合に対するアクセスを許可する場合においては、アクセスが許可されるオブジェクトの集合に含まれる何れかのオブジェクトの何れかの祖先のオブジェクトに対するアクセスが、何れのアクセス制御ルールによっても許可されない場合に、整合性条件を満たさないと判断してもよい。
【００１４】
通知部１３０は、何れかのアクセス制御ルールが整合性条件を満たさない場合に、アクセス制御ルール３０−１〜Ｎを変更する旨の指示を利用者、例えばアクセス制御ルールの編集者に通知する。例えば、通知部１３０は、整合性条件を満たさないアクセス制御ルールを削除する旨の指示を通知してもよい。これにより、利用者は、アクセス制御ポリシーの変更が必要である旨を適切に把握して、アクセス制御ポリシーの修正に役立てることができる。更に、通知部１３０は、利用者の設定に基づいて、削除すべき当該アクセス制御ポリシーを、利用者からの確認の入力を経ずに削除してもよい。この場合、判定装置１０は、アクセス制御ポリシーを自動的に修正することができる。
【００１５】
図２は、アクセス制御ポリシー２０の一例を示す。アクセス制御ポリシー２０は、複数のアクセス制御ルールを含む。アクセス制御ルールは、アクセスを許可するアクセス要求者を識別する識別情報であるアクセス要求者ＩＤと、そのアクセス要求者によるアクセスを許可するオブジェクトの識別情報であるオブジェクトＩＤと、そのオブジェクトに対するアクセスを許可又は禁止する旨を示す制御情報とを含む。
【００１６】
また、複数のオブジェクトは、木構造の親子関係を有しており、オブジェクトのオブジェクトＩＤは、その木構造の根オブジェクトからそのオブジェクトに至る経路であるパス情報であってもよい。一例として、本図の第１行目のアクセス制御ルールは、識別情報がOperatorのアクセス要求者に、パス情報である/orgにより指定されるオブジェクトに対する読み出しを許可する旨を示している。このパス情報は、例えば、Xpath又はDTD(Document Type Description)により表記されてもよいし、木オートマトン又は様相論理等の木言語により表記されてもよいし、正規表現又は文字列オートマトン等の文字列言語により表記されてもよい。
【００１７】
また、アクセス制御ルールは、パス情報において経由するオブジェクトが満たすべき条件を更に含んでいてもよい。例えば、本図の２行目のアクセス制御ルールは、パス情報である/org/dept/empにより指定されるオブジェクトに対するアクセスを許可する旨を示す。更に、このアクセス制御ルールは、/org/deptにより指定されるオブジェクトの属性であるidが'S77'である旨の条件を含む。即ちこのアクセス制御ルールによると、idという名称の属性の値が'S77'であるオブジェクトdeptを経由して至るオブジェクトempに対する読み出しが許可される。以降の説明において、この条件を指定する式、例えば[@id='S77']を、述語式と呼ぶ。
【００１８】
また、制御情報(+r)は、指定されたオブジェクトに対する読み出しの許可を示す。これに対して、制御情報(+R)は、指定されたオブジェクト及びその子孫のオブジェクトに対する読み出しを許可する旨を示す。即ち、本図の３行目のアクセス制御ルールは、/org/dept/emp/nameにより指定されるオブジェクトnameの全ての子孫のオブジェクトに対して、読み出しを許可する旨を示している。なお、以降の説明において、何れのアクセス制御ルールによっても読み出しが許可されないオブジェクトの読み出しが禁止されると仮定する。
【００１９】
なお、本実施例においてはXML文書における複数のオブジェクトに対するアクセスの許可又は禁止を取扱うが、本発明に係る複数のオブジェクトはこの例に限定されない。例えば、オブジェクトとは、ファイルシステムにおけるファイル又はフォルダ（ディレクトリ）であってもよいし、各種のデータベースに管理されたデータであってもよい。
【００２０】
図３は、アクセス制御ルール３０−１〜Ｎの一例を示す。ルール展開部１００は、取得したアクセス制御ポリシー２０を、アクセス制御ルール３０−１〜Ｎに展開する。例えば、ルール展開部１００は、アクセス制御ポリシー２０において制御情報(+R)の指定されたアクセス制御ルールを、制御情報(+r)を用いたアクセス制御ルール３０−４〜７に展開する。即ち、展開前のアクセス制御ルールである(Operator, /org/dept/emp/name, +R)は、(Operator, /org/dept/emp/name, +r)と、(Operator, /org/dept/emp/name//*, +r)と、(Operator, /org/dept/emp/name//@*, +r)と、(Operator, /org/dept/emp/name//text(), +r)とに展開される。
【００２１】
ここで、/org/dept/emp/name//*は、根オブジェクトからオブジェクトorg, dept, empを順次経由して至るnameオブジェクトの全ての子孫オブジェクトを示す。また、/org/dept/emp/name//@*は、根オブジェクトからオブジェクトorg, dept, empを順次経由して至るnameオブジェクトの子孫にあたる全ての属性オブジェクトを示す。また、/org/dept/emp/name//text()は、根オブジェクトからオブジェクトorg, dept, empを順次経由して至るnameオブジェクトの子孫にあたる全てのテキストオブジェクトを示す。このように、アクセス制御ルールは、単一のオブジェクトのみならず、少なくとも１つのオブジェクトを含むオブジェクト集合に対するアクセスを許可してもよい。
【００２２】
ここで、アクセス制御ルール３０−７によりアクセスを許可されるオブジェクトnameの祖先のオブジェクトである/org/dept/empに対するアクセスが許可されていないので、アクセス制御ルール３０−７は、整合性条件を満たさない。従って、通知部１３０は、アクセス制御ルール３０−１〜Ｎを変更する旨の指示を利用者に通知する。
【００２３】
図４は、ルール変更指示４０の例を示す。通知部１３０は、何れかのアクセス制御ルールが整合性条件を満たさない場合に、アクセス制御ルール３０−１〜Ｎを変更する旨の指示を利用者に通知する。例えば、通知部１３０は、何れかのアクセス制御ルールを削除する旨のアクセス制限指示、又は、新たにアクセス制御ルールを追加する旨のアクセス緩和指示の何れかを利用者に通知する。
【００２４】
（ａ）は、アクセス緩和指示の一例を示す。通知部１３０は、整合性条件を満たさないアクセス制御ルールがアクセスを許可するオブジェクトの祖先の各オブジェクトに対してアクセスを許可する新たなアクセス制御ルールを追加する指示を、当該アクセス緩和指示として通知する。
【００２５】
例えば、アクセス制御ルール３０−１〜Ｎにおいて、オブジェクトnameの祖先であるオブジェクトemp及びオブジェクトdeptに対する読み出しは許可されていない。従って、通知部１３０は、これらのオブジェクトemp及びdeptに対する読み出しを許可するアクセス制御ルールを追加する指示を通知する。
【００２６】
（ｂ）は、アクセス制限指示の一例を示す。アクセス制御ルール３０−１〜Ｎにおいて、オブジェクトnameの親であるオブジェクトempに対するアクセスは許可されない場合がある。例えば、アクセス制御ルール３０−４は、オブジェクトorg, dept, empを経由して至るオブジェクトnameに対して、オブジェクトdeptの属性に関わらず読み出しを許可する。これに対して、アクセス制御ルール３０−３は、根オブジェクトを起点として属性idがS77であるオブジェクトdeptを経由して至るオブジェクトempに対する読み出しのみを許可する。即ち、属性idがS77でないオブジェクトdeptの子であるオブジェクトempは、オブジェクトnameの親であるのにもかかわらず読み出しが許可されない。
【００２７】
このような場合、通知部１３０は、アクセス制御ルール３０−４〜７を削除する旨のアクセス制限指示を通知してもよいが、本図に示すように、アクセス制御ルール３０−４〜７がアクセスを許可するオブジェクト集合を変更する旨を通知してもよい。即ち、通知部１３０は、属性idがS77であるオブジェクトdeptを経由する条件をアクセス制御ルール３０−４〜７に追加する指示を通知してもよい。
【００２８】
以上、本図に示すように、通知部１３０は、アクセス制御ルールが整合性条件を満たさない場合に、新たにアクセス制御ルールを追加するアクセス緩和指示、又は、アクセス制御ルールを変更又は削除するアクセス制限指示を利用者に通知する。これにより、利用者は、アクセス制御ポリシーの変更が必要である旨を適切に把握して、アクセス制御ポリシーの修正に役立てることができる。
【００２９】
更にこの場合、通知部１３０は、アクセス制御ルールによりアクセスが許可されるアクセス要求者に基づいて、アクセス緩和指示又はアクセス制限指示を選択して通知してもよい。例えば本図の場合、アクセス要求者である操作者(Operator)は、所定の基準以下のアクセス権限を有するので、通知部１３０は、アクセス制限指示を選択して通知してもよい。このように、判定装置１０は、アクセス要求者に応じた適切な指示を通知することができる。
【００３０】
図５は、判定装置１０がアクセス制御ポリシー２０を判定する処理の動作フローを示す。ルール展開部１００は、取得したアクセス制御ポリシー２０を、各々が複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールに展開する（Ｓ５００）。更に、ルール展開部１００は、DTD(Document Type Description)等で記述されたアクセス制御ポリシーを、Xpathで記述されたアクセス制御ルールに変換してもよい。
【００３１】
ルール取得部１１０は、アクセス制御ルール３０−１〜Ｎをルール展開部１００から取得する（Ｓ５１０）。そして、ルール判断部１２０は、アクセス制御ルール３０−１〜Ｎの各々が整合性条件を満たすか否か判断する（Ｓ５２０）。例えば、ルール判断部１２０は、整合性条件として、各々のアクセス制御ルール３０−１〜Ｎによりアクセスが許可されるオブジェクトの祖先のオブジェクトに対するアクセスが、アクセス制御ルール３０−１〜Ｎの何れかにより許可される旨の条件を判断する。これにより、通知部１３０は、読み出されたXML文書が断片化してしまうか否かを判断できる。
【００３２】
この処理について、アクセス制御ルールのパス情報がXpathである場合を例に説明する。
まず、ルール判断部１２０は、各アクセス制御ルールのパス情報の全ての接頭語を求める。例えば、ルール判断部１２０は、/org/dept/emp/nameの接頭語として、/org、/org/dept、及び/org/dept/empを求める。次に、ルール判断部１２０は、これらの接頭語が、他の何れかのアクセス制御ルールにおけるパス情報に含まれるか判断する。例えば、接頭語/orgは、アクセス制御ルール３０−１のパス情報に含まれる（例えばこの場合完全に一致している）。一方、接頭語/org/deptは、何れのアクセス制御ルールにおけるパス情報にも含まれない。ルール判断部１２０は、何れかの接頭語が何れのアクセス制御ルールにおけるパス情報にも含まれない場合に、整合性条件を満たさないと判断する。
【００３３】
このように、整合性条件を満たすか否かを判断するには、あるXpath式が他のXpath式に含まれるかを判定する包含判定が必要である。例えば、ルール判断部１２０は、Xpath式/aが、Xpath式/aに含まれると判定する。また、Xpath式/aが、Xpath式/*に含まれると判定する。また、Xpath式/a/b//*が、Xpath式/a//*に含まれると判定する。また、Xpath式/ns0:aが、Xpath式/ns0:*に含まれると判定する。また、Xpath式/a[@id=0]が、Xpath式/aに含まれると判定する。また、Xpath式/a[@id=0 or @id=1]が、Xpath式/a[@id=0]及びXpath式a[@id=1]の何れにも含まれると判定する。包含判定の具体的処理は、非特許文献１から３に例示されているので、本実施例における説明を省略する。
【００３４】
続いて、整合性条件を判断する処理の変形例を説明する。まず、ルール判断部１２０は、アクセスを許可する各アクセス制御ルールに基づいて、そのアクセス制御ルールによりアクセスが許可されるオブジェクトの集合を示すオートマトンを生成する。次に、ルール判断部１２０は、アクセスを禁止する各アクセス制御ルールに基づいて、そのアクセス制御ルールによりアクセスが禁止されるオブジェクトの集合を示すオートマトンを生成する。そして、ルール判断部１２０は、アクセス制御ルール又はXML文書等に定められた規格等に応じて、以下の処理を行う。
【００３５】
（変形例１）  アクセスを禁止するアクセス制御ルールとアクセスを許可するアクセス制御ルールとが混在している場合。
ルール判断部１２０は、アクセスを許可する各アクセス制御ルールのオートマトンの和から、アクセスを禁止する各アクセス制御ルールのオートマトンの和を引いた差分のオートマトンを生成する。XML文書にスキーマ情報が指定されている場合には、ルール判断部１２０は、更に、スキーマ情報に基づいてオートマトンを生成し、生成したオートマトンと上記差分のオートマトンとの共通部分を示すオートマトンを生成してもよい。
【００３６】
そして、ルール判断部１２０は、生成したこのオートマトンの全ての接頭語が、そのオートマトン自体に含まれるか否かを判断することにより、整合性条件を判断する。オートマトンの共通部分の算出、オートマトンの接頭語の算出、及びオートマトンの包含性の判断は、非特許文献１に例示されているので、本実施例における説明を省略する。
【００３７】
（変形例２）  XML文書等のデータ構造における規格により、同一のオブジェクトに矛盾する複数のアクセス制御ルールを設定することが許可されない場合。
ルール判断部１２０は、アクセスを許可する各アクセス制御ルールのオートマトンの和と、アクセスを禁止する各アクセス制御ルールのオートマトンの和との共通部分のオートマトンを生成する。XML文書にスキーマ情報が指定されている場合には、ルール判断部１２０は、更に、スキーマ情報に基づいてオートマトンを生成し、生成したオートマトンと上記共通部分のオートマトンとの共通部分を示すオートマトンを生成してもよい。
【００３８】
そして、ルール判断部１２０は、生成したこのオートマトンが空集合であれば、整合性条件を満たすと判断する。このように、ルール判断部１２０は、アクセス制御ルール３０−１〜Ｎの各々がアクセスを許可する各オブジェクトに対するアクセスが、他の何れのアクセス制御ルールによっても禁止されていない旨の条件を整合性条件として更に判断してもよい。
【００３９】
（変形例３）  XML文書等のデータ構造における規格により、オブジェクトに許可又は禁止の何れも設定しないことが許されていない場合。
ルール判断部１２０は、アクセスを許可する各アクセス制御ルールのオートマトンの和と、アクセスを禁止する各アクセス制御ルールのオートマトンの和との何れかに含まれるオートマトンを生成する。XML文書にスキーマ情報が指定されている場合には、ルール判断部１２０は、更に、スキーマ情報に基づいてオートマトンを生成する。
【００４０】
そして、ルール判断部１２０は、スキーマ情報に基づいて生成した上記オートマトンが、アクセス制御ルールに基づいて生成した上記オートマトンに含まれていれば、整合性条件を満たすと判断する。このように、ルール判断部１２０は、全てのオブジェクトに対するアクセスが、複数のアクセス制御ルールの何れかによって許可又は禁止されている旨の条件を判断してもよい。
【００４１】
続いて、整合性条件が満たされると判断した場合には（Ｓ５３０：ＹＥＳ）、判定装置１０は、処理を終了する。この際、整合性条件が満たされる旨を出力・表示してもよい。一方、整合性条件が満たされない場合に（Ｓ５３０：ＮＯ）、通知部１３０は、アクセス要求者が予め定められた条件を満たすか判断する（Ｓ５４０）。例えば、通知部１３０は、アクセス要求者に対応して予め定められたアクセス権限が、所定の基準より高いか否かを判断する。アクセス要求者が予め定められた条件を満たす場合に（Ｓ５４０：ＹＥＳ）、通知部１３０は、アクセス緩和指示を利用者に通知する（Ｓ５５０）。
【００４２】
一方、アクセス要求者が予め定められた条件を満たさない場合に（Ｓ５４０：ＮＯ）、通知部１３０は、アクセス緩和指示を利用者に通知する（Ｓ５６０）。アクセス緩和指示とは、例えば、整合性条件を満たさないアクセス制御ルールについて、そのアクセス制御ルールがアクセスを許可するオブジェクトの集合を、そのアクセス制御ルールと他の何れかのアクセス制御ルールとが共通してアクセスを許可するオブジェクトの集合に変更する旨の指示である。具体的には、通知部１３０は、以下の処理によりアクセス制御指示を生成する。
【００４３】
まず、通知部１３０は、整合性条件を満たさないアクセス制御ルールのパス情報について、そのパス情報が示す何れかのオブジェクトにアクセスの許可又は禁止を設定する他の全てのアクセス制御ルールを検出する。以下の説明において、このようなアクセス制御ルールを類似するアクセス制御ルールと呼ぶ。また、指定するオブジェクトが共通する複数のパス情報を、互いに類似するパス情報と呼ぶ。
【００４４】
通知部１３０は、検出した各アクセス制御ルールによりアクセスが許可されるオブジェクトの和集合を算出する。次に、通知部１３０は、整合性条件を満たさない当該アクセス制御ルールによりアクセスが許可されるオブジェクト集合と、算出したオブジェクトの和集合との積集合を算出する。そして、通知部１３０は、整合性条件を満たさないアクセス制御ルールがアクセスを許可するオブジェクトの集合を、算出した当該積集合に変更する旨の指示をアクセス制限指示として生成する。
【００４５】
なお、この場合、好ましくは、ルール判断部１２０は、変更する対象のアクセス制御ルールに基づいて他のアクセス制御ルールの整合性条件が判定されていた場合には、そのアクセス制御ルールの整合性条件を、変更後のアクセス制御ルールに基づいて再度判断する。これにより、整合性条件を満たすために追加すべき全てのアクセス制御ルールをより正確に検出できる。
【００４６】
続いて、通知部１３０は、整合性条件を満たさないアクセス制御ルールのパス情報における全ての接頭語を求める。そして、通知部１３０は、各接頭語を示す各パス情報について以下の処理を行う。まず、通知部１３０は、そのパス情報に類似するパス情報を有する全てのアクセス制御ルールを検出する。次に、通知部１３０は、検出した各アクセス制御ルールによりアクセスが許可されるオブジェクトの和集合を算出する。
【００４７】
続いて、通知部１３０は、接頭語が示すオブジェクト集合と、算出したオブジェクトの和集合との積集合を算出する。そして、通知部１３０は、算出したこの積集合に対するアクセスを許可する新たなアクセス制御ルールを追加する旨の指示を、アクセス制限指示として生成する。なお、追加すべきアクセス制御ルールが既に設定されている場合には、そのアクセス制御ルールを追加すべきアクセス制御ルールから除外することが望ましい。
【００４８】
例えば、図３に示したアクセス制御ルール「(Operator,/org/dept/emp/name, +r)」は整合性条件を満たさないので、通知部１３０は、/org/dept/emp/nameの接頭語である/org, /org/dept, 及び/org/dept/empを求める。ここで、/orgは既にアクセス制御ルールとして設定されているので問題とならない。次に、通知部１３０は、/org/dept/emp/nameに類似するアクセス制御ルールとして、(Operator, /org/dept[@id='S77']/emp, +r)を検出する。同様に、/org/deptに類似するアクセス制御ルールとして、(Operator, /org/dept[@id='S77'], +r)を検出する。
【００４９】
そして、求めた/org/dept/emp/nameと、類似するアクセス制御ルールのパス情報との積集合として、/org/dept[@id='S77']/emp/nameを算出する。この結果、算出したこの積集合は、既に設定されていたアクセス制御ルール３０−１〜Ｎに含まれないので、通知部１３０は、このアクセス制御ルールを、変更すべきアクセス制御ルールとして通知する。
【００５０】
一方、通知部１３０は、接頭語である/org, /org/dept, 及び/org/dept/empについて次に用に処理する。まず、/orgは既にアクセス制御ルールとして設定されているので問題とならない。次に、通知部１３０は、/org/dept/empに類似するアクセス制御ルールとして、(Operator, /org/dept[@id='S77']/emp, +r)を検出する。同様に、/org/deptに類似するアクセス制御ルールとして、(Operator, /org/dept[@id='S77'], +r)を検出する。
【００５１】
そして、求めた接頭語と、検出したアクセス制御ルールのパス情報との積集合として、/org/dept[@id='S77']/emp及び/org/dept[@id='S77']を算出する。この結果、算出した積集合は、既に設定されていたアクセス制御ルール３０−２及びアクセス制御ルール３０−３と同一なので、通知部１３０は、このアクセス制御ルールを、追加すべきアクセス制御ルールから除外する。
【００５２】
以上、本実施例によると、判定装置１０は、Xpathなどで表現されたパス情報を用いてアクセスの許可又は禁止が設定されたXML文書について、アクセス制御ポリシーの整合性を判定することができる。そして、判定装置１０は、整合性を満たさない場合に、整合性を満たすために追加するべきアクセス制御ルール又は、削除・変更するべきアクセス制御ルールを利用者に通知することができる。これにより、ＸＭＬ文書の管理者等は、設定したアクセス制御ルールの誤りを容易に発見して、修正することができる。
【００５３】
なお、通知部１３０によるＳ５４０からＳ５６０における処理は一例である。これに代えて、通知部１３０は、アクセス緩和指示及びアクセス制限指示の双方を生成し、画面上に表示することにより利用者に通知してもよい。そしてこの場合、通知部１３０は、アクセス緩和指示及びアクセス制限指示の何れによりアクセス制御ポリシーを変更するか利用者に選択させ、選択された指示に基づいてアクセス制御ポリシーを変更してもよい。これにより、利用者は、アクセス緩和指示及びアクセス制限指示を比較検討の上、アクセス制御ポリシーを変更できる。
【００５４】
図６は、判定装置１０として機能するコンピュータのハードウェア構成の一例を示す。判定装置１０は、ホストコントローラ６８２により相互に接続されるＣＰＵ６００、ＲＡＭ６２０、グラフィックコントローラ６７５、及び表示装置６８０を有するＣＰＵ周辺部と、入出力コントローラ６８４によりホストコントローラ６８２に接続される通信インターフェイス６３０、ハードディスクドライブ６４０、及びＣＤ−ＲＯＭドライブ６６０を有する入出力部と、入出力コントローラ６８４に接続されるＲＯＭ６１０、フレキシブルディスクドライブ６５０、及び入出力チップ６７０を有するレガシー入出力部とを備える。
【００５５】
ホストコントローラ６８２は、ＲＡＭ６２０と、高い転送レートでＲＡＭ６２０をアクセスするＣＰＵ６００及びグラフィックコントローラ６７５とを接続する。ＣＰＵ６００は、ＲＯＭ６１０及びＲＡＭ６２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ６７５は、ＣＰＵ６００等がＲＡＭ６２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置６８０上に表示させる。これに代えて、グラフィックコントローラ６７５は、ＣＰＵ６００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００５６】
入出力コントローラ６８４は、ホストコントローラ６８２と、比較的高速な入出力装置である通信インターフェイス６３０、ハードディスクドライブ６４０、及びＣＤ−ＲＯＭドライブ６６０を接続する。通信インターフェイス６３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ６４０は、判定装置１０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ６６０は、ＣＤ−ＲＯＭ６９５からプログラム又はデータを読み取り、ＲＡＭ６２０を介して入出力チップ６７０に提供する。
【００５７】
また、入出力コントローラ６８４には、ＲＯＭ６１０と、フレキシブルディスクドライブ６５０や入出力チップ６７０等の比較的低速な入出力装置とが接続される。ＲＯＭ６１０は、判定装置１０の起動時にＣＰＵ６００が実行するブートプログラムや、判定装置１０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ６５０は、フレキシブルディスク６９０からプログラム又はデータを読み取り、ＲＡＭ６２０を介して入出力チップ６７０に提供する。入出力チップ６７０は、フレキシブルディスク６９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００５８】
判定装置１０に提供されるプログラムは、フレキシブルディスク６９０、ＣＤ−ＲＯＭ６９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ６７０及び/又は入出力コントローラ６８４を介して、記録媒体から読み出され判定装置１０にインストールされて実行される。
【００５９】
判定装置１０にインストールされて実行されるプログラムは、ルール展開モジュールと、ルール取得モジュールと、ルール判断モジュールと、通知モジュールとを含む。各モジュールが判定装置１０に働きかけて行わせる動作は、図１から図５において説明する判定装置１０における、対応する部材の動作と同一であるから、説明を省略する。
【００６０】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク６９０、ＣＤ−ＲＯＭ６９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを判定装置１０に提供してもよい。
【００６１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６２】
以上に示す実施例によると、以下の各項目に示す判定装置、プログラム、記録媒体、及び判定方法が実現される。
【００６３】
（項目１）  互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置であって、各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、前記複数のアクセス制御ルールの各々が、当該アクセス制御ルールによりアクセスを許可されるオブジェクトの祖先の各オブジェクトに対するアクセスが前記複数のアクセス制御ルールの何れかにより許可される旨の条件である整合性条件を満たすか否か判断するルール判断部と、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知部とを備える判定装置。
（項目２）  前記通知部は、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、当該アクセス制御ルールを削除する旨を指示するアクセス制限指示、又は、当該アクセス制御ルールがアクセスを許可するオブジェクトの祖先の各オブジェクトに対してアクセスを許可する新たなアクセス制御ルールを追加する指示であるアクセス緩和指示を通知する項目１記載の判定装置。
【００６４】
（項目３）  前記ルール取得部は、アクセスを許可するアクセス要求者を識別する識別情報と、当該アクセス要求者によるアクセスを許可するオブジェクトの識別情報との組を、前記アクセス制御ルールとして取得し、前記通知部は、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、当該アクセス制御ルールによりアクセスが許可されるアクセス要求者に基づいて、前記アクセス緩和指示又は前記アクセス制限指示を選択して通知する項目２記載の判定装置。
（項目４）  前記複数のアクセス制御ルールの各々は、少なくとも１つのオブジェクトを含むオブジェクト集合に対するアクセスを許可し、前記ルール判断部は、各アクセス制御ルールについて、前記オブジェクト集合に含まれる何れかのオブジェクトの何れかの祖先のオブジェクトに対するアクセスが、前記複数のアクセス制御ルールの何れによっても許可されない場合に、当該アクセス制御ルールが前記整合性条件を満たさないと判断し、前記通知部は、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、当該アクセス制御ルールがアクセスを許可するオブジェクト集合を、当該アクセス制御ルールと他の何れかのアクセス制御ルールとが共通してアクセスを許可するオブジェクトの集合に変更する旨の指示を、前記アクセス制限指示として通知する項目２記載の判定装置。
【００６５】
（項目５）  前記複数のオブジェクトは、木構造の親子関係を有し、前記ルール取得部は、前記アクセス制御ルールとして、アクセスを許可する対象のオブジェクトを、前記木構造の根オブジェクトから当該オブジェクトに至る経路により指定するパス情報を取得し、前記ルール判断部は、前記複数のアクセス制御ルールの各々におけるパス情報に基づいて当該アクセス制御ルールが前記整合性条件を満たすか否かを判断する項目１記載の判定装置。
（項目６）  前記ルール判断部は、前記整合性条件として、前記複数のアクセス制御ルールの各々がアクセスを許可する各オブジェクトに対するアクセスが、他の何れのアクセス制御ルールによっても禁止されていない旨の条件を更に判断する項目１記載の判定装置。
（項目７）  前記ルール判断部は、前記整合性条件として、全ての前記複数のオブジェクトの各々に対するアクセスが、前記複数のアクセス制御ルールの何れかによって許可又は禁止されている旨の条件を更に判断する項目１記載の判定装置。
【００６６】
（項目８）  互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置であって、各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、前記複数のアクセス制御ルールの各々がアクセスを許可する各オブジェクトに対するアクセスが、他の何れのアクセス制御ルールによっても禁止されていない旨の条件である整合性条件を満たすか否か判断するルール判断部と、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知部とを備える判定装置。
（項目９）  互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置であって、各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、全ての前記複数のオブジェクトの各々に対するアクセスが、前記複数のアクセス制御ルールの何れかによって許可又は禁止されている旨の条件である整合性条件を満たすか否か判断するルール判断部と、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知部とを備える判定装置。
（項目１０）  互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定装置として、コンピュータを機能させるプログラムであって、前記プログラムは、前記コンピュータを、各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得部と、前記複数のアクセス制御ルールの各々が、当該アクセス制御ルールによりアクセスを許可されるオブジェクトの祖先の各オブジェクトに対するアクセスが前記複数のアクセス制御ルールの何れかにより許可される旨の条件である整合性条件を満たすか否か判断するルール判断部と、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知部として機能させるプログラム。
（項目１１）  項目１０に記載のプログラムを記録した記録媒体。
【００６７】
（項目１２）  互いに親子関係を有する複数のオブジェクトに対するアクセスを許可又は禁止する設定の整合性を判定する判定方法であって、各々が前記複数のオブジェクトの何れかに対するアクセスを許可又は禁止する複数のアクセス制御ルールを取得するルール取得段階と、前記複数のアクセス制御ルールの各々が、当該アクセス制御ルールによりアクセスを許可されるオブジェクトの祖先の各オブジェクトに対するアクセスが前記複数のアクセス制御ルールの何れかにより許可される旨の条件である整合性条件を満たすか否か判断するルール判断段階と、何れかのアクセス制御ルールが前記整合性条件を満たさない場合に、前記複数のアクセス制御ルールを変更する旨の指示を通知する通知段階とを備える判定方法。
【図面の簡単な説明】
【００６８】
【図１】図１は、判定装置１０のブロック図を示す。
【図２】図２は、アクセス制御ポリシー２０の一例を示す。
【図３】図３は、アクセス制御ルール３０−１〜Ｎの一例を示す。
【図４】図４は、ルール変更指示４０の例を示す。
【図５】図５は、判定装置１０がアクセス制御ポリシー２０を判定する処理の動作フローを示す。
【図６】図６は、判定装置１０として機能するコンピュータのハードウェア構成の一例を示す。
【符号の説明】
【００６９】
１０  判定装置
２０  アクセス制御ポリシー
３０  アクセス制御ルール
４０  ルール変更指示
１００  ルール展開部
１１０  ルール取得部
１２０  ルール判断部
１３０  通知部
【図１】
2005284883.tif 000003
【図２】
2005284883.tif 000004
【図３】
2005284883.tif 000005
【図４】
2005284883.tif 000006
【図５】
2005284883.tif 000007
【図６】
2005284883.tif 000008