3.10.3 文書空間オブジェクトごとのアクセス制御情報の種類

ここでは,アクセス制御情報のうち,文書空間オブジェクトごとに設定するアクセス制御情報について説明します。文書空間オブジェクトごとに設定するアクセス制御情報の種類を次に示します。

文書空間オブジェクトごとのアクセス制御情報は,ACFlagまたはACLとして設定します。文書空間オブジェクトごとに設定されたアクセス制御情報を管理するための情報も,ACLとして設定します。また,文書空間オブジェクトごとに設定する所有者およびプライマリグループのアクセス権は,ACFlagとして設定します。

ACFlagとして設定する情報,ACLとして設定する情報について説明します。

<この項の構成>
(1) ACFlagとして設定する情報
(2) ACLとして設定する情報

(1) ACFlagとして設定する情報

ACFlagは,文書空間オブジェクトの所有者,プライマリグループおよびすべてのユーザという区切りで,それぞれにパーミッションを設定できるアクセス制御情報です。

ACFlagは,文書空間オブジェクトのプロパティとして直接設定します。したがって,ACLを使用したアクセス権の判定に比べて,高速なアクセス権の判定ができるのが特長です。ACFlagは,次の三つのプロパティで表されます。

プロパティの詳細については,「3.10.5(2) アクセス制御情報を設定するためのプロパティ」を参照してください。

ACFlagによってアクセス権を設定できる所有者,プライマリグループおよびすべてのユーザについて説明します。

所有者
アクセス制御機能を使用している場合,文書空間オブジェクトには必ず所有者が存在します。所有者とは,文書空間オブジェクトに設定されているアクセス制御情報を変更できるユーザです。文書空間オブジェクト作成時には,作成したユーザが所有者として登録されます。所有者以外のユーザがアクセス制御情報を変更できるようにしたい場合,まず所有者によってアクセス制御情報を変更する権利を与える必要があります。また,所有者は,所有者自身を変更できます。
ACFlagでは,アクセス制御情報と所有者の変更以外に,所有者が実行できる操作を設定できます。
所有者は,dbrProp_OwnerIdプロパティに設定されたユーザ識別子によって表されます。dbrProp_OwnerIdプロパティの値は,文書空間オブジェクト作成時に設定されます。所有者またはセキュリティ管理者は,dbrProp_OwnerIdプロパティの値を変更することによって,所有者を変更できます。なお,所有者がアクセス制御情報やセキュリティACLの値を参照する場合は,基本プロパティ参照権が必要です。セキュリティACLについては,「3.10.4 アクセス制御情報の管理」を参照してください。
プライマリグループ
ACFlagでパーミッションを設定してアクセス権を与える一つのグループです。プライマリグループは,dbrProp_PrimaryGroupIdプロパティに設定されたグループ識別子によって表されます。文書空間オブジェクト作成時にこのプロパティに設定される値は,ユーザが文書空間にログインした時に使用したユーザ管理システムによって異なります。ユーザ管理システムがLDAP対応のディレクトリサービスの場合は,文書空間オブジェクト作成時には設定されません。文書空間オブジェクトに頻繁にアクセスするグループのグループ識別子をユーザが設定します。UNIXのパスワードファイルの場合は,文書空間オブジェクト作成時に所有者が所属するグループ(UNIXのパスワードファイルのグループ識別子)が設定されます。
すべてのユーザ
所有者,プライマリグループに所属するユーザ以外のすべてのユーザです。

ACFlagの概要を次の図に示します。

図3-48 ACFlagの概要

[図データ]

この例では,「ユーザA」が作成した「文書A」をACFlagによってアクセス制御する場合のパーミッションの設定方法を示しています。このようにACFlagを設定すると,所有者である「ユーザA」にすべてのアクセス権,プライマリグループに設定されている「営業第2グループ」に所属するユーザに基本プロパティ更新権(基本プロパティ参照権を含む),そのほかのすべてのユーザに基本プロパティ参照権だけを設定するというアクセス制御が可能になります。

(2) ACLとして設定する情報

ACLは,任意のユーザまたは任意のグループごとにパーミッションを設定してアクセス権を与えるためのリストです。

ACLの概要を次の図に示します。

図3-49 ACLの概要

[図データ]

この例のように,ACLには,複数のACE(アクセス制御エレメント)を設定できます。ACEは64個まで設定できます。個々のACEには「アクセス権を与えるユーザまたはグループ」と「アクセスの範囲を決定するパーミッション」を対にして設定します。アクセス権を与えるユーザまたはグループのことを特にサブジェクトといいます。この例では,サブジェクトとしてユーザA,ユーザB,営業2課および経理1課を指定して,それぞれにパーミッションを設定しています。

ACLを使用すると,複数のユーザやグループに対して個別にパーミッションを設定してアクセス権を与えられますが,アクセス権の判定には,ACFlagの場合よりも時間がかかります。

DocumentBrokerでは,目的に応じて次の2種類のACLを使用して,アクセス制御情報を設定できます。

また,次のACLを使用して,アクセス制御情報に対する操作を許可するアクセス制御情報変更権を管理できます。

ここでは,ローカルACLおよびパブリックACLについて説明します。アクセス制御情報変更権およびセキュリティACLについては,「3.10.4 アクセス制御情報の管理」を参照してください。

(a) ローカルACL

文書空間オブジェクトごとのアクセス権を設定するためのACLです。個々の文書空間オブジェクトのdbrProp_ACLプロパティとして設定します。図3-49で示したように,ローカルACLは,ACEを表すオブジェクトを構成要素とした,VARRAY型のプロパティです。dbrProp_ACLプロパティについては,「3.10.5(2) アクセス制御情報を設定するためのプロパティ」を参照してください。

(b) パブリックACL

アクセス制御情報の一括管理に使用できるACLです。パブリックACLを使用すると,複数の文書空間オブジェクト間でアクセス制御情報を共有できます。

パブリックACLは,ACLを共有するために使用する独立した文書空間オブジェクトです。共有したいACLをパブリックACLに設定して,文書やフォルダなどのほかの文書空間オブジェクトから参照させます。これによって,パブリックACLに設定したACLの値を,複数の文書空間オブジェクトに一括して適用させることができます。パブリックACLは一つの文書空間オブジェクトに対して10個まで設定できます。

なお,文書やフォルダを表す文書空間オブジェクトからパブリックACLを参照することをバインドといいます。また,パブリックACLのバインドを解除することをアンバインドといいます。

パブリックACLの概要を次の図に示します。

図3-50 パブリックACLの概要

[図データ]

この例では,作成中の段階には文書Aと文書Bから「原稿作成用パブリックACL」をバインドさせて,原稿を公開する段階になった時点で,「公開用パブリックACL」をバインドさせるように切り替えてアクセス制御しています。

パブリックACLは,複数の文書空間オブジェクトに同じACLを設定して,一括してアクセス制御する場合に便利です。また,パブリックACLのローカルACLの設定を更新すると,そのパブリックACLをバインドしているすべての文書空間オブジェクトに更新が反映されるため,グループ名やグループを構成するメンバの変更が頻繁にある場合の保守が容易になります。

パブリックACLは文書空間オブジェクトとして作成します。パブリックACLの文書空間オブジェクトクラスは,パブリックACLクラスです。パブリックACLとして,複数の文書空間オブジェクト間で共有するために設定するアクセス制御情報は,パブリックACLのdbrProp_ACLプロパティとして設定します。

パブリックACLにユーザ定義プロパティを設定して,検索で使用できます。パブリックACLのプロパティについては,「3.10.5(4) パブリックACLのプロパティ」を参照してください。

なお,パブリックACLには,自身をアクセス制御するためのACFlagやローカルACLはありません。パブリックACLに対するアクセス権を次の表に示します。

表3-14 パブリックACLに対するアクセス権

実行できる操作対 象
作成文書空間にオブジェクト作成権限を持つユーザ
参照すべてのユーザ
ローカルACLとユーザ定義プロパティの変更セキュリティACLでアクセス制御情報変更権が与えられているユーザ,パブリックACLの所有者およびセキュリティ管理者
セキュリティACLの変更パブリックACLの所有者およびセキュリティ管理者
削除パブリックACLの所有者およびセキュリティ管理者