前のトピック: set precedence コマンド

次のトピック: set prune-oc-parents コマンド

set protected-items コマンド - 保護されたアイテムのアクセス レベル コントロールの設定

set protected-items コマンドは、特定のサブツリー、エントリ、またはサブツリーやエントリ内の特定の属性を保護できます。 protected-items コントロールは、DIT に含まれる属性の保護に使用します。

このコマンドは、登録ユーザおよびパブリック ユーザのアクセス レベルで付与された指定のアクセス権限を拒否(削除)します。

このアクセス レベルで拒否されるアクセス権限としては、管理者ユーザおよびスーパーユーザのアクセス レベルでのルールによって付与されたものなどがあります。

アクセス制御ルールが有効になるのは、アクセス制御が有効化されている場合のみです。

このコマンドの形式は以下のようになります。

set protected-items [tag] = { 
[users]
[scope]
[attrs	= attribute-list]
[perms	= permission-list]
[validity	= [start hhmm end hhmm] [on day]]
};
tag

(オプション)このルールの名前を定義します。

users

(オプション)アイテムへのアクセスが拒否されるユーザを識別します。 以下のいずれかを使用します。

own-entry

このルールがユーザ自身のエントリへのユーザのアクセスを制限するように指定します。

own-subtree

このルールがユーザ自身のエントリの下のサブツリーへのユーザのアクセスを制限するように指定します。

user = DN

このルールによってアクセスが制限されるユーザを指定します。

role = DN

このルールによってアクセスが制限されるロールを指定します。

group = group-name

このルールによってアクセスが制限されるグループを指定します。

user-subtree = DN

このルールによってアクセスが制限されるユーザサブツリーを指定します。

scope

(オプション) DIT でこのルールが適用される部分を定義します。

以下のいずれかを使用します。

entry = DN

このルールによって保護されるエントリを指定します。

リーフ ノードでないエントリが指定された場合、低いレベルのエントリへのパスでエントリを使用する権限をユーザが引き続き持ちます。そのため、エントリがリーフ ノードの場合、通常はエントリのみのを指定します。

subtree = DN

このルールで保護されるサブツリーを指定します。

attrs = attribute-list

(オプション)このルールが適用される属性または属性セットを定義します。attribute-list は、属性名のカンマ区切りリストです。

attrs が指定されない場合、アクセス ルールはエントリ全体に適用されます。

perms = permission-list

perms が指定されない場合、コマンドはすべての権限を拒否します。

通常、perms は指定しません。

all

スコープ上のすべてのユーザ権限を拒否します。

read

スコープ上のユーザの読み取り権限を拒否します。 これは、perms=all の指定と同じ効果を持ちます。

add

スコープ内で定義された情報に追加するためのユーザ権限を拒否します。

remove

スコープ内で定義された情報を削除するためのユーザ権限を拒否します。

modify

スコープ内で定義された情報を変更するためのユーザ権限を拒否します。

rename

スコープ内で定義されたエントリの名前を変更するためのユーザ権限を拒否します。

validity = [start hhmm end hhmm] [on day]

(オプション)このルールが有効な期間を定義します。 以下のいずれかを使用します。

start hhmm end hhmm

このルールが有効な期間の開始および終了を定義します。

on day

このルールが有効な日を定義します。day は、12345 や 67 (1 が月曜日)のような文字列です。

例: サブツリーの保護

この例では、サブツリーを非表示にします。

set protected-items hide-finance-from-employees = {
 group	= employees"
 subtree	= <c AU"><o Democorp"><ou Finance">
};

例: エントリの保護

この例では、ディレクトリ内に保存された DSA 定義に関するいくつかの管理情報を非表示にするために、このコマンドが使用されています。

set protected-items hide-schema-from-employees" = {
 role	= employees"
 entry = <c AU"><o Democorp"><ou Schema">
};

指定したエントリは、(より高い優先度のアクセス制御ルールによりアクセス権が付与されない限り)従業員ロールのメンバには非表示です。

例: いくつかの属性の保護

この例では、該当する Democorp サブツリー内のすべてのエントリの homePhone 属性および userPassword 属性を保護します。

これらの属性は、そのスコープの中の Democorp サブツリーを持つすべてのスーパーユーザおよび管理者ユーザに表示されますが、他のすべてのユーザには非表示です。

set protected-items hide-passwords-and-home-phone" = {
 subtree	= <c AU"><o Democorp">
 attrs	= homePhone, userPassword
};

例: ユーザにエントリ全体の表示および一部の属性の変更を許可

この例では、ユーザにエントリ内の大部分の属性の更新アクセスを付与しながら、ごく一部の属性の更新は禁止する方法を示します。

更新が可能な属性のリストが拡大する可能性があるため(たとえば、より多くの属性がエントリに追加された場合)、この問題はより複雑になります。

この問題の解決策として、アクセス制御ルール内のオプションの許可を使用する方法があります。 以下のアクセス ルールを使用して、サブツリー内のすべてのユーザが自身のエントリ内のすべての属性を変更できます。

set reg-user = {
 own-entry
 subtree	= <o test>
 perms	= modify
};

これらの属性の一部への更新アクセスを禁止するには、以下のコマンドを使用します。

set protected-items = {
 own-entry
 subtree	= <o test>
 attrs	= attr1, attr2, ...
 perms	= modify
};

これにより、リストされた属性のユーザによる変更は禁止されますが、読み取りアクセスは禁止されません。 これは、拒否されるのが modify の権限のみであるためです。

例: ユーザに自身のエントリ内の "role" 以外のすべての属性の変更を許可

この例において、set reg-user ルールは、ユーザ自身のエントリ内のすべての属性に対する変更権限をユーザに付与し、protected-items ルールは、role 属性のみに対する変更権限を削除します。 その結果、ユーザは自身のエントリ内の "role" 以外のすべての属性を変更できます。ただし、role 属性の読み取りは可能です。

set reg-user = {
 own-entry
 subtree	= <o Democorp>
 perms	= modify
};
set protected-items = {
 own-entry
 subtree	= <o DemoCorp>
 attrs	= role
 perms	= modify
};

set protected-items ルールに perms = modify がない場合、ユーザはロール属性に対してすべての権限(読み取りアクセス権を含む)が拒否されます。

詳細情報:

グループとロール