Share via


Op rollen gebaseerd toegangsbeheer voor toepassingsontwikkelaars

Met op rollen gebaseerd toegangsbeheer (RBAC) kunnen bepaalde gebruikers of groepen specifieke machtigingen hebben voor toegang tot en beheer van bronnen. Toepassings-RBAC verschilt van op rollen gebaseerd toegangsbeheer van Azure en op rollen gebaseerd toegangsbeheer van Microsoft Entra. Aangepaste Azure-rollen en ingebouwde rollen maken beide deel uit van Azure RBAC, dat wordt gebruikt om Azure-bronnen te beheren. Microsoft Entra RBAC wordt gebruikt voor het beheren van Microsoft Entra-resources. In dit artikel wordt toepassingsspecifieke RBAC uitgelegd. Zie App-rollen toevoegen aan uw toepassing en deze ontvangen in het token voor informatie over het implementeren van toepassingsspecifieke RBAC.

Definities van rollen

Op rollen gebaseerd toegangsbeheer (RBAC) is een populair mechanisme voor afdwingen van autorisatie in toepassingen. Wanneer een organisatie RBAC gebruikt, definieert een toepassingsontwikkelaar rollen in plaats van afzonderlijke gebruikers of groepen te autoriseren. Een beheerder kan vervolgens rollen toewijzen aan verschillende gebruikers en groepen om te bepalen wie toegang heeft tot inhoud en functionaliteit.

Met RBAC kan een ontwikkelaar van toepassingen bronnen en het gebruik ervan beheren. Met RBAC kan een toepassingsontwikkelaar ook de gebieden van een toepassing beheren waartoe gebruikers toegang hebben. Beheerders kunnen bepalen welke gebruikers toegang hebben tot een toepassing met de vereiste eigenschap Gebruikerstoewijzing. Ontwikkelaars moeten rekening houden met specifieke gebruikers binnen de toepassing en wat gebruikers kunnen doen in de toepassing.

Een toepassingsontwikkelaar maakt eerst een roldefinitie in de registratiesectie van de toepassing in het Microsoft Entra-beheercentrum. De roldefinitie bevat een waarde die wordt geretourneerd voor gebruikers die zijn toegewezen aan die rol. Een ontwikkelaar kan deze waarde vervolgens gebruiken om toepassingslogica te implementeren om te bepalen wat deze gebruikers wel of niet kunnen doen in een toepassing.

RBAC-opties

De volgende richtlijnen moeten worden toegepast bij het overwegen van autorisatie op basis van op rollen gebaseerd toegangsbeheer in een toepassing:

  • Definieer de rollen die vereist zijn voor de autorisatiebehoeften van de toepassing.
  • De relevante rollen voor geverifieerde gebruikers toepassen, opslaan en ophalen.
  • Bepaal het toepassingsgedrag op basis van de rollen die zijn toegewezen aan de huidige gebruiker.

Nadat de rollen zijn gedefinieerd, ondersteunt het Microsoft Identity-platform verschillende oplossingen die kunnen worden gebruikt om rolgegevens toe te passen, op te slaan en op te halen voor geverifieerde gebruikers. Deze oplossingen omvatten app-rollen, Microsoft Entra-groepen en het gebruik van aangepaste gegevensarchieven voor gebruikersrolgegevens.

Ontwikkelaars hebben de flexibiliteit om hun eigen implementatie te bieden voor de manier waarop roltoewijzingen moeten worden geïnterpreteerd als toepassingsmachtigingen. Deze interpretatie van machtigingen kan betrekking hebben op het gebruik van middleware of andere opties die worden geboden door het platform van de toepassingen of gerelateerde bibliotheken. Toepassingen ontvangen doorgaans gegevens over gebruikersrollen als claims en bepalen vervolgens gebruikersmachtigingen op basis van deze claims.

De app-rollen

Met Microsoft Entra ID kunt u app-rollen voor uw toepassing definiëren en deze rollen toewijzen aan gebruikers en andere toepassingen. De rollen die u aan een gebruiker of toepassing toewijst, definiëren hun toegangsniveau tot de resources en bewerkingen in uw toepassing.

Wanneer Microsoft Entra ID een toegangstoken uitgeeft voor een geverifieerde gebruiker of toepassing, bevat deze de namen van de rollen waaraan u de entiteit (de gebruiker of toepassing) hebt toegewezen in de claim van roles het toegangstoken. Een toepassing zoals een web-API die dat toegangstoken in een aanvraag ontvangt, kan vervolgens autorisatiebeslissingen nemen op basis van de waarden in de roles claim.

Groepen

Ontwikkelaars kunnen ook Microsoft Entra-groepen gebruiken om RBAC in hun toepassingen te implementeren, waarbij de lidmaatschappen van de gebruiker in specifieke groepen worden geïnterpreteerd als hun rollidmaatschappen. Wanneer een organisatie groepen gebruikt, bevat het token een groepsclaim. De groepsclaim geeft de id's op van alle toegewezen groepen van de gebruiker in de tenant.

Belangrijk

Bij het werken met groepen moeten ontwikkelaars zich bewust zijn van het concept van een overschrijdingsclaim. Als een gebruiker lid is van meer dan de overschrijdingslimiet (150 voor SAML-tokens, 200 voor JWT-tokens, 6 als u de impliciete stroom gebruikt), verzendt Microsoft Entra-id geen groepsclaim in het token. In plaats daarvan bevat het een 'overschrijdingsclaim' in het token. Dit geeft aan dat de consument van het token een query moet uitvoeren op de Microsoft Graph API om de groepslidmaatschappen van de gebruiker op te halen. Zie Claims in toegangstokens voor meer informatie over het werken met overschrijdingsclaims. Het is mogelijk om alleen groepen te verzenden die zijn toegewezen aan een toepassing, hoewel voor toewijzing op basis van groepen Microsoft Entra ID P1 of P2 vereist is.

Aangepast gegevensarchief

App-rollen en -groepen slaan allebei informatie op over gebruikerstoewijzingen in de Microsoft Entra-directory. Een andere optie voor het beheren van gegevens over gebruikersrollen die beschikbaar zijn voor ontwikkelaars, is het onderhouden van de informatie buiten de map in een aangepast gegevensarchief. Bijvoorbeeld in een SQL-database, Azure Table Storage of Azure Cosmos DB voor Table.

Door aangepaste opslag te gebruiken, kunnen ontwikkelaars extra aanpassingen en controle krijgen over het toewijzen van rollen aan gebruikers en hoe ze deze kunnen vertegenwoordigen. De extra flexibiliteit brengt echter ook meer verantwoordelijkheid met zich mee. Er is bijvoorbeeld geen mechanisme beschikbaar om deze informatie op te nemen in tokens die worden geretourneerd door Microsoft Entra-id. Toepassingen moeten de rollen ophalen als rolgegevens worden bijgehouden in een aangepast gegevensarchief. Het ophalen van de rollen wordt meestal uitgevoerd met uitbreidingspunten die zijn gedefinieerd in de middleware die beschikbaar is voor het platform dat wordt gebruikt om de toepassing te ontwikkelen. Ontwikkelaars zijn verantwoordelijk voor het correct beveiligen van het aangepaste gegevensarchief.

Met Aangepast Azure AD B2C-beleid is het mogelijk te communiceren met aangepaste gegevensarchieven en om aangepaste claims in een token op te nemen.

Een aanpak kiezen

In het algemeen zijn app-rollen de aanbevolen oplossing. App-rollen bieden het eenvoudigste programmeermodel en zijn bedoeld voor RBAC-implementaties. Specifieke toepassingsvereisten kunnen echter aangeven dat een andere benadering een betere oplossing zou zijn.

Ontwikkelaars kunnen app-rollen gebruiken om te bepalen of een gebruiker zich kan aanmelden bij een toepassing, of een toepassing kan een toegangstoken voor een web-API verkrijgen. App-rollen hebben de voorkeur boven Microsoft Entra-groepen door ontwikkelaars wanneer ze de parameters van autorisatie in hun toepassingen willen beschrijven en beheren. Een toepassing die groepen gebruikt voor autorisatie-uiteinden in de volgende tenant, kan bijvoorbeeld verschillen van de groeps-id en de naam. Een toepassing die app-rollen gebruikt, blijft veilig.

Hoewel app-rollen of -groepen kunnen worden gebruikt voor autorisatie, kunnen belangrijke verschillen tussen deze rollen van invloed zijn op de beste oplossing voor een bepaald scenario.

App-rollen Microsoft Entra-groepen Aangepast gegevensarchief
Programmeermodel Eenvoudigst. Deze zijn specifiek voor een toepassing en worden gedefinieerd in de app-registratie. Ze verplaatsen zich met de toepassing zelf. Complexer. Groeps-id's verschillen per tenant en overschrijdingsclaims moeten mogelijk worden overwogen. Groepen zijn niet specifiek voor een toepassing, maar voor een Microsoft Entra-tenant. Meest complex. Ontwikkelaars moeten een methode implementeren waarmee rolgegevens worden opgeslagen als opgehaald.
Rolwaarden zijn statisch tussen Microsoft Entra-tenants Ja Nr. Afhankelijk van de implementatie.
Rolwaarden kunnen worden gebruikt in meerdere toepassingen Nee (tenzij de rolconfiguratie in elke toepassingsregistratie wordt gedupliceerd.) Ja Ja
Informatie die is opgeslagen in de map Ja Ja Nr.
Informatie wordt geleverd via tokens Ja (rollenclaim) Ja (als er een overschrijding is, moeten groepsclaims mogelijk tijdens uitvoertijd worden opgehaald) Nee (opgehaald tijdens uitvoertijd via aangepaste code.)
Levensduur Bevindt zich in de toepassingsregistratie in de map. Verwijderd wanneer de toepassingsregistratie wordt verwijderd. Verblijft in map. Blijf intact, zelfs als de toepassingsregistratie wordt verwijderd. Verblijft in aangepaste gegevensopslag. Niet gekoppeld aan toepassingsregistratie.

Volgende stappen