Osvědčené postupy pro zabezpečené plánování a nasazení služby AD FS
Toto téma obsahuje informace o osvědčených postupech, které vám pomůžou naplánovat a vyhodnotit zabezpečení při návrhu nasazení služby AD FS (Active Directory Federation Services). Toto téma je výchozím bodem pro kontrolu a posouzení aspektů, které mají vliv na celkové zabezpečení vašeho používání služby AD FS. Informace v tomto tématu jsou určeny k doplnění a rozšíření stávajícího plánování zabezpečení a dalších osvědčených postupů návrhu.
Základní osvědčené postupy zabezpečení pro SLUŽBU AD FS
Následující základní osvědčené postupy jsou společné pro všechny instalace služby AD FS, ve kterých chcete zlepšit nebo rozšířit zabezpečení návrhu nebo nasazení:
Zabezpečení služby AD FS jako systému vrstvy 0
Vzhledem k tomu, že služba AD FS je základním systémem ověřování, měla by se považovat za systém vrstvy 0, jako jsou jiné systémy identit ve vaší síti. Další informace najdete v tématu Model vrstvy správy služby Active Directory.
Pomocí Průvodce konfigurací zabezpečení použijte osvědčené postupy zabezpečení specifické pro AD FS na federační server a proxy federační server
Průvodce konfigurací zabezpečení (SCW) je nástroj, který je předinstalovaný na všech počítačích se systémem Windows Server 2008, Windows Server 2008 R2 a Windows Server 2012. Můžete ho použít k použití osvědčených postupů zabezpečení, které můžou pomoct snížit prostor pro útok na server na základě rolí serveru, které instalujete.
Při instalaci služby AD FS instalační program vytvoří soubory rozšíření rolí, které můžete použít se SCW k vytvoření zásady zabezpečení, která bude platit pro konkrétní roli serveru AD FS (federovaný server nebo proxy federovaného serveru), které zvolíte během instalace.
Každý nainstalovaný soubor přípony role představuje typ role a dílčí role, pro které je každý počítač nakonfigurován. V adresáři C:WindowsADFSScw jsou nainstalovány následující soubory s příponou role:
Farm.xml
SQLFarm.xml
StandAlone.xml
Proxy.xml (Tento soubor je k dispozici pouze v případě, že jste nakonfigurovali počítač v roli proxy federačního serveru.)
Chcete-li použít rozšíření rolí služby AD FS ve SCW, proveďte následující kroky v pořadí:
Nainstalujte službu AD FS a zvolte odpovídající roli serveru pro daný počítač. Další informace naleznete v tématu Instalace služby role proxy federační služby v Průvodci nasazením služby AD FS.
Pomocí nástroje příkazového řádku Scwcmd zaregistrujte příslušný soubor přípony role. Podrobnosti o použití tohoto nástroje v roli, pro kterou je váš počítač nakonfigurovaný, najdete v následující tabulce.
Ověřte, že se příkaz úspěšně dokončil, a to prozkoumáním souboru SCWRegister_log.xml, který se nachází v adresáři WindowssecurityMsscwLogs.
Všechny tyto kroky musíte provést na každém federačním serveru nebo na počítači proxy federačního serveru, na který chcete použít zásady zabezpečení scW založené na službě AD FS.
Následující tabulka vysvětluje, jak zaregistrovat příslušné rozšíření role SCW na základě role serveru služby AD FS, kterou jste zvolili na počítači, na kterém jste nainstalovali službu AD FS.
Role serveru AD FS Použitá konfigurační databáze služby AD FS Na příkazovém řádku zadejte následující příkaz: Samostatný federační server Interní databáze Windows scwcmd register /kbname:ADFS2Standalone /kbfile:"WindowsADFSscwStandAlone.xml"
Federační server připojený k farmě Interní databáze Windows scwcmd register /kbname:ADFS2Standalone /kbfile:"WindowsADFSscwFarm.xml"
Federační server připojený k farmě SQL Server scwcmd register /kbname:ADFS2Standalone /kbfile:"WindowsADFSscwSQLFarm.xml"
Proxy federačního serveru není k dispozici scwcmd register /kbname:ADFS2Standalone /kbfile:"WindowsADFSscwProxy.xml"
Další informace o databázích, které můžete použít se službou AD FS, najdete v tématu Role konfigurační databáze služby AD FS.
Rozpoznávání přehrání tokenů používejte v situacích, kdy je zabezpečení velmi důležité, například když se používají veřejné terminály. Detekce přehrání tokenů je funkce služby AD FS, která zajišťuje, že se zjistí všechny pokusy o opětovné přehrání požadavku na token adresovaného službě federace a že se takový požadavek zamítne. Detekce přehrání tokenu je ve výchozím nastavení povolená. Funguje pro pasivní profil WS-Federation a profil webového jednotného přihlašování SAML (Security Assertion Markup Language) tím, že zajistí, že stejný token není nikdy použit více než jednou.
Když se služba FEDERATION Service spustí, začne sestavovat mezipaměť všech požadavků na tokeny, které splňuje. V průběhu času se při přidání dalších žádostí o token do mezipaměti zvýší možnost detekovat pokusy o opakované přehrání žádosti o token pro službu FS (Federation Service). Pokud detekci přehrání tokenu zakážete a později ji znovu povolíte, nezapomeňte, že federační služba bude po určitou dobu přijímat tokeny, které se mohly použít dříve, dokud nebude dostatek času na opětovné sestavení jeho obsahu. Další informace najdete v tématu Role konfigurační databáze AD FS.
Používejte šifrování tokenů, zejména pokud používáte podporu řešení artefaktů SAML.
Šifrování tokenů je silně doporučeno pro zvýšení zabezpečení a ochranu před potenciálními útoky typu MITM (man-in-the-middle), které mohou být pokuseny proti vašemu nasazení AD FS. Používání šifrování může mít mírný dopad na průchodnost, ale obecně by nemělo být zaznamenáno a v mnoha případech přínosy pro lepší zabezpečení převyšují jakékoli náklady z hlediska výkonu serveru.
Pokud chcete povolit šifrování tokenů, nejprve přidejte šifrovací certifikát pro důvěryhodné strany. Šifrovací certifikát můžete nakonfigurovat buď při vytváření vztahu důvěryhodnosti pro předávající stranu, nebo později. Pokud chcete později přidat šifrovací certifikát do existujícího vztahu důvěřující strany, můžete nastavit certifikát pro použití na kartě Šifrování ve vlastnostech vztahu důvěry pomocí modulu snap-in AD FS. Pokud chcete zadat certifikát pro existující důvěryhodnost pomocí cmdletů AD FS, použijte parametr EncryptionCertificate cmdletů Set-ClaimsProviderTrust nebo Set-RelyingPartyTrust. Pokud chcete nastavit certifikát pro službu FEDERATION Service, který se má použít při dešifrování tokenů, použijte rutinu Set-ADFSCertificate a jako parametr CertificateType zadejte "
Token-Encryption
". Povolení a zakázání šifrování pro konkrétní důvěryhodnost předávající strany lze provést pomocí parametru EncryptClaims rutiny Set-RelyingPartyTrust.Využití rozšířené ochrany pro ověřování
Pro lepší zabezpečení nasazení můžete nastavit a použít rozšířenou ochranu pro funkci ověřování ve službě AD FS. Toto nastavení určuje úroveň rozšířené ochrany pro ověřování podporované federačním serverem.
Rozšířená ochrana ověřování pomáhá chránit před útoky MITM (man-in-the-middle), ve kterých útočník zachytí přihlašovací údaje klienta a předá je na server. Ochrana před těmito útoky je možná prostřednictvím tokenu CBT (Channel Binding Token), který může být vyžadován, povolen nebo není vyžadován serverem při navázání komunikace s klienty.
Pokud chcete povolit funkci rozšířené ochrany, použijte parametr ExtendedProtectionTokenCheck v rutině Set-ADFSProperties . Možné hodnoty pro toto nastavení a úroveň zabezpečení, které poskytují hodnoty, jsou popsány v následující tabulce.
Hodnota parametru Úroveň zabezpečení Nastavení ochrany Vyžadovat Server je plně zabezpečený. Rozšířená ochrana se vynucuje a vždy vyžaduje. Povolit Server je částečně zabezpečený. Rozšířená ochrana se vynucuje v případě, že byly opraveny příslušné systémy, aby ji podporovaly. Žádný Server je zranitelný. Rozšířená ochrana se nevynucuje. Pokud používáte protokolování a trasování, zajistěte ochranu osobních údajů všech citlivých informací.
Služba AD FS ve výchozím nastavení nezpřístupňuje ani nesleduje identifikovatelné osobní údaje přímo jako součást federační služby nebo normálního provozu. Pokud je protokolování událostí a trasování ladění povolené ve službě AD FS, některé typy deklarací identity a jejich přidružené hodnoty, závislé na zásadách deklarací identity, které konfigurujete, mohou obsahovat PII, které se mohou zaznamenávat v protokolech událostí nebo trasování ve službě AD FS.
Proto důrazně doporučujeme vynucovat řízení přístupu pro konfiguraci služby AD FS a jeho soubory protokolů. Pokud nechcete, aby byly tyto informace viditelné, měli byste před jejich sdílením s ostatními zakázat přihlášení nebo vyfiltrovat jakékoli osobní údaje nebo citlivá data v protokolech.
Následující tipy vám můžou pomoct zabránit neúmyslnému zveřejnění obsahu souboru protokolu:
Ujistěte se, že protokol událostí služby AD FS a soubory protokolu trasování jsou chráněné seznamy řízení přístupu (ACL), které omezují přístup jenom na důvěryhodné správce, kteří k nim vyžadují přístup.
Nekopírujte ani archivujte soubory protokolu pomocí přípon souborů nebo cest, které lze snadno obsluhovat pomocí webové žádosti. Například přípona názvu souboru .xml není bezpečná volba. V průvodci správou Internetové informační služby (IIS) si můžete prohlédnout seznam rozšíření, která se dají obsluhovat.
Pokud upravíte cestu k souboru protokolu, nezapomeňte zadat absolutní cestu k umístění souboru protokolu, která by měla být mimo veřejný adresář virtuálního kořenového adresáře webového hostitele (vroot), aby k ní externí strana nemohla přistupovat pomocí webového prohlížeče.
Soft a inteligentní uzamčení extranetu AD FS
V případě útoku ve formě ověřovacích požadavků s neplatnými (chybnými) hesly, která přicházejí přes proxy webových aplikací, umožňuje uzamčení extranetu služby AD FS chránit uživatele před uzamčením účtu služby AD FS. Kromě ochrany uživatelů před uzamčením účtu služby AD FS chrání uzamčení extranetu AD FS také před útoky hrubou silou na hádání hesel.
Informace o měkkém uzamčení extranetu pro službu AD FS ve Windows Serveru 2012 R2 najdete v tématu Ochrana proti softwarovému uzamčení extranetu služby AD FS.
V případě inteligentního uzamčení extranetu pro službu AD FS ve Windows Serveru 2016 viz Ochrana inteligentního uzamčení extranetové sítě AD FS.
Osvědčené postupy zabezpečení specifické pro SQL Server pro SLUŽBU AD FS
Následující osvědčené postupy zabezpečení jsou specifické pro použití microsoft SQL Serveru® nebo interní databáze Windows (WID), pokud se tyto databázové technologie používají ke správě dat v návrhu a nasazení služby AD FS.
Poznámka:
Tato doporučení jsou určená k rozšíření, ale ne k nahrazení pokynů k zabezpečení produktů SQL Serveru. Další informace o plánování zabezpečené instalace SQL Serveru naleznete v tématu Důležité informace o zabezpečení pro zabezpečenou instalaci SQL (https://go.microsoft.com/fwlink/?LinkID=139831).
SQL Server vždy nasaďte za bránu firewall ve fyzicky zabezpečeném síťovém prostředí.
Instalace SQL Serveru by nikdy neměla být vystavena přímo na internetu. Do instalace SQL Serveru, který podporuje službu AD FS, by měly být dostupné jenom počítače, které jsou uvnitř vašeho datacentra. Další informace naleznete v tématu Kontrolní seznam osvědčených postupů zabezpečení (https://go.microsoft.com/fwlink/?LinkID=189229).
Místo použití předdefinovaných výchozích účtů systémových služeb spusťte SQL Server pod účtem služby.
Ve výchozím nastavení se SQL Server často instaluje a konfiguruje tak, aby používal jeden z podporovaných předdefinovaných systémových účtů, jako jsou účty LocalSystem nebo NetworkService. Pokud chcete zvýšit zabezpečení instalace SQL Serveru pro službu AD FS, použijte pro přístup ke službě SQL Server samostatný účet služby a povolte ověřování Kerberos registrací hlavního názvu zabezpečení tohoto účtu v nasazení služby Active Directory. To umožňuje vzájemné ověřování mezi klientem a serverem. Bez registrace SPN separátního účtu služby bude SQL Server používat protokol NTLM pro ověřování pro Windows, při kterém se ověřuje pouze klient.
Minimalizujte plochu SQL Serveru.
Povolte pouze ty koncové body SQL Serveru, které jsou nezbytné. SQL Server ve výchozím nastavení poskytuje jeden integrovaný koncový bod TCP, který nelze odebrat. Pro službu AD FS byste měli povolit tento koncový bod PROTOKOLU TCP pro ověřování protokolem Kerberos. Pokud chcete zkontrolovat aktuální koncové body TCP a zjistit, jestli se do instalace SQL přidají další uživatelem definované porty TCP, můžete použít příkaz dotazu SELECT * FROM sys.tcp_endpoints v relaci Transact-SQL (T-SQL). Další informace o konfiguraci koncového bodu SQL Serveru naleznete v tématu Postupy: Konfigurace databázového stroje pro naslouchání na více portech TCP (https://go.microsoft.com/fwlink/?LinkID=189231).
Nepoužívejte ověřování založené na SQL.
Pokud se chcete vyhnout nutnosti přenášet hesla jako prostý text přes síť nebo ukládat hesla v nastavení konfigurace, použijte ověřování systému Windows pouze s instalací SQL Serveru. Ověřování SQL Serveru je starší režim ověřování. Ukládání přihlašovacích údajů jazyka SQL (Structured Query Language) (uživatelská jména a hesla SQL) při použití ověřování SQL Serveru se nedoporučuje. Další informace naleznete v tématu Režimy ověřování (https://go.microsoft.com/fwlink/?LinkID=189232).
Pečlivě vyhodnoťte potřebu dalšího zabezpečení kanálu v instalaci SQL.
I při ověřování protokolem Kerberos neposkytuje rozhraní SSPI (Security Support Provider Interface) SQL Serveru zabezpečení na úrovni kanálu. Pro instalace, ve kterých jsou servery bezpečně umístěné v síti chráněné bránou firewall, ale šifrování komunikace SQL nemusí být nutná.
I když je šifrování cenným nástrojem, který pomáhá zajistit zabezpečení, nemělo by se brát v úvahu pro všechna data nebo připojení. Při rozhodování, jestli se rozhodnete implementovat šifrování, zvažte, jak budou uživatelé přistupovat k datům. Pokud uživatelé přistupuje k datům přes veřejnou síť, může být pro zvýšení zabezpečení vyžadováno šifrování dat. Pokud ale veškerý přístup k datům SQL službou AD FS zahrnuje zabezpečenou konfiguraci intranetu, nemusí se šifrování vyžadovat. Jakékoli použití šifrování by také mělo zahrnovat strategii údržby hesel, klíčů a certifikátů.
Pokud máte obavy, že se všechna data SQL můžou zobrazit nebo zfalšovat přes vaši síť, použijte protokol IPsec (Internet Protocol Security) nebo SSL (Secure Sockets Layer) k zabezpečení připojení SQL. To ale může mít negativní vliv na výkon SQL Serveru, který může v některých situacích ovlivnit nebo omezit výkon služby AD FS. Například výkon služby AD FS při vystavování tokenů se může snížit, když je vyhledávání atributů z úložiště atributů založeného na SQL kritické pro vystavování tokenů. Hrozbu manipulace s SQL můžete lépe eliminovat tím, že máte silnou konfiguraci zabezpečení hraniční sítě. Lepším řešením pro zabezpečení instalace SQL Serveru je například zajistit, aby zůstal nepřístupný pro uživatele a počítače internetu a aby zůstal přístupný jenom uživatelům nebo počítačům v rámci vašeho datacentra.
Další informace najdete v tématu Šifrování připojení k SQL Serveru nebo šifrování SQL Serveru.
Nakonfigurujte zabezpečený navržený přístup pomocí uložených procedur k provádění všech vyhledávání založených na SQL službou AD FS uložených dat SQL.
Pokud chcete zajistit lepší izolaci služeb a dat, můžete vytvořit uložené procedury pro všechny vyhledávací příkazy úložiště atributů. Můžete vytvořit roli databáze, ke které pak udělíte oprávnění ke spuštění uložených procedur. K této databázové roli přiřaďte identitu služby systému Windows AD FS. Služba AD FS systému Windows by neměla být schopna spustit žádný jiný příkaz SQL, kromě příslušných uložených procedur, které se používají pro vyhledávání atributů. Uzamčení přístupu k databázi SQL Serveru tímto způsobem snižuje riziko útoku na zvýšení oprávnění.
Viz také
Průvodce návrhem služby AD FS ve Windows Serveru 2012