(57)【要約】【課題】アクセスが制限されるコンテンツへのアクセス発生時に行われるアクセス権限のチェックについて処理負荷の軽減を図る。【解決手段】ＲＤＢＭＳ１９０は、ユーザ毎に属性値が設定されるユーザ情報テーブル１９１と、属性値の組み合わせを示すロールが設定されるロール情報テーブル１９４と、コンテンツ毎にアクセス条件としてロールＩＤが設定されるアクセス制御テーブル１９９とを記憶する。ロール情報操作部１２１およびユーザ情報操作部１２５はユーザ情報テーブル１９１とロール情報テーブル１９４とに基づいて、属性値がロールに対応するユーザのリストをロール毎にユーザリスト情報テーブル１９５に設定する。コンテンツへのアクセス要求が発生した場合、アクセス制御部１２４は、アクセス制御テーブル１９９に基づいてアクセス条件のロールを特定し、特定したロールのユーザリストにアクセスユーザが含まれるかによりアクセス権限を判定する。【選択図】図１
2010117885.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ毎にユーザが有する複数の属性値が設定されるユーザ属性情報と、属性値の組み合わせを示すロールが設定されるロール情報と、アクセスが制限されるアクセス制限情報へのアクセス条件として特定のロールを識別する情報が設定されるアクセス条件情報とを記憶機器を用いて記憶するアクセス制御情報記憶部と、
前記アクセス制御情報記憶部に記憶される前記ユーザ属性情報と前記アクセス制御情報記憶部に記憶される前記ロール情報とに基づいて、当該ロールが示す属性値の組み合わせを有するユーザを示すユーザリストがロール毎に設定されるユーザリスト情報をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成するユーザリスト情報生成部と、
前記アクセス制限情報へのアクセス要求が発生した場合、前記アクセス制御情報記憶部に記憶される前記アクセス条件情報に基づいて当該アクセス制限情報へのアクセス条件であるロールをＣＰＵを用いて特定するアクセス条件ロール特定部と、
前記ユーザリスト情報生成部により生成された前記ユーザリスト情報にロール毎に設定されるユーザリストのうち前記アクセス条件ロール特定部により特定されたロールが示す属性値の組み合わせを有するユーザを示すユーザリストに当該アクセス制限情報へのアクセス要求をしたユーザが含まれるか否かに基づいて、当該アクセス制限情報への当該ユーザのアクセス権限をＣＰＵを用いて判定するアクセス権限判定部と
を備えたことを特徴とするアクセス制御装置。
【請求項２】
前記ロール情報に設定されるロールは、属性値と論理演算子とを含んだ論理式により属性値の組み合わせを示し、
前記アクセス制御装置は、
前記ロール情報に設定されるロールが示す論理式から前記論理演算子を除いて属性値をＣＰＵを用いて抽出し、抽出した属性値を示す属性値リストがロール毎に設定される属性値リスト情報をＣＰＵを用いて生成する属性値リスト情報生成部と、
前記ユーザ属性情報に新たなユーザが有する複数の属性値が設定された場合、前記属性値リスト情報生成部により生成された属性値リスト情報にロール毎に設定される属性値リストが示す属性値が前記ユーザ属性情報に設定された新たなユーザが有する複数の属性値に含まれるか否かに基づいて、前記新たなユーザが有する属性値の組み合わせを示すロールをＣＰＵを用いて特定するユーザ属性ロール特定部と、
前記ユーザリスト情報にロール毎に設定されるユーザリストのうち前記ユーザ属性ロール特定部により特定されたロールが示す属性値の組み合わせを有するユーザを示すユーザリストに前記新たなユーザをＣＰＵを用いて追加するユーザリスト内ユーザ追加部とを備えた
ことを特徴とする請求項１記載のアクセス制御装置。
【請求項３】
特定のロールが指定された場合、指定された前記特定のロールが示す属性値の組み合わせを有するユーザを示すユーザリストを前記ユーザリスト情報からＣＰＵを用いて取得するロール指定ユーザリスト取得部
を備えたことを特徴とする請求項１〜請求項２いずれかに記載のアクセス制御装置。
【請求項４】
ユーザ毎にユーザが有する複数の属性値が設定されるユーザ属性情報と、属性値の組み合わせを示すロールが設定されるロール情報と、アクセスが制限されるアクセス制限情報へのアクセス条件として特定のロールを識別する情報が設定されるアクセス条件情報とを記憶機器を用いて記憶するアクセス制御情報記憶部を用いて、ユーザのアクセス権限を判定するアクセス制御装置のアクセス制御方法であり、
アクセス制御装置が、
前記アクセス制御情報記憶部に記憶される前記ユーザ属性情報と前記アクセス制御情報記憶部に記憶される前記ロール情報とに基づいて、当該ロールが示す属性値の組み合わせを有するユーザを示すユーザリストがロール毎に設定されるユーザリスト情報をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成するユーザリスト情報生成処理を実行し、
前記アクセス制限情報へのアクセス要求が発生した場合、前記アクセス制御情報記憶部に記憶される前記アクセス条件情報に基づいて当該アクセス制限情報へのアクセス条件であるロールをＣＰＵを用いて特定するアクセス条件ロール特定処理を実行し、
前記ユーザリスト情報生成処理により生成された前記ユーザリスト情報にロール毎に設定されるユーザリストのうち前記アクセス条件ロール特定処理により特定されたロールが示す属性値の組み合わせを有するユーザを示すユーザリストに当該アクセス制限情報へのアクセス要求をしたユーザが含まれるか否かに基づいて、当該アクセス制限情報への当該ユーザのアクセス権限をＣＰＵを用いて判定するアクセス権限判定処理を実行する
ことを特徴とするアクセス制御装置のアクセス制御方法。
【請求項５】
請求項４記載のアクセス制御方法をコンピュータに実行させるアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロールベースのアクセス制御装置、アクセス制御方法およびアクセス制御プログラムに関するものである。
【背景技術】
【０００２】
従来の技術によるロールベースのアクセス制御では、アクセスが制限されるコンテンツへのアクセス条件を示すロールに当該コンテンツへのアクセスが許可される利用者や組織を一覧にしたリストを関連付けることで、アクセス制御が行われていた。この方式では、利用者の異動や組織の変更がある度に、アクセスを許可したい利用者や組織とロールに関連付けられている利用者や組織との間に相異が生じる場合があるため、管理者は全ロールのリストをチェックし、ロールに関連付けられている利用者や組織のリストを必要に応じて変更していた。利用者の異動や組織の変更は比較的多く行われ、ロールに関連付けられている利用者や組織のリストのチェックおよび変更はその処理負荷が大きい。
【０００３】
そこで、利用者の異動や組織の変更時にロールに関連付けられている情報を変更しないことを可能にするために、上記ロールを拡張した拡張ロールを用いたアクセス制御方式が実現されている。拡張ロールには、利用者や組織のリストが関連付けられるのでは無く、例えば、役職、資格、所属する組織、組織が所在する場所等の属性について、利用者や組織の属性値が関連付けられる。拡張ロールに関連付けられる利用者や組織の属性値は論理式で表現され、その論理式が示す条件を満たす属性値を有する利用者や組織がコンテンツへのアクセスを許可される。
この拡張ロールを用いたロールベースのアクセス制御方式では、利用者の異動や組織の変更があっても、拡張ロールの論理式は変更せずに、異動のあった利用者や変更のあった組織の属性値さえ変更すればよいため、利用者の移動や組織の変更に柔軟に対応することができる。
但し、その反面、利用者が情報システム上の様々なコンテンツを利用する度に、利用者が有する属性値が拡張ロールの論理式が示す条件を満たすか解析して、コンテンツへのアクセスを許可するか否かを判定する必要があった。
【特許文献１】特開平８−８７４５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
拡張ロールを用いたロールベースのアクセス制御方式では、アクセス権限の判定の処理をアクセス実行時に行う為、アクセス実行時に、利用者の属性値と利用者が所属する組織の属性値を取得し、拡張ロールの論理式の解釈を行い、論理式が示す条件を利用者の属性値が満たすか否かをチェックする必要があり、作業負荷が大きかった。
また、拡張ロールでは、アクセス権限が適当な利用者や組織に与えられるかを確認するために拡張ロールの論理式の正当性をチェックする際に、論理式が示す条件を満たす利用者や組織の一覧のリストを生成する必要があり、アクセス権限の正当性チェックの作業負荷が大きかった。
また、従来の拡張ロールを用いる方式では、アクセス権限に個別に利用者を指定する必要がある場合、従来の通常のロールと同じになり、処理が複雑で利用者や組織の属性値に基づくアクセス制御の優位性を示すことが難しかった。
【０００５】
本発明は、例えば、拡張ロールを用いたアクセス制御において、アクセスが制限されるコンテンツへのアクセス発生時に行われるアクセス権限のチェックについて、処理負荷の軽減を図ることを目的とする。
【課題を解決するための手段】
【０００６】
本発明のアクセス制御装置は、ユーザ毎にユーザが有する複数の属性値が設定されるユーザ属性情報と、属性値の組み合わせを示すロールが設定されるロール情報と、アクセスが制限されるアクセス制限情報へのアクセス条件として特定のロールを識別する情報が設定されるアクセス条件情報とを記憶機器を用いて記憶するアクセス制御情報記憶部と、前記アクセス制御情報記憶部に記憶される前記ユーザ属性情報と前記アクセス制御情報記憶部に記憶される前記ロール情報とに基づいて、当該ロールが示す属性値の組み合わせを有するユーザを示すユーザリストがロール毎に設定されるユーザリスト情報をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成するユーザリスト情報生成部と、前記アクセス制限情報へのアクセス要求が発生した場合、前記アクセス制御情報記憶部に記憶される前記アクセス条件情報に基づいて当該アクセス制限情報へのアクセス条件であるロールをＣＰＵを用いて特定するアクセス条件ロール特定部と、前記ユーザリスト情報生成部により生成された前記ユーザリスト情報にロール毎に設定されるユーザリストのうち前記アクセス条件ロール特定部により特定されたロールが示す属性値の組み合わせを有するユーザを示すユーザリストに当該アクセス制限情報へのアクセス要求をしたユーザが含まれるか否かに基づいて、当該アクセス制限情報への当該ユーザのアクセス権限をＣＰＵを用いて判定するアクセス権限判定部とを備える。
【発明の効果】
【０００７】
本発明によれば、例えば、拡張ロールを用いたアクセス制御において、アクセス権限判定部がユーザリスト情報に基づいてアクセス権限を判定することにより、アクセスが制限されるコンテンツへのアクセス発生時に行われるアクセス権限の判定に要する処理負荷を軽減することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、実施の形態１におけるロールベースアクセス制御装置１００の構成図である。
実施の形態１におけるロールベースアクセス制御装置１００の構成について、図１に基づいて以下に説明する。
【０００９】
ロールベースアクセス制御装置１００（アクセス制御装置の一例）は、ロール操作ＡＰＩ１１０、ロールデータ操作プロキシ１２０、データベースドライバ１３０およびＲＤＢＭＳ１９０を備え、実行が制限されるプログラムや読み込み（参照）／書き込み（更新）が制限されるデータや使用が制限されるハードウェア資源（例えば、コンピュータ）へのアクセス可否やアクセス種類（読込可、書込不可など）などのアクセス権限をロールベースのアクセス制御により判定する。
ロールとは、コンテンツへのアクセス条件に関する情報を示すデータである。
以下、アクセスとはプログラムの実行やデータの読み込み／書き込みやハードウェア資源の使用などを意味するものとし、アクセスが制限されるプログラムやデータやハードウェア資源（アクセス制限情報の一例）をコンテンツという。
【００１０】
ＲＤＢＭＳ１９０（アクセス制御情報記憶部の一例）は、ユーザ情報テーブル１９１、組織情報テーブル１９２、場所情報テーブル１９３、ロール情報テーブル１９４、ユーザリスト情報テーブル１９５、ロール構成情報テーブル１９６およびアクセス制御テーブル１９９を記憶機器を用いて記憶管理するリレーショナルデータベース管理システムである。
【００１１】
ユーザ情報テーブル１９１（ユーザ属性情報の一例）には、ユーザ毎にユーザが有する複数の属性値が設定される。
組織情報テーブル１９２には、組織ＩＤと当該組織ＩＤにより識別される組織名とが設定される。
場所情報テーブル１９３には、場所ＩＤと当該場所ＩＤにより識別される場所名とが設定される。
ロール情報テーブル１９４（ロール情報の一例）には、特定の属性値の組み合わせを表す論理式（以下、「ロール定義」ともいう）を示すロールが設定される。論理式には、１以上の属性値と各属性値に関連づけられる論理演算子（例えば、“＆”［論理積］、“｜”［論理和］、“！”［否定］、“＾”［排他的論理和］）とが含まれる。論理演算子は、全属性値に“＆”［論理積］が黙示的に関連づけられるなど、省略されても構わない。実施の形態では、ロールの論理式は属性値が“＆”で連結され、連結された属性値を全て要することをアクセス条件として示す形態について説明する。
ユーザリスト情報テーブル１９５（ユーザリスト情報の一例）には、当該ロールの論理式により表わされる属性値の組み合わせを有するユーザを一覧で示すユーザリストがロール毎に設定される。
ロール構成情報テーブル１９６（属性値リスト情報の一例）には、当該ロールの論理式から論理演算子を取り除いて抽出される属性値を一覧で示す属性値リストがロール毎に設定される。
アクセス制御テーブル１９９（アクセス条件情報の一例）には、アクセスが制限されるコンテンツ（アクセス制限情報の一例）へのアクセス条件として特定のロールを識別するロールＩＤが設定される。
【００１２】
ロール操作ＡＰＩ１１０は、コンテンツを使用するアプリケーション（ソフトウェア、プログラムの一種）やロールを管理するアプリケーションから呼び出され、各アプリケーションとロールデータ操作プロキシ１２０との間のデータの入出力を制御するインターフェース処理部である。
各アプリケーションをＣＰＵを用いて実行する処理部や各アプリケーションおよびコンテンツを記憶機器を用いて記憶する記憶部は、ロールベースアクセス制御装置１００に備わっていても、ロールベースアクセス制御装置１００とは別の装置に備わっていても構わない。
【００１３】
ロールデータ操作プロキシ１２０は、ロール情報操作部１２１、テーブル更新部１２２、テーブル参照部１２３、アクセス制御部１２４およびユーザ情報操作部１２５を備え、ＲＤＢＭＳ１９０に記憶される各テーブルを参照／更新し、コンテンツへのユーザのアクセス権限を判定するロール制御部である。
【００１４】
ロール情報操作部１２１（ユーザリスト情報生成部の一例）は、ロール情報テーブル１９４の生成（新規生成、追加、変更、削除を含む。以下同様）および生成後のロール情報テーブル１９４に基づくユーザリスト情報テーブル１９５の生成をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて行う。
また、ロール情報操作部１２１（属性値リスト情報生成部の一例）は、当該ロールの論理式から論理演算子を除いて抽出される属性値を一覧で示す属性値リストがロール毎に設定されるロール構成情報テーブル１９６（属性値リスト情報の一例）をＣＰＵを用いて生成する。
【００１５】
アクセス制御部１２４は、アクセス条件ロール特定部１２４ａとアクセス権限判定部１２４ｂとを備え、コンテンツへのユーザのアクセス権限を判定する。
アクセス条件ロール特定部１２４ａは、コンテンツへのアクセス要求が発生した場合、アクセス制御テーブル１９９に基づいて当該コンテンツへのアクセス条件であるロールをＣＰＵを用いて特定する。
アクセス権限判定部１２４ｂは、ロール情報操作部１２１により生成されたユーザリスト情報テーブル１９５にロール毎に設定されるユーザリストのうちアクセス条件ロール特定部１２４ａにより特定されたロールの論理式が表す属性値の組み合わせを有するユーザを一覧で示すユーザリストに当該コンテンツへのアクセス要求をしたユーザが含まれるか否かに基づいて、当該コンテンツへの当該ユーザのアクセス権限をＣＰＵを用いて判定する。
また、アクセス権限判定部１２４ｂ（ロール指定ユーザリスト取得部の一例）は、指定されたロールの論理式が表す属性値の組み合わせを有するユーザを一覧で示すユーザリストをユーザリスト情報テーブル１９５（ユーザリスト情報の一例）からＣＰＵを用いて取得する。
【００１６】
ユーザ情報操作部１２５（ユーザリスト情報生成部の一例）は、ユーザ情報テーブル１９１の生成および生成後のユーザ情報テーブル１９１に基づくユーザリスト情報テーブル１９５の生成をＣＰＵを用いて行う。
また、ユーザ情報操作部１２５（ユーザ属性ロール特定部の一例）は、ユーザ情報テーブル１９１に新たなユーザが有する複数の属性値をＣＰＵを用いて追加する。そして、ユーザ情報操作部１２５は、ロール構成情報テーブル１９６（属性値リスト情報の一例）にロール毎に設定される属性値リストが示す属性値が新たなユーザが有する複数の属性値に含まれるか否かに基づいて、新たなユーザが有する属性値の組み合わせを示すロールをＣＰＵを用いて特定する。
また、ユーザ情報操作部１２５（ユーザリスト内ユーザ追加部の一例）は、ユーザリスト情報テーブル１９５（ユーザリスト情報の一例）にロール毎に設定されるユーザリストのうち特定したロールが示す属性値の組み合わせを有するユーザを一覧で示すユーザリストに新たなユーザをＣＰＵを用いて追加する。
【００１７】
テーブル更新部１２２は、ロール情報操作部１２１およびユーザ情報操作部１２５からの要求に応じて、ＲＤＢＭＳ１９０に記憶される各テーブルをデータベースドライバ１３０を介してＣＰＵを用いて生成する。
テーブル参照部１２３は、ロール情報操作部１２１、アクセス制御部１２４およびユーザ情報操作部１２５からの要求に応じて、ＲＤＢＭＳ１９０に記憶される各テーブルをデータベースドライバ１３０を介してＣＰＵを用いて検索、参照、データ取得などに使用する。
【００１８】
データベースドライバ１３０は、ロール操作ＡＰＩ１１０（テーブル更新部１２２、テーブル参照部１２３）から呼び出され、ロール操作ＡＰＩ１１０とロールデータ操作プロキシ１２０との間のデータの入出力を制御するインターフェース処理部である。
【００１９】
図２は、実施の形態１におけるロールベースアクセス制御装置１００のハードウェア資源の一例を示す図である。
図２において、ロールベースアクセス制御装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（コンパクトディスク装置）、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶機器、記憶装置あるいは記憶部の一例である。また、入力データが記憶されている記憶機器は入力機器、入力装置あるいは入力部の一例であり、出力データが記憶される記憶機器は出力機器、出力装置あるいは出力部の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力機器、入力装置あるいは入力部の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力機器、出力装置あるいは出力部の一例である。
【００２０】
通信ボード９１５は、ファクシミリ機、電話器、ＬＡＮ（ローカルエリアネットワーク）等に接続されている。通信ボード９１５は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００２１】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。
【００２２】
上記プログラム群９２３には、実施の形態において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００２３】
ファイル群９２４には、実施の形態において、「〜部」の機能を実行した際の「〜の判定結果」、「〜の計算結果」、「〜の処理結果」などの結果データ、「〜部」の機能を実行するプログラム間で受け渡しするデータ、その他の情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜テーブル」の各項目として記憶されている。
「〜ファイル」や「〜テーブル」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、実施の形態において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）等の記録媒体に記録される。また、データや信号値は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２４】
また、実施の形態において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものである。あるいは、「〜部」の手順や方法をコンピュータに実行させるものである。
【００２５】
図３、図４は、実施の形態１におけるＲＤＢＭＳ１９０に記憶されるテーブルの具体例を示す図である。
実施の形態１におけるＲＤＢＭＳ１９０（アクセス制御情報記憶部）に記憶される各テーブルについて、図３および図４に基づいて以下に説明する。
【００２６】
まず、図３に基づいてロール情報テーブル１９４、ユーザリスト情報テーブル１９５、ロール構成情報テーブル１９６およびアクセス制御テーブル１９９について説明する。
アクセス制御テーブル１９９（アクセス条件情報の一例）は、コンテンツを識別するコンテンツＩＤが設定される「コンテンツＩＤ」フィールドとロールを識別するロールＩＤが設定される「ロールＩＤ」フィールドとから構成され、コンテンツＩＤと当該コンテンツのアクセス条件となるロールのロールＩＤとが対応付けられている。
例えば、「コンテンツＩＤ」フィールドに“Ｃ００１”が設定されているレコードは、“Ｃ００１”で識別されるコンテンツが“Ｒ００１”で識別されるロールの論理式が表す属性値の組み合わせを有するユーザからのみアクセス可能であることを示している。
以下、「ロールの論理式が表す属性値の組み合わせを有するユーザ」を「ロールの条件を満たすユーザ」という。
「ロールＩＤ」には特定のロールの組み合わせを表現する論理式が設定されても構わない。また、“参照”、“追加”、“変更”など、アクセス可能な種別が設定される「アクセス種別」フィールドをアクセス制御テーブル１９９に含んでもよい。
【００２７】
ロール情報テーブル１９４（ロール情報の一例）は、「ロールＩＤ」フィールドと属性値の組み合わせを表現する論理式が設定される「ロール定義」フィールドとから構成され、ロールＩＤと論理式とが対応付けられている。
例えば、「ロールＩＤ」フィールドに“Ｒ００１”が設定されているレコードは、“Ｒ００１”で識別されるロールがアクセス条件である場合、アクセスユーザに必要な属性値が“社員”と“Ｏ０９９（営業部を示すＩＤ）”との２つである、ということを示している。
実施の形態においてロールは、ロール情報テーブル１９４の１レコードに相当する。
【００２８】
ユーザリスト情報テーブル１９５（ユーザリスト情報の一例）は、「ロールＩＤ」フィールドとユーザを識別するユーザＩＤが設定される「ユーザＩＤ」フィールドと組織を識別する組織ＩＤが設定される「組織ＩＤ」フィールドとから構成され、ロールＩＤと当該ロールの条件を満たすユーザのユーザＩＤとが対応付けられ、また、ロールＩＤと当該ロールの条件を満たす組織の組織ＩＤとが対応付けられている。
例えば、「ロールＩＤ」フィールドに“Ｒ００１”が設定されている３つのレコードは、“Ｒ００１”で識別されるロールの条件を満たすユーザおよび組織が“Ｕ０００１”で識別されるユーザ、“Ｕ０００３”で識別されるユーザおよび“Ｏ０９９［営業］”で識別される組織であることを示している。
実施の形態においてユーザリストは、同一のロールＩＤが設定されているユーザリスト情報テーブル１９５のレコード群に相当する。
同一のロールＩＤに対応付けられる複数のユーザＩＤおよび組織ＩＤは、１レコードに設定されても構わない。
【００２９】
ロール構成情報テーブル１９６（属性値リスト情報の一例）は、「ロールＩＤ」フィールドと属性値が設定される「構成情報」フィールドとから構成され、ロールＩＤと当該ロールが示す論理式に含まれる属性値とが対応付けられている。
例えば、「ロールＩＤ」フィールドに“Ｒ００１”が設定されている２つのレコードは、“Ｒ００１”で識別されるロールが示す論理式に“社員”と“Ｏ０９９［営業］”との２つの属性値が含まれることを示している。
実施の形態において属性値リストは、同一のロールＩＤが設定されているロール構成情報テーブル１９６のレコード群に相当する。
同一のロールＩＤに対応付けられる複数の属性値は、１レコードに設定されても構わない。
【００３０】
アクセス制御テーブル１９９、ロール情報テーブル１９４、ユーザリスト情報テーブル１９５およびロール構成情報テーブル１９６のレコードは、互いに「ロールＩＤ」フィールドが関連付けられている。
【００３１】
次に、図４に基づいてユーザ情報テーブル１９１、組織情報テーブル１９２および場所情報テーブル１９３について説明する。
ユーザ情報テーブル１９１（ユーザ属性情報の一例）は、「ユーザＩＤ」フィールドと役職名が設定される「役職」フィールドと所属部署を識別する所属ＩＤが設定される「所属」フィールドと資格名が設定される「資格」フィールドと勤務場所を識別する場所ＩＤが設定される「場所」フィールドとから構成され、ユーザの属性値（ユーザＩＤ、役職名、所属ＩＤ、資格名、場所ＩＤ）（以下、ユーザ情報という）が対応付けられている。
例えば、「ユーザＩＤ」フィールドに“Ｕ０００１”が設定されているレコードは、“Ｕ０００１”で識別されるユーザがＡ工場（“Ｌ００１”）に勤務する営業部（“Ｏ０９９”）の社員であり、資格Ａを持っていることを示している。
【００３２】
組織情報テーブル１９２は、「組織ＩＤ」フィールドと部署名が設定される「部署名」フィールドとから構成され、組織ＩＤと組織ＩＤで識別される部署の部署名とが対応付けられている。
例えば、「組織ＩＤ」フィールドに“Ｏ００１”が設定されているレコードは、“Ｏ００１”で識別される部署の部署名が“資材”部であることを示している。
【００３３】
場所情報テーブル１９３は、「場所ＩＤ」フィールドと勤務場所の名称が設定される「場所名」フィールドとから構成され、場所ＩＤと場所ＩＤで識別される勤務場所の名称とが対応付けられている。
例えば、「場所ＩＤ」フィールドに“Ｌ００１”が設定されているレコードは、“Ｌ００１”で識別される勤務場所の名称が“Ａ工場”であることを示している。
【００３４】
ユーザ情報テーブル１９１および組織情報テーブル１９２のレコードはユーザ情報テーブル１９１の「所属」フィールドと組織情報テーブル１９２の「組織ＩＤ」フィールドが関連付けられ、ユーザ情報テーブル１９１および場所情報テーブル１９３のレコードはユーザ情報テーブル１９１の「場所」フィールドと場所情報テーブル１９３の「場所ＩＤ」フィールドとが関連付けられている。
【００３５】
次に、アクセス制御方法（ロール情報追加）として、新規ロールを追加する方法について説明する。
ロールの管理者は、新規ロールを追加する場合、ロールを管理するアプリケーションを起動し、起動したアプリケーションに対して新規ロールを指定する。
アプリケーションは管理者に指定された新規ロールをロール操作ＡＰＩ１１０に入力し、ロール操作ＡＰＩ１１０はロールデータ操作プロキシ１２０を呼び出す。
呼び出されたロールデータ操作プロキシ１２０は、ロール操作ＡＰＩ１１０に入力された新規ロールをロール情報テーブル１９４に追加すると共に、新規ロールの条件を満たすユーザのユーザリストをユーザリスト情報テーブル１９５に追加する。
【００３６】
図５は、実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（ロール情報追加）を示すフローチャートである。
上記アクセス制御方法（ロール情報追加）におけるロールデータ操作プロキシ１２０の処理の詳細について、図５に基づいて以下に説明する。
以下に説明する処理はＣＰＵを用いて実行される。
【００３７】
＜Ｓ１１０＞
まず、ロール情報操作部１２１は、管理者に指定された新規ロールをロール操作ＡＰＩ１１０から入力する。新規ロールはロールＩＤと論理式とを含む。
【００３８】
＜Ｓ１２０＞
次に、ロール情報操作部１２１は、新規ロールをロール情報テーブル１９４に追加する。
このとき、ロール情報操作部１２１は新規ロールの追加をテーブル更新部１２２に命令し、テーブル更新部１２２は新規ロールの追加をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求し、ＲＤＢＭＳ１９０は新規ロールを設定したレコードを生成し、生成したレコードをロール情報テーブル１９４に追加する。
【００３９】
＜Ｓ１３０：ユーザリスト追加処理（ユーザリスト情報生成処理）＞
次に、ロール情報操作部１２１は、新規ロールのユーザリストをユーザリスト情報テーブル１９５に追加する。
例えば、“Ｒ００２”で識別される新規ロールの論理式が“課長＆Ｏ００１［資材］”である場合、図４に示すユーザ情報テーブル１９１に対して「役職」フィールドに“課長”が設定されていると共に「所属」フィールドに“Ｏ００１［資材］”が設定されているレコードが検索され、検索結果として抽出されたレコードから「ユーザＩＤ」フィールドに設定されている“Ｕ０００２”が取得される。そして、ユーザリスト情報テーブル１９５に対して「ロールＩＤ」フィールドに“Ｒ００２”が設定されると共に「ユーザＩＤ」フィールドに“Ｕ０００２”が設定されたレコードがユーザリストとして追加される。また、ユーザリスト情報テーブル１９５に対して「ロールＩＤ」フィールドに“Ｒ００２”が設定されると共に「組織ＩＤ」フィールドに“Ｏ００１［資材］”が設定されたレコードが追加される。
ユーザリスト追加処理（Ｓ１３０）の詳細については別途説明する。
【００４０】
＜Ｓ１４０＞
次に、ロール情報操作部１２１は、新規ロールの属性値リストを生成する。
このとき、ロール情報操作部１２１は、新規ロールの論理式を構文解析等して構成要素（属性値、論理演算子）に分解し、構成要素から論理演算子を除いて抽出される属性値をリストにした属性値リストを生成する。
例えば、新規ロールの論理式が“課長＆Ｏ００１［資材］”である場合、ロール情報操作部１２１は新規ロールの論理式を“課長”と“＆”と“Ｏ００１［資材］”とに分解し、“＆”を除いた“課長”と“Ｏ００１［資材］”とをリストにした属性値リストを生成する。
【００４１】
＜Ｓ１５０：属性値リスト情報生成処理＞
そして、ロール情報操作部１２１は、新規ロールの属性値リストをロール構成情報テーブル１９６に追加する。
このとき、ロール情報操作部１２１は、新規ロールの属性値リストの追加をテーブル更新部１２２に命令し、テーブル更新部１２２は新規ロールの属性リストの追加をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求し、ＲＤＢＭＳ１９０は新規ロールのロールＩＤと属性値リストに含まれる属性値とを設定したレコードを生成し、生成したレコードをロール構成情報テーブル１９６に追加する。
例えば、“Ｒ００２”で識別される新規ロールの属性値リストに“課長”と“Ｏ００１［資材］”とが含まれる場合、ロール構成情報テーブル１９６には、「ロールＩＤ」フィールドに“Ｒ００２”が設定されると共に「構成情報」フィールドに“課長”が設定されたレコードおよび「ロールＩＤ」フィールドに“Ｒ００２”が設定されると共に「構成情報」フィールドに“Ｏ００１［資材］”が設定されたレコードが追加される（図３参照）。
【００４２】
図６は、実施の形態１におけるユーザリスト追加処理（Ｓ１３０）のフローチャートである。
上記ユーザリスト追加処理（Ｓ１３０）の詳細について、図６に基づいて以下に説明する。
以下の処理はＣＰＵを用いて実行される。
【００４３】
＜Ｓ１３１＞
ロール情報操作部１２１は、新規ロールの論理式を構文解析等して、新規ロールの論理式に「役職」の属性値、「所属」の属性値、「資格」の属性値、「場所」の属性値が含まれるか解析する。
【００４４】
＜Ｓ１３２ａ＞
次に、ロール情報操作部１２１はＳ１３１での解析結果に基づいて新規ロールの論理式に「役職」の属性値が含まれるか判定する。
【００４５】
＜Ｓ１３２ｂ＞
新規ロールの論理式に「役職」の属性値が含まれる場合（ＹＥＳ）、ロール情報操作部１２１は、新規ロールの論理式に含まれる「役職」の属性値を有するユーザのユーザＩＤを取得し、取得したユーザＩＤをリストにして「役職」ユーザリストを生成する。
このとき、ロール情報操作部１２１は新規ロールの論理式に含まれる「役職」の属性値を有するユーザのユーザＩＤの取得をテーブル参照部１２３に命令し、テーブル参照部１２３は当該ユーザＩＤの取得をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０はユーザ情報テーブル１９１に対して「役職」フィールドの設定値が新規ロールの論理式に含まれる「役職」の属性値と一致するレコードを検索し、検索結果として抽出したレコードから「ユーザＩＤ」フィールドに設定されているユーザＩＤを取得し、取得したユーザＩＤをデータベースドライバ１３０を介してテーブル参照部１２３に応答する。テーブル参照部１２３は応答されたユーザＩＤをロール情報操作部１２１に出力し、ロール情報操作部１２１はテーブル参照部１２３から出力されたユーザＩＤをリストにして「役職」ユーザリストを生成する。
【００４６】
＜Ｓ１３３ａ＞
また、ロール情報操作部１２１はＳ１３１での解析結果に基づいて新規ロールの論理式に「所属」の属性値が含まれるか判定する。
【００４７】
＜Ｓ１３３ｂ＞
新規ロールの論理式に「所属」の属性値が含まれる場合、ロール情報操作部１２１は、新規ロールの論理式に含まれる「所属」の属性値を有するユーザのユーザＩＤを取得し、取得したユーザＩＤをリストにして「所属」ユーザリストを生成する。「所属」ユーザリストはＳ１３２ｂにおける「役職」ユーザリストと同様に生成される。
【００４８】
＜Ｓ１３４ａ＞
また、ロール情報操作部１２１はＳ１３１での解析結果に基づいて新規ロールの論理式に「資格」の属性値が含まれるか判定する。
【００４９】
＜Ｓ１３４ｂ＞
新規ロールの論理式に「資格」の属性値が含まれる場合、ロール情報操作部１２１は、新規ロールの論理式に含まれる「資格」の属性値を有するユーザのユーザＩＤを取得し、取得したユーザＩＤをリストにして「資格」ユーザリストを生成する。「資格」ユーザリストはＳ１３２ｂにおける「役職」ユーザリストと同様に生成される。
【００５０】
＜Ｓ１３５ａ＞
また、ロール情報操作部１２１はＳ１３１での解析結果に基づいて新規ロールの論理式に「場所」の属性値が含まれるか判定する。
【００５１】
＜Ｓ１３５ｂ＞
新規ロールの論理式に「場所」の属性値が含まれる場合、ロール情報操作部１２１は、新規ロールの論理式に含まれる「場所」の属性値を有するユーザのユーザＩＤを取得し、取得したユーザＩＤをリストにして「場所」ユーザリストを生成する。「場所」ユーザリストはＳ１３２ｂにおける「役職」ユーザリストと同様に生成される。
【００５２】
＜Ｓ１３６＞
次に、ロール情報操作部１２１は、生成された各ユーザリスト（「役職」、「所属」、「資格」、「場所」）に基づいて、新規ロールの条件を満たすユーザを一覧で示すユーザリスト（以下、新規ロールのユーザリストという）を生成する。
例えば、新規ロールの論理式が属性値の論理積で表される場合、ロール情報操作部１２１は、生成されたユーザリスト全てに共通して含まれるユーザＩＤをリストにして新規ロールのユーザリストを生成する。
【００５３】
＜Ｓ１３７＞
そして、ロール情報操作部１２１は、生成した新規ロールのユーザリストをユーザリスト情報テーブル１９５に追加する。
このとき、ロール情報操作部１２１は新規ロールのユーザリストの追加をテーブル更新部１２２に命令し、テーブル更新部１２２は新規ロールのユーザリストの追加をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０は、「ロールＩＤ」フィールドに新規ロールのロールＩＤを設定すると共に「ユーザＩＤ」フィールドに新規ロールのユーザリストに含まれるユーザＩＤを設定したレコードを生成し、生成したレコードをユーザリスト情報テーブル１９５に追加する。
【００５４】
上記アクセス制御方法（ロール情報追加）により、ロールベースアクセス制御装置１００は、アクセスが制限されるコンテンツへのアクセス要求の発生前に、ロール毎にユーザリストを示すユーザリスト情報テーブル１９５を予め生成することができる。
【００５５】
次に、アクセス制御方法（アクセス権限判定）として、コンテンツへのアクセス要求が発生した場合、アクセス要求したユーザのコンテンツへのアクセス権限を判定し、判定結果に応じてコンテンツにアクセスする方法について説明する。
アクセスが制限されているコンテンツへのアクセスをユーザから要求されたアプリケーションはアクセス要求したユーザのユーザＩＤとアクセス要求されたコンテンツのコンテンツＩＤとをロール操作ＡＰＩ１１０に入力し、ロール操作ＡＰＩ１１０はロールデータ操作プロキシ１２０を呼び出す。
呼び出されたロールデータ操作プロキシ１２０は、ＲＤＢＭＳ１９０に記憶されているアクセス制御テーブル１９９およびユーザリスト情報テーブル１９５に基づいて、ロール操作ＡＰＩ１１０に入力されたユーザＩＤで識別されるユーザがロール操作ＡＰＩ１１０に入力されたコンテンツＩＤで識別されるコンテンツにアクセスする権限を有するか否かを判定する。
ロール操作ＡＰＩ１１０はロールデータ操作プロキシ１２０の判定結果をアプリケーションに出力する。アプリケーションは、判定結果が“アクセス許可”を示す場合にはアクセス要求されたコンテンツを使用して所定の処理を実行し、判定結果が“アクセス不許可”を示す場合には所定のアクセスエラー処理（例えば、表示装置へのアクセスエラー表示）を実行する。
【００５６】
図７は、実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（アクセス権限判定）を示すフローチャートである。
上記アクセス制御方法（アクセス権限判定）におけるロールデータ操作プロキシ１２０の処理の詳細について、図７に基づいて以下に説明する。
以下に説明する処理はＣＰＵを用いて実行される。
【００５７】
＜Ｓ２１０＞
まず、アクセス制御部１２４は、アクセス要求したユーザのユーザＩＤ（以下、アクセスユーザＩＤという）とアクセス要求されたコンテンツのコンテンツＩＤ（以下、アクセスコンテンツＩＤという）とをロール操作ＡＰＩ１１０から入力する。
【００５８】
＜Ｓ２２０：アクセス条件ロール特定処理＞
次に、アクセス条件ロール特定部１２４ａは、アクセスコンテンツＩＤに対応するロールＩＤをアクセス制御テーブル１９９から取得する。
このとき、アクセス条件ロール特定部１２４ａはアクセスコンテンツＩＤに対応するロールＩＤの取得をテーブル参照部１２３に命令し、テーブル参照部１２３はロールＩＤの取得をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０は、アクセス制御テーブル１９９に対して「コンテンツＩＤ」フィールドの設定値がアクセスコンテンツＩＤと一致するレコードを検索し、検索結果として抽出したレコードの「ロールＩＤ」フィールドに設定されているロールＩＤをデータベースドライバ１３０を介してテーブル参照部１２３に応答する。テーブル参照部１２３は応答されたロールＩＤをアクセス条件ロール特定部１２４ａに出力する。
例えば、アクセス条件ロール特定部１２４ａは、アクセスコンテンツＩＤが“Ｃ００１”である場合、図３のアクセス制御テーブル１９９のレコードのうち「コンテンツＩＤ」フィールドに“Ｃ００１”が設定されているレコードの「ロールＩＤ」フィールドに設定されている“Ｒ００１”を取得する。
【００５９】
＜Ｓ２３０＞
次に、アクセス権限判定部１２４ｂは、アクセスコンテンツＩＤに対応するロールＩＤ（以下、アクセスロールＩＤという）で識別されるロールのユーザリスト（以下、アクセス権限ユーザリストという）をユーザリスト情報テーブル１９５から取得する。
このとき、アクセス権限判定部１２４ｂはアクセス権限ユーザリストの取得をテーブル参照部１２３に命令し、テーブル参照部１２３はアクセス権限ユーザリストの取得をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０は、ユーザリスト情報テーブル１９５に対して「ロールＩＤ」フィールドの設定値がアクセスロールＩＤと一致するレコードを検索し、検索結果として抽出したレコードの「ユーザＩＤ」フィールドに設定されているユーザＩＤを一覧にしたリストをデータベースドライバ１３０を介してテーブル参照部１２３に応答する。テーブル参照部１２３は応答されたユーザＩＤのリストをアクセス権限ユーザリストとしてアクセス権限判定部１２４ｂに出力する。
例えば、アクセス権限判定部１２４ｂは、アクセスロールＩＤが“Ｒ００１”である場合、図３のユーザリスト情報テーブル１９５のレコードのうち「ロールＩＤ」フィールドに“Ｒ００１”が設定されているレコードの「ユーザＩＤ」フィールドに設定されている“Ｕ０００１”と“Ｕ０００３”とを取得する。
【００６０】
＜Ｓ２４１：アクセス権限判定処理＞
次に、アクセス権限判定部１２４ｂは、アクセス権限ユーザリストにアクセスユーザＩＤが含まれるか判定する。
【００６１】
＜Ｓ２４２＞
Ｓ２４１においてアクセス権限ユーザリストにアクセスユーザＩＤが含まれる場合（ＹＥＳ）、アクセス権限判定部１２４ｂは、アクセス許可を示す判定結果をロール操作ＡＰＩ１１０に出力する。
【００６２】
＜Ｓ２４３＞
Ｓ２４１においてアクセス権限ユーザリストにアクセスユーザＩＤが含まれない場合（ＮＯ）、アクセス権限判定部１２４ｂは、アクセス不許可を示す判定結果をロール操作ＡＰＩ１１０に出力する。
【００６３】
上記アクセス制御方法（アクセス権限判定）により、ロールベースアクセス制御装置１００は、アクセスが制限されるコンテンツへのアクセス要求の発生時に、アクセス要求したユーザがコンテンツにアクセスする権限を有するか否かをユーザリスト情報テーブル１９５に基づいて少ない処理で判定することができる。
【００６４】
次に、アクセス制御方法（アクセス権限正当性判定）として、コンテンツへのアクセス権限が適切なユーザに与えられているか否かを確認する方法について説明する。
ロールの管理者は、コンテンツへのアクセス権限が適切なユーザに与えられているか確認する場合、ロールを管理するアプリケーションを起動し、起動したアプリケーションに対して確認対象のコンテンツに対応するロールのロールＩＤを指定する。
アプリケーションは管理者に指定されたロールＩＤをロール操作ＡＰＩ１１０に入力し、ロール操作ＡＰＩ１１０はロールデータ操作プロキシ１２０を呼び出し、ロールデータ操作プロキシ１２０はロール操作ＡＰＩ１１０に入力されたロールＩＤで識別されるロールのユーザリストをユーザリスト情報テーブル１９５から取得する。
ロール操作ＡＰＩ１１０はロールデータ操作プロキシ１２０により取得されたユーザリストをアプリケーションに出力し、アプリケーションはロール操作ＡＰＩ１１０から出力されたユーザリストを表示装置やプリンタ装置に出力する。
そして、管理者は、出力されたユーザリストを検証し、コンテンツへのアクセス権限が適切なユーザに与えられているか確認する。
【００６５】
図８は、実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（アクセス権限正当性判定）を示すフローチャートである。
上記アクセス制御方法（アクセス権限正当性判定）におけるロールデータ操作プロキシ１２０の処理の詳細について、図８に基づいて以下に説明する。
以下に説明する処理はＣＰＵを用いて実行される。
【００６６】
＜Ｓ３１０＞
まず、アクセス制御部１２４は、管理者に指定されたロールＩＤ（以下、指定ロールＩＤという）をロール操作ＡＰＩ１１０から入力する。
【００６７】
＜Ｓ３２０：ロール指定ユーザリスト取得処理＞
次に、アクセス条件ロール特定部１２４ａは、指定ロールＩＤで識別されるロールのユーザリスト（以下、指定ユーザリストという）をユーザリスト情報テーブル１９５から取得する。
このとき、アクセス制御部１２４は指定ユーザリストの取得をテーブル参照部１２３に命令し、テーブル参照部１２３は指定ユーザリストの取得をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０は、ユーザリスト情報テーブル１９５に対して「ロールＩＤ」フィールドの設定値が指定ロールＩＤと一致するレコードを検索し、検索結果として抽出したレコードの「ユーザＩＤ」フィールドに設定されているユーザＩＤを一覧にしたリストをデータベースドライバ１３０を介してテーブル参照部１２３に応答する。テーブル参照部１２３は応答されたユーザＩＤのリストを指定ユーザリストとしてアクセス制御部１２４に出力する。
例えば、アクセス制御部１２４は、指定ロールＩＤが“Ｒ００１”である場合、図３のユーザリスト情報テーブル１９５のレコードのうち「ロールＩＤ」フィールドに“Ｒ００１”が設定されているレコードの「ユーザＩＤ」フィールドに設定されている“Ｕ０００１”と“Ｕ０００３”とを取得する。
【００６８】
＜Ｓ３３０＞
そして、アクセス制御部１２４は、ユーザリスト情報テーブル１９５から取得した指定ユーザリストをロール操作ＡＰＩ１１０に出力する。
【００６９】
上記アクセス制御方法（アクセス権限正当性判定）により、ロールベースアクセス制御装置１００は、管理者がコンテンツへのアクセス権限が適切なユーザに与えられているか否かを確認するための情報（指定ユーザリスト）をユーザリスト情報テーブル１９５に基づいて少ない処理で出力することができる。
【００７０】
次に、アクセス制御方法（ユーザ情報追加）として、新入社員など新たに加わる新規ユーザのユーザ情報を追加する方法について説明する。
ロールの管理者は、新規ユーザのユーザ情報（新規ユーザが有する属性値を示す情報）を追加する場合、ロールを管理するアプリケーションを起動し、起動したアプリケーションに対して新規ユーザのユーザ情報を指定する。
アプリケーションは管理者に指定されたユーザ情報をロール操作ＡＰＩ１１０に入力し、ロール操作ＡＰＩ１１０はロールデータ操作プロキシ１２０を呼び出す。
呼び出されたロールデータ操作プロキシ１２０は、ロール操作ＡＰＩ１１０に入力されたユーザ情報をユーザ情報テーブル１９１に追加すると共に、ユーザ情報に含まれる属性値が論理式の条件を満たしているロールのユーザリスト情報テーブル１９５のユーザリストに新規ユーザを追加する。
【００７１】
図９は、実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（ユーザ情報追加）を示すフローチャートである。
上記アクセス制御方法（ユーザ情報追加）におけるロールデータ操作プロキシ１２０の処理の詳細について、図９に基づいて以下に説明する。
以下に説明する処理はＣＰＵを用いて実行される。
【００７２】
＜Ｓ４１０＞
まず、ユーザ情報操作部１２５は、管理者に指定された新規ユーザのユーザ情報（以下、新規ユーザ情報という）をロール操作ＡＰＩ１１０から入力する。新規ユーザ情報は新規ユーザが有する各属性値（ユーザＩＤ、役職名、組織ＩＤ、資格名および場所ＩＤ）を示す。
【００７３】
＜Ｓ４２０＞
次に、ユーザ情報操作部１２５は、入力した新規ユーザ情報をユーザ情報テーブル１９１に追加する。
このとき、ユーザ情報操作部１２５は新規ユーザ情報の追加をテーブル更新部１２２に命令し、テーブル更新部１２２は新規ユーザ情報の追加をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求し、ＲＤＢＭＳ１９０は新規ユーザ情報に含まれる各属性値を設定したレコードを生成し、生成したレコードをユーザ情報テーブル１９１に追加する。
【００７４】
＜Ｓ４３０＞
次に、ユーザ情報操作部１２５は、新規ユーザ情報から新規ユーザの属性値を取得する。
【００７５】
＜Ｓ４４０：ユーザ属性ロール特定処理＞
次に、ユーザ情報操作部１２５は、新規ユーザの属性値が条件を満たす論理式を有するロール（以下、新規ユーザ該当ロールという）を特定する。
このとき、ユーザ情報操作部１２５は新規ユーザ該当ロールの特定をテーブル参照部１２３に命令し、テーブル参照部１２３は新規ユーザ該当ロールの特定をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０は、ロール構成情報テーブル１９６の全レコードを「ロールＩＤ」フィールドに設定されているロールＩＤが同じであるレコード群毎に取得し、レコード群の各レコードの「構成情報」フィールドに設定されている属性値が新規ユーザ属性値に全て含まれるか判定する。そして、ＲＤＢＭＳ１９０は、各レコードの「構成情報」フィールドに設定されている属性値が新規ユーザ属性値に全て含まれるレコード群の「ロールＩＤ」フィールドに設定されているロールＩＤをデータベースドライバ１３０を介してテーブル参照部１２３に応答する。テーブル参照部１２３は応答されたロールＩＤを新規ユーザ該当ロールのロールＩＤとしてユーザ情報操作部１２５に出力する。
例えば、ユーザ情報操作部１２５は、新規ユーザ属性値が“課長”、“Ｏ００１［資材］”、“Ｂ”および“Ｌ００２”であり、ロール構成情報テーブル１９６のレコードが図３の設定値を示す場合、新規ユーザ属性値に“課長”と“Ｏ００１［資材］”とが含まれるため、ロールＩＤ“Ｒ００２”で識別されるロールを新規ユーザ該当ロールと特定する。
【００７６】
＜Ｓ４５０：ユーザリスト内ユーザ追加処理＞
そして、ユーザ情報操作部１２５は、新規ユーザ該当ロールのユーザリスト情報テーブル１９５のユーザリストに新規ユーザを追加する。
このとき、ユーザ情報操作部１２５は新規ユーザ該当ロールのユーザリストへの新規ユーザの追加をテーブル更新部１２２に命令し、テーブル更新部１２２は当該新規ユーザの追加をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０は、ユーザリスト情報テーブル１９５に対して「ロールＩＤ」フィールドに新規ユーザ該当ロールのロールＩＤを設定すると共に「ユーザＩＤ」フィールドに新規ユーザ情報に含まれるユーザＩＤを設定したレコードを追加する。
例えば、新規ユーザ該当ロールのロールＩＤが“Ｒ００２”であり、新規ユーザのユーザＩＤが“Ｕ０００２”である場合、ユーザリスト情報テーブル１９５には「ロールＩＤ」フィールドに“Ｒ００２”が設定されると共に「ユーザＩＤ」フィールドに“Ｕ０００２”が設定されたレコードが追加される（図３参照）。
【００７７】
上記アクセス制御方法（ユーザ情報追加）により、ロールベースアクセス制御装置１００は、アクセスが制限されるコンテンツへのアクセス要求の発生前に、新規ユーザ該当ロールのユーザリストに新規ユーザを予め追加することができる。
【００７８】
次に、アクセス制御方法（ユーザ情報削除）として、退職者など居なくなった旧ユーザのユーザ情報を削除する方法について説明する。
ロールの管理者は、旧ユーザのユーザ情報を削除する場合、ロールを管理するアプリケーションを起動し、起動したアプリケーションに対して旧ユーザのユーザＩＤを指定する。
アプリケーションは管理者に指定されたユーザＩＤをロール操作ＡＰＩ１１０に入力し、ロール操作ＡＰＩ１１０はロールデータ操作プロキシ１２０を呼び出す。
呼び出されたロールデータ操作プロキシ１２０は、ロール操作ＡＰＩ１１０に入力されたユーザＩＤで識別されるユーザのユーザ情報をユーザ情報テーブル１９１から削除すると共に、当該ユーザＩＤをユーザリスト情報テーブル１９５のユーザリストから削除する。
【００７９】
図１０は、実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（ユーザ情報削除）を示すフローチャートである。
上記アクセス制御方法（ユーザ情報削除）におけるロールデータ操作プロキシ１２０の処理の詳細について、図１０に基づいて以下に説明する。
以下に説明する処理はＣＰＵを用いて実行される。
【００８０】
＜Ｓ５１０＞
まず、ユーザ情報操作部１２５は、管理者に指定された旧ユーザのユーザＩＤ（以下、旧ユーザＩＤという）をロール操作ＡＰＩ１１０から入力する。
【００８１】
＜Ｓ５２０＞
次に、ユーザ情報操作部１２５は、入力した旧ユーザＩＤで識別される旧ユーザのユーザ情報をユーザ情報テーブル１９１から削除する。
このとき、ユーザ情報操作部１２５は旧ユーザＩＤで識別される旧ユーザのユーザ情報の削除をテーブル更新部１２２に命令し、テーブル更新部１２２は当該ユーザ情報の削除をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０は、ユーザ情報テーブル１９１に対して「ユーザＩＤ」フィールドに設定されているユーザＩＤが旧ユーザＩＤと一致するレコードを検索し、検索結果として抽出したレコードを削除する。
【００８２】
＜Ｓ５３０＞
そして、ユーザ情報操作部１２５は、旧ユーザＩＤをユーザリスト情報テーブル１９５のユーザリストから削除する。
このとき、ユーザ情報操作部１２５はユーザリスト情報テーブル１９５のユーザリストからの旧ユーザＩＤの削除をテーブル参照部１２３に命令し、テーブル参照部１２３は当該旧ユーザＩＤの削除をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０は、ユーザリスト情報テーブル１９５に対して「ユーザＩＤ」フィールドに設定されているユーザＩＤが旧ユーザＩＤと一致するレコードを検索し、検索結果として抽出したレコードを削除する。
【００８３】
上記アクセス制御方法（ユーザ情報削除）により、ロールベースアクセス制御装置１００は、ユーザ情報を削除する必要が生じても、ユーザリスト情報テーブル１９５に設定されるユーザリストの整合性を確保することができる。
【００８４】
次に、アクセス制御方法（ユーザ情報変更）として、社員の異動や組織の変更に伴ってユーザ情報を変更する方法について説明する。
ロール管理者は、現ユーザのユーザ情報を変更する場合、ロールを管理するアプリケーションを起動し、起動したアプリケーションに対して現ユーザの新しいユーザ情報を指定する。
アプリケーションは管理者に指定された新しいユーザ情報をロール操作ＡＰＩ１１０に入力し、ロール操作ＡＰＩ１１０はロールデータ操作プロキシ１２０を呼び出す。
呼び出されたロールデータ操作プロキシ１２０は、ロール操作ＡＰＩ１１０に入力された新しいユーザ情報でユーザ情報テーブル１９１の現在のユーザ情報を更新すると共に、更新後のユーザ情報に合わせてユーザリスト情報テーブル１９５のユーザリストを変更する。
【００８５】
図１１は、実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（ユーザ情報変更）を示すフローチャートである。
上記アクセス制御方法（ユーザ情報変更）におけるロールデータ操作プロキシ１２０の処理の詳細について、図１１に基づいて以下に説明する。
以下に説明する処理はＣＰＵを用いて実行される。
【００８６】
＜Ｓ６１０＞
まず、ユーザ情報操作部１２５は、管理者に指定された新しいユーザ情報をロール操作ＡＰＩ１１０から入力する。新しいユーザ情報はユーザＩＤと変更が生じた属性の新しい属性値（役職名、組織ＩＤ、資格名または場所ＩＤ）とを含む。ユーザＩＤの変更は無いものとする。
【００８７】
＜Ｓ６２０＞
次に、ユーザ情報操作部１２５は、新しいユーザ情報でユーザ情報テーブル１９１の現在のユーザ情報を更新する。
このとき、ユーザ情報操作部１２５は新しいユーザ情報への更新をテーブル更新部１２２に命令し、テーブル更新部１２２は新しいユーザ情報への更新をデータベースドライバ１３０を介してＲＤＢＭＳ１９０に要求する。ＲＤＢＭＳ１９０は、ユーザ情報テーブル１９１に対して「ユーザＩＤ」フィールドに設定されているユーザＩＤが新しいユーザ情報に含まれるユーザＩＤと一致するレコードを検索し、検索結果として抽出したレコードの各フィールドの設定値を新しいユーザ情報に含まれる属性値で更新する。
【００８８】
＜Ｓ６３０＞
次に、ユーザ情報操作部１２５は、前記アクセス制御方法（ユーザ情報削除）のＳ５３０と同様に、更新されたユーザ情報に含まれるユーザＩＤをユーザリスト情報テーブル１９５のユーザリストから削除する。
【００８９】
＜Ｓ６４０＞
次に、ユーザ情報操作部１２５は、前記アクセス制御方法（ユーザ情報追加）のＳ４３０と同様に、更新されたユーザ情報から属性値を取得する。
【００９０】
＜Ｓ６５０＞
次に、ユーザ情報操作部１２５は、前記アクセス制御方法（ユーザ情報追加）のＳ４４０と同様に、更新されたユーザ情報から取得された属性値が条件を満たす論理式を有するロールを特定する。
【００９１】
＜Ｓ６６０：ユーザリスト情報生成処理＞
そして、ユーザ情報操作部１２５は、前記アクセス制御方法（ユーザ情報追加）のＳ４５０と同様に、Ｓ６５０で特定したロールのユーザリスト情報テーブル１９５のユーザリストに、ユーザ情報が更新されたユーザを追加する。
【００９２】
上記アクセス制御方法（ユーザ情報変更）により、ロールベースアクセス制御装置１００は、ユーザ情報を変更する必要が生じても、ユーザリスト情報テーブル１９５に設定されるユーザリストの整合性を確保することができる。
【００９３】
実施の形態１では、以下のようなロールベースアクセス制御装置１００について説明した。
ロールベースのアクセス制御技術において、ロールベースアクセス制御装置１００は利用者や組織の属性値を用いた論理式により定義された拡張ロールに従ってアクセス制御を行うシステムを構成し、ロールベースアクセス制御装置１００のロール操作ＡＰＩ１１０はロール情報を操作する機能を有するロールデータ操作プロキシ１２０を有する。
ロールデータ操作プロキシ１２０は、プロキシ機能として、アクセス権限の判定処理を性能向上させるために、拡張ロール情報を事前に解釈してユーザリストに展開する機能を有する。
ロールデータ操作プロキシ１２０は、ユーザが新たに追加された場合にユーザの属するロールの判定を高速化するために、拡張ロールに定義されている論理式を論理式の構成情報（属性値）に展開する機能を有する。
ロールベースアクセス制御装置１００は、拡張ロールに関連付けられているユーザ及び組織の属性値をロールの生成時にユーザ及び組織のリストへ展開することにより、拡張ロールの課題点であるコンテンツへのアクセス発生時に行うアクセス権限チェックの処理負荷を軽減することが可能となる。
【図面の簡単な説明】
【００９４】
【図１】実施の形態１におけるロールベースアクセス制御装置１００の構成図。
【図２】実施の形態１におけるロールベースアクセス制御装置１００のハードウェア資源の一例を示す図。
【図３】実施の形態１におけるＲＤＢＭＳ１９０に記憶されるテーブルの具体例を示す図。
【図４】実施の形態１におけるＲＤＢＭＳ１９０に記憶されるテーブルの具体例を示す図。
【図５】実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（ロール情報追加）を示すフローチャート。
【図６】実施の形態１におけるユーザリスト追加処理（Ｓ１３０）のフローチャート。
【図７】実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（アクセス権限判定）を示すフローチャート。
【図８】実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（アクセス権限正当性判定）を示すフローチャート。
【図９】実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（ユーザ情報追加）を示すフローチャート。
【図１０】実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（ユーザ情報削除）を示すフローチャート。
【図１１】実施の形態１におけるロールデータ操作プロキシ１２０のアクセス制御方法（ユーザ情報変更）を示すフローチャート。
【符号の説明】
【００９５】
１００  ロールベースアクセス制御装置、１１０  ロール操作ＡＰＩ、１２０  ロールデータ操作プロキシ、１２１  ロール情報操作部、１２２  テーブル更新部、１２３  テーブル参照部、１２４  アクセス制御部、１２４ａ  アクセス条件ロール特定部、１２４ｂ  アクセス権限判定部、１２５  ユーザ情報操作部、１３０  データベースドライバ、１９０  ＲＤＢＭＳ、１９１  ユーザ情報テーブル、１９２  組織情報テーブル、１９３  場所情報テーブル、１９４  ロール情報テーブル、１９５  ユーザリスト情報テーブル、１９６  ロール構成情報テーブル、１９９  アクセス制御テーブル、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2010117885.tif 000003
【図２】
2010117885.tif 000004
【図３】
2010117885.tif 000005
【図４】
2010117885.tif 000006
【図５】
2010117885.tif 000007
【図６】
2010117885.tif 000008
【図７】
2010117885.tif 000009
【図８】
2010117885.tif 000010
【図９】
2010117885.tif 000011
【図１０】
2010117885.tif 000012
【図１１】
2010117885.tif 000013