2.12 アクセス制御

この節では,Java クラスライブラリでのアクセス制御の概念について説明します。

ユーザごとに文書やフォルダに対するアクセスの範囲を限定することをアクセス制御といいます。Java クラスライブラリで作成,管理する文書空間オブジェクトは,アクセス制御をしない状態では,DocumentBrokerサーバにログインしたユーザであれば,だれでも参照したり更新したりできます。例えば,あるユーザが作成した文書を登録した場合,ほかのユーザがその文書を自由に参照したり,更新したり,削除したりできます。これでは,文書空間オブジェクトに対して,作成者以外のユーザが悪意を持って変更したり,誤って削除してしまったりすることが考えられます。

こうしたことを防ぐために,文書空間オブジェクトに対して,「どのユーザはどの操作が可能」というアクセスの範囲を限定する情報を設定しておく必要があります。Java クラスライブラリでは,文書空間オブジェクトごとに,「だれに対して」「どのような操作を許可するか」というアクセス制御情報を設定できます。

また,ユーザがDocumentBrokerサーバにログインした時,「ログインしたユーザがだれなのか」というユーザ情報が生成されます。ユーザが文書やフォルダに対する操作を要求すると,DocumentBrokerサーバは,操作を要求したユーザのユーザ情報,要求された操作の種類および操作対象のオブジェクトに設定されているアクセス制御情報を比較します。比較した結果,ユーザが操作対象のオブジェクトに,要求した操作を実行する権利(アクセス権)があると判定できた場合だけ,要求を処理します。操作を要求したユーザに要求した範囲のアクセス権がない場合は,エラーを返却して要求を処理しません。アクセス制御の概要を次の図に示します。

図2-11 アクセス制御の概要

[図データ]

この例では,文書Xに対して,「ユーザAからは参照と更新ができて,ユーザBからは参照だけができるようにする」というアクセス制御情報が設定されています。ユーザAが文書Xを更新しようとすると,ユーザAのユーザ情報と文書Xのアクセス制御情報が比較され,文書Xの更新についてユーザAのアクセス権が判定されます。文書Xのアクセス制御情報には,ユーザAの「参照・更新」のアクセス権が設定されているため,アクセス権の判定の結果,ユーザAによる文書Xの更新が許可されて,文書Xが更新されます。