3.15.6 アクセス制御情報を表すプロパティの詳細

ここでは,アクセス制御情報を表すプロパティの詳細について説明します。

それぞれのアクセス制御情報は,オブジェクトのプロパティの値として設定されます。このため,アクセス制御情報を取得,設定および変更する場合は,プロパティを操作するメソッドを使用します。プロパティを操作するメソッドについては,「2.6.6 プロパティの操作」を参照してください。

アクセス制御情報は,サブジェクトを示すプロパティと,パーミッションを示すプロパティの組み合わせによって表されます。

<この項の構成>
(1) ACFlagで設定するサブジェクトとパーミッションの組み合わせ
(2) ACLで設定するサブジェクトとパーミッションの組み合わせ
(3) 個々のオブジェクトに設定するアクセス制御情報を表すプロパティ
(4) アクセス制御情報の構成要素のプロパティ
(5) パブリックACLのプロパティ

(1) ACFlagで設定するサブジェクトとパーミッションの組み合わせ

ACFlagでは,「所有者」「プライマリグループ」「すべてのユーザ」に対するパーミッションを設定します。所有者とは,dbrProp_OwnerIdプロパティに設定されたユーザで,オブジェクト作成時にそのオブジェクトを作成したユーザが設定され,必要に応じて所有者自身によって別のユーザに変更できます。プライマリグループは,dbrProp_PrimaryGroupIdプロパティに設定されたグループです。プライマリグループはオブジェクト作成時に設定される場合と,オブジェクト作成後にユーザが設定する場合があります。すべてのユーザとは,特定のプロパティとして設定されている値でなく,文書空間にログインできるすべてのユーザを示します。

「所有者」,「プライマリグループ」および「すべてのユーザ」を表すサブジェクトに当たるプロパティと,ACFlagでそれぞれのサブジェクトにパーミッションを設定するプロパティとの対応を,次の表に示します。これらのプロパティは,すべてクラスライブラリのオブジェクトのトップオブジェクトに設定されます。

表3-20 ACFlagによって設定できるサブジェクトとパーミッションの組み合わせ

アクセス権が
与えられる対象
サブジェクトを表すプロパティ識別子サブジェクトに対する
パーミッションを指定する
プロパティ識別子(ACFlag)
所有者dbrProp_OwnerIddbrProp_OwnerPermission
プライマリグループdbrProp_PrimaryGroupIddbrProp_PrimaryGroupPermission
すべてのユーザdbrProp_EveryonePermission

パーミッションに設定する値については,「3.15.4 パーミッションの種類」を参照してください。

(2) ACLで設定するサブジェクトとパーミッションの組み合わせ

ACLは,VariableArray型プロパティです。個々の要素として,ACEを持ちます。ACEは,CdbrCompoundクラスのオブジェクトとして扱うことができます。

個々のACEには,CdbrCompoundクラスのオブジェクトのプロパティとして,「サブジェクト」,「サブジェクト種別」および「パーミッション」を指定します。

ACEに指定するサブジェクトとサブジェクト種別,およびパーミッションを表すプロパティの組み合わせを次の表に示します。なお,サブジェクト種別を表すプロパティとは,そのサブジェクトがユーザなのか,グループなのか,システムなのかを表すプロパティです。

表3-21 ACEによって設定できるサブジェクトとパーミッションの組み合わせ

設定する内容プロパティ識別子
サブジェクトdbrProp_Subject
サブジェクト種別dbrProp_SubjectType
サブジェクトに対するパーミッションdbrProp_Permission
注意
一つのACLに設定できるACEの個数は64個までです。セキュリティACLとして指定する場合も,一つのオブジェクトのセキュリティACLに設定できるACEの個数は64個までです。

(3) 個々のオブジェクトに設定するアクセス制御情報を表すプロパティ

個々のオブジェクトに設定するアクセス制御情報を表すプロパティについて,次の表に示します。

表3-22 個々のオブジェクトに設定するアクセス制御情報を表すプロパティ

アクセス制御情報の種類プロパティ識別子データ型基本単位制限値検索の
可否
説明
所有者dbrProp_OwnerIdString型Scalar型1~uバイト1所有者のユーザ識別子
u:ユーザ識別子の最大長※2
プライマリグループdbrProp_PrimaryGroupIdString型Scalar型0~gバイト3プライマリグループのグループ識別子
g:グループ識別子の最大長※4
ACFlagdbrProp_OwnerPermissionInteger32型Scalar型4バイト×所有者のパーミッション
dbrProp_PrimaryGroupPermissionInteger32型Scalar型4バイト×プライマリグループのパーミッション
dbrProp_EveryonePermissionInteger32型Scalar型4バイト×すべてのユーザのパーミッション
ローカルACLdbrProp_ACLObject型VariableArray型ACEは64個まで×ACL
セキュリティACLdbrProp_SACLObject型VariableArray型ACEは64個まで×セキュリティACL
パブリックACLdbrProp_PublicACLCount5Integer32型Scalar型10個×バインドしているパブリックACLの個数
dbrProp_PublicACLIdsObject型VariableArray型一つのオブジェクトにバインドできるパブリックACLは10個まで。
個々のパブリックACLで設定できるACEは64個まで
×バインドしているパブリックACLのOIIDのリスト(可変長配列)
ログインユーザのパーミッションdbrProp_UserPermission5Integer32型Scalar型×ログインユーザに設定されているパーミッションの論理和
(凡例)
○:検索に使用できます。
×:検索に使用できません。
-:該当ありません。

注※1
検索する場合は,プロパティ識別子を「edmProp_OwnerId」と指定する必要があります。
注※2
通常,ユーザ識別子の最大長は254バイトですが,次に示すコマンドでユーザ識別子の最大長を拡張できます。
  • メタ情報の初期設定コマンド(EDMInitMeta)
    この場合,-nオプションの指定値がユーザ識別子の最大長になります。
  • 文書空間の定義コマンド(EDMCDefDocSpace)
    この場合,-sオプションに指定する文書空間情報ファイル中のUserIDMaxLengthエントリの指定値がユーザ識別子の最大長になります。
メタ情報の初期設定コマンド(EDMInitMeta)および文書空間の定義コマンド(EDMCDefDocSpace)については,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。
注※3
検索する場合は,プロパティ識別子を「edmProp_PrimaryGroupId」と指定する必要があります。
注※4
通常,グループ識別子の最大長は254バイトですが,次に示すコマンドでグループ識別子の最大長を拡張できます。
  • メタ情報の初期設定コマンド(EDMInitMeta)
    この場合,-gオプションの指定値がグループ識別子の最大長になります。
  • 文書空間の定義コマンド(EDMCDefDocSpace)
    この場合,-sオプションに指定する文書空間情報ファイル中のGroupIDMaxLengthエントリの指定値がグループ識別子の最大長になります。
メタ情報の初期設定コマンド(EDMInitMeta)および文書空間の定義コマンド(EDMCDefDocSpace)については,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。
注※5
読み取り専用のプロパティです。
(a) 所有者(dbrProp_OwnerId)

所有者のユーザ識別子を表すプロパティです。所有者は,ACFlagによってパーミッションを与える対象になります。

このプロパティは検索に使用できます。ただし,検索に使用する場合は,プロパティ識別子を「edmProp_OwnerId」と指定します。

(b) プライマリグループ(dbrProp_PrimaryGroupId)

プライマリグループのグループ識別子を表すプロパティです。プライマリグループは,ACFlagによってパーミッションを与える対象になります。

このプロパティは検索に使用できます。ただし,検索に使用する場合は,プロパティ識別子を「edmProp_PrimaryGroupId」と指定します。

(c) ACFlag(dbrProp_OwnerPermission/dbrProp_PrimaryGroupPermission/dbrProp_EveryonePermission)

所有者,プライマリグループおよびすべてのユーザに対して与えるパーミッションを表すプロパティです。

パーミッションとして指定する値については,「3.15.4 パーミッションの種類」を参照してください。

(d) ローカルACL(dbrProp_ACL)

ローカルACLを表すVariableArray型プロパティです。

ACLの要素であるACEのプロパティについては,「(4)アクセス制御情報の構成要素のプロパティ」を参照してください。

(e) セキュリティACL(dbrProp_SACL)

ローカルACLを表すVariableArray型プロパティです。

ACLの要素であるACEのプロパティについては,「(4)アクセス制御情報の構成要素のプロパティ」を参照してください。

(f) パブリックACL(dbrProp_PublicACLCount/dbrProp_PublicACLIds)

バインドしているパブリックACLの個数と,パブリックACLのリストを表すプロパティです。

dbrProp_PublicACLCountプロパティは,バインドしているパブリックACLの個数を表すプロパティです。一つのオブジェクトには10個のパブリックACLをバインドできます。なお,このプロパティは読み取り専用です。

dbrProp_PublicACLIdsプロパティは,バインドしているパブリックACLのOIIDのリストを表すVariableArray型プロパティです。

個々のパブリックACLのOIIDは,VariableArray型プロパティの要素を表すCdbrCompoundオブジェクトのdbrProp_ACLIdElemプロパティとして設定します。

dbrProp_ACLIdsElemプロパティの詳細を表3 35に示します。

表3-23 dbrProp_ACLIdsElemプロパティの詳細

プロパティ識別子データ型基本単位制限値検索の可否説明
dbrProp_ACLIdElemString型Scalar型OIID長×バインドしているパブリックACLのOIID
(凡例)
×:検索に使用できません。

パブリックACLを新規にバインドする場合,またはすべて更新する場合は,まず,このCdbrCompoundオブジェクトを要素としたVariableArray型プロパティを作成して,PutPropertyValuesメソッドによって,オブジェクトに設定します。

また,すでにパブリックACLをバインドしているオブジェクトに対してバインドするパブリックACLを追加する場合は,BindPublicACLメソッドを使用して,パブリックACLを追加します。

パブリックACLの設定方法の詳細については,「3.15.9(5)文書またはコンテナへのパブリックACLの設定」および「3.15.9(6)文書またはコンテナへのパブリックACLのバインド」を参照してください。

(g) ログインユーザのパーミッション(dbrProp_UserPermission)

ログインユーザがユーザ権限定義ファイル,ACFlag,ローカルACLおよびバインドしているパブリックACLで与えられているパーミッションの論理和を表すプロパティです。なお,このプロパティは読み取り専用です。

(4) アクセス制御情報の構成要素のプロパティ

ここでは,アクセス制御情報のうち,ACLの構成要素であるACEのプロパティについて説明します。

ACEのプロパティを,次の表に示します。

表3-24 ACEのプロパティ

データ名称プロパティ識別子データ型基本単位制限値検索の可否説明
サブジェクトdbrProp_SubjectString型Scalar型sバイト×サブジェクトの識別子
s:サブジェクトの最大長
サブジェクト種別dbrProp_SubjectTypeInteger32型Scalar型4バイト×サブジェクト種別を表す定数
パーミッションdbrProp_PermissionInteger32型Scalar型4バイト×パーミッションを表す定数
(凡例)
×:検索に使用できません。

注※
通常,ユーザ識別子およびグループ識別子の最大長は254バイトですが,次に示すコマンドでユーザ識別子とグループ識別子の最大長を拡張できます。
  • メタ情報の初期設定コマンド(EDMInitMeta)
    この場合,-nオプションの指定値がユーザ識別子の最大長に,-gオプションの指定値がグループ識別子の最大長になります。
  • 文書空間の定義コマンド(EDMCDefDocSpace)
    この場合,-sオプションに指定する文書空間情報ファイル中のUserIDMaxLengthエントリの指定値がユーザ識別子の最大長に,GroupIDMaxLengthエントリの指定値がグループ識別子の最大長になります。
メタ情報の初期設定コマンド(EDMInitMeta)および文書空間の定義コマンド(EDMCDefDocSpace)については,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。
なお,システムサブジェクトの場合,識別子の最大長は常に254バイトになります。
(a) サブジェクト(dbrProp_Subject)

サブジェクトには,次のどれかを指定します。

(b) サブジェクト種別(dbrProp_SubjectType)

サブジェクト種別には,サブジェクトに指定した内容に応じて,種別を示す定数を指定します。

(c) パーミッション(dbrProp_Permission)

サブジェクトに指定したユーザまたはグループに対して設定するパーミッションを表す定数を指定します。

パーミッションとして指定する値については,「3.15.4 パーミッションの種類」を参照してください。

(5) パブリックACLのプロパティ

パブリックACLは,文書空間に独立して存在するオブジェクトです。

パブリックACLに設定するプロパティについて,次の表に示します。

表3-26 パブリックACLに設定するプロパティ

プロパティ識別子データ型基本単位制限値検索の可否説明
dmaProp_OIIDObject型Scalar型OIID長パブリックACLを識別するOIID
dbrProp_OwnerIdString型Scalar型1~uバイトパブリックACL所有者のユーザ識別子
u:ユーザ識別子の最大長※1
dbrProp_ACLObject型VariableArray型ACEは64個まで×パブリックACLのローカルACL。
ほかのオブジェクトによって共有されるACLを指定する
dbrProp_SACLObject型VariableArray型ACEは64個まで×パブリックACLのセキュリティACL
dbrProp_BindObjectCountInteger32型Scalar型×バインドしているオブジェクトの数2
dbrProp_UserPermissionInteger32型Scalar型×ログインユーザに設定されているパーミッションの論理和3
(ユーザ定義プロパティの識別子)ユーザが任意に追加したプロパティ
(凡例)
○:検索に使用できます。
×:検索に使用できません。
-:該当ありません。

注※1
通常,ユーザ識別子の最大長は254バイトですが,次に示すコマンドでユーザ識別子の最大長を拡張できます。
  • メタ情報の初期設定コマンド(EDMInitMeta)
    この場合,-nオプションの指定値がユーザ識別子の最大長になります。
  • 文書空間の定義コマンド(EDMCDefDocSpace)
    この場合,-sオプションに指定する文書空間情報ファイル中のUserIDMaxLengthエントリの指定値がユーザ識別子の最大長になります。
メタ情報の初期設定コマンド(EDMInitMeta)および文書空間の定義コマンド(EDMCDefDocSpace)については,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。
注※2
読み取り専用のプロパティです。
注※3
ユーザ権限定義ファイルおよびセキュリティACLによって与えられているパーミッションの論理和です。

なお,パブリックACLのローカルACLには,複数のオブジェクト間で共有したいアクセス制御情報を設定します。パブリックACLに対するアクセス制御情報を設定するものではありません。

パブリックACL自身に対するアクセス権については,「3.15.3(2)(a)パブリックACL」を参照してください。