(57)【要約】【課題】専門性の高いアクションセットを用いたアクセス権可否の生成を可能としつつ、アクセス権可否の作成者の負担を軽減すること。【解決手段】受付手段は第１のオブジェクトグループと第１のアクションセットとを含む第１のアクセス制御ルール、および、第２のオブジェクトグループと第２のアクションセットとを含む第２のアクセス制御ルール、ならびに、第１のアクセス制御ルールと第２のアクセス制御ルールとの間に課された順序制約を受け付け、順序制約において第１のアクセス制御ルールの優先度が第２のアクセス制御ルールの優先度よりも高い場合において、第１のオブジェクトグループに含まれる第１のオブジェクトと第２のオブジェクトグループに含まれる第２のオブジェクトが同一であるという関係性が有ると判定手段が判定したとき、適用手段は第１のオブジェクトに対して第２のアクションセットを適用する。【選択図】図１
2014170324.tif 000002
【特許請求の範囲】
【請求項１】
１または２以上のオブジェクトから成る第１のオブジェクトグループと前記第１のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第１のアクションセットとを含む第１のアクセス制御ルール、および、１または２以上のオブジェクトから成る第２のオブジェクトグループと前記第２のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第２のアクションセットとを含む第２のアクセス制御ルール、ならびに、前記第１のアクセス制御ルールと前記第２のアクセス制御ルールとの間に課された順序制約を受け付ける受付手段と、
前記第１のオブジェクトグループに含まれる第１のオブジェクトと前記第２のオブジェクトグループに含まれる第２のオブジェクトが同一であるという第１の関係性が有るかどうかを判定するとともに、オブジェクトタイプ間のツリー状の階層関係において前記第１のオブジェクトが属するオブジェクトタイプが前記第２のオブジェクトが属するオブジェクトタイプの親ノードに相当するという第２の関係性が有るかどうか判定する判定手段と、
前記順序制約において前記第１のアクセス制御ルールの優先度が前記第２のアクセス制御ルールの優先度よりも高い場合において、前記第１の関係性および前記第２の関係性の少なくともいずれかが存在するとき、前記第１のオブジェクトグループに含まれる前記第１のオブジェクトに対して前記第２のアクションセットを適用するとともに、前記第１のオブジェクトグループに含まれる前記第１のオブジェクト以外のオブジェクトに対して前記第１のアクションセットを適用する適用手段と、を備える、アクセス制御システム。
【請求項２】
前記第１のオブジェクトグループおよび前記第２のオブジェクトグループに含まれるオブジェクトが属するオブジェクトタイプは、該オブジェクトの種類、製品、バージョン、エディション、ライセンス、および、インタフェースのうちの少なくともいずれかを含み、
前記階層関係は、種類、製品、バージョン、エディション、ライセンス、および、インタフェースの順に、根から葉へと階層化されたツリー構造を有する、請求項１に記載のアクセス制御システム。
【請求項３】
前記順序制約は、複数のアクセス制御ルールが記述された順序に従って前記複数のアクセス制御ルールの優先度が決定される、ファーストマッチであり、
前記第１のアクセス制御ルールが前記第２のアクセス制御ルールよりも先に記述されている場合、前記第１のアクセス制御ルールの優先度は前記第２のアクセス制御ルールの優先度よりも高い、請求項１または２に記載のアクセス制御システム。
【請求項４】
コンピュータが、１または２以上のオブジェクトから成る第１のオブジェクトグループと前記第１のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第１のアクションセットとを含む第１のアクセス制御ルールを受け付ける工程と、
１または２以上のオブジェクトから成る第２のオブジェクトグループと前記第２のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第２のアクションセットとを含む第２のアクセス制御ルールを受け付ける工程と、
前記第１のアクセス制御ルールと前記第２のアクセス制御ルールとの間に課された順序制約を受け付ける工程と、
前記第１のオブジェクトグループに含まれる第１のオブジェクトと前記第２のオブジェクトグループに含まれる第２のオブジェクトが同一であるという第１の関係性が有るかどうかを判定する工程と、
オブジェクトタイプ間のツリー状の階層関係において前記第１のオブジェクトが属するオブジェクトタイプが前記第２のオブジェクトが属するオブジェクトタイプの親ノードに相当するという第２の関係性が有るかどうか判定する工程と、
前記順序制約において前記第１のアクセス制御ルールの優先度が前記第２のアクセス制御ルールの優先度よりも高い場合において、前記第１の関係性および前記第２の関係性の少なくともいずれかが存在するとき、前記第１のオブジェクトグループに含まれる前記第１のオブジェクトに対して前記第２のアクションセットを適用する工程と、
前記第１のオブジェクトグループに含まれる前記第１のオブジェクト以外のオブジェクトに対して前記第１のアクションセットを適用する工程と、を含む、アクセス制御方法。
【請求項５】
前記第１のオブジェクトグループおよび前記第２のオブジェクトグループに含まれるオブジェクトが属するオブジェクトタイプは、該オブジェクトの種類、製品、バージョン、エディション、ライセンス、および、インタフェースのうちの少なくともいずれかを含み、
前記階層関係は、種類、製品、バージョン、エディション、ライセンス、および、インタフェースの順に、根から葉へと階層化されたツリー構造を有する、請求項４に記載のアクセス制御方法。
【請求項６】
前記順序制約は、複数のアクセス制御ルールが記述された順序に従って前記複数のアクセス制御ルールの優先度が決定される、ファーストマッチであり、
前記第１のアクセス制御ルールが前記第２のアクセス制御ルールよりも先に記述されている場合、前記第１のアクセス制御ルールの優先度は前記第２のアクセス制御ルールの優先度よりも高い、請求項４または５に記載のアクセス制御方法。
【請求項７】
１または２以上のオブジェクトから成る第１のオブジェクトグループと前記第１のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第１のアクションセットとを含む第１のアクセス制御ルールを受け付ける処理と、
１または２以上のオブジェクトから成る第２のオブジェクトグループと前記第２のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第２のアクションセットとを含む第２のアクセス制御ルールを受け付ける処理と、
前記第１のアクセス制御ルールと前記第２のアクセス制御ルールとの間に課された順序制約を受け付ける処理と、
前記第１のオブジェクトグループに含まれる第１のオブジェクトと前記第２のオブジェクトグループに含まれる第２のオブジェクトが同一であるという第１の関係性が有るかどうかを判定する処理と、
オブジェクトタイプ間のツリー状の階層関係において前記第１のオブジェクトが属するオブジェクトタイプが前記第２のオブジェクトが属するオブジェクトタイプの親ノードに相当するという第２の関係性が有るかどうか判定する処理と、
前記順序制約において前記第１のアクセス制御ルールの優先度が前記第２のアクセス制御ルールの優先度よりも高い場合において、前記第１の関係性および前記第２の関係性の少なくともいずれかが存在するとき、前記第１のオブジェクトグループに含まれる前記第１のオブジェクトに対して前記第２のアクションセットを適用する処理と、
前記第１のオブジェクトグループに含まれる前記第１のオブジェクト以外のオブジェクトに対して前記第１のアクションセットを適用する処理と、をコンピュータに実行させる、プログラム。
【請求項８】
前記第１のオブジェクトグループおよび前記第２のオブジェクトグループに含まれるオブジェクトが属するオブジェクトタイプは、該オブジェクトの種類、製品、バージョン、エディション、ライセンス、および、インタフェースのうちの少なくともいずれかを含み、
前記階層関係は、種類、製品、バージョン、エディション、ライセンス、および、インタフェースの順に、根から葉へと階層化されたツリー構造を有する、請求項７に記載のプログラム。
【請求項９】
前記順序制約は、複数のアクセス制御ルールが記述された順序に従って前記複数のアクセス制御ルールの優先度が決定される、ファーストマッチであり、
前記第１のアクセス制御ルールが前記第２のアクセス制御ルールよりも先に記述されている場合、前記第１のアクセス制御ルールの優先度は前記第２のアクセス制御ルールの優先度よりも高い、請求項７または８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス制御システム、アクセス制御方法およびプログラムに関し、特に、コンピュータのアクセス制御に使用するアクセス権可否を生成するアクセス制御システム、アクセス制御方法およびプログラム、ならびに、生成されたアクセス権可否を使用してアクセス制御を行うコンピュータに関する。
【背景技術】
【０００２】
コンピュータでは、不正なアクセスを防止するために、アクセス制御リスト（ＡＣＬ：Access Control List）を用いた、アクセス権の可否の指定によるアクセス制御が行われる。アクセス権可否は、アクセスの主体としての「サブジェクト」と、アクセスの対象としての「オブジェクト」と、アクセスの種類としての「アクション」と、上記サブジェクトに対して上記オブジェクトに対する上記アクションを許可するか拒否するかを示す「可否識別子」との組で構成される。
【０００３】
例えば、特許文献１には、アクセス制御方法に係る関連技術が記載されている。特許文献１に記載されたアクセス制御方法では、アクセス主体種別と、アクセス対象種別と、組織構造に基づく制約条件によって記述されたアクセス制御ポリシーから、アクセス主体（サブジェクト）と、アクセス対象（オブジェクト）によって記述されたアクセス制御リストを生成する。また、特許文献１に記載されたアクセス制御方法は、サブジェクトと主体種別とを直接に対応付ける主体種別グループ情報と、オブジェクトと対象種別とを直接に対応付ける対象種別グループ情報と、サブジェクトおよびオブジェクトと組織との対応付けを単一の木構造で表現した組織構造情報とを持ち、これを使用して制約条件を満足するアクセス制御リストのみを生成可能としている。
【０００４】
また、特許文献１には、特許文献１の手法よりも以前から存在する手法の１つとして、アクセス制御リストを抽象化するアクセス制御ポリシーの記述に際して、ロールという概念を利用するロールベースアクセス制御（ＲＢＡＣ：Role Based Access Control）が記載されている。「ロール」とは、役割を示し、役割を遂行する上で必要なパーミッション（許可する権限（オブジェクトと、当該オブジェクトに対するアクションとの組）、あるいは権限可否（オブジェクトと、当該オブジェクトに対するアクションと、当該アクションを許可あるいは拒否するかを示す可否識別子との組））の集合をロールとしてまとめ、サブジェクトに対しては個々のパーミッションを割り当てるのではなく、ロールを割り当てることによって、ルール作成者は個々のサブジェクト毎およびオブジェクト毎にその間のアクション可否を規定した沢山のアクセス制御リストを記述する必要がなくなり、アクセス制御リストの作成負担が軽減される。
【０００５】
これらの関連技術のアクセス制御方法を用いると、例えば、以下のようなアクセス権可否の生成が可能となる。
【０００６】
サブジェクトとして、ユーザＵ１からユーザＵｎまでのｎ個のサブジェクトがあるものとする。オブジェクトとして、ファイルＦ１からファイルＦｍまでのｍ個のファイルがあるものとする。また、ロールＲ１にユーザＵ１とユーザＵ２とが属するものとする。オブジェクトのグループＯＧ１にファイルＦ１とファイルＦ２とが属するものとする。
【０００７】
このとき、ユーザＵ１、Ｕ２に対してファイルＦ１、Ｆ２へのアクション「書込み」を許可するアクセス権可否を自動生成する場合、アクセス権可否の管理者は、ロールＲ１に対応付けて、オブジェクトグループＯＧ１へのアクション「書込み」を許可する旨の権限可否Ｐ１を記述した、アクセス制御ポリシーＡＣＰ１を作成する。
【０００８】
生成システムでは、アクセス制御ポリシーＡＣＰ１が入力されると、ロールＲ１にユーザＵ１、Ｕ２が属し、オブジェクトグループＯＧ１にファイルＦ１、Ｆ２が属することを判定し、
ユーザＵ１に対してファイルＦ１へのアクション「書込み」を許可するアクセス権可否と、
ユーザＵ１に対してファイルＦ２へのアクション「書込み」を許可するアクセス権可否と、ユーザＵ２に対してファイルＦ１へのアクション「書込み」を許可するアクセス権可否と、ユーザＵ２に対してファイルＦ２へのアクション「書込み」を許可するアクセス権可否と、を生成する。これにより、管理者は、個々のサブジェクト毎・オブジェクト毎に許可/拒否したいアクションを規定した多くのアクセス権可否を記述することなく、詳細なアクセス権可否の生成が可能となる。
【０００９】
また、アクセス権可否の管理者は、アクセス制御ポリシーＡＣＰ１に、ロールＲ１に対応付けて、複数の権限可否Ｐ１、Ｐ２、Ｐ３を記述することもできる。例えば、権限可否Ｐ１がオブジェクトグループＯＧ１へのアクセス、権限可否Ｐ２がオブジェクトグループＯＧ２へのアクセス、権限可否Ｐ３がオブジェクトグループＯＧ３へのアクセスを記述しているとする。このとき、オブジェクトグループＯＧ１〜ＯＧ３に属しているオブジェクトの集合が互いに疎である（すなわち、共通の元を持たない）場合、権限可否Ｐ１〜Ｐ３を記述したアクセス制御ポリシーＡＣＰ１から、関連技術のアクセス制御方法を用いて、アクセス権可否を生成することができる。
【００１０】
しかし、オブジェクトグループＯＧ１〜ＯＧ３に属しているオブジェクトの集合が互いに重複している場合、権限可否Ｐ１〜Ｐ３のアクション可否の組み合わせによっては、関連技術のアクセス制御方法を用いて、アクセス権可否の生成ができない。より具体的には、例えば、オブジェクトグループＯＧ１、ＯＧ２の双方にファイルＦ１が属している場合を考える。権限可否Ｐ１にはオブジェクトグループＯＧ１へのアクション「書込み」を許可する旨、権限可否Ｐ２にはオブジェクトグループＯＧ２へのアクション「書込み」を拒否する旨が記述されているとする。このとき、関連技術のアクセス制御方法では、ファイルＦ１へのアクション「書込み」について、権限可否Ｐ１に由来する許可するアクセス権可否と、権限可否Ｐ２に由来する拒否するアクセス権可否との両方の組み合わせが有り得るため矛盾が発生し、アクセス制御内容が矛盾なく一意に決定できる正しいアクセス権可否を生成することができない。
【００１１】
そこで、一般に、関連技術のアクセス制御方法では、「順序制約」、「コンバインアルゴリズム」などと呼ばれる方法を併せて利用する。ここでは、順序制約として一般的な「ファーストマッチ」と呼ばれる方法について述べるが、別の方法を用いてもよい。ファーストマッチでは、アクセス制御を記述したルールが複数存在する場合、あるアクセス権について記述されたルールを、ルールの記述順に沿って探していき、最初に見つかったルールを採用する。例えば、上から順にルールを記述している場合は、最上に位置するルールを採用する。このとき、「上にあるルールほど優先度が高い」と表現する。
【００１２】
前述した、オブジェクトグループＯＧ１〜ＯＧ３に属しているオブジェクトの集合が互いに重複している場合について、順序制約を利用することを考える。権限可否Ｐ１〜Ｐ３には、順序制約に基づいて、権限可否Ｐ１が最も優先度が高く、権限可否Ｐ２がその次に優先度が高く、権限可否Ｐ３が最も優先度が低いものとする。この前提において、前述したように、権限可否Ｐ１に由来する許可するアクセス権可否と、権限可否Ｐ２に由来する拒否するアクセス権可否との両方の組み合わせが有り得る場合を考えると、権限可否Ｐ１は権限可否Ｐ２よりも優先度が高いため、権限可否Ｐ１に由来する許可するアクセス権可否を採用し、権限可否Ｐ２に由来する拒否するアクセス権可否は採用しない。したがって、ファイルＦ１へのアクション「書込み」は許可となり、矛盾は発生せず、アクセス制御内容が矛盾なく一意に決定できる正しいアクセス権可否を生成することができる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１１−３１３１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
以下の分析は、本発明者によってなされたものである。
【００１５】
一般に、アクセス制御対象となるオブジェクトに対するアクションの種類は、オブジェクトの種類によって異なる。
【００１６】
例えば、オブジェクトには、「ネットワークノード」、「仮想マシン」、「ファイル」、「データベース」、「アプリケーション」など、様々な種類が存在する。例えば、オブジェクトが「仮想マシン」であれば、アクションとして、「起動」、「シャットダウン」などが存在する。また、オブジェクトが「ファイル」であれば、アクションとして、「読込み」、「書込み」などが存在する。
【００１７】
また、同じデータベースのオブジェクトの中でも、提供する「ベンダー」の違い、「製品」の違い、「バージョン」の違い、「エディション」の違い、適用された「ライセンス」の違い、使用するコマンドセット・制御モード・ＡＰＩ（Application Program Interface、アプリケーションプログラムインタフェース）・ＵＩ（User Interface、ユーザインタフェース）などのオブジェクトにアクセスする「インタフェース」の違いなどによって、当該オブジェクトに対応するアクションは異なる。
【００１８】
上記のようなオブジェクトの種類を「オブジェクトタイプ」と呼ぶ。
【００１９】
一般に、オブジェクトタイプは、ツリー状の階層構造を持つ。階層構造が多層にわたる場合もあるが、階層構造が存在せず各オブジェクトタイプが同等でフラットな関係にある場合もある。多層にわたる場合は、例えば、１つの「種類」のオブジェクトについて、その配下に複数の「ベンダー」を持ち、各ベンダーの配下に複数の「製品」を持ち、各製品の配下に複数の「バージョン」を持ち、各バージョンの配下に複数の「エディション」を持ち、各エディションの配下に複数の「ライセンス」を持ち、各ライセンスの配下に複数の「インタフェース」を持つ。このとき、オブジェクトの「種類」に対応するブジェクトタイプが「最も粒度が大きい」と表現し、「インタフェース」に対応するオブジェクトタイプが「最も粒度が小さい」と表現する。なお、これらの階層関係のうち、一部の関係だけが存在する場合もある。
【００２０】
ある１つのオブジェクトタイプには、０個以上のアクションが対応し、このアクションの集合を「アクションセット」と呼ぶ。例えば、「ファイル」という種類のオブジェクトを指すオブジェクトタイプに対応する３個のアクション、「Read」、「Write」、「Execute」の集合を、ファイルのオブジェクトタイプに対応する「アクションセット」と呼ぶ。
【００２１】
一般に、オブジェクトタイプが異なると、アクションセットも異なる。
【００２２】
例えば、オブジェクトの種類間の違いとして、「ファイル」、「データベース」のオブジェクトタイプが存在する場合を考える。
【００２３】
この場合、「ファイル」という種類のオブジェクトタイプに対応するアクションセットは、「Read」、「Write」、「Execute」の３個のアクションの集合となる。
【００２４】
一方、「データベース」という種類のオブジェクトタイプに対応するアクションセットは、「SELECT」、「INSERT」、「UPDATE」、「DELETE」、「REFERENCES」、「TRIGGER」、「EXECUTE」、「USAGE」、「CREATE」、「TEMPORARY」の１０個のアクションの集合となる。
【００２５】
また、例えば、ある１種類のオブジェクトにおけるツリー状の階層による違いとして、「ファイル」という種類全体のオブジェクトタイプの配下に、特定のソフトウェア・製品である、「Linux（登録商標）」や「Windows（登録商標）」のファイルのオブジェクトタイプが存在する場合を考える。
【００２６】
この場合、「ファイル」のオブジェクトタイプに対応するアクションセットは、「Read」、「Write」、「Execute」の３個のアクションの集合となる。
【００２７】
一方、「Linux」のオブジェクトタイプに対応するアクションセットは、「Read」、「Write」、「Execute」、「Create」、「Rename」、「Delete」、「Chmode」の７個のアクションの集合となる。
【００２８】
また、「Windows」のオブジェクトタイプに対応するアクションセットは、「ACCESS_SYSTEM_SECURITY」、「SYNCHRONIZE」、「WRITE_OWNER」、「WRITE_DAC」、「READ_CONTROL」、「DELETE」、「FILE_WRITE_ATTRIBUTES」、「FILE_READ_ATTRIBUTES」、「FILE_DELETE_CHILD」、「FILE_EXECUTE」、「FILE_WRITE_EA」、「FILE_READ_EA」、「FILE_APPEND_DATA」、「FILE_WRITE_DATA」、「FILE_READ_DATA」の１５個のアクションの集合となる。
【００２９】
別の例として、「仮想マシン」という種類全体のオブジェクトタイプの配下に、特定のソフトウェア・製品である、「Xen」、「KVM」、「Hyper-V」、「VMware」が存在する場合を考える。
【００３０】
この場合、「仮想マシン」という種類のオブジェクトタイプに対応するアクションセットは、「Enabled」、「Disabled」の２個のアクションの集合となる。
【００３１】
一方、「Xen」のオブジェクトタイプに対応するアクションセットは、「Enabled」、「Disabled」の２個のアクションの集合となる。
【００３２】
また、「KVM」のオブジェクトタイプに対応するアクションセットは、「Enabled」、「Disabled」の２個のアクションの集合となる。
【００３３】
さらに、「Hyper-V」のオブジェクトタイプに対応するアクションセットは、「Enabled」、「Disabled」、「ShutDown」、「Offline」、「Test」、「Defer」、「Quiesce」、「Reboot」、「Reset」の９個のアクションの集合となる。
【００３４】
また、「VMware」のオブジェクトタイプに対応するアクションセットは、「PowerOn」、「PowerOff」、「Suspend」、「Reset」、「AnswerQuestion」、「ConsoleInteract」、「DeviceConnection」、「SetCDMedia」、「SetFloppyMedia」、「ToolsInstall」、「GuestControl」、「DefragmentAllDisks」、「CreateSecondary」、「TurnOffFaultTolerance」、「MakePrimary」、「TerminateFaultTolerantVM」、「DisableSecondary」、「EnableSecondary」、「Record」、「Replay」、「Backup」、「CreateScreenshot」の２２個のアクションの集合となる。
【００３５】
これらのアクションセットは、これら特定のソフトウェア・製品のオブジェクトタイプの配下に存在する「バージョン」、「エディション」、「ライセンス」などのオブジェクトタイプ間で違いが存在する。この場合、特定のソフトウェア・製品のオブジェクトタイプに対応するアクションセットには、配下に存在する「バージョン」、「エディション」、「ライセンス」などに共通するアクションを使用し、配下に存在する個別のバージョン・エディション・ライセンスなどのオブジェクトタイプに対応するアクションセットには、共通するアクションに加えて、差分となるアクションを追加したものを１つのアクションセットとして使用する。
【００３６】
１つのオブジェクトは、１つのオブジェクトタイプに属する。ただし、オブジェクトタイプがツリー状の階層構造を持つ場合には、ある１つのオブジェクトは、ある１つのオブジェクトタイプに属すると同時に、当該オブジェクトタイプから見て、ツリー上における根（ルート）側のノードにあたるすべてのオブジェクトタイプにも間接的に属している。例えば、ある製品のある「バージョン」のオブジェクトタイプに属するオブジェクトは、当該「製品」のオブジェクトタイプにも間接的に属している。
【００３７】
まとめると、１つのオブジェクトは、１つのオブジェクトタイプに直接的に属し、当該オブジェクトタイプのツリー状の階層関係における根側（親側）のノードに相当する０個以上のオブジェクトタイプに間接的に属する。
【００３８】
オブジェクトタイプがツリー状の階層構造を持つ場合、あるオブジェクトタイプのアクションセットは、配下のオブジェクトタイプに共通のアクションセットにあたる。例えば、ある「製品」に対応するアクションセットは、当該製品の各「バージョン」に共通のアクションセットにあたる。配下のオブジェクトタイプに共通するアクションセットがない場合は、オブジェクトのアクションセットとしては、配下のオブジェクトタイプのアクションセットのみが使用される。
【００３９】
このようなオブジェクトタイプの階層の特徴として、オブジェクトタイプの粒度が小さいほど、当該オブジェクトタイプに対応するアクションセットは、専門性が高く、特化したアクションセットとなり、オブジェクトタイプの粒度が大きいほど、当該オブジェクトタイプに対応するアクションセットは、専門性が低く、汎化したアクションセットとなる。一般に、専門性の高いアクションセットのほうが、詳細・厳密なアクセス制御内容を記述できる。
【００４０】
なお、たまたま同一のアクションセットが複数のオブジェクトタイプに対応する場合もある。例えば、ある製品の複数のバージョンについて、たまたま同じアクションセットが対応している場合などが考えられる。しかし、オブジェクトタイプとアクションセットとの組としては、オブジェクトタイプが異なる限りにおいて、独立した別々の組として扱う。このようなアクションセットを共通のアクションセットとして扱いたい場合には、オブジェクトタイプのツリーにおいて当該オブジェクトタイプ群を子としたときに親の関係にあたるオブジェクトタイプを置き、親オブジェクトタイプのアクションセットとして扱う。この場合、親子関係にあるオブジェクトタイプ同士で同一のアクションセットに対応することとなるが、この際もオブジェクトタイプとアクションセットとの組としては、独立した別々の組として扱う。
【００４１】
また、同一のオブジェクトタイプが複数のアクションセットに対応することはないものとする。もし、そのようなオブジェクトタイプを必要とする場合は、当該オブジェクトタイプの配下に、当該オブジェクトタイプが対応するアクションセット１つ毎に、当該オブジェクトタイプを親としたときに子の関係にあたるオブジェクトタイプを置き、子のオブジェクトタイプとアクションセットとを対応させる。
【００４２】
さらに、アクセス制御内容が矛盾なく一意に決定できる正しいアクセス権可否を生成するためには、１つのオブジェクトに対し、アクションセットが一意に決定される必要がある。例えば、あるオブジェクトに対して、オブジェクトタイプの階層に跨って、特化したアクションセットと汎化したアクションセットとの両方を使用してしまうと、アクションセット間で意味的に近いまたは意味的に内包されたアクション同士を同時に扱うこととなり、そのようなアクション間で異なる可否識別子を指定するとアクセス権可否に矛盾が発生することとなり、同一の可否識別子を指定すると無意味で重複したアクセス権可否が生成されることとなる。
【００４３】
まとめると、オブジェクトタイプには階層があるため、オブジェクトとオブジェクトタイプは、直接的には１：１対応であり、間接的には１：ｎ対応である。また、オブジェクトタイプとアクションセットは、１：１対応である。したがって、オブジェクトとアクションセットは、直接的には１：１対応であり、間接的には１：ｎ対応である。ただし、アクセス制御実施手段に受け渡されるアクセス権可否において、オブジェクトとアクションセットは１：１の対応関係に限定されていなければならない。
【００４４】
このような特徴を持つオブジェクトに対し、複数のオブジェクトタイプ・アクションセットに跨ってアクセス制御ポリシーを記述し、作成負担を軽くしながら、アクセス制御内容が矛盾なく一意に決定できる正しいアクセス権可否を生成したいというニーズがある。
【００４５】
より具体的には、ルール作成者は、アクセス制御ポリシーによる抽象的な記述を用いてアクセス制御リストを生成することにより、アクセス制御リストの作成負担の軽減を図りたいというニーズとともに、必要に応じて特定のベンダー・製品・バージョン・エディション・ライセンス・インタフェースなどに特化した具体的で詳細なアクセス制御も行いたいというニーズも持つ。
【００４６】
関連技術のアクセス制御方法によると、単純にすべてのオブジェクトについて、最も小さい粒度のオブジェクトタイプとしてアクションセットを指定しアクセス権可否を生成してしまうと、特化した具体的で詳細なアクセス制御を行うことはできるものの、アクセス制御リストの作成負担の軽減を図ることができない、という問題がある。
【００４７】
例えば、オブジェクトタイプとして、複数の「ベンダー」、ベンダー毎に複数の「製品」、製品毎に複数の「バージョン」、バージョン毎に複数の「エディション」、エディション毎に複数の「ライセンス」、ライセンス毎に複数の「インタフェース」が存在し、それらを組み合わせて用いたシステムが存在する場合を考える。各オブジェクトタイプに対応するアクションセットは、それぞれ異なる。このような場合、それぞれのオブジェクトタイプに属するオブジェクト同士について、アクセス制御ポリシー上で最も小さい粒度を用いて権限可否を記述するには、アクションセットが異なるため、別々の権限可否を記述する必要がある。特化した具体的で詳細なアクセス制御を行う必要があるオブジェクトが一部のみであっても、異なるオブジェクトタイプに属するオブジェクトはすべて別々の権限可否となるため、アクセス制御ポリシーにおける権限可否の記述が増えて膨大な数となり、アクセス制御リストの作成負担が大きくなってしまう。
【００４８】
アクセス制御リストの作成負担を軽減するためには、アクセス制御リストを、より大きな粒度のオブジェクトタイプに属するオブジェクトグループや、より大きな粒度のオブジェクトタイプに属するオブジェクトを用いて、できるだけ少量のオブジェクトグループやアクセス制御ポリシーで定義する必要がある。したがって、小さな粒度のオブジェクトタイプに対応した専門性が高く特化したアクションセットのみならず、大きな粒度のオブジェクトタイプに対応した専門性が低く汎化したアクションセットを併用する必要がある。
【００４９】
また、関連技術のアクセス制御方法によると、複数のオブジェクトタイプ・アクションセットに跨るオブジェクトグループに対応するアクションセットを決定することができない、という問題がある。
【００５０】
例えば、「製品」の階層のオブジェクトタイプを持つオブジェクトと、「バージョン」の階層のオブジェクトタイプを持つオブジェクトとが属するオブジェクトグループが存在すると、当該オブジェクトグループに対し、アクションセットとして、いずれのオブジェクトタイプを仕様すべきか、または、まったく別のオブジェクトタイプに対応するアクションセットを使用すべきかを決定することができない。
【００５１】
さらに、関連技術のアクセス制御方法によると、複数のオブジェクトタイプ・アクションセットに跨るオブジェクトグループについて、それら複数のアクションセットに含まれるアクションを単純に足し合わせたものを、当該オブジェクトグループのアクションセットとして使用する方法が有り得るが、このような方法では、アクセス制御ポリシー内で矛盾や重複が発生し、アクセス制御内容が矛盾なく一意に決定できる正しいアクセス権可否を生成できない、という問題がある。
【００５２】
例えば、「製品」の階層のオブジェクトタイプを持つオブジェクトと、「バージョン」の階層のオブジェクトタイプを持つオブジェクトとが属するオブジェクトグループが存在すると、当該オブジェクトグループに対し、アクションセットとして、「製品」のオブジェクトタイプに対応するアクションセットと、「バージョン」の階層のオブジェクトタイプに対応するアクションセットとを足し合わせた、大きなアクションセットを使用する方法が考えられる。この場合、大きなアクションセットの中には、アクション間で意味的に近いまたは意味的に内包されたアクションが含まれている。このようなアクション同士について、異なる可否識別子を指定するとアクセス権可否に矛盾が発生することとなり、同一の可否識別子を指定すると無意味で重複したアクセス権可否が生成されることとなる。
【００５３】
また、関連技術のアクセス制御方法によると、異なるアクションセットを用いた権限可否同士を記述したアクセス制御ポリシーについて、権限可否で指定しているオブジェクトグループ同士で属しているオブジェクトが重複した際に、当該オブジェクトまたはオブジェクトグループに対応するアクションセットが決定できない、もしくは、当該オブジェクトに複数のアクションセットが対応してしまい、アクセス制御内容が矛盾なく一意に決定できる正しいアクセス権可否を生成できない、または、順序制約を単純に適用すると、必要があって特化した専用性の高いアクションセットを使用しても、より優先度の高いルールが共通の汎用性の高いアクションセットを使用している場合は上書きされて専用性の高いアクションセットが使えない、という問題がある。
【００５４】
例えば、同じファイルＦ１が属しているオブジェクトグループＯＧ１とＯＧ２があるとき、ＯＧ１が「製品」の階層のオブジェクトタイプに対応するアクションセットを持ち、ＯＧ２が「バージョン」の階層のオブジェクトタイプに対応するアクションセットを持っている場合に、ファイルＦ１に対していずれのアクションセットが対応するのか決定できない、もしくは、ファイルＦ１に双方のアクションセットが対応してしまい、それらのアクションセット間で同一ではないが意味的に近いアクションを含む場合、意味的に矛盾したアクセス権可否が生成されてしまう、または、順序制約によって、「製品」のアクションセットが適用されてしまい、より専門性の高い「バージョン」のアクションセットが無効化されてしまう。
【００５５】
そこで、専門性の高いアクションセットを用いたアクセス権可否の生成を可能としつつ、アクセス権可否の作成者の負担を軽減することが課題となる。本発明の目的は、かかる課題を解決するアクセス制御システム、アクセス制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００５６】
本発明の第１の視点に係るアクセス制御システムは、
１または２以上のオブジェクトから成る第１のオブジェクトグループと前記第１のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第１のアクションセットとを含む第１のアクセス制御ルール、および、１または２以上のオブジェクトから成る第２のオブジェクトグループと前記第２のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第２のアクションセットとを含む第２のアクセス制御ルール、ならびに、前記第１のアクセス制御ルールと前記第２のアクセス制御ルールとの間に課された順序制約を受け付ける受付手段と、
前記第１のオブジェクトグループに含まれる第１のオブジェクトと前記第２のオブジェクトグループに含まれる第２のオブジェクトが同一であるという第１の関係性が有るかどうかを判定するとともに、オブジェクトタイプ間のツリー状の階層関係において前記第１のオブジェクトが属するオブジェクトタイプが前記第２のオブジェクトが属するオブジェクトタイプの親ノードに相当するという第２の関係性が有るかどうか判定する判定手段と、
前記順序制約において前記第１のアクセス制御ルールの優先度が前記第２のアクセス制御ルールの優先度よりも高い場合において、前記第１の関係性および前記第２の関係性の少なくともいずれかが存在するとき、前記第１のオブジェクトグループに含まれる前記第１のオブジェクトに対して前記第２のアクションセットを適用するとともに、前記第１のオブジェクトグループに含まれる前記第１のオブジェクト以外のオブジェクトに対して前記第１のアクションセットを適用する適用手段と、を備える。
【００５７】
本発明の第２の視点に係るアクセス制御方法は、
コンピュータが、１または２以上のオブジェクトから成る第１のオブジェクトグループと前記第１のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第１のアクションセットとを含む第１のアクセス制御ルールを受け付ける工程と、
１または２以上のオブジェクトから成る第２のオブジェクトグループと前記第２のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第２のアクションセットとを含む第２のアクセス制御ルールを受け付ける工程と、
前記第１のアクセス制御ルールと前記第２のアクセス制御ルールとの間に課された順序制約を受け付ける工程と、
前記第１のオブジェクトグループに含まれる第１のオブジェクトと前記第２のオブジェクトグループに含まれる第２のオブジェクトが同一であるという第１の関係性が有るかどうかを判定する工程と、
オブジェクトタイプ間のツリー状の階層関係において前記第１のオブジェクトが属するオブジェクトタイプが前記第２のオブジェクトが属するオブジェクトタイプの親ノードに相当するという第２の関係性が有るかどうか判定する工程と、
前記順序制約において前記第１のアクセス制御ルールの優先度が前記第２のアクセス制御ルールの優先度よりも高い場合において、前記第１の関係性および前記第２の関係性の少なくともいずれかが存在するとき、前記第１のオブジェクトグループに含まれる前記第１のオブジェクトに対して前記第２のアクションセットを適用する工程と、
前記第１のオブジェクトグループに含まれる前記第１のオブジェクト以外のオブジェクトに対して前記第１のアクションセットを適用する工程と、を含む。
【００５８】
本発明の第３の視点に係るプログラムは、
１または２以上のオブジェクトから成る第１のオブジェクトグループと前記第１のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第１のアクションセットとを含む第１のアクセス制御ルールを受け付ける処理と、
１または２以上のオブジェクトから成る第２のオブジェクトグループと前記第２のオブジェクトグループに含まれるオブジェクトに対するアクションを要素とする第２のアクションセットとを含む第２のアクセス制御ルールを受け付ける処理と、
前記第１のアクセス制御ルールと前記第２のアクセス制御ルールとの間に課された順序制約を受け付ける処理と、
前記第１のオブジェクトグループに含まれる第１のオブジェクトと前記第２のオブジェクトグループに含まれる第２のオブジェクトが同一であるという第１の関係性が有るかどうかを判定する処理と、
オブジェクトタイプ間のツリー状の階層関係において前記第１のオブジェクトが属するオブジェクトタイプが前記第２のオブジェクトが属するオブジェクトタイプの親ノードに相当するという第２の関係性が有るかどうか判定する処理と、
前記順序制約において前記第１のアクセス制御ルールの優先度が前記第２のアクセス制御ルールの優先度よりも高い場合において、前記第１の関係性および前記第２の関係性の少なくともいずれかが存在するとき、前記第１のオブジェクトグループに含まれる前記第１のオブジェクトに対して前記第２のアクションセットを適用する処理と、
前記第１のオブジェクトグループに含まれる前記第１のオブジェクト以外のオブジェクトに対して前記第１のアクションセットを適用する処理と、をコンピュータに実行させる。
【００５９】
なお、プログラムは、コンピュータ読み取り可能な記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することができる。
【発明の効果】
【００６０】
本発明に係るアクセス制御システム、アクセス制御方法およびプログラムによると、専門性の高いアクションセットを用いたアクセス権可否の生成を可能としつつ、アクセス権可否の作成者の負担を軽減することが可能となる。
【図面の簡単な説明】
【００６１】
【図１】本発明に係るアクセス制御システムの構成を概略的に示すブロック図である。
【図２】関連技術のアクセス制御方法における順序制約の処理結果の一例である。
【図３】実施形態に係るアクセス制御システムの構成を一例として示すブロック図である。
【図４】実施形態に係るアクセス制御システムの動作を一例として示すフロー図である。
【図５】オブジェクトグループ生成処理の動作を一例として示すフロー図である。
【図６】ポリシー生成処理の動作を一例として示すフロー図である。
【図７】実施形態に係るアクセス制御システムにおける同一粒度の権限可否間の順序制約の処理結果の一例である。
【図８】実施形態に係るアクセス制御システムにおける２階層の粒度の権限可否間の順序制約の処理結果の一例である。
【図９】実施形態に係るアクセス制御システムにおける３階層の粒度の権限可否間の順序制約の処理結果の一例である。
【図１０】関連技術のアクセス制御方法における順序制約の処理結果のその他の一例である。
【図１１】実施形態に係るアクセス制御システムにおける互いに疎な重複部分を持つ権限可否間の順序制約の処理結果の一例である。
【図１２】実施形態に係るアクセス制御システムにおける互いに疎な重複部分を持つ権限可否間の順序制約の処理結果のその他の一例である。
【図１３】アクセス権可否生成処理の動作を一例として示すフロー図である。
【発明を実施するための形態】
【００６２】
（実施形態）
実施形態に係るアクセス制御システムについて、図面を参照して説明する。まず、本実施形態で用いる用語について説明する。
【００６３】
「アクセス権」は、特定のサブジェクト（ｓ）、オブジェクト（ｏ）、アクション（ａ）の組を意味する。
【００６４】
「アクセス権可否」は、特定のアクセス権と、アクセス権に対する許可または拒否を示す識別子との組を意味する。
【００６５】
「権限」は、特定のオブジェクト（ｏ）、アクション（ａ）の組を意味する。
【００６６】
「権限可否」は、特定の権限と、権限に対する許可または拒否を示す識別子との組を意味する。したがって、アクセス権可否は、特定のサブジェクトと権限可否との組でもある。
【００６７】
「アクション可否」は、特定のアクションと、アクションに対する許可または拒否を示す識別子との組を意味する。したがって、権限可否は、特定のオブジェクトとアクション可否との組でもある。
【００６８】
「ロール」は、権限可否の集合に対して付与される識別子である。一般に、所属部署や役職、担当するプロジェクト・業務内容・作業項目などの識別子が使用される。各ロールについて、識別子以外に、別途、ユーザインタフェースなどで用いるための表示名称を持つ場合もある。ロール自身を指す識別子の他に、ロール階層を表現するため、親ノードや子ノードにあたるロールの識別子やパスの情報を持つ場合もある。
【００６９】
「ロール階層」は、組織構造などに基づくロールの階層関係を意味する。一般に、ロール階層は多段階の階層を持つ木構造となる。例えば、ある企業「Ａ株式会社」のロール階層は、１つの木構造となり、「Ａ株式会社」を根とし、その配下に「総務部」と「経理部」を持ち、さらに「総務部」の配下に「秘書課」と「広報課」を持つ。
【００７０】
「ロール継承」および「継承」は、ロール階層に基づく継承関係を意味する。例えば、上記のロール階層における例では、「秘書課」ロールは「総務部」ロールを継承しており、「総務部」ロールは「Ａ株式会社」ロールを継承している。ロールを継承することにより、継承先のロールは、継承元のロールの権限可否の集合を引き継ぐ。継承先の集合は、継承元の集合よりも優先度が高く、継承元の権限可否を継承先の権限可否で修正することができる。したがって、継承先のロールを持つサブジェクトは、継承元のロールと継承先のロールの両者の権限可否の集合が適用されるが、両者で同じ権限について可否との組合わせが異なる場合は、継承先の権限可否が適用される。なお、あるロールが継承元とするロールは、１つのみである。
【００７１】
「直系ロール」および「直系」は、継承を子が親を継承する親子関係と見た場合に、ある任意のロールから見て直系の関係にあるロールであり、当該ロールと、先祖にあたるロールと、子孫にあたるロールとを合わせた集合である。したがって、木構造において、直系ロールは、当該ロールと、当該ロールから継承元を根まで辿る際に到達するロール群と、当該ロールから継承先を葉まで辿る際に到達するロール群とを合わせた集合となる。
【００７２】
「サブジェクト」は、アクセス主体、アクセス権を行使するアクセス元となる存在を示す識別子である。アクセス権可否に基づいてアクセス制御を行うアクセス制御実施機能では、一般的に、ユーザＩＤなど、人・ソフトウェア・装置などにシステム上での識別子を付与して使用する。会員番号・社員番号・製造番号などの一意性を持った識別子や、氏名などの個人を特定する情報や、システム独自の値をそれらと紐付けて用いる場合もある。サブジェクトについて、識別子以外に、ユーザインタフェースなどで用いるための表示名称を持つ場合もある。
【００７３】
「サブジェクト割当」は、ロールに対するサブジェクトの割当の定義である。記述形式としては、サブジェクトとロールとの組として記述する。一般的に、各サブジェクトは複数のロールを持ち得るが、アクセス権可否の矛盾の発生を禁止するため、各サブジェクトがせいぜい１個のロールを持つか、複数のロールを同時に行使できないよう制限する場合もある。一般的に、ロールを持たない（０個のロールを持つ）サブジェクトは、権限を持たない。対象となるアクセス制御実施機能が対応していれば、アクセス権のサブジェクトについて、サブジェクトを指定する代わりに、ロールを指定してもよい。したがって、アクセス権可否の集合は、サブジェクトの集合と権限可否の集合との組、あるいは、ロールと権限可否の集合との組でもある。
【００７４】
「オブジェクトタイプ」は、少なくとも、オブジェクトタイプの識別子と、当該オブジェクトタイプと他のオブジェクトタイプとのツリー状の階層関係を示すパスや子ノード・親ノードなどを示す識別子とで構成される。各オブジェクトタイプについて、識別子以外に、別途、ユーザインタフェースなどで用いるための表示名称を持つ場合もある。
【００７５】
「アクションセット」は、少なくとも、アクションセットの識別子と、当該アクションセットの持つアクションの識別子の集合と、当該アクションセットが対応するオブジェクトタイプの識別子とで構成される。各アクションについて、識別子以外に、別途、ユーザインタフェースなどで用いるための表示名称を持つ場合もある。
【００７６】
「オブジェクト」は、少なくとも、オブジェクトの識別子と、当該オブジェクトの属するオブジェクトタイプを示す識別子とで構成される。当該オブジェクトの存在する場所や、当該オブジェクトと他のオブジェクトとの関係を示すパス（ファイルパスなど）や子ノード・親ノードなどを示す識別子を持つ場合もある。オブジェクトについて、識別子以外に、ユーザインタフェースなどで用いるための表示名称を持つ場合もある。
【００７７】
なお、オブジェクトは、直接的には高々１個のオブジェクトタイプに属し、間接的には０個以上のオブジェクトタイプに属する。したがって、オブジェクトは、直接的には高々１個のアクションセットに対応し、間接的には０個以上のアクションセットに対応する。また、オブジェクト間の関係として、典型的には包含関係や継承関係などのツリー状の階層関係があり、ツリー上で根側にあるオブジェクトは、葉側にある０個以上のオブジェクトをまとめたものとして扱うことができる。そのため、オブジェクトの集合同士で重複の有無を判定する際は、同一のオブジェクトの有無以外に、階層関係を持つオブジェクトの有無も見る必要がある。
【００７８】
「オブジェクトグループ」は、少なくとも、オブジェクトグループの識別子と、当該オブジェクトグループの属するオブジェクトタイプを示す識別子と、当該オブジェクトグループと他のオブジェクトグループとのツリー状の階層関係を示すパスや子ノード・親ノードなどを示す識別子と、当該オブジェクトグループに含まれるオブジェクトの識別子の集合とで構成される。各オブジェクトグループについて、識別子以外に、別途、ユーザインタフェースなどで用いるための表示名称を持つ場合もある。
【００７９】
なお、オブジェクトグループは、オブジェクトと同様に、直接的には高々１個のオブジェクトタイプに属し、間接的には０個以上のオブジェクトタイプに属する。したがって、オブジェクトグループは、オブジェクトと同様に、直接的には高々１個のアクションセットに対応し、間接的には０個以上のアクションセットに対応する。また、オブジェクトグループに含まれるオブジェクトが直接的に属するオブジェクトタイプは、当該オブジェクトグループが直接的に属するオブジェクトタイプと比較すると、粒度が等しいか小さい。そのため、オブジェクトグループが直接的/間接的に対応しているアクションセットについては、当該オブジェクトグループに含まれるオブジェクトも直接的か間接的に対応している。逆に、オブジェクトグループに含まれるオブジェクトが対応しているアクションセットであっても、当該オブジェクトグループや、当該オブジェクトグループに含まれる他のオブジェクトが対応するとは限らない。
【００８０】
「アクセス制御ルール」および「ルール」は、権限可否の集合を定義する記述である。典型的には、少なくとも、オブジェクトグループとアクションセットと各アクションの可否識別子との組として記述する。
【００８１】
「アクセス制御ポリシー」および「ポリシー」は、ロールに対応する、順序制約を伴うアクセス制御ルールのリストである。
【００８２】
アクセス制御ポリシーやアクセス制御ルールの「矛盾」とは、アクセス制御ポリシーやアクセス制御ルールの定義しているアクセス権可否について、複数のアクセス制御ポリシーやアクセス制御ルールの間で同時に指定できない、アクセス制御として両立しない内容が指定されることを指す。最も基本的な矛盾は、同一のアクセス権について、許可の識別子を持つアクセス権可否と、拒否の識別子を持つアクセス権可否の両方を指定した場合である。それ以外に本発明で扱う矛盾として、あるオブジェクトについて、アクションセットをせいぜい１つのみと定めているため、同一のオブジェクトについて、異なるアクションセットを持つアクセス権可否が指定された場合も矛盾となる。
【００８３】
なお、オブジェクトタイプにはツリー状の階層関係があるので、あるオブジェクトに対応可能なアクションセットとしては、当該オブジェクトが直接属しているオブジェクトタイプのアクションセットの他に、間接的に属しているオブジェクトタイプのアクションセットが存在する場合がある。すなわち、オブジェクトには、対応可能なアクションセットが複数存在し得る。しかし、アクセス制御実施機能に出力するアクセス制御可否の集合においては、ある１つのオブジェクトについて、１つのアクションセットのみが指定されている必要がある。同一のオブジェクトに複数のアクションセットが指定されていると、意味的に近いあるいは意味的に内包されたアクション同士を同時に扱うこととなり、そのようなアクション間で異なる可否識別子を指定するとアクセス権可否に矛盾が発生することとなり、同一の可否識別子を指定すると無意味で重複したアクセス権可否が生成されることとなる。このとき、アクセス制御内容が矛盾なく一意に決定できる正しいアクセス権可否を生成することができない。したがって、最終的に生成される（アクセス制御実施機能に出力される）アクセス権可否の集合においては、あるオブジェクトについて、アクションセットがせいぜい１つのみとなるよう、アクセス制御ポリシーを生成する必要がある。
【００８４】
「順序制約」は、複数のアクセス制御ルールが存在するとき、あるアクセス制御ルールによって定義された権限可否の集合と、別のアクセス制御ルールによって定義された権限可否の集合との間で、矛盾する権限可否が存在する場合があるため、いずれの権限可否を採用すべきかを定める制約条件・処理規則である。一般的な順序制約である「ファーストマッチ」においては、アクセス制御ルールの記述された順序に基づき、後に記述されたアクセス制御ルールによって定義された権限可否よりも、先に記述されたアクセス制御ルールによって定義された権限可否を優先的に採用する。この際、優先的に採用されるアクセス制御ルールのことを、「優先度が高い」と表現する。
【００８５】
図２を参照して、順序制約について説明する。ルール１〜３の３つのルールがあり、各ルール間で、部分的に、権限可否を定義しているオブジェクトに重複があるものとする。このような重複しているオブジェクトについて、複数のルール間で異なるアクション可否を指定すると矛盾が発生するため、順序制約を利用する。ルール１〜３が権限可否を定義しているオブジェクトの範囲を図にすると、図２のＶ０１、Ｖ０２、Ｖ０３のようになる。各ルールの範囲は、他のルールの範囲との間で重複した領域を持つ。また、記述順序として、ルール１、ルール２、ルール３の順序で記述されており、順序制約として、ルール１が最も優先度が高く、ルール２がその次に優先度が高く、ルール３が最も優先度が低いものとする。
【００８６】
このとき、２つのルールが重複している領域のうち、ルール１とルール２の重なった領域では、優先度に基づき、ルール１が採用される。また、ルール２とルール３の重なった領域では、ルール２が採用される。さらに、ルール３とルール１の重なった領域ではルール１が採用される。また、３つのルールが重複している、ルール１とルール２とルール３の重なった領域では、ルール１が採用される。したがって、これらの３つのルール全体から導出される権限可否について、定義元となったルールの範囲を図示すると、Ｖ１０のようになる。
【００８７】
図２を参照すると、ルール１は、自身の範囲のままとなる。一方、ルール２は、ルール１と重複する領域を除いた残りの範囲のみとなる。また、ルール３は、ルール１またはルール２と重複する領域を除いた残りの範囲のみとなる。このような順序制約に基づく処理によって、ある１つのオブジェクトの権限可否の定義について、ある１つのルールのみが定義元となるよう限定される。その結果、複数のルール間に存在していた矛盾も発生しなくなる。
【００８８】
次に、本実施形態に係るアクセス制御システムよって解決すべき課題について説明する。
【００８９】
図２の順序制約の処理例では、オブジェクトタイプおよびアクションセットの違いは考慮されていない。この例の処理を、そのまま、異なるオブジェクトタイプを用いたアクセス制御ルールの間に適用すると、高優先度のルールと低優先度のルールとの間で重複したオブジェクトについては、常に高優先度のルールのオブジェクトタイプおよびアクションセットとして扱われる。これにより、矛盾を解消することはできるが、低優先度のルールのオブジェクトタイプおよびアクションセットの情報は失われる。特に、低優先度のルールにおいて、粒度の小さい具体的なオブジェクトタイプを選択し、特化した専門性の高いアクションセットを使用していた場合、当該オブジェクトのアクセス制御にとって必要があって選択したにも関わらず、順序制約の処理によって高優先度のルールに合わせて粒度の大きい抽象的なオブジェクトタイプとして扱われることで、それが失われてしまう。
【００９０】
これでは、オブジェクトタイプを混在して使用できる意味がないため、粒度の小さい具体的なオブジェクトタイプや特化した専門性の高いアクションセットの情報を反映させる必要がある。しかし、単純に、すべてのルールを最も粒度の小さいオブジェクトタイプとして扱うのでは、特化した具体的で詳細なアクセス制御を行う必要があるオブジェクトが一部のみであっても、多数存在する小さな粒度のオブジェクトタイプ毎に別々の権限可否の定義を記述しなければならないため、アクセス制御ポリシーにおける権限可否の記述が増えて膨大な数となり、アクセス制御リストの作成負担が大きくなってしまう。
【００９１】
したがって、大きな粒度のオブジェクトタイプのオブジェクトグループやオブジェクトを用いたアクセス制御ポリシーにより、できるだけ少量の抽象的な記述を用いてアクセス制御リストを生成することでアクセス制御リストの作成負担の軽減を図りつつ、必要に応じて特定のベンダー・製品・バージョン・エディション・ライセンス・インタフェースなどに特化した具体的で詳細なアクセス制御も行うことができるようにする必要がある。
【００９２】
次に、本実施形態に係るアクセス制御システムを、図面を参照して説明する。図３は、本実施形態に係るアクセス制御システムの構成を一例として示すブロック図である。図３を参照すると、アクセス制御システムは、アクセス権可否生成装置１、システム構成管理装置２、ＩＤ管理装置３、および、アクセス制御実施装置４を備える。
【００９３】
アクセス権可否生成装置１は、オブジェクトグループ編集部１１、オブジェクトグループ格納部１２、ポリシー編集部１３、ポリシー格納部１４、および、アクセス権可否生成部１５を備える。システム構成管理装置２は、オブジェクトタイプ管理部２１、オブジェクト管理部２２、および、アクションセット管理部２３を備える。ＩＤ管理装置３は、ロール管理部３１およびサブジェクト管理部３２を備える。
【００９４】
図３に示されているように、アクセス権可否生成装置１と、システム構成管理装置２と、ＩＤ管理装置３と、アクセス制御実施装置４とは、それぞれ別個のコンピュータシステムで構築されていてもよいし、一部または全部が同一のコンピュータシステムで実現されていてもよい。
【００９５】
アクセス権可否生成装置１は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）等の記憶媒体と、システム構成管理装置２と、ＩＤ管理装置３と、アクセス制御実施装置４と通信を行なうための通信インタフェースとによって実現することができる。
【００９６】
また、システム構成管理装置２は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵと、ＲＡＭ等の記憶媒体と、アクセス権可否生成装置１とアクセス制御実施装置４と通信を行なうための通信インタフェースとによって実現することができる。
【００９７】
さらに、ＩＤ管理装置３は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵと、ＲＡＭ等の記憶媒体と、アクセス権可否生成装置１と通信を行なうための通信インタフェースとによって実現することができる。
【００９８】
また、オブジェクトグループ格納部１２、ポリシー格納部１４、オブジェクトタイプ管理部２１、オブジェクト管理部２２、アクションセット管理部２３、ロール管理部３１、および、サブジェクト管理部３２は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵと、ＲＡＭやハードディスク等の記憶媒体によって実現することができる。
【００９９】
アクセス権可否生成装置１は、システム構成管理装置２と、ＩＤ管理装置３から、オブジェクトグループを生成するために必要な情報と、ポリシーを生成するために必要な情報と、ポリシーからアクセス権可否を生成するために必要な情報を取得し、オブジェクトグループを生成し、オブジェクトグループを用いてポリシーを生成し、ポリシーからアクセス権可否を生成し、アクセス権可否をアクセス制御実施装置４に対して出力する。
【０１００】
アクセス制御実施装置４は、アクセス権可否生成装置１から入力されたアクセス権可否に基づいて、アクセス制御を実施する。
【０１０１】
ここでは、オブジェクトの種類、および、オブジェクトに対してアクションを行うために必要なソフトウェアの製品・バージョン・エディション・ライセンスの違いなどを「オブジェクトタイプ」と定義する。オブジェクトタイプ管理部２１は、オブジェクトタイプ間の関係に関する情報を記憶する。
【０１０２】
オブジェクト管理部２２は、オブジェクトとオブジェクトの属するオブジェクトタイプとの関係に関する情報を記憶する。
【０１０３】
アクションセット管理部２３は、アクションの集合であるアクションセットとアクションセットに属するアクションとの関係に関する情報と、アクションセットとアクションセットの対応するオブジェクトタイプとの関係に関する情報とを記憶する。
【０１０４】
ロール管理部３１は、ロール間の継承関係に関する情報を記憶する。
【０１０５】
サブジェクト管理部３２は、ロールとロールに属するサブジェクトとの関係に関する情報を記憶する。
【０１０６】
オブジェクトグループ格納部１２は、オブジェクトの集合であるオブジェクトグループとオブジェクトグループに属するオブジェクトとの関係に関する情報と、オブジェクトグループとオブジェクトグループの属するオブジェクトタイプとの関係に関する情報とを記憶する。
【０１０７】
オブジェクトグループ編集部１１は、オブジェクト管理部２２に記憶されているオブジェクトの情報と、オブジェクトタイプ管理部２１に記憶されているオブジェクトタイプの情報とを用いて、任意のオブジェクトタイプに属する任意のオブジェクトのオブジェクトグループの編集機能を提供し、編集機能によって生成されたオブジェクトグループをオブジェクトグループ格納部１２に記憶する。
【０１０８】
ここでは、オブジェクトグループとアクションセットとオブジェクトグループに対してアクションセットに属する各アクションを許可または拒否するかを示す可否識別子との組を「アクセス制御ルール」と定義する。
【０１０９】
ポリシー格納部１４は、ロールに対応して、順序制約のあるアクセス制御ルールを記憶する。
【０１１０】
ポリシー編集部１３は、ロール管理部３１に格納されているロールの情報と、オブジェクトグループ格納部１２に記憶されているオブジェクトグループの情報と、オブジェクトグループとオブジェクトタイプとの関係に関する情報と、アクションセット管理部２３に記憶されているアクションセットの情報と、アクションセットとオブジェクトタイプとの関係に関する情報とを用いて、任意のロールに対して順序制約のある任意のオブジェクトグループのアクセス制御ルールを編集する機能を提供し、編集機能によって生成されたロールに対応する順序制約のあるアクセス制御ルールのリストをアクセス制御ポリシーとしてポリシー格納部１４に記憶する。
【０１１１】
また、ポリシー編集部１３は、アクセス制御ルールに属するオブジェクトグループ間でオブジェクトタイプの違いがあり、かつ、オブジェクトの重複がある場合に、当該オブジェクトに対応するアクションセットについて、オブジェクトグループに対応するアクションセットと比較して同じかより小さい粒度でアクセス制御が可能なアクションセットを選択する。
【０１１２】
アクセス権可否生成部１５は、ポリシー格納部１４に記憶されているポリシーの情報と、ロール管理部３１に格納されているロール間の継承関係に関する情報と、サブジェクト管理部３２に記憶されているロールとサブジェクトとの関係に関する情報と、オブジェクトグループ格納部１２に記憶されているオブジェクトグループとオブジェクトとの関係に関する情報とを用いて、次のように動作する。
【０１１３】
アクセス権可否生成部１５は、ポリシーの持つアクセス制御ルールに対し、ロール間の継承関係で示されるポリシーの対応するロールの継承元ロールに対応してポリシー格納部１４に記憶されている継承元ロールのポリシーのアクセス制御ルールを抽出して結合し、ロールに対応してロールの継承関係を処理済みの順序制約のあるアクセス制御ルールを生成する。
【０１１４】
また、アクセス権可否生成部１５は、アクセス制御ポリシーのオブジェクトグループに対し、オブジェクトグループ格納部１２に記憶されているオブジェクトグループとオブジェクトとの関係に関する情報を用いて、アクセス制御グループのオブジェクトグループをオブジェクトの集合で置き換える。
【０１１５】
さらに、アクセス権可否生成部１５は、アクセス制御ポリシーの対応するロールに対し、サブジェクト管理部３２に記憶されているロールとサブジェクトとの関係に関する情報を用いて、アクセス制御グループに対応するロールをサブジェクトの集合で置き換える。
【０１１６】
また、アクセス権可否生成部１５は、サブジェクトとオブジェクトとアクションとサブジェクトがオブジェクトに対してアクションを行うことを許可または拒否するかを示す可否識別子との組を「アクセス権可否」と定義するとき、ロールに対応するアクセス制御ポリシーからアクセス権可否を生成し、アクセス制御実施装置４に対して出力する。
【０１１７】
アクセス制御実施装置４は、アクセス権可否を入力すると、アクセス権可否にしたがって、サブジェクトがオブジェクトに対してアクションを行うことを許可または拒否する。
【０１１８】
図４を参照して、本実施形態に係るアクセス権可否生成装置１の動作について説明する。
【０１１９】
（１）ステップＡ１
オブジェクトグループ編集部１１は、ルール作成者に対し、オブジェクトグループ編集部１１を用いて、オブジェクトグループを編集するための編集画面を提供する。また、オブジェクトグループ編集部１１は、編集画面での編集結果を用いてオブジェクトグループを生成し、オブジェクトグループ格納部１２に出力・記憶する。
【０１２０】
（２）ステップＡ２
次に、ポリシー編集部１３は、ルール作成者に対し、アクセス制御ポリシーを編集するための編集画面を提供する。また、ポリシー編集部１３は、編集画面での編集結果を用いてアクセス制御ポリシーを生成し、ポリシー格納部１４に出力・記憶する。
【０１２１】
（３）ステップＡ３
次に、アクセス権可否生成部１５は、アクセス制御ポリシーからアクセス権可否を生成し、アクセス制御実施装置４に対して出力する。
【０１２２】
（４）ステップＡ４
次に、アクセス制御実施装置４は、アクセス権可否生成部１５から出力されたアクセス権可否に基づいて、アクセス制御処理を実施する。
【０１２３】
図５を参照して、オブジェクトグループ生成処理（図４のステップＡ１）における動作について詳細に説明する。
【０１２４】
（１）ステップＡ１０１
オブジェクトグループ編集部１１は、オブジェクトタイプ管理部２１から、オブジェクトタイプの選択画面の生成に使用するため、オブジェクトタイプのリストを取得する。
【０１２５】
（２）ステップＡ１０２
次に、オブジェクトグループ編集部１１は、取得済みのオブジェクトタイプのリストを用いて、オブジェクトタイプの選択画面を表示する。この画面は、ルール作成者が、これから生成するオブジェクトグループの属するオブジェクトタイプを指定するために用いる。
【０１２６】
（３）ステップＡ１０３
次に、ルール作成者は、オブジェクトタイプ選択画面を用いて、任意のオブジェクトタイプを選択する。オブジェクトグループ編集部１１は、選択されたオブジェクトタイプを取得する。
【０１２７】
（４）ステップＡ１０４
次に、オブジェクトグループ編集部１１は、オブジェクト管理部２２から、ルール作成者の選択したオブジェクトタイプに属するオブジェクトのリストを取得する。このステップにより、これから生成するオブジェクトグループに含まれるオブジェクトが、特定のオブジェクトタイプに属するもののみに限定される。これにより、当該オブジェクトグループのオブジェクトタイプが一意に決まる。ただし、これらのオブジェクトは、当該オブジェクトタイプに直接属するもの以外に、間接的に属するものも含まれる。例えば、特定製品のオブジェクトタイプを持つオブジェクトグループには、製品のオブジェクトタイプに直接属するオブジェクト以外に、間接的に属している当該製品の特定バージョンのオブジェクトも含むことができる。
【０１２８】
（５）ステップＡ１０５
次に、オブジェクトグループ編集部１１は、取得済みのオブジェクトのリストを用いて、オブジェクトの選択画面を表示する。この画面は、ルール作成者が、これから生成するオブジェクトグループに含めるオブジェクトを指定するために用いる。
【０１２９】
（６）ステップＡ１０６
次に、ルール作成者は、オブジェクト選択画面を用いて、任意のオブジェクトを選択する。オブジェクトグループ編集部１１は、選択されたオブジェクトを取得する。ここで選択・取得されるオブジェクトは、ステップＡ１０４の処理によって、ステップＡ１０３で選択されたオブジェクトタイプに直接/間接に属するオブジェクトのみに限定されている。
【０１３０】
（７）ステップＡ１０７
次に、オブジェクトグループ編集部１１は、ルール作成者の選択したオブジェクトタイプに属し、ルール作成者の選択したオブジェクトを含む、オブジェクトグループを生成し、オブジェクトグループ格納部１２に出力・記憶する。
【０１３１】
図６を参照して、ポリシー生成処理（図４のステップＡ２）における動作について詳細に説明する。
【０１３２】
（１）ステップＡ２０１
ポリシー編集部１３は、ロール管理部３１から、ロールの選択画面の生成に使用するため、ロールのリストを取得する。
【０１３３】
（２）ステップＡ２０２
次に、ポリシー編集部１３は、取得済みのロールのリストを用いて、ロールの選択画面を表示する。この画面は、ルール作成者が、これから作成するアクセス制御ポリシーの対応付くロールを指定するために用いる。
【０１３４】
（３）ステップＡ２０３
次に、ルール作成者は、ロール選択画面を用いて、任意のロールを選択する。ポリシー編集部１３は、選択されたロールを取得する。
【０１３５】
（４）ステップＡ２０４
次に、ポリシー編集部１３は、オブジェクトタイプ管理部２１から、オブジェクトタイプの選択画面の生成に使用するため、オブジェクトタイプのリストを取得する。
【０１３６】
（５）ステップＡ２０５
次に、ポリシー編集部１３は、取得済みのオブジェクトタイプのリストを用いて、オブジェクトタイプの選択画面を表示する。この画面は、ルール作成者が、これから生成するアクセス制御ポリシーのアクセス制御ルールに使用する、オブジェクトグループの属するオブジェクトタイプを指定するために用いる。
【０１３７】
（６）ステップＡ２０６
次に、ルール作成者は、オブジェクトタイプ選択画面を用いて、任意のオブジェクトタイプを選択する。ポリシー編集部１３は、選択されたオブジェクトタイプを取得する。
【０１３８】
（７）ステップＡ２０７
次に、ポリシー編集部１３は、オブジェクトグループ格納部１２から、ルール作成者の選択したオブジェクトタイプに属するオブジェクトグループのリストを取得する。ステップＡ２０７により、これから生成するアクセス制御ポリシーのアクセス制御ルールにおいて使用されるオブジェクトグループが、特定のオブジェクトタイプに属するもののみに限定される。これにより、当該アクセス制御ルールにおいて、当該オブジェクトグループに対応するアクションセットが一意に決まる。
【０１３９】
（８）ステップＡ２０８
次に、ポリシー編集部１３は、取得済みのオブジェクトグループのリストを用いて、オブジェクトグループの選択画面を表示する。この画面は、ルール作成者が、これから生成するアクセス制御ポリシーのアクセス制御ルールに使用するオブジェクトグループを指定するために用いる。
【０１４０】
（９）ステップＡ２０９
次に、ルール作成者は、オブジェクトグループ選択画面を用いて、任意のオブジェクトグループを選択する。ポリシー編集部１３は、選択されたオブジェクトグループを取得する。
【０１４１】
（１０）ステップＡ２１０
次に、ポリシー編集部１３は、アクションセット管理部２３から、ステップＡ２０６でルール作成者の選択したオブジェクトタイプ、あるいはステップＡ２０９でルール作成者の選択したオブジェクトグループの属するオブジェクトタイプに対応する、アクションセットを取得する。ステップＡ２１０により、これから生成するアクセス制御ポリシーのアクセス制御ルールにおいて使用される、オブジェクトグループと対応する適切なアクションセットについて、ユーザが意識して選択することなく、自動的に表示することが可能となる。オブジェクトグループが、間接的に複数のアクションセットに対応している場合、それらのアクションセットのうち、最も粒度の小さなオブジェクトタイプに対応するアクションセットが表示される。これは一般に、オブジェクトグループが、直接的に属するオブジェクトタイプの対応するアクションセットとなる。
【０１４２】
（１１）ステップＡ２１１
次に、ポリシー編集部１３は、取得済みのオブジェクトグループと、取得済みのアクションセットとを用いて、当該オブジェクトグループと、当該アクションセットと、当該アクションセットの各アクションに対応する可否識別子の選択肢との組で構成されたアクセス制御ルールを表示する。
【０１４３】
（１２）ステップＡ２１２
次に、ポリシー編集部１３は、オブジェクトグループ格納部１２と、ポリシー格納部１４と、オブジェクトタイプ管理部２１と、オブジェクト管理部２２と、ロール管理部３１とを参照し、編集中のアクセス制御ルールとの比較において、権限可否の定義の対象とするオブジェクトが重複している別のルールの存在の有無をチェックする。
【０１４４】
存在する場合（ステップＡ２１２のＹｅｓ）、ステップＡ２１３へ進む。一方、存在しない場合（ステップＳ２１２のＮｏ）、ステップＡ２１５へ進む。ロール継承が存在するため、重複する可能性のあるルールは、編集中のアクセス制御ルールを含むアクセス制御ポリシーと、当該アクセス制御ポリシーの対応するロールからみて直系にあたるロールに対応するアクセス制御ポリシーのルールとなる。
【０１４５】
なお、オブジェクトの重複のパターンには、２通りある。１つ目のパターンは、もともと高優先度側のルールのオブジェクトグループの中に、高優先度側のルールのオブジェクトタイプに直接属するオブジェクト以外に、間接的に属するオブジェクトも存在しているため、これが低優先度側のルールのオブジェクトタイプに直接/間接に属している場合である。例えば、高優先度側のルールが特定製品のオブジェクトタイプを持ち、低優先後側のルールが特定製品の特定バージョンのオブジェクトタイプを持つ場合に、双方のルールのオブジェクトグループに、特定製品の特定バージョンのオブジェクトタイプに属する同一のオブジェクトが含まれている場合などである。
【０１４６】
もう１つのパターンは、高優先度側のルールのオブジェクトグループのオブジェクトと、低優先度側のルールのオブジェクトグループのオブジェクトとについて、オブジェクト自体は同一ではないが、それらのオブジェクトが属するオブジェクトタイプや当該オブジェクトの間に、ツリー状の階層関係がある場合である。例えば、前者が特定製品のオブジェクトタイプに属するオブジェクト、後者が特定製品の特定バージョンのオブジェクトタイプに属するオブジェクトで、前者のオブジェクトを構成する一部分が後者のオブジェクトである場合などである。
【０１４７】
（１３）ステップＡ２１３
次に、ポリシー編集部１３は、対象とするオブジェクトが重複していることが分かった複数のルールについて、高優先度側のルールが、低優先度側のルールよりも、オブジェクトタイプの粒度が大きいかについて、チェックする。大きい場合（ステップＡ２１３のＹｅｓ）、ステップＡ２１４へ進む。一方、小さいか等しい場合（ステップＡ２１３のＮｏ）、ステップＡ２１５へ進む。
【０１４８】
（１４）ステップＡ２１４
次に、ポリシー編集部１３は、オブジェクトの重複があるルールのうち、高優先度側のルールについて、当該ルールの本来のオブジェクトタイプに対応するアクションセットに加えて、低優先度側のルールのオブジェクトタイプに対応するアクションセットを追加で表示する。すなわち、高優先度側のルールのアクションセットを複数表示する。これにより、高優先度側のルールの対象とするオブジェクトのうち、低優先度側のルールと重複するオブジェクトあるいは低優先度側のルールと同じオブジェクトタイプに属するオブジェクトについてのみ、低優先度側と同様のアクションセットを適用する。高優先度側のルールは、オブジェクトタイプの粒度が大きく、オブジェクトタイプ間のツリー状の階層関係において葉側にあたる小さな粒度のオブジェクトタイプを、低優先度側のルールのオブジェクトタイプ以外にも持ち得る。そのため、低優先度側のルールのオブジェクトタイプに対応しないオブジェクトも含まれるので、高優先度側本来のオブジェクトタイプのアクションセットも残す。別の言い方をすれば、高優先度側のルールを分割し、低優先度側を上書きするための低優先度側と同一のオブジェクトタイプを持つルールと、高優先度側本来のオブジェクトタイプを持つ残りの部分のルールとに、切り分ける。
【０１４９】
この処理によって、単純な順序制約の処理では失われてしまう、低優先度側のルールの持っていた粒度の小さいオブジェクトタイプの情報を残し、特化した専門性の高いアクションセットを必要な部分のみに適用する。
【０１５０】
具体例としては、図２、図７〜図９、図１０〜図１２のようにオブジェクトの範囲の分割と、アクションセットの追加を行う。
【０１５１】
これにより、順序制約を守りながら、アクセス制御リストの作成負担の軽減と、必要に応じた厳密で詳細なアクセス制御の実施とを、両立させる。
【０１５２】
図２、図７〜図９を参照して、ステップＡ２１３、Ａ２１４における動作について詳細に説明する。
【０１５３】
図２は、権限可否を定義しているオブジェクトが互いに重複しているルールについて、単純な順序制約の処理を行った場合における、各ルールを採用するオブジェクトの範囲を示している。
【０１５４】
図７〜図９は、図２のようなルール間において、オブジェクトタイプの組合わせによって、オブジェクトの範囲の分割と、アクションセットの追加が行われることを示している。
【０１５５】
図７は、すべてのルールのオブジェクトタイプの粒度が大きい場合、すなわち、すべてのルールのオブジェクトタイプが互いに等しい場合を示している。この場合、ステップＡ２１３の判定処理においてＮｏとなり、ステップＡ２１４の処理が行われない。したがって、処理結果は、図２に示した、オブジェクトタイプを考慮しない単純な順序制約と同じ結果となる。なお、すべてのルールのオブジェクトタイプの粒度が小さい場合にも、同様の結果となる。
【０１５６】
図８、図９は、ルール間で、オブジェクトタイプの粒度が異なる場合を示している。Ｖ２４、Ｖ２６、Ｖ３６のように、すべてのルール間で高優先度側のルールのオブジェクトタイプの粒度が小さいか等しい場合は、ステップＡ２１３の判定処理においてＮｏとなり、ステップＡ２１４の処理が行われない。したがって、処理結果は、図２に示したオブジェクトタイプを考慮しない単純な順序制約と同じ結果となる。
【０１５７】
それ以外の場合では、高優先度側のルールのオブジェクトタイプの粒度が大きいルール間において、高優先度側のルールに低優先度側のルールと同じ粒度のオブジェクトタイプのアクションセットを追加する。この際、高優先度側のルールにおいて権限可否を定義しているオブジェクトの範囲が分割され、追加された低優先度側のルールのオブジェクトタイプのアクションセットによって権限可否を定義されるオブジェクトと、高優先度側のルール本来のオブジェクトタイプのアクションセットによって権限可否を定義されるオブジェクトとに分かれる。追加された低優先度側のルールのオブジェクトタイプのアクションセットによって権限可否を定義されるオブジェクトは、典型的には、高優先度側のルールと低優先度側のルールの重複部分にあたるオブジェクトとなる。重複部分にあたるオブジェクトは、双方のルールのオブジェクトグループおよびオブジェクトを比較して抽出してもよいし、高優先度側のルールのオブジェクトおよび当該オブジェクトの一部分として包含されるオブジェクトの中で、低優先度側のルールのオブジェクトタイプに対応するものをすべて対象としてもよい。
【０１５８】
アクションセットの追加に際しては、１つのルールの中でオブジェクトの重複部分やオブジェクトタイプ毎にアクションセットを持つものとして処理してもよいし、新たなルールの追加として処理してもよい。後者の場合は、順序制約で処理可能となるように、追加された粒度の小さいオブジェクトタイプのアクションセットを持つルールを、もとからある粒度の大きいオブジェクトタイプのルールからみて、１段階優先度の高いルールとして追加する。
【０１５９】
補足として、図１０〜図１２に示すような、別の重複のパターンについて説明する。
【０１６０】
図１０では、最も優先度の高いルール１に対して、より優先度の低いルール２とルール３とが、互いに疎である場合における、単純な順序制約の処理を示している。
【０１６１】
図１０の重複のパターンでは、図１１のＶ５１〜Ｖ５３に示すように、ルール１と他のルールとの関係において、図８、図９で説明した内容と同じく、高優先度のルールのほうがオブジェクトタイプの粒度が大きい場合に限り、オブジェクトの範囲の分割と、アクションセットの追加が行われる。
【０１６２】
図１０の重複のパターンにおける特徴的な例としては、図１１のＶ５０に示すように、ルール１以外のルール間でオブジェクトタイプが異なり、このルールのオブジェクト間が階層関係にない場合がある。例えば、ルール１（粒度:大）のオブジェクトタイプがある製品、ルール２（粒度:小Ａ）のオブジェクトタイプが当該製品のバージョンＡ、ルール３（粒度:小Ｂ）のオブジェクトタイプが当該製品のバージョンＢ、などの場合である。この場合、ルール１（粒度:大）とルール２（粒度:小Ａ）の間、ルール１（粒度:大）とルール３（粒度:小Ｂ）の間には、オブジェクトタイプに階層関係（親子関係）が存在するが、ルール２（粒度:小Ａ）とルール３（粒度:小Ｂ）の間には、階層関係（親子関係）が存在しない（兄弟関係は存在する）。
【０１６３】
このとき、ルール１においてオブジェクトの範囲の分割とアクションセットの追加が行われるが、ルール２とルール３はオブジェクトタイプが異なるため、ルール１に追加されるアクションセットは複数となる。この場合、ルール２と重複するオブジェクトにはルール２のオブジェクトタイプのアクションセットを適用し、ルール３と重複するオブジェクトにはルール３のオブジェクトタイプのアクションセットを適用し、残りのオブジェクトはルール１本来のオブジェクトタイプのアクションセットを適用する。なお、ルール２とルール３のオブジェクト同士は、オブジェクトタイプが異なり、階層関係もないので、重複することはない。
【０１６４】
図１２は、図１０の重複のパターンにおける、図１１以外のオブジェクトタイプの組み合わせを示している。
【０１６５】
図１２のＶ６１〜Ｖ６３に示すように、図１０の重複のパターンにおいても、ルール間で高優先度側のルールのオブジェクトタイプの粒度が小さいか等しい場合は、ステップＡ２１３の判定処理においてＮｏとなり、ステップＡ２１４の処理が行われない。したがって、処理結果は、図１０に示した、オブジェクトタイプを考慮しない単純な順序制約と同じ結果となる。
【０１６６】
図１２のＶ６０に示すように、ルール２とルール３が互いに疎である場合においても、ルール２とルール３のオブジェクトタイプが同一であれば、ルール１とルール２の重複部分にあたるオブジェクトと、ルール１とルール３の重複部分にあたるオブジェクトとは、まとめて扱うことが可能であり、追加されるアクションセットも１つのみとすることが可能である。
【０１６７】
（１５）ステップＡ２１５
次に、ルール作成者は、アクセス制御ルールのアクションセットの各アクションに対応する可否識別子の選択肢を用いて、任意のアクション可否を選択する。ポリシー編集部１３は、選択されたアクション可否を取得する。
【０１６８】
（１６）ステップＡ２１６
次に、ルール作成者は、同じオブジェクトタイプのルールの追加の有無について判断する。追加する場合は、ステップＡ２０９へ進む。追加しない場合は、ステップＡ２１７へ進む。
【０１６９】
（１７）ステップＡ２１７
次に、ルール作成者は、異なるオブジェクトタイプも含めた、ルールの追加の有無について判断する。追加する場合は、ステップＡ２０６へ進む。追加しない場合は、ステップＡ２１８へ進む。
【０１７０】
（１８）ステップＡ２１８
次に、ルール作成者は、アクセス制御ポリシーの追加の有無について判断する。追加する場合は、ステップＡ２０３へ進む。追加しない場合は、ステップＡ２１９へ進む。
【０１７１】
（１９）ステップＡ２１９
次に、ポリシー編集部１３は、ルール作成者の選択した内容に沿ったアクセス制御ポリシーを生成し、ポリシー格納部１４に出力・記憶する。
【０１７２】
図１３を参照して、アクセス権可否生成処理（図４のステップＡ４）における動作について詳細に説明する。
【０１７３】
（１）ステップＡ３０１
アクセス権可否生成部１５は、ポリシー格納部１４から、アクセス権可否を定義したアクセス制御ポリシーのリストを取得する。
【０１７４】
（２）ステップＡ３０２
次に、アクセス権可否生成部１５は、ロール管理部３１から、取得済みのアクセス制御ポリシーの対応するロール間の継承関係を確定するための、ロールのリストを取得する。
【０１７５】
（３）ステップＡ３０３
次に、アクセス権可否生成部１５は、取得済みのアクセス制御ポリシーのリストと、取得済みのロールのリストとを用いて、ロール継承の処理を行う。具体的には、処理対象のポリシーのロールからみて継承元となるロールのポリシーのルールを、処理対象のポリシーのルールの次に優先度の低いルールとして追加する。これにより、継承先のロールは、継承元のロールの権限可否を引き継ぎつつ、継承元のロールの権限可否と継承先のロールの権限可否とが矛盾する部分では、継承先のロールの権限可否を優先する。
【０１７６】
（４）ステップＡ３０４
次に、アクセス権可否生成部１５は、サブジェクト管理部３２から、前記取得済みのアクセス制御ポリシーのロールに割り当てられたサブジェクトを特定するための、サブジェクト割当のリストを取得する。
【０１７７】
（５）ステップＡ３０５
次に、アクセス権可否生成部１５は、オブジェクトグループ格納部１２から、前記取得済みのアクセス制御ポリシーのルールに使用されているオブジェクトグループに含まれるオブジェクトを特定するための、オブジェクトグループのリストを取得する。
【０１７８】
（６）ステップＡ３０６
次に、アクセス権可否生成部１５は、ロール継承処理済みのアクセス制御ポリシーに基づいて、対応するサブジェクトとオブジェクトの特定を行い、アクセス権可否を生成する。具体的には、アクセス権可否を構成するサブジェクトについては、取得済みのサブジェクト割当を参照し、当該ポリシーの対応するロールを割り当てられたサブジェクトを特定して利用する。アクセス権可否を構成するオブジェクトについては、取得済みのオブジェクトグループを参照し、当該ポリシーのルールに使用されているオブジェクトグループに含まれているオブジェクトを特定して使用する。アクセス権可否を構成するアクションと可否識別子については、ポリシーの各ルールに使用されているアクションセットと、そのアクション毎の可否識別子を使用する。
【０１７９】
（７）ステップＡ３０７
次に、アクセス権可否生成部１５は、生成済みのアクセス権可否を、アクセス制御実施装置４に出力する。
【０１８０】
これにより、複数のオブジェクトタイプ・アクションセットに跨ってアクセス制御ポリシーを記述する上で、より専門性の高いアクションセットを用いたアクセス権可否の生成と、アクセス権可否の作成負担の軽減を両立し、そのようなアクセス制御ポリシーおよびアクセス権可否に沿ったアクセス制御実施が可能となる。
【０１８１】
本実施形態によると、次の効果がもたらされる。
【０１８２】
本実施形態では、ルール作成者は、アクセス制御ポリシーによる抽象的な記述を用いてアクセス権可否を生成する。
【０１８３】
これにより、アクセス権可否の作成負担の軽減を図るとともに、必要に応じて特定のベンダー・製品・バージョン・エディション・ライセンス・インタフェースなどに特化した具体的で詳細なアクセス権可否を生成することができる（第１の効果）。
【０１８４】
また、本実施形態では、複数のオブジェクトタイプ・アクションセットに跨るオブジェクトグループについて、オブジェクトグループの作成時に、ルール作成者にオブジェクトタイプを選択させ、選択されたオブジェクトタイプを用いて、オブジェクトグループの編集時に選択できるオブジェクトを予め選別しておく。
【０１８５】
これにより、アクセス制御ポリシーの作成時に、複数のオブジェクトタイプ・アクションセットに跨ってオブジェクトグループを使用する場合でも、ルール作成者が意識することなく、オブジェクトグループに含まれるオブジェクトに対応可能なアクションセットを決定して提示することができる（第２の効果）。
【０１８６】
また、本実施形態では、複数のオブジェクトタイプ・アクションセットに跨るオブジェクトグループについて、各オブジェクトタイプのアクションセットを単純に足し合わせて、すべてのオブジェクトを区別せずに足し合わせたアクションセットを対応させるのではなく、オブジェクトグループに含まれるオブジェクト毎に対応するアクションセットが１種類のみとなるよう、オブジェクトグループの中で、アクションセットの対象となるオブジェクトの範囲をオブジェクトの重複部分や粒度の小さいオブジェクトタイプ毎に分割して扱う。
【０１８７】
これにより、複数のオブジェクトタイプ・アクションセットを使用してもアクセス制御ポリシー内で矛盾や重複が発生しないようにすることができる（第３の効果）。
【０１８８】
また、本実施形態では、異なるオブジェクトタイプ・アクションセットのオブジェクトグループを用いたアクセス制御ルール間でのオブジェクトの重複について、順序制約に相当する処理によって、定義された権限可否の矛盾を回避しながら、単純な順序制約ではなく、オブジェクトタイプの粒度を考慮したアクションセットの選択と、当該アクションセットに対応させるオブジェクトの範囲の分割を行う。
【０１８９】
これにより、必要があって特化した専用性の高いアクションセットを使用したルールについて、より優先度の高いルールが共通の汎用性の高いアクションセットを使用していても、上書きされて失われることのないようにすることができる（第４の効果）。
【０１９０】
本発明によれば、企業などのシステムにおけるネットワークノード、仮想マシン、ファイル、データベース、アプリケーションなどに対するアクセス制御において、アクセス制御対象となるオブジェクトのオブジェクトタイプと、それに対応したアクションセットの情報を管理することで、それらの情報を使用し、より専門性の高いアクションセットを用いたアクセス権可否の生成と、アクセス権可否の作成負担の軽減を両立する機能を実現できるアクセス権可否生成装置およびアクセス制御実施機能を提供できる。
【０１９１】
なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１９２】
１    アクセス権可否生成装置
２    システム構成管理装置
３    ＩＤ管理装置
４    アクセス制御実施装置
１１    オブジェクトグループ編集部
１２    オブジェクトグループ格納部
１３    ポリシー編集部
１４    ポリシー格納部
１５    アクセス権可否生成部
２１    オブジェクトタイプ管理部
２２    オブジェクト管理部
２３    アクションセット管理部
３１    ロール管理部
３２    サブジェクト管理部
【図１】
2014170324.tif 000003
【図２】
2014170324.tif 000004
【図３】
2014170324.tif 000005
【図４】
2014170324.tif 000006
【図５】
2014170324.tif 000007
【図６】
2014170324.tif 000008
【図７】
2014170324.tif 000009
【図８】
2014170324.tif 000010
【図９】
2014170324.tif 000011
【図１０】
2014170324.tif 000012
【図１１】
2014170324.tif 000013
【図１２】
2014170324.tif 000014
【図１３】
2014170324.tif 000015