Op rollen gebaseerd toegangsbeheer

Met op rollen gebaseerd toegangsbeheer (RBAC) kunnen gebruikers of groepen specifieke machtigingen krijgen voor toegang tot en beheer van bronnen. Het implementeren van RBAC om een bron te beveiligen omvat meestal het beveiligen van een webtoepassing, een toepassing met één pagina (SPA) of een API. Deze beveiliging kan zijn voor de hele toepassing of API, specifieke gebieden en functies of API-methoden. Zie voor meer informatie over de basisprincipes van autorisatie Basisprincipes van autorisatie.

Zoals besproken in Op rollen gebaseerd toegangsbeheer voor toepassingsontwikkelaars, zijn er drie manieren om RBAC te implementeren met het Microsoft Identity-platform:

  • App-rollen: het gebruik van de Functie app-rollen in een toepassing met logica in de toepassing om binnenkomende toewijzingen van app-rollen te interpreteren.
  • Groepen: het gebruik van groepstoewijzingen van een binnenkomende identiteit met logica in de toepassing om de groepstoewijzingen te interpreteren.
  • Aangepaste gegevensarchief: roltoewijzingen ophalen en interpreteren met logica in de toepassing.

De voorkeursbenadering is het gebruik van app-rollen omdat dit het eenvoudigst te implementeren is. Deze aanpak wordt rechtstreeks ondersteund door de SDK's die worden gebruikt bij het bouwen van apps die gebruikmaken van het Microsoft Identity-platform. Zie Een benadering kiezen voor meer informatie over het kiezen van een benadering.

App-rollen definiëren

De eerste stap voor het implementeren van RBAC voor een toepassing is het definiëren van de app-rollen en het toewijzen van gebruikers of groepen eraan. Dit proces wordt beschreven in Procedure: app-rollen toevoegen aan uw toepassing en deze ontvangen in het token. Nadat u de app-rollen hebt gedefinieerd en gebruikers of groepen aan hen hebt toegewezen, hebt u toegang tot de roltoewijzingen in de tokens die in de toepassing binnenkomen en handelen ze dienovereenkomstig.

RBAC implementeren in ASP.NET Core

ASP.NET Core ondersteunt het toevoegen van RBAC aan een ASP.NET Core-webtoepassing of web-API. Door RBAC toe te voegen, kunt u eenvoudig implementeren met rolcontroles met het kenmerk ASP.NET Core Autoriseren. Het is ook mogelijk om de ondersteuning van ASP.NET Core te gebruiken voor op beleid gebaseerde rolcontroles.

ASP.NET Core MVC-webtoepassing

Het implementeren van RBAC in een ASP.NET Core MVC-webtoepassing is eenvoudig. Dit omvat voornamelijk het kenmerk Autoriseren om op te geven welke rollen toegang moeten krijgen tot specifieke controllers of acties in de controllers. Volg deze stappen om RBAC te implementeren in een ASP.NET Core MVC-toepassing:

  1. Maak een toepassingsregistratie met app-rollen en -toewijzingen, zoals beschreven in App-rollen definiëren hierboven.

  2. Ga op een van de volgende manieren te werk:

    • Maak een nieuw project voor ASP.NET Core MVC-webtoepassing met de dotnet-cli. Geef de --auth vlag op met één SingleOrg tenantverificatie of MultiOrg voor verificatie met meerdere tenants, de --client-id vlag met de client als deze afkomstig is van de toepassingsregistratie en de --tenant-id vlag met de tenant als deze afkomstig is van de Microsoft Entra-tenant:

      dotnet new mvc --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID>  
      
    • Voeg de bibliotheken Microsoft.Identity.Web en Microsoft.Identity.Web.UI toe aan een bestaand ASP.NET Core MVC-project:

      dotnet add package Microsoft.Identity.Web 
      dotnet add package Microsoft.Identity.Web.UI 
      
  3. Volg de instructies die zijn opgegeven in Snelstart: aanmelding met Microsoft toevoegen aan een ASP.NET Core-web-app om verificatie toe te voegen aan de toepassing.

  4. Voeg rolcontroles toe aan de controlleracties, zoals wordt beschreven in Rolcontroles toevoegen.

  5. Test de toepassing door toegang te krijgen tot een van de beveiligde MVC-routes.

ASP.NET Core-web-API

Het implementeren van RBAC in een ASP.NET Core web-API omvat voornamelijk het gebruik van het kenmerk Autoriseren om aan te geven welke rollen toegang moeten krijgen tot specifieke controllers of acties in de controllers. Volg deze stappen om RBAC te implementeren in de ASP.NET Core web-API:

  1. Maak een toepassingsregistratie met app-rollen en -toewijzingen, zoals beschreven in App-rollen definiëren hierboven.

  2. Ga op een van de volgende manieren te werk:

    • Maak een nieuw API-project voor ASP.NET Core MVC-web met de dotnet-cli. Geef de --auth vlag op met één SingleOrg tenantverificatie of MultiOrg voor verificatie met meerdere tenants, de --client-id vlag met de client als deze afkomstig is van de toepassingsregistratie en de --tenant-id vlag met de tenant als deze afkomstig is van de Microsoft Entra-tenant:

      dotnet new webapi --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID> 
      
    • Voeg de bibliotheken Microsoft.Identity.Web en Swashbuckle.AspNetCore toe aan een bestaand ASP.NET Core web-API-project:

      dotnet add package Microsoft.Identity.Web
      dotnet add package Swashbuckle.AspNetCore 
      
  3. Volg de instructies die zijn opgegeven in Snelstart: aanmelding met Microsoft toevoegen aan een ASP.NET Core-web-app om verificatie toe te voegen aan de toepassing.

  4. Voeg rolcontroles toe aan de controlleracties, zoals wordt beschreven in Rolcontroles toevoegen.

  5. De API aanroepen vanuit een clienttoepassing. Zie de Angular-toepassing met één pagina die ASP.NET Core-web-API aanroept en app-rollen gebruikt om op rollen gebaseerd toegangsbeheer te implementeren voor een end-to-end-voorbeeld.

RBAC implementeren in andere platforms

Angular SPA met MsalGuard

Het implementeren van RBAC in een Angular SPA omvat het gebruik van de Microsoft Authentication Library voor Angular om toegang te verlenen tot de Angular-routes in de toepassing. Een voorbeeld wordt weergegeven in het voorbeeld Uw Angular toepassing met één pagina inschakelen om gebruikers aan te melden en API's aan te roepen met het Microsoft Identity-platform.

Notitie

RBAC-implementaties bij de client moeten worden gekoppeld aan RBAC van de server om te voorkomen dat onbevoegde toepassingen toegang krijgen tot gevoelige bronnen.

Node.js met Express-toepassing

Het implementeren van RBAC in een Node.js met express-toepassing omvat het gebruik van MSAL voor toegang tot de Express-routes in de toepassing. Een voorbeeld wordt weergegeven in het voorbeeld Uw Node.js-webtoepassing inschakelen om gebruikers aan te melden en API's aan te roepen met het Microsoft Identity-platform.

Volgende stappen