Active Directory クックブック by

Discussion

Active Directory の多くの属性はビットフラグで構成されています。 ビットフラグは、多くの場合、オブジェクトに関するプロパティを 1 つの属性にエンコードするために使用されます。 たとえば、group オブジェクトの groupType 属性は、グループ スコープとタイプを決定するために使用されるビット フラグです。

user および computer オブジェクトの userAccountControl 属性は、アカウントの状態など、一連のプロパティを記述するために使用されます(例,

attributeSchema オブジェクトの searchFlags および systemFlags 属性は、特に、属性が構築されるか、インデックス化されるか、および Ambiguous Name Resolution (ANR) の一部として含まれるかを定義します。 使用できるビット単位の検索フィルターには、論理 OR を表すものと論理 AND を表すものの 2 種類があります。 これは検索フィルタの中でマッチングルールとして実装されています。 マッチング・ルールとは、LDAP サーバー (この場合はドメイン・コントローラー) にフィルタの一部を別の方法で処理するように通知する方法である。 以下は、マッチング・ルールの例です:

(userAccountControl:1.2.840.113556.1.4.803:=514)

フォーマットは(attributename:MatchingRuleOID:=value)です。 論理ANDマッチングルールのOIDは1.2.840.113556.1.4.803、論理ORマッチングルールのOIDは1.2.840.113556.1.4.804である。 これらの OID は、フィルタに対して特別な処理を行うようにサーバに指示する。 論理ORフィルタは、valueで指定されたビットのいずれかがattributenameに格納されていれば、成功を返します。 一方、論理ANDフィルタは、valueで指定されたすべてのビットがattributenameの値と一致すれば、成功を返します。

通常のユーザー・アカウントを作成するには、userAccountControlを514に設定する必要があります。 この514という数字は、通常ユーザーアカウントのフラグ512と無効アカウントフラグ2を足して計算したものです(512 + 2 = 514)。 この514の値に対して、

(useraccountcontrol:1.2.840.113556.1.4.804:=514)

のような論理ORマッチングルールを使用すると、すべての正常なユーザーアカウント(フラグ512)または無効なアカウント(フラグ2)が返されることになります。 これには、有効なユーザーアカウント(フラグ512より)、無効なコンピュータアカウント(フラグ2より)、および無効なユーザーアカウント(フラグ2より)が含まれることになる。

ビット単位のマッチング ルールの利点を見る 1 つの方法は、多くの比較を 1 つのフィルターにまとめることができることです。

(|(useraccountcontrol:1.2.840.113556.1.4.804:=2) (useraccountcontrol:1.2.840.113556.1.4.804:=512))

前と同様に、これは、2 または 512 フラグのいずれかを含む userAccountControl 属性にマッチします。 フラグのビットのどれかが一致する可能性があるのではなく、成功を返すためにはフラグのすべてのビットが一致する必要があります。 userAccountControl の例を論理 AND を使用するように変更すると、次のようになります:

(useraccountcontrol:1.2.840.113556.1.4.803:=514)

この場合、無効にもなっている通常のユーザー アカウントのみが返されます。 同じフィルタを|の代わりに&演算子を使用して次のように書き換えることもできます。

(&(useraccountcontrol:1.2.840.113556.1.4.803:=2) (useraccountcontrol:1.2.840.113556.1.4.803:=512))

注意すべき重要な点は、1つのビットフラグ値のみを比較する場合、論理ORと論理ANDの一致ルールは同じ結果を返すということです。 したがって、通常のユーザーアカウントを見つけたい場合は、次のいずれかを使用して512の単一ビットフラグで検索することができます。

コメントを残す

メールアドレスが公開されることはありません。