Základy autorizace
Autorizace (někdy zkrácená jako AuthZ) se používá k nastavení oprávnění, která umožňují vyhodnocení přístupu k prostředkům nebo funkcím. Naproti tomu ověřování (někdy zkrácené jako AuthN) se zaměřuje na prokázání, že entita jako uživatel nebo služba je skutečně tím, za koho tvrdí.
Autorizace může zahrnovat zadání funkcí, prostředků nebo dat, ke které má entita povolený přístup. Autorizace také určuje, co se dá s daty provést. Tato autorizační akce se často označuje jako řízení přístupu.
Ověřování a autorizace jsou koncepty, které nejsou omezené jenom na uživatele. Služby nebo aplikace démona jsou často sestaveny tak, aby žádosti o prostředky byly samy o sobě, nikoli jménem konkrétního uživatele. V tomto článku se termín "entita" používá k odkazování na uživatele nebo aplikaci.
Přístupy k autorizaci
Existuje několik běžných přístupů ke zpracování autorizace. Řízení přístupu na základě role je v současné době nejběžnějším přístupem pomocí platformy Microsoft Identity Platform.
Ověřování jako autorizace
Nejjednodušší formou autorizace je udělit nebo odepřít přístup na základě toho, jestli byla entita provádějící žádost ověřena. Pokud žadatel může prokázat, že je jeho vlastníkem, může získat přístup k chráněným prostředkům nebo funkcím.
Seznamy řízení přístupu
Autorizace pomocí seznamů řízení přístupu (ACL) zahrnuje údržbu explicitních seznamů konkrétních entit, které mají nebo nemají přístup k prostředku nebo funkci. Seznamy ACL nabízejí lepší kontrolu nad ověřováním jako autorizací, ale s rostoucím počtem entit se obtížně spravují.
Řízení přístupu na základě role
Řízení přístupu na základě role (RBAC) je možná nejběžnějším přístupem k vynucování autorizace v aplikacích. Při použití RBAC jsou role definovány pro popis typů aktivit, které může entita provádět. Vývojář aplikace uděluje přístup k rolím, nikoli k jednotlivým entitě. Správce pak může přiřadit role různým entitům, aby mohli řídit, které z nich mají přístup k jakým prostředkům a funkcím.
V pokročilých implementacích RBAC můžou být role mapovány na kolekce oprávnění, kde oprávnění popisuje podrobnou akci nebo aktivitu, která se dá provést. Role se pak nakonfigurují jako kombinace oprávnění. Vypočítá celkovou sadu oprávnění pro entitu tím, že zkombinuje oprávnění udělená různým rolím, které je entita přiřazená. Dobrým příkladem tohoto přístupu je implementace RBAC, která řídí přístup k prostředkům v předplatných Azure.
Poznámka:
RBAC aplikací se liší od Azure RBAC a Microsoft Entra RBAC. Vlastní role Azure a předdefinované role jsou součástí Azure RBAC, což pomáhá spravovat prostředky Azure. Microsoft Entra RBAC umožňuje správu prostředků Microsoft Entra.
Řízení přístupu na základě atributů
Řízení přístupu na základě atributů (ABAC) je jemněji odstupňovaný mechanismus řízení přístupu. V tomto přístupu se pravidla použijí na entitu, prostředky, ke které se přistupuje, a aktuální prostředí. Pravidla určují úroveň přístupu k prostředkům a funkcím. Příkladem může být jen povolení přístupu uživatelů, kteří jsou správci, aby měli přístup k souborům označeným značkou metadat "manažeři pouze během pracovní doby" během pracovní doby od 9:00 do 5:00 v pracovních dnech. V tomto případě je přístup určen prozkoumáním atributu (stav jako správce) uživatele, atributem (značka metadat v souboru) prostředku a také atributem prostředí (aktuální čas).
Jednou z výhod ABAC je, že podrobnější a dynamické řízení přístupu je možné dosáhnout prostřednictvím vyhodnocení pravidel a podmínek, aniž by bylo nutné vytvářet velký počet konkrétních rolí a přiřazení RBAC.
Jednou z metod pro dosažení ABAC s ID Microsoft Entra je použití dynamických skupin členství. Dynamické skupiny umožňují správcům dynamicky přiřazovat uživatele ke skupinám na základě konkrétních atributů uživatele s požadovanými hodnotami. Můžete například vytvořit skupinu Autoři, kde se všichni uživatelé s názvem Pracovní pozice Autor dynamicky přiřazují skupině Autoři. Dynamické skupiny se dají použít v kombinaci s RBAC pro autorizaci, kdy mapujete role na skupiny a dynamicky přiřazujete uživatele ke skupinám.
Azure ABAC je příkladem řešení ABAC, které je k dispozici dnes. Azure ABAC staví na Azure RBAC přidáním podmínek přiřazení rolí na základě atributů v kontextu konkrétních akcí.
Implementace autorizace
Logika autorizace se často implementuje v aplikacích nebo řešeních, kde se vyžaduje řízení přístupu. V mnoha případech nabízejí vývojové platformy aplikací middleware nebo jiná řešení rozhraní API, která zjednodušují implementaci autorizace. Mezi příklady patří použití AuthorizeAttribute v ASP.NET nebo Route Guards v Angular.
Přístupy k autorizaci, které spoléhají na informace o ověřené entitě, vyhodnotí aplikace informace vyměňované během ověřování. Například pomocí informací, které byly poskytnuty v tokenu zabezpečení. Pokud plánujete používat informace z tokenů pro autorizaci, doporučujeme postupovat podle těchto pokynů k správnému zabezpečení aplikací prostřednictvím ověřování deklarací identity. V části Informace, které nejsou obsaženy v tokenu zabezpečení, může aplikace provádět další volání externích prostředků.
Není nezbytně nutné, aby vývojáři vložili autorizační logiku zcela do svých aplikací. Místo toho je možné vyhrazené autorizační služby použít k centralizované implementaci a správě autorizace.
Další kroky
- Informace o vlastní implementaci řízení přístupu na základě role v aplikacích najdete v tématu Řízení přístupu na základě role pro vývojáře aplikací.
- Další informace o procesu registrace aplikace, aby se mohl integrovat s platformou Microsoft Identity Platform, najdete v tématu Aplikační model.
- Příklad konfigurace jednoduché autorizace založené na ověřování najdete v tématu Konfigurace služby App Service nebo aplikace Azure Functions tak, aby používala přihlášení Microsoft Entra.
- Informace o správné autorizaci pomocí deklarací identity tokenů najdete v tématu Zabezpečené aplikace a rozhraní API ověřováním deklarací identity.