Delen 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 resources. 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, die wordt gebruikt om Azure-resources te beheren. Microsoft Entra RBAC wordt gebruikt voor het beheren van Microsoft Entra-resources. In dit artikel wordt uitgelegd wat toepassingsspecifieke RBAC is. Zie App-rollen toevoegen aan uw toepassing en deze ontvangen in het token voor informatie over het implementeren van toepassingsspecifieke RBAC.

Roldefinities

RBAC is een populair mechanisme voor het 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.

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

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 aan die rol zijn toegewezen. 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 voor 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 gebruikersrolgegevens 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 specificeert de identifiers van alle toegewezen groepen van de gebruiker binnen de tenant.

Belangrijk

Bij het werken met groepen moeten ontwikkelaars zich bewust zijn van het concept van een overschrijdingsclaim. Standaard, als een gebruiker lid is van meer groepen dan de overschrijdingslimiet (150 voor SAML-tokens, 200 voor JWT-tokens, 6 als u de impliciete stroom gebruikt), zendt Microsoft Entra ID geen groepsclaim in het token. In plaats daarvan bevat het een 'overschrijdingsclaim' in het token dat aangeeft 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.

Aangepaste gegevensopslag

App-rollen en -groepen slaan allebei informatie op over gebruikerstoewijzingen in de Microsoft Entra-directory. Een andere optie voor het beheren van gebruikersrolgegevens 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.

Met behulp van aangepaste opslag kunnen ontwikkelaars extra aanpassingen en controle krijgen over het toewijzen van rollen aan gebruikers en hoe ze deze kunnen vertegenwoordigen. De extra flexibiliteit introduceert echter ook meer verantwoordelijkheid. 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 behulp van uitbreidbaarheidspunten 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 behulp van aangepast Azure AD B2C-beleid is het mogelijk om te communiceren met aangepaste gegevensarchieven en aangepaste claims in een token op te nemen.

Een benadering kiezen

Over 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 dat een toepassing een toegangstoken voor een web-API kan 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 kan in de volgende tenant problemen ondervinden, omdat zowel de groeps-id als de naam anders kunnen zijn. 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 Aangepaste gegevensopslag
Programmeermodel Eenvoudigst. Ze zijn specifiek voor een toepassing en worden gedefinieerd in de toepassingsregistratie. Ze verplaatsen zich met de toepassing zelf. Complexer. Groepsidentificaties verschillen per tenant en claims voor bovenmatige kosten moeten mogelijk worden overwogen. Groepen zijn niet specifiek voor een toepassing, maar voor een Microsoft Entra-tenant. Meest complex. Ontwikkelaars moeten middelen implementeren waarmee rolgegevens zowel worden opgeslagen als opgehaald.
Rolwaarden zijn statisch tussen Microsoft Entra-tenants Ja Nee. Is afhankelijk van de implementatie.
Rolwaarden kunnen worden gebruikt in meerdere toepassingen Nee (tenzij de rolconfiguratie wordt gedupliceerd in elke toepassingsregistratie.) Ja Ja
Informatie die is opgeslagen in de directory Ja Ja Nee.
Informatie wordt geleverd via tokens Ja (rollenclaim) Ja (Als er een overschrijding is, moeten claims mogelijk tijdens runtime worden opgehaald) Nee (opgehaald tijdens runtime via aangepaste code.)
levensduur Staat in de toepassingsregistratie in de map. Verwijderd wanneer de registratie van de toepassing wordt verwijderd. Staat in map. Blijf intact, zelfs als de registratie van de toepassing wordt verwijderd. Wordt opgeslagen in een aangepaste gegevensopslag. Niet gekoppeld aan toepassingsregistratie.

Volgende stappen