Active Directory szakácskönyv by

Vita

Az Active Directory számos attribútuma bitjelzőkből áll. A bitjelzőt gyakran arra használják, hogy egy objektum tulajdonságait egyetlen attribútumba kódolják. Például a group objektumok groupType attribútuma egy bit flag, amelyet a csoport hatókörének és típusának meghatározására használnak.

A user és computer objektumok userAccountControl attribútuma egy sor tulajdonság leírására szolgál, beleértve a fiókstátuszt (azaz, enabled or disabled), account lockout, password notrequired, smartcard authentication required, stb.

A searchFlags és systemFlagsattribútumok a attributeSchema objektumokon többek között meghatározzák, hogy egy attribútumot az Ambiguous Name Resolution (ANR) részeként konstruálnak, indexelnek és tartalmaznak-e.

Az ilyen típusú attribútumok elleni kereséshez bitwisesearch szűrőket kell használni. Kétféle bites keresési szűrőt használhat: az egyik a logikai VAGY-ot, a másik a logikai ÉS-t képviseli. Ez egy keresési szűrőn belül egybevágó szabályként valósul meg. Az illesztési szabály egyszerűen egy módja annak, hogy az LDAP-kiszolgálót (ebben az esetben a tartományvezérlőt) tájékoztassuk arról, hogy a szűrő egy részét másképp kezelje. Íme egy példa arra, hogyan néz ki egy megfeleltetési szabály:

(userAccountControl:1.2.840.113556.1.4.803:=514)

A formátum(attributename:MatchingRuleOID:=value).Mint említettem, két bitenkénti megfeleltetési szabály van, amelyeket az OID-k határoznak meg. A logikai ÉS megfeleltetési szabály OID-je1.2.840.113556.1.4.803, a logikai VAGY megfeleltetési szabály OID-je1.2.840.113556.1.4.804. Ezek az OID-k arra utasítják a kiszolgálót, hogy végezzen speciális feldolgozást a szűrőn. A logikai VAGY szűrő sikert ad vissza, ha a value által meghatározott bármely bit a attributename-ban van tárolva. Alternatívaként a logikai ÉS-szűrő akkor ad vissza sikert, ha a value által meghatározott összes bit megegyezik a attributename értékével. Talán egy példa segíthet a tisztánlátásban.

A normál felhasználói fiók létrehozásához azuserAccountControl értéket 514-re kell állítani. Az 514-es számot úgy számoltuk ki, hogy az 512-es normál felhasználói fiókjelzőt hozzáadtuk a 2-es tiltott fiókjelzőhöz (512 + 2 = 514). Ha a következő logikai VAGY megfeleltetési szabályt alkalmazza az 514-es értékhez, ahogy itt látható:

(useraccountcontrol:1.2.840.113556.1.4.804:=514)

akkor az összes normál felhasználói fiók (512-es jelző) VAGY letiltott fiók (2-es jelző) visszakerül. Ez magában foglalná az engedélyezett felhasználói fiókokat (az 512-es jelzőből), a letiltott számítógépfiókokat (a 2. jelzőből) és a letiltott felhasználói fiókokat (a 2. jelzőből). AuserAccountControl esetében a 2-es jelző mind a felhasználói, mind a számítógépes fiókokra vonatkozhat, és ezért mindkettő szerepelne a visszaadott bejegyzésekben.

A bitenkénti megfeleltetési szabályok előnyeit többek között abban láthatjuk, hogy lehetővé teszik, hogy egy csomó összehasonlítást egyetlen szűrőben egyesítsünk. Valójában segíthet, ha arra gondolunk, hogy az előbb bemutatott VAGY szűrő is megírható két kifejezéssel:

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

Az előzőhöz hasonlóan ez is megfelel az userAccountControlattribútumoknak, amelyek vagy a 2 vagy az 512 jelzőt tartalmazzák.

A logikai ÉS-re hasonló elvek érvényesek. Ahelyett, hogy a flagben lévő bármelyik bit lehetséges egyezés lenne, a flagben lévő MINDEN bitnek egyeznie kell ahhoz, hogy sikert adjon vissza. Ha megváltoztatnánk auserAccountControl példánkat, hogy logikai ÉS-t használjon, akkor így nézne ki:

(useraccountcontrol:1.2.840.113556.1.4.803:=514)

Ebben az esetben csak a normál felhasználói fiókokat kapnánk vissza, amelyek le is vannak tiltva. Ugyanezt a szűrőt átírhatnánk a | operátor helyett a& operátorral, mint a következőkben:

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

Egy fontos finomság, hogy ha csak egyetlen bit-jelző értékét hasonlítjuk össze, a logikai VAGY és a logikai ÉS megfeleltetési szabály ugyanazt az eredményt adja vissza. Ha tehát minden normál felhasználói fiókot meg akarunk találni, akkor az 512-es flag egyetlen bitje alapján kereshetünk a következők valamelyikével:

(useraccountcontrol:1.2.840.113556.1.4.803:=512)(useraccountcontrol:1.2.840.113556.1.4.804:=512)

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.