ここでは,アクセス制御機能の概要について説明します。
DocumentBrokerで作成,管理している文書やコンテナなどのオブジェクトは,そのままの状態では,DocumentBrokerにログインしたユーザであれば,だれでも参照したり更新したりできます。例えば,あるユーザが作成した文書をDocumentBrokerに登録した場合に,ほかのユーザが自由に参照したり,更新したり,削除したりできます。これでは,DocumentBroker上の文書やコンテナに対して,作成者以外のユーザが悪意を持って変更したり,誤って削除してしまったりすることが考えられます。
こうしたことを防ぐためには,DocumentBrokerによって,オブジェクトに対して「どのユーザはどの操作が可能」という情報を設定しておく必要があります。例えば,ユーザAが作成した「文書X」に対して,「文書Xは,ユーザA以外からは参照だけできて,更新,削除はできないようにしたい」としたり,「文書Xは特定のグループに所属する人だけに参照,更新ができて,それ以外の人には参照もできないようにしたい」としたりしておきます。これによって,文書やコンテナにアクセスするユーザを制限できます。これを実現する機能を,アクセス制御機能といいます。また,それぞれのユーザが持つ,オブジェクトにアクセスするための権限をアクセス権といいます。
アクセス制御機能の概要を次の図に示します。ここでは,文書Xに対して,ユーザAとグループGだけが参照できるように,DocumentBrokerによってアクセス制御されています。
図3-73 アクセス制御の概要(文書XはユーザAとグループGだけが参照できるようにする)
ここでは,DocumentBrokerのアクセス制御機能の仕組みについて説明します。
DocumentBrokerでは,ユーザがログインしたときにログインユーザ情報を作成します。ログインユーザ情報には,ログインユーザのユーザ識別子やグループ識別子,そのユーザが持つ特権やそのユーザの権限が設定されます。
また,それぞれのオブジェクトには,そのオブジェクトがだれにどのような操作を許可するかについて表す情報が設定されています。
DocumentBrokerでは,ユーザ情報と,オブジェクトに設定されている情報を基に,ユーザのアクセス権を判定します。
これらのアクセス権判定に使用するための情報のことを,アクセス制御情報といいます。
DocumentBrokerによるアクセス制御の概要を次の図に示します。
図3-74 DocumentBrokerによるアクセス制御の概要
図3-74では,ユーザA(所属しているグループはグループG)が,文書を更新する場合について説明しています。説明の番号は,図3-74の番号と対応しています。なお,説明のうち,ゴシック体の操作はユーザが明示的に実行した操作を,それ以外はDocumentBrokerの内部で実行されている処理を示します。
ここでは,アクセス制御情報の種類について説明します。
アクセス制御情報とは,メソッドを実行したときに,DocumentBrokerがアクセス権判定をするために必要な情報のことです。
アクセス制御情報には,次の情報があります。
アクセス制御情報は,「だれに」「どの操作を」許可するかを示す情報です。この情報は,「アクセスを許可する対象(主体)」と「対象に対して許可する操作」の組み合わせで構成されます。
なお,アクセスを許可する対象を,サブジェクトといいます。許可する操作の種別を表す基本単位をパーミッションといいます。