1s pro tohoto uživatele nejsou k dispozici žádné role. Nejvíce matoucí dialogové okno v Active Directory. Jak testujeme a čemu věnujeme pozornost

2 odpovědi

řešitelný.

První poločas byl můj nedopatření. Druhá polovina... no, nevím, co bylo špatně. Ve skutečnosti to není chyba nebo nekompatibilita, ale něco velmi nepříjemného, ​​občasného a těžko pochopitelného. Nejprve shrnutí a poté vysvětlení délky pro ty, které to zajímá:

Navzdory návrhům chybové zprávy se nejedná o problém s konceptuálním modelem (CSDL), ale o problém s mapováním sloupců, který se občas znovu vytvořil.

Koncepční model byl vytvořen pomocí EdmxWriter k analýze DbContext a jeho hlavních částí.

Model byl poté použit ke generování SQL skriptů pro překlad schématu do nové databáze. Trik je v tom, že databáze je Oracle.

Oracle je dítě a nepřijímá dlouhé názvy sloupců. Vygenerované EDMX a SQL skripty proto musely být upraveny tak, aby vytvářely a mapovaly části koncepčního modelu se zkrácenými názvy sloupců.

Nic moc. Funguje to dobře. Tak kde se to všechno podělo?

Oracle nepodporuje "code first". Ačkoli to bylo provedeno ručně, použití EdmxWriter je v Oracle přístup založený na kódu. Proto, když byl rozebrán první obvod EDMX, bylo to binárně o logických mapováních. Řešením bylo dočasně odebrat booly z mých C# modelů, přidat je do EDMX ručně a provést mapování Oracle web.config (mapování boolů na NUMBER(1,0)).

Vše je opět famózní. Ale proč se to pořád opakuje?

V různých okamžicích procesu vývoje se některé konce konvence – buď C#, EDMX nebo Oracle – mění. A pokaždé, když se zdá, že sloupce byly automaticky přeřazeny, aniž bych o tom věděl. Pokud byl model EDMX aktualizován z Oracle, mapování ukazovalo na vlastnosti C#, které tam nebyly (krátké názvy sloupců). Pokud byl model aktualizován z kódu C#, mapování nebyla uložena a pokusili se namapovat dlouhé názvy sloupců, které nebyly v Oracle.

Potíž s tímto přístupem (první hybridní kód a model) je, že pokud chci i nadále spravovat své vlastní modely a zpracovávat nastavení potřebná pro vztah s malým dítětem, musím být velmi opatrný a dávat pozor na vlastnost souboru EDMX.

29.10.2012 Tim Springston

V tomto článku se pokusím objasnit některé aspekty „nejvíc matoucího dialogového okna v AD“, což je karta Delegace v okně vlastností objektu modulu snap-in Uživatelé a počítače Active Directory (dsa) konzoly Microsoft Management Console (MMC). .msc). Podíváme se na hodnoty atributů pro různé konfigurace. Pochopení účelu nastavení vám umožní správně nakonfigurovat aplikace a služby, které používají delegování Kerberos v AD

Tim Springston ( [e-mail chráněný]) – vedoucí servisní technik technická podpora Divize komerční technické podpory společnosti Microsoft, zodpovědná za zabezpečení a autorizaci

Jeden z nejaktivněji diskutovaných na blozích technologie společnosti Microsoft– autentizace pomocí protokolu Kerberos. To je zvláštní vzhledem k tomu, že samotná technologie a její funkce nedoznaly od svého vydání výraznějších změn Windows Server 2003. Přesto Kerberos zůstává předmětem další dokumentace.

Trvalá potřeba učit se technické aspekty toho, jak Kerberos funguje a proč dochází k chybám, je způsobena tím, že zatímco samotná technologie zůstává stejná, služby, které ji používají, a způsoby, jakými se používá, jsou často jedinečné. Co však zůstává v každém scénáři konstantní, je záměr nastavení služby Active Directory (AD) a význam chybových zpráv.

V tomto článku se pokusím objasnit některé aspekty „nejvíc matoucího dialogového okna v AD“, což je karta Delegace v okně vlastností objektu modulu snap-in Uživatelé a počítače Active Directory (dsa) konzoly Microsoft Management Console (MMC). .msc). Podíváme se na hodnoty atributů pro různé konfigurace. Pochopení účelu nastavení vám umožní správně nakonfigurovat aplikace a služby, které používají delegování Kerberos v AD.

Jednoduché rozhraní

Proč ztrácet čas učením se „jednoduchého“ rozhraní? Je nutné jít do detailu, protože pochopení technického aspektu fungování různých parametrů vám umožní úspěšněji opravovat chyby v jejich konfiguraci. Začněme proto pochopením významu postojů. Pokud otevřete modul snap-in Uživatelé a počítače služby Active Directory a přejdete do vlastností účtu počítače, zobrazí se karta Delegování (za předpokladu, že vaše doménová struktura je na funkční úrovni Server 2003). Tato karta je znázorněna na obrázku 1. Abychom vám pomohli vysvětlit účel přepínačů na této kartě, obrázek 2 navrhuje alternativní názvy, které byste jim mohli přiřadit.

Než se vrhneme na to, co parametry znamenají, vysvětlíme si, co je delegování Kerberos. Delegování (také nazývané zosobnění nebo jednoduché delegování) je proces, kdy aplikace nebo služba získává lístky Kerberos pro přístup ke zdrojům nebo vzdálený počítač jménem uživatele. Entita důvěryhodná pro delegování je entita služby. Účet, jejímž jménem aplikace běží. Delegování umožňuje aplikaci přistupovat pouze k těm zdrojům, ke kterým by měl přístup uživatel, a doručovat uživateli informace. Příkladem může být webový server připojující se k systému SQL Server pro zobrazení dat, která uživatel potřebuje ve webovém klientovi.

Dvě horní možnosti („Nedůvěřovat počítači, aby delegoval“ a „Důvěřovat počítači, aby delegoval jakékoli služby“) na obrázku 1 jsou samozřejmé. Třetí možností je Kerberos Constrained Delegation (KCD), což je v podstatě totéž jako jednoduché delegování, ale deleguje zosobněnou identitu pouze určeným službám nebo počítačům. Tato možnost poskytuje vyšší úroveň zabezpečení omezením rozsahu delegování identity zosobněného uživatele, takže pokud dojde ke kompromitaci identity služby důvěryhodné pro delegování, důsledky jsou omezeny na možnost přístupu pouze k těmto zdrojům na vzdálené servery, které jsou ručně vybrány pro omezené delegování.

Čtvrtá možnost na obrázku 1 umožňuje rozšíření KCD a služby pro uživatele (nebo S4U). Rozšíření S4U poskytuje pokročilejší funkce, jako je změna protokolu. K přepínání protokolů dochází, když se klient nejprve ověří pomocí jiného protokolu než Kerberos u příchozího připojení a poté přepne na Kerberos. Detailní popis S4U je obsažen v dokumentaci „Prozkoumání rozšíření S4U Kerberos v systému Windows Server 2003“ (msdn.microsoft.com/en-us/magazine/cc188757.aspx) a „Přechod protokolu s omezeným delegováním Technical Supplement“ (msdn.microsoft.com/ en-us/library/ff650469.aspx). Tyto zdroje jsou zaměřeny na programátory, nikoli na administrátory, ale je také důležité, aby administrátor pochopil, co je S4U, jak jej nakonfigurovat a kdy jej použít. Pro tento účel je zde krátký seznam schopností S4U určených pro správce.

Získání informací o tokenu uživatele bez skutečného získání tohoto tokenu a bez toho, aby důvěryhodná služba lístků získala lístek udělování lístků (TGT) od důvěřujícího uživatele nebo přístup k přihlašovacím údajům. Získané informace pak lze využít například pro kontroly oprávnění. Toto rozšíření je známé jako Services-For-User-To-Self (S4U2Self).

Získávání lístků bez požadavku na servisní lístek Kerberos, bez přístupu k přihlašovacím údajům, předávání TGT nebo vůbec bez ověřování – Services-For-User-To-Proxy (S4U2Proxy).

Proveďte dříve zmíněnou změnu protokolu. Klient přistupující k podnikové službě se zpočátku ověřuje pomocí jiné metody než Kerberos a S4U umožňuje důvěryhodné službě přepnout relaci již ověřeného uživatele na použití Kerberos. Zde nejčastěji dochází k selháním způsobeným chybami konfigurace, protože dokumentace aplikace často jasně nevysvětluje, zda je nutná změna protokolu nebo jak ji nakonfigurovat v AD. Toto téma je však relevantní, protože dnes téměř žádný článek není úplný bez zmínky o „cloudu“. Klienti připojující se prostřednictvím cloudu budou nejčastěji používat ověřování NTLM kvůli nedostatku řadičů domény (DC) zpracovávajících požadavky na lístky služby Kerberos přes internet. Změna protokolu umožňuje uživateli této domény připojit se přes software firewall nebo proxy pomocí jedné z metod ověřování (jako je NTLM) a poté přepněte na ověřování Kerberos, které chcete provést další akce uvnitř firemní síť. Protože „cloud“ znamená připojení přes internet, můžete si být jisti, že pokud používáte jakékoli cloudové řešení, dříve nebo později skončíte s používáním měniče protokolu Kerberos.

Pod vnějším pláštěm

Nyní se podívejme, co se vlastně stane, když je každý z těchto čtyř parametrů nastaven pomocí LDP, abychom se podívali na hodnoty atributů, které jsou nastaveny pro každou z konfigurací. LDP se standardně instaluje s rolí AD Domain Services a lze jej použít jako nástroj pro zpracování dotazů LDAP grafické rozhraní. LDP vám umožňuje vytvářet vlastní dotazy LDAP a zobrazovat výsledky ve snadno čitelném formátu. Další výhodou použití LDP k zobrazení hodnot atributů (například userAccountControl) je to, že převádí vypočítané hodnoty parametrů do podoby čitelné pro člověka namísto kombinace čísel. Mimochodem, pozdější verze adsiedit.msc také poskytují podobné zpracování vypočtených hodnot parametrů.

Proto v systému Windows Server 2008 a novějších poskytují ldp.exe a adsiedit.msc automatický překlad hodnot atributů (jako je userAccountControl), čímž odpadá nutnost otevírat calc.exe a konzultovat online dokumentaci MSDN nebo Microsoft Knowledge Base.

Nyní se podívejme na změnu hodnot atributů v LDP v závislosti na provedených nastaveních. Začněme účtem, který není důvěryhodný pro delegování. Obrázek 3 ukazuje, že účet Test2 není důvěryhodný a že šestnáctková hodnota 1020 atributu userAccountControl (odpovídající desítkové soustavě 4128) je přeložena na WORKSTATION_TRUST_ACCOUNT a PASSWD_NOTREQD.

Obrázek 4 ukazuje účet, který je důvěryhodný pro delegování. Vidíme, že hodnota atributu userAccountControl byla převedena na TRUSTED_FOR_DELEGATION, což znamená, že pro tuto identitu služby je povoleno jednoduché neomezené delegování Kerberos.

Delegování důvěry na konkrétní služby

Následující nastavení jsou kritická, pokud hodláte používat S4U nebo KCD. První případ odpovídá volbě Důvěřovat této možnosti počítač pro delegování pouze na určité služby a používat pouze Kerberos. Obrázek 5 ukazuje, že s tímto výběrem je atribut userAccountControl opět nastaven na WORKSTATION_TRUST_ACCOUNT a atribut MsDS-AllowedToDelegateTo se automaticky vyplní vybranými službami, které mají povoleno delegovat. Tento atribut není naplněn ani ovlivněn žádným jiným postupem. Položky uvádí konkrétní služby v počítači, pro které je delegování povoleno.

Druhá možnost je méně bezpečná - Použít libovolný ověřovací protokol, který umožňuje změnu protokolu a další možnosti rozšíření. Kromě položek v atributu MsDS-AllowedToDelegateTo toto nastavení mění atribut userAccountControl, který přijímá TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION (T2A4D), jak ukazuje obrázek 6. Bez příznaku T2A4D můžete očekávat chybu změny protokolu. Tento příznak není používán žádnou jinou komponentou. Všimněte si, že tento jednoduchý přepínač je extrémně důležitý, protože pokud není vybrán, S4U2Self, S4U2Proxy a změna protokolu se budou chovat odlišně, což může způsobit problémy aplikacím a službám, které očekávají odpovídající typy lístků. Selže zejména změna protokolu a nebude vystaven žádný lístek. S4U2Proxy a S4U2Self nebudou mít příznak forwardable, což bude mít za následek chybu: pro S4U2Proxy - v každém případě a pro S4U2Self - v situacích, kdy potřebujete poslat lístek na jinou službu nebo uzel.

"Udělej si sám"

Co se stane, když účet služby používaný aplikací nebo službou potřebuje provést akci, která vyžaduje změnu protokolu, a na kartě Delegování je nastavena možnost Použít pouze Kerberos namísto Použít ověřování pomocí libovolného ověřovacího protokolu“)? U klientské aplikace může být chyba: Přístupový formulář Odepřeno při pokusu o přístup k prostředkům přes síť nebo může dojít k chybě ověřování NTLM bez upozornění nebo k neočekávané chybě závislé na aplikaci. Nejistota formy, jakou se chyba projeví, úkol dále komplikuje. Nejpravděpodobnějším výsledkem však bude Access Denied. V této situaci si nezapomeňte prohlédnout dokumentaci k aplikaci nebo službě, abyste zjistili, zda uvádí, že dojde ke změnám protokolu nebo žádostem o vstupenku ze služby bez TGT. Problém je v tom, že většina autorů dokumentace ve skutečnosti nechápe význam konfigurace KCD, a proto poskytuje jen malé nebo žádné vysvětlení.

Metodou, kterou si sám uděláte, jak zjistit příčinu chyby, by bylo jednoduše shromáždit data trasování sítě ze serveru, kterému důvěřujeme pro delegování. Filtrujte shromážděná data pomocí protokolu Kerberos (Kerberosv5 v programu Microsoft Network Monitor nebo kerberos v programu Wireshark). Požadavek na službu vydávání lístků (TGS_REQ) je odeslán do distribučního centra AD Kerberos (KDC) a obsahuje parametry KDC s nastaveným příznakem omezeného delegování. Pokud je lístek odmítnut, odpověď serveru (TGS_REP) bude obsahovat chybu KDC_ERR_BAD_OPTION, kterou lze snadno vidět ve výsledcích trasování sítě.

Více detailní informace Provoz implementací Microsoft Kerberos lze nalézt v online specifikaci Open Protocols Specification. „Rozšíření protokolu Kerberos“ (msdn.microsoft.com/en-us/library/cc233855%28v=PROT.13%29.aspx) obsahuje obecnou dokumentaci ke Kerberos a „Rozšíření protokolu Kerberos: Specifikace služby pro uživatele a omezené delegování » (msdn.microsoft.com/en-us/library/cc246071%28v=PROT.13%29.aspx) – dokumentace o omezeném delegování Kerberos a S4U.

Perfektní svět

Doufám, že tato analýza nastavení v okně rozhraní Kerberos a jejich korespondence v AD vám pomůže lépe pochopit jejich význam. Ideálním světem by byl takový svět, ve kterém dokumentace řízených služeb poskytovala technický návod, jak je provozovat. správné nastavení pro ověření. Pokud je však realita méně než ideální, měly by tyto informace pomoci zlepšit vaši sadu nástrojů. Klíčem k úspěchu bude pochopení technického aspektu fungování parametrů.



Webové stránky, aplikace, hry jsou informační zdroje, které spravují uživatelé. K oddělení povolených a zakázaných akcí pro konkrétního uživatele se používají přístupová práva (AP). Rozsah použití PD tvoří role. Podívejme se například na základní web s možnostmi registrace.

Na takovém webu „žijí“ 3 role se svými vlastními právy a povinnostmi:

1.

Všichni anonymní uživatelé jednají v této roli ve výchozím nastavení. Pokud dáme hostům webu právo „Přidat komentáře“, uživatel, který web navštíví, bude moci komentovat vaše zajímavé věci. Pokud ne, budete se muset nejprve zaregistrovat, abyste mohli komentovat obsah.

2.

Anonymní jednotlivci, kteří prošli ověřením a autorizací, obdrží novou roli. Spravovat mohou pouze oprávnění uživatelé osobní účet, přidávat a upravovat osobní údaje, zobrazovat informace o dalších postavách. Neregistrovaní uživatelé nejsou oprávněni tyto operace provádět.

3. Správce

Tato výchozí role poskytuje uživateli plný přístup k webu. Správce zdrojů přidává a odstraňuje bloky a uděluje nebo odebírá ostatním uživatelům práva pro přístup k určitým funkcím.

Jak testujeme a na co si dáváme pozor?

Nejprve se pokusíme nesmazat „Super Admin“ tím, že si pohrajeme s nastavením.

  • Vytvoření bezpečné postavy

Pro přiblížení se skutečným aktivitám na projektu bude stačit další uživatel s podobnými administrátorskými pravomocemi. A s touto postavou testujeme zdroj a měníme přístupová práva ostatních uživatelů.

  • Kontrola v několika prohlížečích

Děláme to zároveň: v jednom změníme PD, v druhém zkontrolujeme uplatnění práv pro uživatele, čímž oddělíme uživatelské relace.

  • Postupujte podle přímého odkazu

Omezení blokování testujeme tak, že na ně přejdeme přes přímou adresu URL. Zobrazení některých dat zdrojů by nemělo být dostupné prostřednictvím odkazu pro neoprávněného hosta webu. Pokud je přístup omezený, pak je vše v pořádku: místo utajovaných informací dostanou anonymní uživatelé varovnou zprávu ve formě speciální stránky, nejčastěji s kódem 403.

  • Testování blokování entity

U zdrojů, jako je prodej vstupenek a zájezdové služby, je důležité zamknout prvek, když k němu má přístup více uživatelů najednou. Existují dvě možnosti blokování:

+ Optimistické blokování při ukládání zkontroluje databázi další nová verze data zanechaná jiným uživatelem. Pokud existuje, pak současný uživatel opětovné stahování tuto kopii podstata.

+ Pesimistické blokování Entity se používají, když optimistický způsobí příliš mnoho kolizí. V tomto případě pouze jeden uživatel v aktuálním čase používá a mění tuto verzi entity.

Testovat můžete z jednoho počítače v několika prohlížečích nebo s různými účty.

  • Použití testovací matice

Zjednodušuje práci testeru, jasně ukazuje povolené a zakázané akce a jednoduše pomáhá, aby nic neuniklo. Popisujeme v něm všechny role, uživatele, variace omezení našich postav.

A zde je nejjednodušší příklad testovací matice:

Kontrola přístupu je jednou z hlavních kontrol v rámci. Dokonce i testování webu místní knihovny se třemi rolemi představuje pro testera problémy. Ale oblíbené zdroje s desítkami rolí, tisíci uživatelů a miliony oprávnění vyžadují celou armádu správců! Je pro nás těžké si představit rozsah poškození, pokud se testování ujme amatér. Najměte si kompetentní specialisty a vyhněte se mezerám v bezpečnosti vašich produktů!