Active Directory Domain Services のすべてのオブジェクトは、ADS_RIGHTS_ENUM 列挙型で定義されている標準的なアクセス権のセットをサポートします。 これらのアクセス権は、オブジェクトのセキュリティ記述子のアクセス制御エントリ (ACE) で使用して、オブジェクトへのアクセスを制御できます。つまり、子オブジェクトの作成と削除、オブジェクト属性の読み取りと書き込みなど、標準操作を実行できるユーザーを制御します。 ただし、一部のオブジェクト クラスでは、標準のアクセス権でサポートされていない方法でアクセスを制御することが望ましい場合があります。 これを容易にするために、Active Directory Domain Services では、controlAccessRight オブジェクトを介して標準のアクセス制御メカニズムを拡張できます。
アクセス権の制御は、次の 3 つの方法で使用されます。
拡張権限の場合。これは、標準のアクセス権セットの対象とされない特殊な操作です。 たとえば、特定のユーザーが自分の代わりに別のユーザーにメールを送信できるかどうかを判断するために、Exchange、Outlook、またはその他のメール アプリケーションで使用できる "名前を付けて送信" 権限をユーザー クラスに付与できます。 拡張権限は、validAccesses 属性を ADS_RIGHT_DS_CONTROL_ACCESS (256) アクセス権と等しく設定することで、controlAccessRight オブジェクトに対して作成されます。
プロパティ セットを定義する場合は、個々の属性だけでなく、オブジェクトの属性のサブセットへのアクセスを制御できるようにします。 標準アクセス権を使用すると、1 つの ACE で、オブジェクトのすべての属性または 1 つの属性へのアクセスを許可または拒否できます。 アクセス権の制御は、1 つの ACE で一連の属性へのアクセスを制御する方法を提供します。 たとえば、ユーザー クラスは、番地や電話番号などの属性を含む Personal-Information プロパティ セットをサポートします。 プロパティ セット権限は、ACTR_DS_READ_PROP (16) と ACTRL_DS_WRITE_PROP (32) の両方のアクセス権を含む validAccesses 属性を設定することで、controlAccessRight オブジェクトに対して作成されます。
検証された書き込みの場合は、DS オブジェクトの属性に値を書き込む前に、スキーマで必要な値チェック (検証) をシステムが実行することを要求します。 これにより、属性に入力された値が必要なセマンティクスに準拠しているか、有効な値の範囲内にあるか、属性への単純な低レベルの書き込みに対して実行されないその他の特別なチェックが実行されます。 検証済みの書き込みは、"write <attribute>" アクセス許可とは異なる特殊なアクセス許可に関連付けられます。このアクセス許可では、値チェックを実行せず、属性に値を書き込むことができるようになります。 検証された書き込みは、アプリケーションの新しい制御アクセス権として作成できない 3 つの制御アクセス権のうちの 1 つだけです。 これは、検証を適用するために既存のシステムをプログラムで変更できないためです。 検証済みの書き込みとしてシステムに制御アクセス権が設定されている場合、controlAccessRight オブジェクトの validAccesses 属性には、ADS_RIGHT_DS_SELF (8) アクセス権が含まれます。
Windows 2000 Active Directory スキーマでは、検証済みの書き込みが 3 つだけ定義されています。
- グループ オブジェクトに対するアクセス許可を Self-Membership します。これにより、呼び出し元のアカウントは許可されますが、他のアカウントは追加またはグループのメンバーシップから削除できません。
- Validated-DNS - コンピューター オブジェクトに対するHost-Name アクセス許可。これにより、コンピューター名とドメイン名に準拠している DNS ホスト名属性を設定できます。
- コンピューター オブジェクトに対するアクセス許可を Validated-SPN します。これにより、コンピューターの DNS ホスト名に準拠している SPN 属性を設定できます。
便宜上、プロパティ セットと検証された書き込みは拡張権限とは見なされませんが、各制御アクセス権は、Configuration パーティションの Extended-Rights コンテナー内の controlAccessRight オブジェクトによって表されます。 構成コンテナーはフォレスト全体にレプリケートされるため、制御権限はフォレスト内のすべてのドメインに伝達されます。 定義済みの制御アクセス権は多数あります。もちろん、カスタム アクセス権も定義できます。
すべての制御アクセス権は、ACL エディターでアクセス許可として表示できます。
プロパティ セットへの読み取り/書き込みアクセスを制御する ACE を設定する C++ および Visual Basic のコード例の詳細については、「ディレクトリ オブジェクトに ACE を設定するためのコード例」を参照してください。
アクセス権の制御を使用して特殊な操作へのアクセスを制御する方法の詳細については、以下を参照してください。
- コントロール アクセス権 の作成
- オブジェクトの ACL でのアクセス権制御 ACE の設定
- オブジェクトの ACL で制御アクセス権をチェックする
- オブジェクトの ACL で設定された制御アクセス権の読み取りを する