Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Windows 2016 a expirující doménové skupiny které jsou tu už od Windows 2003
duben 23
Windows 2016 a expirující doménové skupiny které jsou tu už od Windows 2003

Na letošní konferenci ShowIT 2016 jsem ukazoval novinku ve Windows 2016 a znovu to budu ukazovat na nemilosrdně se blížím TechEdu. A protože je už vyprodáno, tak to berte pro některé jako malou ochutnávečku a pro ostatní jako možnost přečíst si něco, co neuslyšíte :-)

Je to taková malinká příjemná novinečka ve Windows 2016 Active Directory, která může mít velký dosah a přitom tam je ve své podstatě už od Windows 2003, akorát se o tom až do teď skoro nevědělo (tedy pokud jste nebyli na mém GOC171).

Vo co gou? Dočasné členství v AD skupinách, lépe řečeno přímé dočasné členství, neboli nejpřesněji expirující linky. Členství ve skupinách můžete přidělovat jen na omezený čas.

Prostě při forest functional level 2016 (FFL 2016) můžete začít používat tzv. optional feature (podobně jako je AD recycle bin) nazvanou Privileged Access Management Feature (zapíná se opět pomocí Enable-AdOptionalFeature).

Znamená to, že AD umí nastavit na link-cích expiraci a umí tedy po nějaké době dané linky smazat z databáze. Potřebujete k tomu FFL 2016, protože je to obecná nová funkce celé databáze, tedy forestu. Členství ve skupinách funguje tak, že skupiny (group) pomocí svého link atributu member odkazují na svoje členy. Nově se na ty linky dá nastavit expirace (hodnota TTL - time to live), takže je AD po nějaké době odstraní.

Něco podobného šlo už od forest functional level 2003 od kdy je možné nastavit TTL pro objekty (object). Tedy nikoliv linky. Takže AD umí už dlouho automaticky expirující objekty, nově umí i linky. Nazývalo se to dynamické objekty (dynamic object), dnes přibyly dynamické linky (dynamic link).

Rychle dva cmdlety pro zadávání dočasného členství ve skupinách - detaily už si každý dogůgluje (klíčová slova - privileged access management PAM, dynamic groups, dynamic links etc.):

Enable-AdOptionalFeature -Identity 'Privileged Access Management Feature' -Scope ForestOrConfigurationSet -Target gopas.virtual
Add-ADGroupMember -MemberTimeToLive

Pro geeky používající LDP:

LDAP_SERVER_LINK_TTL_OID 1.2.840.113556.1.4.2309

Dočasné členství ve skupinách postaru (FFL 2003 až 2012)

Už za použití těch původních dynamických objektů (dynamic object) šlo zařídit dočasné členství ve skupinách už při FFL 2003. Museli jste ale vytvořit dočasnou mezi-skupinu, kterou AD časem odstranilo a tak jste vlastně vypadli i ze skupiny skutečné. Viz. následující obrázek:

Skutečná skupina je nahoře. Skutečný účet (nebo další skupina) je dole. Mezi tím je dočasná skupina s omezenou životností TTL. Šipky zachycují linked atribut member. Jakmile AD tu meziskupinu odstraní, účet najednou už není členem té horní skutečné skupiny.

Pokud jste tohle chtěli používat na FFL 2003, tak jste museli vytvořit pokaždé novou expirující dočasnou skupinu (s novým SIDem), vložit do ní toho spodního člena a tuto dočasnou skupinu vložit do vámi požadované horní skupiny.

Mám k tomu demonstrační skript, tak kdyby to něhoko zajímalo - natvrdo tomu novému objektu skupiny nastavíte atribut objectClass na dynamicObject. Divné co? A potom už jenom nastavíte jeho atribut entryTTL na hodnotu expirace v minutách. Nepohodlné a navíc to spotřebovává SIDy.

$ou = [ADSI] 'LDAP://OU=Company,DC=gopas,DC=virtual'
$user = [ADSI] 'LDAP://CN=Kamil,OU=People,OU=Company,DC=gopas,DC=virtual'
[int] $ttl = 20

$baseGroup = $ou.Create('group', 'CN=IS Access')
$baseGroup.Put('sAMAccountName', 'IS Access')
$baseGroup.SetInfo()

$expiringGroup = $ou.Create('group', "CN=IS Access Expiring in $ttl minutes")
$expiringGroup.PutEx(2, 'objectClass', @('dynamicObject', 'group'))
$expiringGroup.Put('entryTTL', ($ttl * 60))
$expiringGroup.Put('sAMAccountName', "IS Access Expiring in $ttl minutes")
$expiringGroup.SetInfo()

$baseGroup.Add($expiringGroup.Path)
$expiringGroup.Add($user.Path)

Poznámka: na CN=Directory Services,CN=Windows NT,CN=Services,CN=Configuration je atribut ms-DS-Other-Settings s hodnotou DynamicObjectMinTTLSeconds který určuje minimální hodnotu TTL, kterou bude AD uplatňovat. Pokud na entryTTL nastavíte hodnotu menší (což jde), tak se prostě objet smaže až později, nejméně po té minimální hodnotě TTL. Menší hodnota než 5 minut jde sice nastavit, ale kratší životnost to nebude mít nikdy. Což nejspíš ani nepotřebujete.

Hlavní výhoda nové metody Privileged Access Management (PAM) ve Windows 2016

Hlavní výhoda PAM feature ve Windows 2016 je ale jinde. Jde o aktualizaci členství ve skupinách (viz. nějaké moje starší články). Problém je s Kerberos TGT a TGS tickety. Tickety mají platnost ve výchozím stavu až 10 hodin. Takže členství ve skupinách se po tuto dobu nebude měnit zaručeně. Bez ohledu na to, jestli už vlastně neexistuje. Samozřejmě jde platnost TGT a TGS tiketů omezit pomocí group policy, ale to třeba někdo nechce, zvyšuje to zátěž apod.

Jakmile máte ale PAM, tak se změní chování KDC (Kerberos Key Distribution Center, neboli Kerberos Domain Controller). Jestli jste členem nějaké skupiny jen dočasně, tak vám prostě KDC vydá kratší TGT nebo TGS, které platí jen do konce zbytku vašeho členství (to nejkratší, které máte). Takže nejpozději jakmile členství vyprší, současně už přestanou platit vaše TGT a TGS tikety a musíte si vydat nové, což znamená, že se znovu zkontroluje členství  ve skupinách.

Pěkné ne?

Poznámka: proč tady zmiňuji TGT i TGS je proto, že TGT obsahuje pouze global skupiny z vaší domény a universal skupiny z celého forestu, zatímco TGS potom obsahuje ještě i domain local skupiny z resource domény (trusting domain, outgoing trust).

Comments

Platnost uživatelského účtu

Ahoj, jen mne napadla jedna věc, když mám na účtech omezení platnosti do ..., tak jim systém vydává TGT do doby platnosti účtu nebo bych měl čekat, že uživatel má ticket na další 10 hodin.
Vlado on 25.4.2016 20:52

Re: Windows 2016 a expirující doménové skupiny které jsou tu už od Windows 2003

ondass on 25.4.2016 22:09

Add Comment

Sorry comments are disable due to the constant load of spam *


Omlouvám se, ale příval spamu nelze kontrolovat, takže mi prosím pošlete email, pokud máte nějaký dotaz, nebo připomínku.

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments