DocumentBrokerのアクセス制御は,ユーザが文書空間にログインしたときに生成されるユーザ情報と,アクセス制御の対象であるDocumentBrokerオブジェクトに付与されたアクセス制御情報を使用してアクセス制御を実行します。
アクセス制御対象オブジェクトに設定されたアクセス制御情報には,次に示す3種類の情報があります。
これらの情報は,組み合わせて使用できます。DocumentBrokerのアクセス制御情報の設定例を次の図に示します。
図2-25 DocumentBrokerのアクセス制御情報の設定例
(1) アクセス制御フラグ(ACFlag)
アクセス制御フラグ(以降,ACFlagと呼びます)は,アクセス制御対象オブジェクトのプロパティとして設定します。ACFlagを使用することで次のユーザに対してアクセス制御対象オブジェクトのアクセス権を設定できます。
ACFlagを使用すると,グループに対してアクセス権を設定できます。図2-25では,「文書に対して,文書の所有者は参照と更新が可能であり,グループは参照が可能である」というアクセス権を設定しています。このアクセス権の場合,全ユーザに対してはアクセス権を与えていないので,グループに所属していないユーザは文書を参照できません。
(2) アクセス制御リスト(ACL)
アクセス制御リスト(以降,ACLと呼びます)は,任意のユーザまたは任意のグループごとにパーミッションを設定してアクセス権を与えるためのリストです。アクセス制御対象オブジェクトに付与されるアクセス制御情報の一部として使用されます。ACLを使用すると,ユーザ単位,およびグループ単位に異なるアクセス権を設定できます。図2-25では,「文書に対して,ユーザ『Tanaka』は文書の参照と更新が可能であり,グループ『2G』は参照が可能で,ユーザ『Suzuki』は参照と更新が可能である」というアクセス権を設定しています。
ACLは,設定されるオブジェクトや用途によって,次の3種類に分けられます。
ここでは,ACLに設定するACEと,ローカルACLおよびパブリックACLについて説明します。セキュリティACLについては,「(3) セキュリティACL」で説明します。
(a) アクセス制御エレメント(ACE)
ACLは,アクセス制御エレメント(以降,ACEと呼びます)のリストです。ACLとACEの関係を次の図に示します。なお,一つのACLが保持できるACEの個数は,64個までです。
図2-26 ACLとACEの関係
ACEには,ユーザ単位,およびグループ単位に許可する操作(例えば,参照や更新など)を設定します。ACEに設定する項目を説明します。
(b) ローカルACL
アクセス制御対象オブジェクトごとのアクセス権を設定するためのACLです。ローカルACLは,アクセス制御対象オブジェクトのプロパティとして,アクセス制御対象オブジェクトに一つだけ設定します。
(c) パブリックACL
複数のオブジェクトに対して同じアクセス制御情報を設定したい場合に使用するACLです。パブリックACLを使用すると,複数の文書やコンテナの間で,同じアクセス制御情報を共有できます。
パブリックACLは,独立したオブジェクトとして文書空間に作成しておきます。このオブジェクトに共有したいACLを設定し,複数のオブジェクトから参照することで,ACLを共有できます。
パブリックACLの設定例を次の図に示します。
図2-27 パブリックACLの設定例
この図では,「設計書1」および「報告書1」が,パブリックACLを参照して同じアクセス制御情報を共有しています。また,「報告書1」は,ローカルACLも参照しています。このように,アクセス制御対象オブジェクトのACLとパブリックACLを混在させて使用することもできます。
パブリックACLは一つのアクセス制御対象オブジェクトに対して10個まで設定できます。また,パブリックACLは,パブリックACL自身の所有者を持ち,パブリックACLのプロパティに値を設定できます。なお,文書やコンテナを表すオブジェクトからパブリックACLを参照することを,バインドといいます。また,パブリックACLのバインドを解除することを,アンバインドといいます。
パブリックACLは,使用する場合に応じて文書に設定できます。例えば,文書の審査,承認の各段階で担当者が決まっている場合などでは,各担当者が持つ権利(参照権や更新権など)を記載したパブリックACLをあらかじめ作成しておくことができます。したがって,パブリックACLの運用に当たっては,その用途を検討して,あらかじめ設計しておくことをお勧めします。また,パブリックACLは複数のオブジェクトで共有されますので,作成時に明確な運用方法を決めてからアクセス制御情報を設定してください。
(3) セキュリティACL
DocumentBrokerのアクセス制御機能は,ACFlagやACLに設定したアクセス制御情報を使用してアクセス制御を実行します。オブジェクトに対してアクセス権を持たないユーザでも,ACFlagやACLを変更すればアクセス権を取得できます。このため,ACFlagやACLは,適切な権利を持つユーザだけが変更でき,それ以外のユーザからは変更されないように制御する必要があります。
アクセス制御情報を変更するための権利を,アクセス制御情報変更権といいます。アクセス制御情報変更権は,各オブジェクトのプロパティに,ACLとして設定されています。このACLをセキュリティACLといいます。
一つのセキュリティACLが保持できるACEの個数は,64個までです。また,セキュリティACLに設定できるパーミッションは,「CHANGE_PERM(アクセス制御情報変更権)」です。
図2-25で,アクセス制御対象オブジェクトの所有者である「Abe」は,セキュリティACLで「Tanaka」に対して「CHANGE_PERM」を与えています。これによって,「Tanaka」は,アクセス制御対象オブジェクトのアクセス制御情報(ACL,ACFlag)を変更できます。