Inzicht in toegang tot alleen toepassingen

Wanneer een toepassing rechtstreeks toegang heeft tot een resource, zoals Microsoft Graph, is de toegang ervan niet beperkt tot de bestanden of bewerkingen die beschikbaar zijn voor één gebruiker. De app roept API's rechtstreeks aan met behulp van een eigen identiteit en een gebruiker of app met beheerdersrechten moet deze autoriseren voor toegang tot de resources. Dit scenario is alleen toegang tot toepassingen.

Wanneer moet ik alleen toegang tot toepassingen gebruiken?

In de meeste gevallen is alleen toegang tot toepassingen breder en krachtiger dan gedelegeerde toegang, dus u moet alleen app-toegang gebruiken wanneer dat nodig is. Dit is meestal de juiste keuze als:

  • De toepassing moet op een geautomatiseerde manier worden uitgevoerd, zonder gebruikersinvoer. Bijvoorbeeld een dagelijks script waarmee e-mailberichten van bepaalde contactpersonen worden gecontroleerd en geautomatiseerde antwoorden worden verzonden.
  • De toepassing moet toegang krijgen tot resources die behoren tot meerdere verschillende gebruikers. Een app voor het voorkomen van back-ups of gegevensverlies moet bijvoorbeeld berichten ophalen uit veel verschillende chatkanalen, elk met verschillende deelnemers.
  • U hebt de neiging om referenties lokaal op te slaan en de app toe te staan zich aan te melden als de gebruiker of beheerder.

Gebruik daarentegen nooit alleen toegang tot toepassingen waarbij een gebruiker zich normaal zou aanmelden om hun eigen resources te beheren. Deze typen scenario's moeten gedelegeerde toegang gebruiken om de minste bevoegdheden te krijgen.

Diagram shows illustration of application permissions vs delegated permissions.

Een app autoriseren om alleen toepassingen aan te roepen

Als u alleen app-aanroepen wilt doen, moet u de juiste app-rollen toewijzen aan uw client-app. App-rollen worden ook wel machtigingen voor alleen toepassingen genoemd. Ze zijn app-rollen omdat ze alleen toegang verlenen in de context van de resource-app die de rol definieert.

Als u bijvoorbeeld een lijst wilt lezen met alle teams die in een organisatie zijn gemaakt, moet u de rol van de Microsoft Graph-app Team.ReadBasic.All toewijzen aan uw toepassing. Deze app-rol verleent de mogelijkheid om deze gegevens te lezen wanneer Microsoft Graph de resource-app is. Met deze toewijzing wordt uw clienttoepassing niet toegewezen aan een Teams-rol waarmee deze gegevens mogelijk kunnen worden weergegeven via andere services.

Als ontwikkelaar moet u alle vereiste machtigingen voor alleen apps configureren, ook wel app-rollen genoemd voor de registratie van uw toepassing. U kunt de aangevraagde machtigingen voor alleen-apps configureren via Azure Portal of Microsoft Graph. Alleen-app-toegang biedt geen ondersteuning voor dynamische toestemming, dus u kunt geen afzonderlijke machtigingen of sets machtigingen aanvragen tijdens runtime.

Zodra u alle machtigingen hebt geconfigureerd die uw app nodig heeft, moet deze beheerderstoestemming krijgen om toegang te krijgen tot de resources. Alleen gebruikers met de rol globale beheerder kunnen bijvoorbeeld alleen app-machtigingen (app-rollen) verlenen voor de Microsoft Graph API. Gebruikers met andere beheerdersrollen, zoals toepassingsbeheerder en cloud-app-beheerder, kunnen machtigingen voor alleen-apps verlenen voor andere resources.

Beheer gebruikers alleen machtigingen voor apps kunnen verlenen met behulp van Azure Portal of door programmatisch subsidies te maken via de Microsoft Graph API. U kunt ook vragen om interactieve toestemming vanuit uw app, maar deze optie heeft niet de voorkeur omdat alleen-app-toegang geen gebruiker vereist.

Consumentengebruikers met Microsoft-accounts, zoals Outlook.com- of Xbox Live-accounts, kunnen nooit toegang tot toepassingen autoriseren. Volg altijd het principe van minimale bevoegdheden: u moet nooit app-rollen aanvragen die uw app niet nodig heeft. Dit principe helpt het beveiligingsrisico te beperken als uw app is gecompromitteerd en maakt het beheerders gemakkelijker om uw app toegang te verlenen. Als uw app bijvoorbeeld alleen gebruikers moet identificeren zonder hun gedetailleerde profielgegevens te lezen, moet u de beperktere Rol van de Microsoft Graph-app User.ReadBasic.All aanvragen in plaats van User.Read.All.

App-rollen ontwerpen en publiceren voor een resourceservice

Als u een service bouwt op Microsoft Entra ID waarmee API's voor andere clients kunnen worden aangeroepen, wilt u mogelijk geautomatiseerde toegang ondersteunen met app-rollen (alleen-app-machtigingen). U kunt de app-rollen voor uw toepassing definiëren in de sectie App-rollen van uw app-registratie in het Microsoft Entra-beheercentrum. Zie Rollen declareren voor een toepassing voor meer informatie over het maken van app-rollen.

Wanneer u app-rollen weergeeft die anderen kunnen gebruiken, geeft u duidelijke beschrijvingen van het scenario aan de beheerder die deze gaat toewijzen. App-rollen moeten over het algemeen zo smal mogelijk zijn en specifieke functionele scenario's ondersteunen, omdat alleen-app-toegang niet wordt beperkt door gebruikersrechten. Vermijd het blootstellen van één rol die volledige read of volledige read/write toegang verleent tot alle API's en resources die uw service bevat.

Notitie

App-rollen (alleen-app-machtigingen) kunnen ook worden geconfigureerd ter ondersteuning van toewijzing aan gebruikers en groepen. Zorg ervoor dat u uw app-rollen correct configureert voor het beoogde toegangsscenario. Als u van plan bent om de app-rollen van uw API te gebruiken voor alleen-app-toegang, selecteert u toepassingen als de enige toegestane lidtypen bij het maken van de app-rollen.

Hoe werkt alleen toegang tot toepassingen?

Het belangrijkste om te onthouden over alleen-app-toegang is dat de aanroepende app namens zichzelf en als eigen identiteit fungeert. Er is geen gebruikersinteractie. Als de app is toegewezen aan een bepaalde app-rol voor een resource, heeft de app volledig niet-gebonden toegang tot alle resources en bewerkingen die worden beheerd door die app-rol.

Zodra een app is toegewezen aan een of meer app-rollen (alleen-app-machtigingen), kan deze een alleen-app-token aanvragen bij Microsoft Entra-id met behulp van de clientreferentiestroom of een andere ondersteunde verificatiestroom. De toegewezen rollen worden toegevoegd aan de roles claim van het toegangstoken van de app.

In sommige scenario's kan de toepassingsidentiteit bepalen of toegang wordt verleend, vergelijkbaar met gebruikersrechten in een gedelegeerde aanroep. De Application.ReadWrite.OwnedBy app-rol verleent bijvoorbeeld een app de mogelijkheid om service-principals te beheren die de app zelf bezit.

Voorbeeld van toegang tot toepassingen - Geautomatiseerde e-mailmelding via Microsoft Graph

In het volgende voorbeeld ziet u een realistisch automatiseringsscenario.

Alice wil een team per e-mail op de hoogte stellen wanneer de rapportagemap van de afdeling die zich in een Windows-bestandsshare bevindt, een nieuw document registreert. Alice maakt een geplande taak die een PowerShell-script uitvoert om de map te onderzoeken en nieuwe bestanden te zoeken. Met het script wordt vervolgens een e-mailbericht verzonden met behulp van een postvak dat wordt beveiligd door een resource-API, Microsoft Graph.

Het script wordt uitgevoerd zonder tussenkomst van de gebruiker, dus het autorisatiesysteem controleert alleen de autorisatie van de toepassing. Exchange Online controleert of aan de client die de aanroep doet, de toepassingsmachtiging (app-rol) Mail.Send is verleend door de beheerder. Als Mail.Send de app niet wordt verleend, mislukt exchange Online de aanvraag.

POST /users/{id}/{userPrincipalName}/sendMail Client-app heeft Mail.Send verleend Client-app heeft Mail.Send niet verleend
Het script maakt gebruik van het postvak van Alice om e-mailberichten te verzenden. 200 – Toegang verleend. Beheer de app toegestaan e-mail te verzenden als elke gebruiker. 403 - Niet geautoriseerd. Beheer heeft deze client niet toegestaan e-mailberichten te verzenden.
Het script maakt een toegewezen postvak voor het verzenden van e-mailberichten. 200 – Toegang verleend. Beheer de app toegestaan e-mail te verzenden als elke gebruiker. 403 - Niet geautoriseerd. Beheer heeft deze client niet toegestaan e-mailberichten te verzenden.

Het opgegeven voorbeeld is een eenvoudige illustratie van toepassingsautorisatie. De Exchange Online-productieservice ondersteunt veel andere toegangsscenario's, zoals het beperken van toepassingsmachtigingen tot specifieke Exchange Online-postvakken.

Volgende stappen