identity Volba řešení pro správu
Většinawebových Uživatel může být osoba nebo jiná aplikace. Správa přístupu zajišťuje, aby uživatelé viděli a upravovali jenom informace, které mají oprávnění k zobrazení a úpravě. Koncový uživatel by například neměl mít přístup k části pro správu webu. Identity Řešení pro správu jsou vytvořená tak, aby zvládla požadavky na úlohy související s ověřováním a autorizací. Další informace o identity správě najdete v tématu Co je správa přístupu a co jeidentity? K dispozici je mnoho identity řešení pro správu webových aplikací .NET s různými možnostmi a požadavky na použití nebo instalaci. Tento článek obsahuje pokyny, jak zvolit správné řešení.
Základní identity správa pomocí ASP.NET Core Identity
ASP.NET Core se dodává s integrovaným zprostředkovatelem ověřování: ASP.NET Core Identity. Poskytovatel zahrnuje rozhraní API, uživatelské rozhraní a konfiguraci back-endové databáze, která podporuje správu identit uživatelů, ukládání přihlašovacích údajů uživatele a udělení nebo odvolání oprávnění. Mezi další funkce, které podporuje, patří:
- Externí přihlášení
- Dvojúrovňové ověřování (2FA)
- Správa hesel
- Uzamčení a opětovná aktivace účtu
- Aplikace Authenticator
Ve většině scénářů to může být jediný potřebný poskytovatel.
Další informace najdete v tématech:
- Přečtěte si úvod do Identity ASP.NET Core.
- Podle kurzu sestavte vlastní zabezpečenou webovou aplikaci .NET: Zabezpečte webovou aplikaci .NET pomocí architektury ASP.NET CoreIdentity.
V jiných scénářích může být server nebo služba, která spravuje ověřování a identity může být přínosná.
Určení, jestli je potřeba server OIDC
Webové aplikace vyžadují způsob, jak si pamatovat minulé akce, protože web je ve výchozím nastavení bezstavový. Jinak by uživatelé museli zadat svoje přihlašovací údaje pokaždé, když přejdou na novou stránku. Běžným řešením pro zapamatování stavu jsou soubory cookie, mechanismus založený na prohlížeči pro ukládání dat. Webový server odešle počáteční cookiea prohlížeč ho uloží a odešle ho zpět s každou žádostí. To se provádí automaticky bez nutnosti, aby vývojář napsal jakýkoli kód. Soubory cookie se dají snadno používat a integrovat do prohlížeče, ale jsou určené pro použití v rámci jedné webové stránky nebo webové domény. Výchozí řešení integrované do ASP.NET Core používá cookieověřování na základě.
Tokeny jsou kontejnery s metadaty, které se explicitně předávají prostřednictvím hlaviček nebo textu požadavků HTTP. Hlavní výhodou tokenů oproti souborům cookie je, že nejsou svázané s konkrétní aplikací nebo doménou. Místo toho jsou tokeny obvykle podepsané asymetrickou kryptografií. Například servery OIDC vydávají tokeny s informacemi o identity použití formátu JSON Web Token (JWT), který zahrnuje podepisování. Asymetrická kryptografie používá kombinaci privátního klíče známého pouze podepisujícímu a veřejnému klíči, který může každý znát. Tokeny můžou být také šifrované.
Podepsaný token nejde kvůli privátnímu klíči manipulovat. Veřejný klíč:
- Umožňuje ověřit token, aby se zajistilo, že nedošlo ke změně.
- Zaručuje, že ho vygenerovala entita, která má privátní klíč.
Hlavní nevýhodou použití tokenů je, že k vydávání a ověřování tokenů vyžadují službu (obvykle server OIDC). Služba musí být nainstalovaná, nakonfigurovaná a udržovaná.
Běžným důvodem, proč se vyžaduje server OIDC, je pro aplikace, které zpřístupňují webová rozhraní API, která využívají jiné aplikace. U vystavených webových rozhraní API se u klientských uživatelských rozhraní, jako jsou jednostránkové aplikace (SPA), mobilní klienti a desktopoví klienti, považují za součást stejné aplikace. Příklady SPA zahrnují Angular, React a Blazor WebAssembly. Pokud aplikace jiné než vaše webová aplikace nebo nějaká uživatelská rozhraní API musí pro vaši aplikaci volat zabezpečené rozhraní API, budete pravděpodobně chtít používat tokeny. Pokud máte pouze uživatelská rozhraní klienta, ASP.NET Core Identity poskytuje možnost získat token během ověřování. Ověřovací token vydaný ASP.NET Core Identity:
- Můžou ho používat mobilní a desktopoví klienti. Soubory cookie se preferují před tokeny pro zabezpečení i jednoduchost.
- Není vhodný pro správu přístupu z aplikací třetích stran.
Dalším důvodem, proč se vyžaduje server OIDC, je sdílení přihlášení s jinými aplikacemi. Tato funkce běžně označovaná jako jednotné přihlašování umožňuje uživatelům:
- Přihlaste se jednou pomocí formuláře webové aplikace.
- Pomocí výsledných přihlašovacích údajů se ověřte v jiných aplikacích, aniž byste se museli znovu přihlásit nebo zvolit jiné heslo.
Server OIDC se obvykle upřednostňuje za účelem zajištění zabezpečeného a škálovatelného řešení pro jednotné přihlašování.
Pro aplikace, které nesdílí přihlášení s jinými aplikacemi, je nejjednodušší způsob, jak rychle zabezpečit aplikaci, použít integrovaného poskytovatele ASP.NET Core Identity . V opačném případě je potřeba server OIDC poskytovaný řešením pro správu třetí strany identity . Servery OIDC jsou k dispozici jako:
- Produkty, které nainstalujete na server, označované jako self-host.
- Kontejnery běží v hostiteli, jako je Docker.
- Webové služby, se kterými se integrujete za účelem správy identity.
Některá řešení jsou bezplatná a opensourcová, zatímco jiná jsou komerčně licencovaná. Seznam identity dostupných možností najdete v řešeních pro správu. Je možné, že vaše organizace už používá identity poskytovatele. V takovém případě může být vhodné použít existujícího poskytovatele místo použití jiného řešení. Všechna hlavní řešení poskytují dokumentaci ke konfiguraci ASP.NET Core tak, aby používala svůj produkt nebo službu.
Odpojené scénáře
Řada řešení, jako je Například Microsoft Entra ID, je cloudová a vyžaduje, aby fungovalo připojení k internetu. Pokud vaše prostředí nepovoluje připojení k internetu, nebudete moct tuto službu používat.
ASP.NET Core Identity funguje dokonale dobře v odpojených scénářích, například:
- Aplikace nemá přístup k internetu.
- Aplikace musí dál fungovat v místní síti, i když je internet odpojený.
Pokud pro odpojený scénář vyžadujete úplný server OIDC, zvolte jednu z následujících možností:
- Řešení, které umožňuje nainstalovat a spustit službu na vlastních počítačích.
- Spusťte ověřovací službu místně jako kontejner.
Rozhodněte se, kam se ukládají uživatelská data, jako jsou přihlašovací údaje.
Dalším důležitým faktorem, který je potřeba vzít v úvahu, je místo, kde se ukládají přihlašovací data uživatele. Mnoho vývojářů si vybírá externí cloudové služby, jako je ID Microsoft Entra, ke správě identity. Poskytovatel cloudových služeb:
- Přebírá odpovědnost za bezpečné ukládání dat.
- udržuje software aktuální pomocí nejnovějších oprav zabezpečení a vydaných verzí.
- Vyhovuje předpisům privacy .
Jiní dávají přednost ukládání dat na vlastních serverech kvůli předpisům, dodržování předpisů, zásadám nebo jiným důvodům.
Pokud jsou data uložená na vašich serverech, budete pravděpodobně muset zvolit instalovatelné nebo kontejnerové řešení.
Identity vs. server OIDC
Následující diagram vám pomůže rozhodnout se, jestli k ověřování a autorizaci používáte systém ASP.NET Core Identity nebo server OIDC:
Následující tabulka uvádí některé z věcí, které je potřeba vzít v úvahu při výběru identity řešení pro správu.
Funkce | Self-host (infrastruktura nebo kontejner) | Cloud |
---|---|---|
Integrace aplikací | Místní řešení implementovaná jako knihovny nebo architektury se často dají integrovat přímo do vlastní aplikace. Řešení založená na kontejnerech vyžadují předání mezi vaší webovou aplikací a službou založenou na kontejneru. | Cloudová řešení se obvykle integrují v konkrétních bodech v toku přihlašování a poskytují konfiguraci pro aktualizaci uživatelského rozhraní tak, aby odpovídala vašemu motivu, ale dostupná úroveň přizpůsobení je omezená. |
Konfigurace | Řešení samoobslužného hostitele vyžadují kromě nastavení způsobu správy identit konfiguraci softwaru pro prostředí. Řešení založená na kontejnerech obvykle poskytují webové uživatelské rozhraní pro konfiguraci. | Cloudová řešení obvykle poskytují webové uživatelské rozhraní pro konfiguraci. |
Vlastní nastavení | Samoobslužná řešení jsou obvykle vysoce přizpůsobitelná, včetně změn založených na kódu. I když kontejnerizovaná řešení poskytují možnosti rozšiřitelnosti, jsou často omezenější. | Cloudové služby umožňují přizpůsobení, ale obvykle jsou omezené na změny založené na konfiguraci. |
Údržba | Nainstalované produkty vyžadují vyhrazený prostředek, aby se zajistilo, že se všechny opravy zabezpečení použijí včas a budou spravovat upgrady. Proces upgradu a opravy kontejnerů je obvykle nižší tření a zahrnuje jednoduše instalaci poskytnuté image kontejneru. | Poskytovatel služeb udržuje své cloudové řešení, včetně použití potřebných oprav a zpracování upgradů. |
Úložiště přihlašovacích údajů uživatele | Zodpovídáte za zásady správného řízení a zpracování porušení zásad správného řízení dat. | Správa rizik spojených se zpracováním přihlašovacích údajů uživatele a dodržováním předpisů. je delegovaný na poskytovatele služeb. |
Další informace o dostupných možnostech najdete v tématu Identity Řešení pro správu pro ASP.NET Core.
Další kroky
- Informace o webových tokenech JSON
- Projděte si ukázkové aplikace s ověřováním a autorizací a identity pro ASP.NET Core.
- Postupujte podle kurzu k zabezpečení webové aplikace .NET pomocí integrované ASP.NET Core Identity.
- Přečtěte si další informace o ochraně webových rozhraní API.