オブジェクトのプロパティへのアクセスを制御する ACE
ディレクトリ サービス (DS) オブジェクトの 随意アクセス制御リスト (DACL) には、次のように アクセス制御エントリ (ACE) の階層を含めることができます。
- オブジェクト自体を保護する ACE
- オブジェクトに対して指定されたプロパティ セットを保護するオブジェクト固有の ACE
- オブジェクトで指定されたプロパティを保護するオブジェクト固有の ACE
この階層内では、より高いレベルで付与または拒否された権限は、下位レベルにも適用されます。 たとえば、プロパティ セットのオブジェクト固有の ACE でADS_RIGHT_DS_READ_PROP権限をトラスティに許可する場合、トラスティはそのプロパティ セットのすべてのプロパティに対する暗黙的な読み取りアクセス権を持ちます。 同様に、ADS_RIGHT_DS_READ_PROPアクセスを許可するオブジェクト自体の ACE は、トラスティにオブジェクトのすべてのプロパティへの読み取りアクセス権を付与します。
次の図は、架空の DS オブジェクトのツリーとそのプロパティ セットとプロパティを示しています。
この DS オブジェクトのプロパティへの次のアクセスを許可するとします。
- グループ A のすべてのオブジェクトのプロパティに対する読み取り/書き込みアクセス許可を許可する
- プロパティ D を除くすべてのプロパティに対する読み取り/書き込みアクセス許可を他のすべてのユーザーに許可する
これを行うには、次の表に示すように、オブジェクトの DACL に ACE を設定します。
トラスティ | オブジェクト GUID | ACE の種類 | アクセス権が |
---|---|---|---|
グループ A | None | アクセスが許可された ACE | ADS_RIGHT_DS_READ_PROP |ADS_RIGHT_DS_WRITE_PROP |
Everyone | プロパティ セット 1 | アクセスが許可されたオブジェクト ACE | ADS_RIGHT_DS_READ_PROP |ADS_RIGHT_DS_WRITE_PROP |
Everyone | プロパティ C | アクセスが許可されたオブジェクト ACE | ADS_RIGHT_DS_READ_PROP |ADS_RIGHT_DS_WRITE_PROP |
グループ A の ACE にはオブジェクト GUID がありません。つまり、すべてのオブジェクトのプロパティへのアクセスが許可されます。 プロパティ セット 1 のオブジェクト固有の ACE を使用すると、すべてのユーザーがプロパティ A と B にアクセスできます。もう 1 つのオブジェクト固有 ACE では、すべてのユーザーがプロパティ C にアクセスできます。この DACL にはアクセス拒否 ACE はありませんが、グループ A を除くすべてのユーザーに対する Property D アクセスは暗黙的に拒否されることに注意してください。
ユーザーがオブジェクトのプロパティにアクセスしようとすると、システムは、要求されたアクセスが明示的に許可、拒否、またはそれ以上 ACE がないまで、順番に ACE をチェックします。その場合、アクセスは暗黙的に拒否されます。
システムは次を評価します。
- オブジェクト自体に適用される ACE
- アクセスされるプロパティを含むプロパティ セットに適用されるオブジェクト固有の ACE
- アクセスするプロパティに適用されるオブジェクト固有の ACE
システムは、他のプロパティ セットまたはプロパティに適用されるオブジェクト固有の ACE を無視します。