Volba řešení pro správu identit

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 správě identit najdete v tématu Co je správa identit a přístupu? K dispozici je mnoho řešení pro správu identit pro webové aplikace .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í správa identit s využitím 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ří:

Ve většině scénářů to může být jediný potřebný poskytovatel.

Další informace najdete v tématech:

V jiných scénářích může být přínosné server nebo služba, které spravuje ověřování a identitu.

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 je cookiemechanismus 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. Cookieaplikace jsou snadno použitelné a integrované v prohlížeči, ale jsou určené pro použití v rámci jednoho webu 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 cookies 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 identitě pomocí JSformátu ON 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. Cookieupřednostňují 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 identit třetí strany. 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 dostupných možností najdete v řešeních pro správu identit. Je možné, že vaše organizace už používá zprostředkovatele identity. 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ářů volí externí cloudové služby, jako je MICROSOFT Entra ID pro správu 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í.
  • Dodržuje předpisy týkající se ochrany osobních údajů.

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:

Identity management decision flow

Následující tabulka uvádí několik věcí, které je potřeba vzít v úvahu při výběru řešení pro správu identit.

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