Hierarchia
v Active Directory

Organizačné jednotky (Organizational Units)

Aby v doméne (a Active Directory) bol nejaký poriadok, jednotlivé objekty (užívatelia, počítače, skupiny..) je dobré usporiadať do nejakých zložiek. A špeciálnym typom objektu ktorý dokáže uchovávať iné objekty v Active Directory je práve Organizačná jednotka (Organizational Unit - OU)
Pri každej OU je možné určiť napríklad správcu a tak môžem vytvoriť aj administrátorov jednotlivých OU a ak je sieť resp. organizácia veľká správa sa tak možno uľahčí.

Navrhnem teda nejakú základnú štruktúru pre moju doménu...
wray.sk
  All Users
    IT Admins
      lubo@wray.sk
    Research
      Managers
      Users
    Sales
      Managers
      Users
    Staff
    administrator@wray.sk
  All Computers
    Servers
      servera.wray.sk
    Workstations
      xpclienta.wray.sk  
  All Printers
Mám zatiaľ iba dva počítače - ServerA a XPClientA a dva užívateľské účty. lubo@wray.sk a administrator@wray.sk (to je ten falošný administrátorský účet čo som kedysi vytvoril).
Pár ďalších účtov síce existuje už po inštalácii ale tomu nebudem venovať pozarnosť
Predponu "All" som zvolil preto lebo už existujú objekty s názvami Users a Computers a tieto niesú organizačnými jednotkami...

Spustím teda Active Directory Users and Computers a vytvorím príslušné OU.

Malo by to vyzerať nejako takto...

Ešte presuniem užívateľov (lubo a falošný admin) a počítače (ServerA a XPClientA) do príslušných skupín... Hlášky ako túto môžem ignorovať pretože zatiaľ žiadnu Group Policy nepoužívam... (ServerA by som NEMAL presunúť ale to napravím neskôr...)

Ak nastavím v menu View/Users, Groups and Computers as containers, možno vidieť aj jednotlivé objekty v OU a moja organizácia teda zatiaľ vyzerá takto...

Objekty v Active Directory majú svoje mená. A týchto mien je dokonca viacero druhov. Vezmime si napr. moju OU All Users

LDAP Relative Distinguished Name je OU=All Users. Keďže je to iba relative (relatívne) meno tak sa vzťahuje iba k nadradenému kontajneru (doméne alebo inej OU). A pochopiteľne - v jednej a tej istej OU nemôžu byť dva objekty s rovnakým relatívnym menom.

LDAP Distinguished Name je OU=All Users, DC=wray, DC=sk. Toto už je jedinečné v celej doméne a teda v rámci domény môžem mať viacero objektov s rovnakým relatívnym menom (u mňa napr. Users) pretože ich absolútne mená sa líšia...

Canonical name je wray.sk/All Users. To je podobné ako to predošlé akurát zápis je iný...

No a rôzne typy mien sa využívajú pri rôznych typoch úloh...
Napríklad - povedzme že z nejakého dôvodu potrebujem vytvoriť OU s príkazového riadku (lebo tvorím nejaký .bat skript). OU pre nové oddelenie Manufacture vytvorím príkazom
dsadd ou "ou=Manufacture,dc=wray,dc=sk" (po pridaní ou s príkazového riadku je treba reštartovať konzolu ak chcem vidieť čo sa zmenilo v databáze Active Directory... V databáze však nová ou pribudne okamžite)

Okrem mien majú objekty aj svoje prístupové práva a možno nastaviť kto má k akým objektom prístup (záložka security) ale v menších organizáciách má proste administrátor prístup k celému AD...

Ak na užívateľa kliknem pravým tlačítkom a vyberiem properties, je možné pre každého užívateľa nastaviť množstvo vlastností - je to síce trocha zdĺhavé ale ak chcem databázu AD využívať naplno oplatí sa relevantné údaje vyplniť...
A ešte viac podrobností o užívateľovi zistím ak zapnem View/Advanced Features...

Pri vytváraní účtov je dobré mať nejaký systém čo sa mien týka. Ak ako prihlasovacie meno budem používať iba prvé meno tak stačí ak budem mať v organizácii dvoch užívateľov s prvým menom John a už je problém ich rozlíšiť... V takom prípade môže druhý John používať napríklad prihlasovacie meno JohnT kde T bude prvé meno jeho priezviska...
Tiež nie je zlý nápad značiť dočasných pracovníkov nejakým znakom na začiatku a teda ak bude John v organizácii iba pár dní priradím mu prihlasovacie meno T-John...
Vytvorím si teda pár nových užívateľov (pravé tlačítko v príslušnej OU, alebo ikonka v hornej lište)

Užívateľov je tiež možné vytvárať s príkazového riadku podobne ako OU
dsadd user "cn=Test User, ou=Users, ou=Research, ou=All Users, dc=wray, dc=sk"
ďalšie parametre sa dajú zistiť príkazom dsadd user /?

Alice Ashton
OUAll Users/Sales/Managers
User logon namealice
PasswordPassword@1
Telephone number555-2368
Organization/DepartmentSales
Bob Banks
OUAll Users/Research/Managers
User logon namebob
PasswordPassword@1
Telephone number555-1212
Organization/DepartmentResearch
Charlie Collins
OUAll Users/Sales/Users
User logon namecharlie
PasswordPassword@2
Telephone number327-842
Organization/DepartmentSales
Dave Donson
OUAll Users/Research/Users
User logon namedave
PasswordPassword@2
Telephone number555-6823
Organization/DepartmentResearch
Eva Earling
OUAll Users/Research/Users
User logon nameeva
PasswordPassword@2
Telephone number555-4355
Organization/DepartmentResearch
Mallory Manor
OUAll Users/Staff
User logon namemallory
PasswordPassword@3
Telephone number555-0223
Organization/DepartmentResearch
Trent Taylor
OUAll Users/Staff
User logon nametrent
PasswordPassword@3
Telephone number426-687
Organization/DepartmentSales
Lubo Ivanko
OUAll Users/IT Admins
User logon namelubo
PasswordPassword@0
Telephone number555-1234
Organization/DepartmentIT
Walter Wright
OUAll Users/IT Admins
User logon namewalter
PasswordPassword@1
Telephone number555-4321
Organization/Department
Zoe Zela
OUAll Users/Sales/Managers
User logon namezoe
PasswordPassword@1
Telephone number012-6825
Organization/Department

Týchto užívateľov nie je až toľko ale ak je potrebné vytvoriť veľké množstvo užívateľov (napr. 20 nových zamestnancov v mojom výskumnom oddelení wray.sk/All Users/Research/Users) je dobrý nápad vytvoriť si "šablónu" - užívateľský účet kde budú všetky spoločné vlastnosti vyplnené a tento vždy iba skopírovať a upraviť vlastnosti, ktoré sú jedinečné pre konkrétnych zamestnancov.
Obvykle je dobré vytvoriť šablónu pre každé oddelenie a tieto účty (lebo šablóna je v podstate tiež účet) vypnúť (disable account) aby ich nemohol použiť prípadný útočník.

Teraz to v mojej doméne vyzerá nasledovne...

Pre istotu sa skúsim prihlásiť (na XPClientA) napríklad ako Mallory aby som vyskúšal či všetko funguje...
Prihlásenie funguje a teda užívateľské účty som vytvoril vporiadku.

Keďže Mallory je záškodníčka, pokúsi sa hneď pripojiť na Active Directory a spraviť pár zmien... Mallory síce bude mať prístup k Active Directory ale nebude môcť spraviť žiadne zmeny. V Active Directory však napríklad môže zistiť, že môj server sa volá ServerA.
Môže skúsiť spustiť napr. DNS a pokúsi sa na tento server pripojiť ale opäť zistí že nemá prístup.
Vyskúša sa teda na server pripojiť cez Remote Desktop ale opäť iba zistí že nemá prístup...

Mallory teda skúsi urobiť aspoň nejaké zásahy na lokálnom počítači ale zistí že ani tu (ani v doméne) nemá dostatočné práva.
Pokúsi sa pridať samú seba do skupiny lokálnych administrátorov (aby teda mohla mať plné práva aspoň na počítači XPClientA) a všetko pôjde ok až do chvíle kým stlačí apply...

Server aj pracovné stanice sú teda vcelku zabezpečené (voči takémuto útočníkovi).
V rámci ešte väčšej bezpečnosti by som sa aj na svoju pracovnú stanicu (XPClientA) nemal nikdy prihlasovať s účtom ktorý má plné práva a radšej používať bežný účet a server spravovať pomocou "run as" ale - až takú bezpečnosť zase nepotrebujem :)

Vyhľadávanie objektov v Active Directory (Queries)

Samozrejme že AD ako každá databáza umožňuje aj vyhľadávanie objektov.

Dajme tomu že hľadám užívateľa Boba. V menu vyberiem Action/Find (alebo pravé tlačítko na doménu a Find), do kolonky meno napíšem bob, Kliknem na Find Now a mám ho.

Povedzme že som nechtiac presunul v AD počítač XPClientA a neviem kam... Viem len že sa meno počítača začínalo s XP...
Cez Advanced Search počítač ľahko nájdem.

A keď skontrolujem vlastnosti (Properties) a záložku Object hneď viem kde objekt je...

Iný príklad - chcem nájsť všetkých užívateľov, ktorým som zabudol vyplniť položku Department (a teda neviem v ktorom oddelení vlastne pracujú). Pomocou Advanced Search to nie je žiaden problém...

Má to len jednu chybičku - ak takéto hľadanie robievam často tak je otravné zakaždým spúšťať search a vyplňovať v políčkach čo vlastne hľadám... Existuje preto možnosť parametre hľadania uložiť a vytvoriť tzv. Dotaz (Query).
Dotaz je teda vlastne vyhľadávanie ale parametre podľa ktorých hľadám sú preddefinované...

Vytvorím napríklad dotaz pomocou ktorého zistím vždy aktuálny zoznam užívateľov, ktorých telefónne číslo začína 555.
Pravé tlačítko na Saved Queries,New,Query a potom kliknem na Define Query

Custom Search, nájdem príslušné políčko, podmienka "Starts with 555"...

A (vždy aktuálny) zoznam užívateľov mám na dosah jedného kliku...

Takéto dotazy potom môžem využiť na jednoduchšiu administráciu. Účty, ktoré sú výsledkom dotazu môžem napr. dočasne vypnúť, zmazať, presunúť do inej OU...
Dotazy fungujú iba v doméne kde boli vytvorené, ale ak ich chcem použiť inde možno ich importovať a exportovať ako xml...
Dotazy sa dajú písať aj z príkazového riadku (použiť v skriptoch). Slúži na to príkaz dsquery

Skupiny (Groups)

Okrem OU je možné užívateľov zaraďovať aj do tzv. skupín. Základný rozdiel je ten že užívateľ môže byť členom len jednej OU (a jej nadradených OU), pri skupinách takéto obmedzenie neplatí a užívateľ môže byť členom hocijakého množstva skupín.
Na druhej strane skupina (Group) zoskupuje iba užívateľské účty príp. počítače (nie iné objekty v AD, OU nemôže byť členom skupiny)
Skupiny možno do seba vnárať (skupina môže byť členom inej skupiny) a možno tak sprehľadniť administráciu. Skupiny slúžia najmä na udeľovanie prístupových práv pretože keď určujem kto má prístup k niečomu môžem buď vymenovať jednotlivých užívateľov alebo dať prístupové právo celej skupine. (S OU to nefunguje - nemožno zmeniť prístupové práva na základe členstva v nejakej OU)
Podobne ako v doméne - skupiny existujú aj na lokálnom počítači a ich členmi môžu byť lokálne účty.

Skupiny majú svoj typ (Group Type)...
Security (bezpečnostné) slúžia najmä na administráciu prístupových práv. Môžu však slúžiť aj ako distribučné (poslať mail všetkým členom skupiny...)
Distribution (distribučné) slúžia iba v spolupráci s e-mailovými aplikáciami. Mohlo by sa zdať že teda stačí používať na všetko Security Groups ale bohužiaľ pár aplikácií pracuje iba s distribučnými...

...a svoj rozsah platnosti (Group Scope)
Global (globálne) môžu obsahovať iba objekty z domény, v ktorej boli vytvorené. Môžu byť členmi iných skupín a globálnej skupine možno udeliť prístupové práva aj v inej doméne ako bola vytvorená.
Domain Local (lokálne) môžu obsahovať iba objekty z domény, v ktorej boli vytvorené. Môžu byť členmi iných lokálnych skupín a lokálnej skupine možno udeliť prístupové práva iba v doméne ktorej bola vytvorená.
Universal (Univerzálne) môžu obsahovať objekty z hocijakých domén a možno nimi definovať práva v hocijakej doméne...

Skúsim vytvoriť skupinu My Users do ktorej vložím všetkých užívateľov (v skutočnosti zbytočné lebo už existuje skupina Domain Users) a okrem iného si všimnem že nie je možné zvoliť typ skupiny Universal...

Toto je spôsobené tým že nemám "dostatočnú" funkčnú úroveň domény (Domain Functional Level)
Pravé tlačítko na moju doménu a Raise Functional Level a zistím že funkčná úroveň mojej domény je Windows 2000 Mixed...

Zdvihnem teda úroveň na Windows Server 2003 (keďže v mojej doméne nemám doménové kontroléry s operačným systémom starším ako Windows 2003 tak to nevadí) Odteraz mám v mojej doméne nové funkčné možnosti (a jedna z nich je že môžem vytvárať univerzálne skupiny)

Urobím si teda pár skupín a "nejak logicky" ich v AD umiestnim. Všetky skupiny ponechám Domain Local a Security.
Ak v menu zapnem View/Users, Groups and Computers as Containers tak môžem pridávať členov do skupín jednoducho cez drag and drop...

Research Managers: (Bob)
Sales Managers: (Alice, Zoe)
Research Workers: (Dave, Eva)
Sales Workers: (Charlie)
System Admins: (Lubo, Walter)
Staff and Other: (Mallory, Trent, System Admin)

All Managers: (Research Managers, Sales Managers)
All Workers: (Research Workers, Sales Workers)

Research Users: (Research Managers, Research Workers)
Sales Users: (Sales Managers, Sales Workers)

V mojej doméne to teraz vyzerá nasledovne...

Mená skupín som nezvolil úplne najšťastnejšie - v praxi sa oplatí premyslieť to ešte lepšie a Microsoft má tiež veľa tipov na túto tému...
Neskôr si vytvorím skupiny pre prístup k tlačiarni alebo zdieľanému adresáru a túto konvenciu skúsim dodržať.

Skupine sa dá priradiť tiež manager - správca a ten potom môže určovať členov... Možno fajn pri veľmi veľkých organizáciách ale tu stačí keď možnosť manipulovať so skupinami ostane len administrátorom...
Ak potrobujem aby mal aj iný člen možnosť manipulovať so skupinami a AD vôbec musí byť členom zabudovanej skupiny Domain Admins.

Taký Walter napríklad je síce administrátorom ale zatiaľ nemá žiadne práva. Toto hneď napravím a skupinu System Admins (ktorej je Walter členom) spravím členom zabudovanej skupiny Domain Admins

Ak sa skúsim teraz prihlásiť ako Walter (heslo Password@1) zistím, že Walter má naozaj plné právo k AD a užívateľským skupinám...

Naproti tomu taká Eva ako bežný užívateľ skupiny modifikovať nemôže... Aby som však mohol skupiny naplno preveriť a využiť potrebujem mať File Server alebo Print Server, kde budú súbory a tlačiarne ktoré budú môcť užívatelia využívať...

(c) Wray 2007