www.SAMURAJ-cz.com 

24.04.2024 Jiří Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Kerberos část 1 - Active Directory komponenty

Pátek, 13.06.2014 14:28 | Samuraj - Petr Bouška |
Vítejte u prvního dílu seriálu, který se věnuje protokolu Kerberos se zaměřením na Single Sign-On (SSO) v prostředí Microsoft Active Directory. Dnešní díl se přímo Kerberos protokolu nevěnuje, ale popíšeme si základní termíny Active Directory, které potřebujeme znát, a s kterými Kerberos autentizace souvisí (když ji používáme v doménovém prostředí). Stručně zmíníme AD komponenty, protože struktura souvisí s Kerberos Realm. Dále si popíšeme, jak klient hledá doménový řadič (což je zároveň Kerberos autentizační server).

V dalších dílech si popíšeme obecně vlastnosti a funkce Kerberos protokolu. Podíváme se na to, co vlastně znamená SSO a jaké jsou možnosti. Rozebereme si jednotlivé komponenty a prvky, které Kerberos protokol používá. Popíšeme si proces Kerberos autentizace (tedy SSO) od zjednodušeného, přes podrobnější, až k detailnímu popisu. Podíváme se na fungování SSO autentizace mezi různými doménami. A zmíníme možnosti využití Kerberos SSO pro webové aplikace.

Tento seriál vychází také (v lehce upravené podobě) v rámci Microsoft TechNet Blog CZ/SK v Microsoft sekci na Živě. První díl Kerberos část 1 – Microsoft Active Directory.

Microsoft AD DS

Samozřejmě si tu nepopíšeme vše (a s určitou znalostí AD DS počítáme), nějaké další věci jsem popsal již před lety v článcích Adresářové služby a LDAP, Active Directory komponenty - domain, tree, forest, site a DNS (Domain Name System) zaměřeno na Microsoft. Odkaz na více materiálů se nachází na konci článku.

Active Directory Domain Services

Active Directory (AD) je adresářová služba od Microsoftu. Active Directory Domain Controller (DC či doménový řadič nebo pouze řadič) je server na kterém běží Active Directory Domain Services (AD DS, tento název se používá od Windows Server 2008, předtím se používal pouze Active Directory). AD DS poskytuje distribuovanou databázi, která v hierarchické struktuře obsahuje síťové objekty (jako je uživatel, počítač, skupina). Zajišťuje také autentizaci a autorizaci uživatelů a počítačů v síti. Využívá se LDAP protokol, rozšířený Kerberos verze 5 a DNS (Domain Name System).

Pro správu AD DS od Windows Server 2008 se využívá balíček Remote Server Administration Tools (RSAT), který je součástí serverových OS a na klientské jej můžeme doinstalovat.

Doména (Domain)

Doména (Domain) je logická skupina počítačů, které sdílí společnou AD databázi. Když vytvoříme doménu, tak se automaticky vytvoří strom a les. Nejjednodušší je mít vše pouze jednou. V praxi to ale vždy nelze, takže musím vytvářet složitější struktury. Doména se ve schématech znázorňuje jako trojúhelník, prvky uvnitř jsou členy dané domény.

Jméno Active Directory domény je běžně plné DNS (Domain Name System) jméno (příklad firma.local). Může obsahovat písmena, číslice, pomlčku a tečku (pouze pro oddělení komponent), maximální délka je 64 znaků. Každá doména má ale také (z důvodu kompatibility) pre-Windows 2000 jméno, které se označuje jako NetBIOS doménové jméno (příklad firma). To může být maximálně 15 znaků dlouhé a nesmí obsahovat tečku a řadu dalších znaků.

Zobrazit doménová jména si můžeme například pomocí nástroje Active Directory Domains and Trusts. V okně vidíme seznam domén a jejich DNS jména, pokud na doménu klikneme pravým tlačítkem a zvolíme Properties, tak uvidíme NetBIOS jméno a také stupeň lesa a domény.

Strom (Tree) a hierarchie domén

V rámci stromu (Tree) existuje hlavní kořenová doména (Tree Root Domain), která má svůj jmenný prostor (namespace, třeba firma.local). Pod kořenovou doménou můžeme vytvořit další domény, které se označují Child Domain, ty obsahují jmenný prostor nadřazené domény (Parent Domain) a svoje relativní jméno (tedy třeba test.firma.local). Každá doména má vlastní AD databázi, která se nachází na všech doménových řadičích dané domény. V rámci stromu může existovat pouze jedna kořenová doména, pokud chceme druhou (hlavně kvůli novému namespace), tak musíme vytvořit nový strom. Strom se ve schématech znázorňuje jako ovál či kruh.

Les (Forest), schéma a vztahy důvěry

Jeden nebo více stromů se nachází v lese (Forest). Les sdílí společné AD schéma (Active Directory Schema). Schéma definuje AD databázi, co v ní může být uloženo a jakou to má strukturu. Každá doména má vlastní databázi (obsah), ale stejnou strukturu (schéma). V rámci lesa existuje jedna kořenová doména (Forest Root Domain), jde o prvně vytvořenou doménu v daném lese. Ta obsahuje skupiny Enterprise Admins a Schema Admins. Les se ve schématech znázorňuje jako obdélník či kruh.

Když chceme zjistit, jaká doména je Forest Root, tak můžeme spustit nástroj Active Directory Domains and Trusts, který také použijeme pro správu vztahů důvěry. Zvolíme Action - Change forest a zde vidíme aktuální kořenovou doménu.

Všechny domény v rámci lesa mají automaticky vytvořenou důvěru (Trust). Jde o Two-way Transitive Trust, to znamená, že vztah důvěry je obousměrný a není omezen na dvě přímo propojené domény, ale může se rozšířit dále (pokud má druhá doména důvěru s další doménou, tak této třetí doméně důvěřuje i ta první). Vytváří se důvěra mezi kořenovými doménami stromů v rámci lesa, ta se označuje Tree-Root Trust. A mezi nadřízenými doménami v rámci stromu, to je Parent-Child Trust. Ručně můžeme vytvořit důvěru mezi různými lesy (navazuje se mezi Forest Root Domain), to je Forest Trust, a dále Shortcut Trust, Realm Trust a External Trust.

Pro správu schématu slouží nástroj Active Directory Schema. Ten se standardně nenachází mezi Administrative Tools (ani když jsme nainstalovali RSAT, který potřebujeme), ale je třeba zaregistrovat knihovnu regsvr32 schmmgmt.dll. Potom můžeme použít mmc konzoli a přidat Snap-in Active Directory Schema (nejlépe následně uložit).

Global Catalog

V rámci lesa je důležitá služba Global Catalog (GC). Ta obsahuje index pro všechny objekty v rámci lesa (jde o částečnou kopii adresářových oblastí pouze pro čtení), ke každému má pouze základní informace. V každé doméně musí být alespoň jeden GC server (a ten je zároveň DC). Doménový řadič má údaje pouze o objektech, které patří do jeho domény. Pokud chceme přistoupit k prvku z jiné domény, tak se právě využije Global Catalog, který nám poskytne informace, na jakém doménovém řadiči se tento objekt nachází.

Pro nastavení globálního katalogu se používá nástroj Active Directory Sites and Services, kde se proklikáme přes odpovídající Site na hledaný DC a pod ním klikneme pravým tlačítkem na NTDS Settings a zvolíme Properties.

Schéma doménových vazeb

Následující obrázek jednoduše zobrazuje výše popsané. Je zde prostředí s jedním lesem, dvěma stromy a celkem pěti doménami. První byl instalován řadič DCfirma1, čímž vznikla doména firma.local (a strom i les) a stala se kořenovou pro strom i celý les. K této doméně byla přidána podřazená doména pr.firma.local. Byl také vytvořen druhý les, který má kořenovou doménu firma.test. V tomto lese jsou dvě podřazené domény.

Automaticky se vytvořily vztahy důvěry, takže z domény pr.firma.local můžeme komunikovat s objekty ve vyvoj.firma.test (musí to být samozřejmě zařízeno síťově, zde řešíme logickou část). Komunikace postupuje po vztazích důvěry, nejprve na kořenovou doménu stromu firma.local, přes kořenový vztah lesa na firma.test až na vyvoj.firma.test.

Pozn.: Ve schématech je pro každou doménu znázorněn pouze jeden doménový řadič. V praxi bývají většinou minimálně dva.

Schéma - les se dvěma stromy a pěti doménami

Nalezení doménového řadiče potažmo KDC

Když se uživatel přihlašuje v rámci domény, tak musí nalézt vhodný doménový řadič (DC). V případě Kerberos autentizace kontaktuje službu Authentication Service (AS) na Key Distribution Center (KDC), tato služba běží na každém DC.

Řadič se hledá pomocí DNS SRV záznamu (případně NetBIOS) pro danou doménu. Obecně jde o záznam _ldap._tcp.DnsDomainName (třeba _ldap._tcp.firma.local), ale Microsoft používá speciální záznamy, aby hledal pouze Windows LDAP servery, _ldap._tcp.dc._msdcs.DnsDomainName (třeba _ldap._tcp.dc._msdcs.firma.local) Klient získá seznam všech dostupných řadičů a odešle na ně LDAP dotaz, oni odpoví základními informacemi. Klient použije první DC, který odpověděl a pomocí své IP adresy a subnetu zjistí, do jaké patří Site. Pomocí DNS SRV záznamu _ldap._tcp.SiteName._sites.dc._msdcs.DnsDomainName (třeba _ldap._tcp.Praha._sites.dc._msdcs.firma.local) zjistí seznam všech DC v dané Site. Na všechny odešle LDAP dotaz, první který odpoví, použije pro autentizaci. Výsledek je, že se upřednostňují řadiče ve stejné Site jako klient, pokud jich je více, tak se volí pomocí Round Robin.

Pro některé situace je třeba nalézt Global Catalog (GC), to se provádí obdobně pomocí záznamu _ldap._tcp.gc._msdcs.DnsForestName (třeba _ldap._tcp.gc._msdcs.firma.local).  Existují i další záznamy pro GC. Identicky existuje několik záznamů pro Kerberos KDC, některé obecné a jiné speciálně pro Microsoft servery. Pro MS je hlavní _kerberos._tcp.dc._msdcs.DnsDomainName (třeba _kerberos._tcp.dc._msdcs.firma.local).

Pozn.: Všechny tyto SRV záznamy si registruje NetLogon služba na DC při svém startu.

Odkazy

zobrazeno: 20189krát | Komentáře [0]

Autor:

Související články:

Kerberos protokol se zaměřením na SSO v AD DS

Nový seriál, který se podrobně věnuje protokolu Kerberos V5, hlavně v prostředí Microsoft Active Directory. Popíšeme si i řadu souvisejících věcí, které jsou potřeba pro pochopení fungování Kerberos Single Sign-On (SSO).

Active Directory a protokol LDAP

Správa počítačové sítě ala Microsoft, to je Active Directory. Jedná se o velice rozsáhlou skupinu technologií a služeb. Základem jsou adresářové služby, adresáře a komunikační protokol LDAP.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

Zatím tento záznam nikdo nekomentoval.

Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách