Kuchařka služby Active Directory by

Diskuse

Mnoho atributů ve službě Active Directory se skládá z bitových příznaků. Bitový příznak se často používá k zakódování vlastností o objektu do jednoho atributu. Například atribut groupType u objektůgroup je bitový příznak, který se používá k určení rozsahu a typu skupiny.

Atribut userAccountControl u objektůuser a computer slouží k popisu celé řady vlastností, včetně stavu účtu (tj, povoleno nebo zakázáno), uzamčení účtu, nevyžaduje se heslo, vyžaduje se ověření čipovou kartou atd.

Atributy searchFlags a systemFlags na objektech attributeSchema definují mimo jiné, zda je atribut konstruován, indexován a zahrnut jako součást Ambiguous Name Resolution (ANR).

Pro vyhledávání podle těchto typů atributů je třeba použít filtry bitového vyhledávání. Existují dva typy bitových vyhledávacích filtrů, které můžete použít, jeden, který představuje logické OR, a druhý, který představuje logickéAND. To je implementováno v rámci vyhledávacího filtru jako pravidlo porovnávání. Pravidlo shody je jednoduše způsob, jak informovat server LDAP (v tomto případě řadič domény), aby s částí filtru zacházel jinak. Zde je příklad, jak vypadá pravidlo přiřazování:

(userAccountControl:1.2.840.113556.1.4.803:=514)

Formát je(attributename:MatchingRuleOID:=value). jak jsem se zmínil, existují dvě bitová pravidla přiřazování, která jsoudefinována pomocí OID. OID logického pravidla přiřazování AND je1.2.840.113556.1.4.803 a OID logického pravidla přiřazování OR je1.2.840.113556.1.4.804. OID logického pravidla přiřazování AND je1.2.840.113556.1.4.803. Tyto OID dávají serveru pokyn, aby provedl zvláštní zpracování filtru. Logický OR filtr vrátíúspěch, pokud je některý bit určený value, uložen v attributename. Případně logický AND filtr vrátí úspěch, pokud všechny bity specifikované pomocí value, odpovídají hodnotěattributename. Možná vám to pomůže objasnit příklad:

Chcete-li vytvořit běžný uživatelský účet, musíte nastavit hodnotuuserAccountControl na 514. V případě, že chcete vytvořit běžný uživatelský účet, je třeba nastavit hodnotuuserAccountControl na 514. Číslo 514 bylovypočteno sečtením příznaku normálního uživatelského účtu 512 s příznakem zakázaného účtu 2 (512 + 2 = 514). Pokud proti hodnotě 514 použijete následující pravidlo logické shody OR, jak je uvedeno zde:

(useraccountcontrol:1.2.840.113556.1.4.804:=514)

, vrátí se všechny normální uživatelské účty (příznak 512) NEBO zakázané účty (příznak2). To by zahrnovalo povolené uživatelské účty (z příznaku 512), zakázané počítačové účty (z příznaku 2) a zakázanéuživatelské účty (z příznaku 2). V případěuserAccountControl se příznak 2 může vztahovat jak na uživatelské, tak na počítačové účty, a proto by byly oba zahrnuty do vrácených záznamů.

Jedním ze způsobů, jak vidět výhody pravidel bitového porovnávání, je to, že umožňují spojit několik porovnání do jediného filtru. Ve skutečnosti může pomoci myšlenka, že předchozí filtr OR, který jsem právě ukázal, by se dal také zapsat pomocí dvou výrazů:

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

Stejně jako předtím bude tento filtr odpovídat userAccountControlatributům, které obsahují buď příznak 2, nebo 512.

Pro logické AND platí podobné principy. Místo toho, aby se mohl shodovat kterýkoli z bitů v příznaku, musí se shodovat VŠECHNY bity v příznaku, aby se vrátil úspěch. Pokud bychom náš příkladuserAccountControl změnili na použití logického AND, vypadal by takto:

(useraccountcontrol:1.2.840.113556.1.4.803:=514)

V tomto případě by byly vráceny pouze normální uživatelské účty, které jsou zároveň zakázány. Stejný filtr bychom mohli přepsat s použitím operátoru& místo operátoru | takto:

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

Důležitou jemností, kterou je třeba si uvědomit, je, že pokud porovnáváme pouze jednu hodnotu bitového příznaku, logické pravidlo OR a logické pravidlo AND by vrátilo stejný výsledek. Pokud bychom tedy chtěli najít všechny normální uživatelské účty, mohli bychom hledat na základě jediného bitového příznaku 512 pomocí jednoho z následujících příkladů:

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.