Jak jistě víte, Active Directory pracuje vždy na nějaké úrovni funkčnosti domény nebo forestu (domain functionality level - DFL, respektive forest functionality level - FFL). To je tam proto, aby novější DC mohla spolupracovat se staršími. Prostě se novější DC tímto způsobem degradují na úroveň svých starších kamarádů.
Když máte třeba DFL na úrovni Windows 2003, tak to znamená, že v doméně mohou být operačních systémy DC od Windows 2003. Když máte FFL na úrovni Windows 2003, znamená to, že každá doména ve forestu musí být alespoň na DFL Windows 2003.
Je vcelku logické, že mnoho funkcí je k dispozici až máte určitý DFL, nebo FFL. To je tím, jak Microsoft postupně ty funkce přidává až do novějších DC. Je zvykem, že se nové funkce do starších verzí nepřidávají, a to ani v Service Packu.
Pěkný příklad je třeba AD Recycle Bin. Vyžaduje FFL Windows 2008 R2. Starší DC prostě neumí ukládat recyklované objekty a neumí je nemazat při garbage collection. Kdyby se do nich snažilo tohle replikovat, zřejmě by jim to neudělalo dobře.
Nebo granular (fine-grained) password policies. Pokud máte DFL Windows 2008, tak můžete definovat zásady hesel pro jednotlivé uživatelské skupiny i jednotlivce. Definice se udělá jako obyčejný LDAP objekt uvnitř domény. Ten by se v pohodě mohl replikovat i do DC na Windows 2003 (a taky že replikuje). Jenže Windows 2003 mu nerozumí. Vynucení zásad hesel by bylo nekonzistentní, tudíž možná nebezpečné, a i lidem by to dávalo chaotické chování.
Je zajímavé, že některé věci na úrovni nezávisí
a DCčka je prostě dělají od novější verze bez ohledu na kamarády. Jsou to tyto:
- confidential atributy
- indexování objectClass atributu
- rekurzivní vyhledávání v link a backlink řetězcích
- automatické generování linkID při rozšiřování schema
- computed (neboli constructed) atributy
- obnova DC z virtualizačního snapshotu
- funkce zvaná try next closest site
- RODC
Podívejme se na to po jednom
Confidential atributy
Pokud máte schema na verzi Windows 2003, tak se jednotlivé atributy mohou označit jako tzv. confidential. Tedy jakési tajné atributy. Funguje to tak, že k tomu, abyste mohli číst jejich hodnotu, musíte mít i oprávnění pro zápis Write. To je prevence proti různým zděděným oprávněním pro čtení.
Pěkným příkladem je msFVE-RecoveryPassword atribut. I když ho skupina Pre-Windows Compatible Access Group může číst, rozhodně se do něho nepodívá. Je v něm uloženo 48 znakové heslo pro dešifrování oddílů, které zašifrovala technologie BitLocker.
Nepotřebuje na to ale DFL/FFL na verzi Windows 2003. Starší Windows 2000 tomu příznaku prostě nerozumí a tedy na něho "jen" kašlou. Dají tedy jeho hodnotu komukoliv, kdo má i jen Read oprávnění. Ve vašem zájmu by tedy mělo být tu úroveň zvednout dobrovolně :-)
Indexování objectClass atributu
Windows ve verzi starší, než Windows 2008, neindexují atribut objectClass. Od jakživa indexují místo toho jen objectCategory. To je škoda, protože vyhledávání s podmínkou na objectClass je pak zbytečně pomalé. Windows 2008 už ten atribut indexují.
Je ale zajímavé, že si ho indexují samy a kašlou na DFL/FFL. Když tedy hledáte v LDAPu na Windows 2008, bude to možná rychlejší, než na starších OS.
Rekurzivní vyhledávání v link a backlink řetězcích
Řadiče domény od Windows 2003 SP1 (nebo možná až SP2, nevím jistě) mají nový vyhledávací modifikátor. Ideálně se použije na vyhledávání členství ve skupinách. Pokud byste hledali jenom takto:
(&(objectClass=user)(memberOf=CN=Domain Admins,CN=Users,DC=gopas,DC=virtual))
Tak byste našli všechny přímé členy skupiny Domain Admins. Ale už byste nenašli členy, kteří jsou tam potažmo přes nějakou další skupinu. A k tomu je ten nový modifikátor LDAP_MATCHING_RULE_IN_CHAIN (OID 1.2.840.113556.1.4.1941):
(&(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=Domain Admins,CN=Users,DC=gopas,DC=virtual))
Jen upozorňuju, že primární skupina (primaryGroupID) není v atributu memberOf uvedena a tak ji to neprohledává.
A zase to nevyžaduje DFL. Prostě to je tak, že když se zeptáte DC staršího než Windows 2003 SP1, tak na to nedostanete žádnou odpověď.
Více k vyhledávání viz. tady.
Computed (neboli constructed) atributy
Jsou výpočtové atributy, které starší DCčka neumí vypočítávat. A přitom vám je novější DC vypočtou i bez patříčného DFL/FFL. Co já vím, tak jsou to tyto:
msDS-UserAccountDisabled od operačního systému Windows 2008
msDS-User-Account-Control-Computed už od OS Windows 2003
msDS-UserPasswordExpiryTimeComputed až od Windows 2008
Obnova DC z virtualizačního snapshotu
O obnově DC ze snapshotu jsem už jednou psal. Tu je to docela pochopitelné. Prostě řadič domény (DC) ve verzi Windows 2012 a novější, pokud běží v Hyper-V 3.0 (tedy opět Hyper-V ve Windows 2012 a novějším) můžete obnovit ze snapshotu. Jsou k tomu ještě nějaké podmínky, ale DFL ani FFL mezi nimi není.
Funkce zvaná Try next closest site
Když se stanice Windows XP, nebo členský server Windows Server 2003 (a starší) ptá nějakého řadiče na jméno své AD site, ptá se vždy jen na svoji konkrétní site. Pokud v té site chcípne i poslední DCčko, takový členský počítač domény se připojuje dočasně na libovolné jiné DCčko z celého generického (non-site-specific) seznamu.
To je škoda. Buď ten list musíte mít omezený jen na centrálu, nebo se připojuje klidně přes deset siteLinků.
Pokud zapnete funkci Try next closest site, tak se klienti od Windows Vista a Windows 2008 ptají řadičů na svoji konkrétní, ale ještě i na další nejbližší site (next close site). Při výpadku všech řadičů ve své site se mohou obrátit dočasně na kamarády z této další nejbližší site.
Nojo, jenže řadiče domény (DC) starší než Windows 2008 na to neumí odpovědět a vrací jen tu konkrétní site. Nevadí, noví klienti to stejně zkouší vždycky a když se zrovna trefí do Windows 2008 a novějšího DC, tak dostanou prostě i tu další blízkou site. DFL ani FFL tu nehraje roli.
RODC
Když si všimnete, že ten veleslavný AD Recycle Bin vyžaduje FFL 2008 R2, tak si můžete představit, jak moc asi Microsoft čeká, že vás ta fíčura bude zajímat. Nový systém si kvůli tomu nejspíš nekoupíte. Takže se moc nepřemáhaly a napálili ten požadavek prostě takto.
Zatímco RODC je tak parádní bezpečnostní fíčura, že to může někoho motivovat nakoupit si nové operační systémy pro řadiče. A vyměnit stávající řadiče v pobočkách. MS se tedy rozhodl, že mákne, aby to fungovalo i v DFL Windows 2003. Nemusíte tedy upgradovat všechna DC na Windows 2008. Stačí vám jedno jediné, DFL 2003 a pak už můžete mít RODC.
LDAP týmu se musely porvat žíly, když to implementovali :-)