Řízení přístupu na základě role pro vývojáře aplikací

Řízení přístupu na základě role (RBAC) umožňuje určitým uživatelům nebo skupinám mít specifická oprávnění pro přístup k prostředkům a jejich správě. Řízení přístupu na základě role v Azure se liší od řízení přístupu na základě role v Azure a řízení přístupu na základě role Microsoft Entra. Vlastní role Azure a předdefinované role jsou součástí Azure RBAC, která slouží ke správě prostředků Azure. Microsoft Entra RBAC se používá ke správě prostředků Microsoft Entra. Tento článek vysvětluje řízení přístupu na základě role specifické pro aplikaci. Informace o implementaci řízení přístupu na základě role aplikace najdete v tématu Postup přidání rolí aplikace do aplikace a jejich přijetí v tokenu.

Definice rolí

RBAC je oblíbený mechanismus pro vynucení autorizace v aplikacích. Když organizace používá RBAC, vývojář aplikace definuje role, nikoli autorizaci jednotlivých uživatelů nebo skupin. Správce pak může přiřadit role různým uživatelům a skupinám a řídit, kdo má přístup k obsahu a funkcím.

RBAC pomáhá vývojáři aplikací spravovat prostředky a jejich využití. RBAC také umožňuje vývojáři aplikací řídit oblasti aplikace, ke kterým mají uživatelé přístup. Správa istrátory můžou řídit, kteří uživatelé mají přístup k aplikaci pomocí Požadovaná vlastnost přiřazení uživatele Vývojáři musí počítat s konkrétními uživateli v aplikaci a s tím, co můžou uživatelé v aplikaci dělat.

Vývojář aplikace nejprve vytvoří definici role v části registrace aplikace v Centru pro správu Microsoft Entra. Definice role obsahuje hodnotu vrácenou pro uživatele, kteří jsou k této roli přiřazeni. Vývojář pak může tuto hodnotu použít k implementaci logiky aplikace k určení toho, co tito uživatelé můžou nebo nemůžou v aplikaci dělat.

Možnosti RBAC

Při zvažování zahrnutí autorizace řízení přístupu na základě role v aplikaci by se měly použít následující pokyny:

  • Definujte role, které jsou vyžadovány pro autorizační potřeby aplikace.
  • Použijte, uložte a načtěte příslušné role pro ověřené uživatele.
  • Určete chování aplikace na základě rolí přiřazených aktuálnímu uživateli.

Po definování rolí podporuje platforma Microsoft Identity Platform několik různých řešení, která je možné použít k použití, ukládání a načítání informací o rolích pro ověřené uživatele. Mezi tato řešení patří role aplikací, skupiny Microsoft Entra a použití vlastních úložišť dat pro informace o rolích uživatele.

Vývojáři mají flexibilitu poskytovat vlastní implementaci toho, jak se přiřazení rolí interpretují jako oprávnění aplikace. Tato interpretace oprávnění může zahrnovat použití middlewaru nebo jiných možností poskytovaných platformou aplikací nebo souvisejících knihoven. Aplikace obvykle přijímají informace o rolích uživatelů jako deklarace identity a pak na základě těchto deklarací rozhodují o uživatelských oprávněních.

Role aplikací

Id Microsoft Entra umožňuje definovat role aplikací pro vaši aplikaci a přiřadit tyto role uživatelům a dalším aplikacím. Role, které přiřadíte uživateli nebo aplikaci, definují jejich úroveň přístupu k prostředkům a operacím ve vaší aplikaci.

Když Microsoft Entra ID vydá přístupový token pro ověřeného uživatele nebo aplikaci, bude obsahovat názvy rolí, které jste přiřadili entitě (uživateli nebo aplikaci) do deklarace přístupového roles tokenu. Aplikace, jako je webové rozhraní API, které přijímá přístupový token v požadavku, pak může provádět rozhodnutí o autorizaci na základě hodnot v roles deklaraci identity.

Skupiny

Vývojáři mohou také použít skupiny Microsoft Entra k implementaci řízení přístupu na základě role ve svých aplikacích, kde se členství uživatele v konkrétních skupinách interpretuje jako jejich členství v rolích. Když organizace používá skupiny, token obsahuje deklaraci identity skupin. Deklarace identity skupiny určuje identifikátory všech přiřazených skupin uživatele v rámci tenanta.

Důležité

Při práci se skupinami musí vývojáři vědět o konceptu deklarace nadlimitního využití. Ve výchozím nastavení platí, že pokud je uživatel členem více než limitu nadlimitního využití (150 pro tokeny SAML, 200 pro tokeny JWT, 6 pokud používáte implicitní tok), Microsoft Entra ID nevygeneruje v tokenu deklaraci skupiny. Místo toho obsahuje do tokenu deklaraci nadlimitního využití, která indikuje, že příjemce tokenu musí dotazovat rozhraní Microsoft Graph API, aby získalo členství ve skupinách uživatele. Další informace o práci s deklaracemi nadlimitního využití najdete v tématu Deklarace identity v přístupových tokenech. Je možné generovat pouze skupiny přiřazené k aplikaci, i když přiřazení založené na skupinách vyžaduje edici Microsoft Entra ID P1 nebo P2.

Vlastní úložiště dat

Role aplikace i skupiny ukládají informace o přiřazeních uživatelů v adresáři Microsoft Entra. Další možností správy informací o rolích uživatelů, které jsou k dispozici vývojářům, je udržovat informace mimo adresář ve vlastním úložišti dat. Například ve službě SQL Database, Azure Table Storage nebo Azure Cosmos DB for Table.

Použití vlastního úložiště umožňuje vývojářům další přizpůsobení a kontrolu nad tím, jak přiřadit role uživatelům a jak je znázornit. Větší flexibilita však také přináší větší odpovědnost. Například v současné době není k dispozici žádný mechanismus, který by tyto informace zahrnoval do tokenů vrácených z ID Microsoft Entra. Aplikace musí načíst role, pokud jsou informace o rolích udržovány ve vlastním úložišti dat. Načítání rolí se obvykle provádí pomocí bodů rozšiřitelnosti definovaných v middlewaru dostupném pro platformu, která se používá k vývoji aplikace. Vývojáři zodpovídají za správné zabezpečení vlastního úložiště dat.

Pomocí vlastních zásad Azure AD B2C je možné pracovat s vlastními úložišti dat a zahrnout do tokenu vlastní deklarace identity.

Volba přístupu

Obecně platí, že doporučeným řešením jsou role aplikací. Role aplikací poskytují nejjednodušší programovací model a jsou určené pro implementace RBAC. Konkrétní požadavky na aplikace však mohou znamenat, že jiným přístupem by bylo lepší řešení.

Vývojáři můžou pomocí rolí aplikací řídit, jestli se uživatel může přihlásit k aplikaci, nebo může získat přístupový token pro webové rozhraní API. Role aplikací se vývojářům preferují před skupinami Microsoft Entra, když chtějí popsat a řídit parametry autorizace ve svých aplikacích. Například aplikace, která používá skupiny pro autorizační konce v dalším tenantovi, protože identifikátor skupiny i název se můžou lišit. Aplikace využívající role aplikací zůstává v bezpečí.

I když se k autorizaci dají použít role aplikací nebo skupiny, klíčové rozdíly mezi nimi můžou ovlivnit, což je nejlepší řešení pro daný scénář.

Aplikační role Skupiny Microsoft Entra Vlastní úložiště dat
Programovací model Nejjednodušší. Jsou specifické pro aplikaci a jsou definovány v registraci aplikace. Přesouvají se s aplikací. Složitější. Identifikátory skupin se mohou lišit mezi tenanty a deklaracemi nadlimitního využití, které je potřeba zvážit. Skupiny nejsou specifické pro aplikaci, ale pro tenanta Microsoft Entra. Nejsložitější. Vývojáři musí implementovat prostředky, pomocí kterých se informace o rolích ukládají a načítají.
Hodnoty rolí jsou statické mezi tenanty Microsoft Entra. Yes No Závisí na implementaci.
Hodnoty rolí je možné použít ve více aplikacích. Ne (Pokud není konfigurace role duplikována v každé registraci aplikace.) Ano Yes
Informace uložené v adresáři Ano Ano No
Informace se doručují prostřednictvím tokenů. Ano (deklarace identity rolí) Ano (Pokud nadlimitní využití, může být potřeba načíst deklarace identity skupin za běhu) Ne (Načteno za běhu prostřednictvím vlastního kódu.)
Doba platnosti Žije v registraci aplikace v adresáři. Při odebrání registrace aplikace se odebere. Žije v adresáři. Zůstaňte beze změny i v případě, že se registrace aplikace odebere. Žije ve vlastním úložišti dat. Není svázané s registrací aplikace.

Další kroky