次の方法で共有


アクセス制御の継承

オブジェクト アクセス制御リスト (ACL) のアクセス制御エントリ (ACE) は、次の 2 つのカテゴリのいずれかに属することができます。

  • 有効な ACL: このカテゴリの ACE がオブジェクトに適用されます。
  • ACL の継承: このカテゴリの ACE は、コンテナーで作成されたオブジェクトによって継承されます。

DACL 内の各 ACE は、1 つ以上のカテゴリに属することができます。 ACE が属するカテゴリは、ACE で設定された継承制御フラグによって決まります。

ace の AceFlags プロパティでは、3 つの継承制御フラグを設定できます。

形容
ADS_ACEFLAG_INHERIT_ACE このフラグは、ACE が継承 ACL の一部であり、子オブジェクトがこの ACE の継承制御フラグを継承することを示します。
ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE このフラグは、ACE が継承 ACL の一部であるが、継承制御フラグが直接子オブジェクト (直接子孫) に伝達されておらず、ACE が直接の子オブジェクトに対して有効であることを示します。
ADS_ACEFLAG_INHERIT_ONLY_ACE このフラグは、ACE が有効な ACL の一部ではないことを示します。 このフラグが設定されていない場合、ACE は有効な ACL の一部になります。 このフラグは、サブオブジェクトによって継承可能なアクセス許可を設定する場合に便利ですが、コンテナーのアクセシビリティには影響しません。 たとえば、ACE が組織単位内のユーザー オブジェクトによって継承されることを意図している場合、組織単位自体へのアクセスに対して ACE を適用してはならない可能性があります。

ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE フラグと ADS_ACEFLAG_INHERIT_ONLY_ACE フラグは、ADS_ACEFLAG_INHERIT_ACE が存在する場合にのみ意味があります。 これは、ADS_ACEFLAG_INHERIT_ACE フラグによって継承可能な ACE に継承動作が追加されますが、継承の種類は定義されないためです。 ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE フラグと ADS_ACEFLAG_INHERIT_ONLY_ACE フラグは、特定の種類の継承動作を定義します。

システムでは、ACE の種類と状態に基づいて次のフラグも設定されていることに注意してください。

形容
ADS_ACEFLAG_INHERITED_ACE このフラグは、ACE が継承されたことを示します。
ADS_ACEFLAG_VALID_INHERIT_FLAGS このフラグは、継承フラグが有効であることを示します。

次の表に、ACE の AceFlags プロパティに対するさまざまなフラグの組み合わせの効果を示します。

ACE を含むオブジェクトに対する影響 直接子オブジェクトへの影響 直接子の下のオブジェクトに対する影響
フラグが設定されていません。 有効な ACE: ACE はオブジェクトに適用されます。 ACE は継承されません。 ACE は継承されません。
ADS_ACEFLAG_INHERIT_ACE 有効な ACE ACE は継承されます。 ACE は有効な ACE です。
ACE は継承されます。 ACE は有効な ACE です。
ADS_ACEFLAG_INHERIT_ACE | ADS_ACEFLAG_INHERIT_ONLY_ACE 有効な ACE ではない: ACE はオブジェクトに適用されません。 ACE は継承されます。 ACE は有効な ACE です。
ACE は継承されます。 ACE は有効な ACE です。
ADS_ACEFLAG_INHERIT_ACE | ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE 有効な ACE ACE は継承されますが、継承フラグはありません。 ACE は有効な ACE です
ACE は継承されません。
ADS_ACEFLAG_INHERIT_ACE | ADS_ACEFLAG_INHERIT_ONLY_ACE | ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE 有効な ACE ではありません。 ACE は継承されますが、継承フラグはありません。 ACE は有効な ACE です。
ACE は継承されません。