nTSecurityDescriptor および msExchMailboxSecurityDescriptor 属性値には、特別な方法で指定する ACL リストが含まれています。
次に、企業がプロビジョニングする各ユーザーに対してデフォルトのアクセス権のセットを割り当てる場合に使用する可能性があるユーザーフォームの例を示します。
<Field name=’attributes[AD].nTSecurityDescriptor’ hidden=’true’> <Expansion> <list> <s>Domain Admins|983551|0|0|NULL|NULL</s> <s>NT AUTHORITY\SYSTEM|983551|0|0|NULL|NULL</s> <s>Account Operators|983551|0|0|NULL|NULL</s> <s>NT AUTHORITY\Authenticated Users|131220|0|0|NULL|NULL</s> <s>NT AUTHORITY\Authenticated Users|256|5|0| {AB721A55-1E2F-11D0-9819-00AA0040529B}|NULL</s> <s>NT AUTHORITY\SELF|131220|0|0|NULL|NULL</s> </list> </Expansion> </Field>
nTSecurityDescriptor リスト内のエントリは、次の形式になります。
Trustee|Mask|aceType|aceFlags|objectType|InheritedObjectType
各表記の意味は次のとおりです。
Trustee は、ユーザーの DOMAIN\Account です。
Mask は、アクセス権 (読み取り、書き込みなど) を指定するフラグです。
aceType は、アクセス制御エントリ (ACE) のタイプを示すフラグです。
ADS_ACETYPE_ACCESS_ALLOWED = 0, ADS_ACETYPE_ACCESS_DENIED = 0x1, ADS_ACETYPE_SYSTEM_AUDIT = 0x2, ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = 0x5, ADS_ACETYPE_ACCESS_DENIED_OBJECT = 0x6, ADS_ACETYPE_SYSTEM_AUDIT_OBJECT = 0x7, ADS_ACETYPE_SYSTEM_ALARM_OBJECT = 0x8 ADS_ACETYPE_ACCESS_ALLOWED
各表記の意味は次のとおりです。
ADS_ACETYPE_ACCESS_ALLOWED: ACE は標準の ACCESS ALLOWED タイプになります。ここで、ObjectType および InheritedObjectType フィールドは NULL です。
ADS_ACETYPE_ACCESS_DENIED: ACE は標準のシステム監査タイプになります。ここで、ObjectType および InheritedObjectType フィールドはNULL です。
ADS_ACETYPE_SYSTEM_AUDIT: ACE は標準システムタイプになります。ここで、ObjectType および InheritedObjectType フィールドは NULL です。
ADS_ACETYPE_ACCESS_ALLOWED_OBJECT: Windows 2000 で、ACE は、オブジェクトまたはオブジェクトのサブオブジェクト (プロパティーやプロパティーのセットなど) へのアクセスを許可します。
ObjectType、InheritedObjectType、またはこれら両方に、プロパティーセット、プロパティー、拡張された権限、または子オブジェクトのタイプを特定する GUID が格納されます。
ADS_ACETYPE_ACCESS_DENIED_OBJECT: Windows 2000 で、ACE オブジェクトまたはオブジェクトのサブオブジェクト (プロパティーやプロパティーのセットなど) へのアクセスを拒否します。
ObjectType、InheritedObjectType、またはこれら両方に、プロパティーセット、プロパティー、拡張された権限、または子オブジェクトのタイプを特定する GUID が格納されます。
ADS_ACETYPE_SYSTEM_AUDIT_OBJECT: Windows 2000 で、ACE オブジェクトまたはオブジェクトのサブオブジェクト (プロパティーやプロパティーのセットなど) へのアクセスを監査します。
ObjectType、InheritedObjectType、またはこれら両方に、プロパティーセット、プロパティー、拡張された権限、または子オブジェクトのタイプを特定する GUID が格納されます。
ADS_ACETYPE_SYSTEM_ALARM_OBJECT: 現時点で Windows 2000/XP では使用されません。
aceFlags は、ほかのコンテナやオブジェクトが ACL 所有者から ACE を継承できるかどうかを指定するフラグです。
ADS_ACEFLAG_INHERIT_ACE = 0x2, ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = 0x4, ADS_ACEFLAG_INHERIT_ONLY_ACE = 0x8, ADS_ACEFLAG_INHERITED_ACE = 0x10, ADS_ACEFLAG_VALID_INHERIT_FLAGS = 0x1f, ADS_ACEFLAG_SUCCESSFUL_ACCESS = 0x40,
各表記の意味は次のとおりです。
ADS_ACEFLAG_FAILED_ACCESS = 0x80 ADS_ACEFLAG_INHERIT_ACE: このアクセス制御エントリ (ACE) を継承する子オブジェクトを示します。
継承される ACE は、ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE フラグを設定しない限り継承可能です。
ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE: 子オブジェクトの継承した ACE の ADS_ACEFLAG_INHERIT_ACE フラグが、システムによってクリアされます。これによって、ACE は、以降の世代のオブジェクトには継承されません。
ADS_ACEFLAG_INHERIT_ONLY_ACE: 接続先のオブジェクト上でアクセス制御を実行しない継承専用の ACE を示します。
このフラグを設定しない場合、ACE は、接続先のオブジェクト上でアクセス制御を実行する有効な ACE になります。
ADS_ACEFLAG_INHERITED_ACE: ACE が継承されたかどうかを示します。このビットはシステムによって設定されます。
ADS_ACEFLAG_VALID_INHERIT_FLAGS: 継承されたフラグが有効かどうかを示します。このビットはシステムによって設定されます。
ADS_ACEFLAG_SUCCESSFUL_ACCESS: アクセスに成功した場合に、監査メッセージを生成し、システムアクセス制御リスト (SACL) でシステムを監査する ACE によって使用されます。
ADS_ACEFLAG_FAILED_ACCESS: アクセスに失敗した場合に、監査メッセージを生成し、SACL でシステムを監査する ACE によって使用されます。
objectType は、ADSI オブジェクトタイプを示すフラグです。objectType の値は、文字列形式のプロパティーまたはオブジェクトの GUID です。
この GUID は、ADS_RIGHT_DS_READ_PROP および ADS_RIGHT_DS_WRITE_PROP アクセスマスクの使用時に、プロパティーを参照します。
この GUID は、ADS_RIGHT_DS_CREATE_CHILD および ADS_RIGHT_DS_DELETE_CHILD アクセスマスクの使用時に、オブジェクトを指定します。
InheritedObjectType は、ADSI オブジェクトの子オブジェクトのタイプを示すフラグです。InheritedObjectType の値は、オブジェクトに対する文字列形式の GUID です。このような GUID を設定する場合、ACE は、その GUID によって参照されるオブジェクトのみに適用されます。
objectType および InheritedObjectType フラグでは、ほかのオブジェクトの GUID を次の形式で指定します。
{BF9679C0-0DE6-11D0-A285-00AA003049E2}
オブジェクト/属性の GUID は、角括弧 { } で囲まれます。この形式は、取得したときに返されます。ADSI 内には、アクセスを許可する特定の属性や、継承関係の記述方法を表す GUID が存在しています。
渡していく正しい文字列を見つけるには、次の方法を実行します。