uCosminexus DocumentBroker Version 3 クラスライブラリ C++ 解説

[目次][用語][索引][前へ][次へ]

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_OwnerId dbrProp_OwnerPermission
プライマリグループ dbrProp_PrimaryGroupId dbrProp_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_OwnerId String型 Scalar型 1〜uバイト 1 所有者のユーザ識別子
u:ユーザ識別子の最大長※2
プライマリグループ dbrProp_PrimaryGroupId String型 Scalar型 0〜gバイト 3 プライマリグループのグループ識別子
g:グループ識別子の最大長※4
ACFlag dbrProp_OwnerPermission Integer32型 Scalar型 4バイト × 所有者のパーミッション
dbrProp_PrimaryGroupPermission Integer32型 Scalar型 4バイト × プライマリグループのパーミッション
dbrProp_EveryonePermission Integer32型 Scalar型 4バイト × すべてのユーザのパーミッション
ローカルACL dbrProp_ACL Object型 VariableArray型 ACEは64個まで × ACL
セキュリティACL dbrProp_SACL Object型 VariableArray型 ACEは64個まで × セキュリティACL
パブリックACL dbrProp_PublicACLCount5 Integer32型 Scalar型 10個 × バインドしているパブリックACLの個数
dbrProp_PublicACLIds Object型 VariableArray型 一つのオブジェクトにバインドできるパブリックACLは10個まで。
個々のパブリックACLで設定できるACEは64個まで
× バインドしているパブリックACLのOIIDのリスト(可変長配列)
ログインユーザのパーミッション dbrProp_UserPermission5 Integer32型 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_ACLIdElem String型 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_Subject String型 Scalar型 sバイト × サブジェクトの識別子
s:サブジェクトの最大長
サブジェクト種別 dbrProp_SubjectType Integer32型 Scalar型 4バイト × サブジェクト種別を表す定数
パーミッション dbrProp_Permission Integer32型 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_OIID Object型 Scalar型 OIID長 パブリックACLを識別するOIID
dbrProp_OwnerId String型 Scalar型 1〜uバイト パブリックACL所有者のユーザ識別子
u:ユーザ識別子の最大長※1
dbrProp_ACL Object型 VariableArray型 ACEは64個まで × パブリックACLのローカルACL。
ほかのオブジェクトによって共有されるACLを指定する
dbrProp_SACL Object型 VariableArray型 ACEは64個まで × パブリックACLのセキュリティACL
dbrProp_BindObjectCount Integer32型 Scalar型 × バインドしているオブジェクトの数2
dbrProp_UserPermission Integer32型 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」を参照してください。