Implementace řízení přístupu na základě role

Řízení přístupu na základě role (RBAC) umožňuje uživatelům nebo skupinám mít specifická oprávnění pro přístup k prostředkům a jejich správě. Implementace RBAC pro ochranu prostředku obvykle zahrnuje ochranu webové aplikace, jednostránkové aplikace (SPA) nebo rozhraní API. Tato ochrana může být určená pro celou aplikaci nebo rozhraní API, konkrétní oblasti a funkce nebo metody rozhraní API. Další informace o základech autorizace najdete v tématu Základy autorizace.

Jak je popsáno v řízení přístupu na základě role pro vývojáře aplikací, existují tři způsoby implementace řízení přístupu na základě role pomocí platformy Microsoft Identity Platform:

  • Role aplikací – použití funkce Role aplikace v aplikaci pomocí logiky v aplikaci k interpretaci příchozích přiřazení rolí aplikace
  • Skupiny – použití přiřazení skupin příchozí identity pomocí logiky v aplikaci k interpretaci přiřazení skupin.
  • Vlastní úložiště dat – načtení a interpretace přiřazení rolí pomocí logiky v aplikaci

Upřednostňovaným přístupem je použití rolí aplikací, protože je nejjednodušší implementovat. Tento přístup podporují přímo sady SDK, které se používají při vytváření aplikací využívajících platformu Microsoft Identity Platform. Další informace o tom, jak zvolit přístup, najdete v tématu Volba přístupu.

Definování aplikačních rolí

Prvním krokem pro implementaci RBAC pro aplikaci je definování rolí aplikace a přiřazení uživatelů nebo skupin k ní. Tento proces je popsaný v části Postupy: Přidání rolí aplikace do aplikace a jejich přijetí v tokenu. Po definování rolí aplikace a přiřazení uživatelů nebo skupin k nim získejte přístup k přiřazením rolí v tokenech přicházejících do aplikace a odpovídajícím způsobem na ně reagovat.

Implementace RBAC v ASP.NET Core

ASP.NET Core podporuje přidání RBAC do webové aplikace ASP.NET Core nebo webového rozhraní API. Přidání RBAC umožňuje snadnou implementaci pomocí kontrol rolí s atributem ASP.NET Core Authorize . Je také možné použít podporu ASP.NET Core pro kontroly rolí na základě zásad.

webová aplikace ASP.NET Core MVC

Implementace RBAC ve webové aplikaci ASP.NET Core MVC je jednoduchá. Zahrnuje hlavně použití atributu Authorize k určení rolí, které mají být povoleny pro přístup ke konkrétním řadičům nebo akcím v kontrolerů. Pomocí následujícího postupu implementujte RBAC v aplikaci ASP.NET Core MVC:

  1. Vytvořte registraci aplikace s rolemi a přiřazeními aplikací, jak je popsáno v části Definice rolí aplikace výše.

  2. Proveďte jeden z následujících kroků:

    • Pomocí rozhraní příkazového řádku dotnet vytvořte nový projekt webové aplikace ASP.NET Core MVC. --auth Zadejte příznak pro SingleOrg ověřování s jedním tenantem nebo MultiOrg pro ověřování s více tenanty, příznak s klientem, --client-id pokud pochází z registrace aplikace, a --tenant-id příznak s tenantem, pokud pochází z tenanta Microsoft Entra:

      dotnet new mvc --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID>  
      
    • Přidejte knihovny Microsoft.Identity.Web a Microsoft.Identity.Web.UI do existujícího projektu ASP.NET Core MVC:

      dotnet add package Microsoft.Identity.Web 
      dotnet add package Microsoft.Identity.Web.UI 
      
  3. Postupujte podle pokynů uvedených v rychlém startu: Přidání přihlášení pomocí Microsoftu do webové aplikace ASP.NET Core pro přidání ověřování do aplikace.

  4. Přidejte kontroly rolí u akcí kontroleru, jak je uvedeno v části Přidávání kontrol rolí.

  5. Otestujte aplikaci pokusem o přístup k jedné z chráněných tras MVC.

Webové rozhraní API v ASP.NET Core

Implementace RBAC ve webovém rozhraní API ASP.NET Core zahrnuje hlavně použití atributu Authorize k určení rolí, které mají být povoleny pro přístup ke konkrétním kontrolerům nebo akcím v kontrolerů. Pomocí následujícího postupu implementujte RBAC ve webovém rozhraní API ASP.NET Core:

  1. Vytvořte registraci aplikace s rolemi a přiřazeními aplikací, jak je popsáno v části Definice rolí aplikace výše.

  2. Proveďte jeden z následujících kroků:

    • Vytvořte nový projekt webového rozhraní API ASP.NET Core MVC pomocí rozhraní příkazového řádku dotnet. --auth Zadejte příznak pro SingleOrg ověřování s jedním tenantem nebo MultiOrg pro ověřování s více tenanty, příznak s klientem, --client-id pokud pochází z registrace aplikace, a --tenant-id příznak s tenantem, pokud pochází z tenanta Microsoft Entra:

      dotnet new webapi --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID> 
      
    • Přidejte knihovny Microsoft.Identity.Web a Swashbuckle.AspNetCore do existujícího projektu webového rozhraní API ASP.NET Core:

      dotnet add package Microsoft.Identity.Web
      dotnet add package Swashbuckle.AspNetCore 
      
  3. Postupujte podle pokynů uvedených v rychlém startu: Přidání přihlášení pomocí Microsoftu do webové aplikace ASP.NET Core pro přidání ověřování do aplikace.

  4. Přidejte kontroly rolí u akcí kontroleru, jak je uvedeno v části Přidávání kontrol rolí.

  5. Volání rozhraní API z klientské aplikace Viz Angular jednostráňová aplikace, která volá webové rozhraní API ASP.NET Core a používá role aplikací k implementaci řízení přístupu na základě role pro kompletní ukázku.

Implementace RBAC na jiných platformách

Angular SPA s využitím MsalGuard

Implementace RBAC v Angular SPA zahrnuje použití knihovny Microsoft Authentication Library pro Angular k autorizaci přístupu k trasám Angular obsaženým v aplikaci. Příklad je uvedený v části Povolení jednostránka aplikace Angular pro přihlašování uživatelů a volání rozhraní API pomocí ukázky platformy Microsoft Identity Platform .

Poznámka:

Implementace RBAC na straně klienta by se měly spárovat s RBAC na straně serveru, aby se zabránilo neoprávněným aplikacím v přístupu k citlivým prostředkům.

Node.js s aplikací Express

Implementace RBAC v Node.js s expresní aplikací zahrnuje použití knihovny MSAL k autorizaci přístupu k trasám Express obsaženým v aplikaci. Příklad je uvedený ve webové aplikaci Povolit Node.js přihlášení uživatelů a volání rozhraní API pomocí ukázky platformy Microsoft Identity Platform .

Další kroky