Sdílet prostřednictvím


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. 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