Share via


De aangevraagde machtigingen van een app bijwerken in Microsoft Entra ID

Bij het instellen van een toepassing met Microsoft Entra-id kunnen ontwikkelaars via machtigingen toegang tot gegevens van andere apps en services aanvragen. Ze kunnen machtigingen aanvragen door statische machtigingen toe te voegen aan het manifest van hun app of door tijdens runtime dynamisch machtigingen aan te vragen. Gebruikers of beheerders kunnen er vervolgens voor kiezen om machtigingen te verlenen tijdens toestemming, zodat de app toegang heeft tot de gegevens die nodig zijn.

Naarmate de functionaliteit van een toepassing zich ontwikkelt, moeten ook de resources worden gewijzigd die moeten worden gewijzigd. Deze wijzigingen kunnen betrekking hebben op het inschakelen van nieuwe functies, het elimineren van onnodige toegang of het vervangen van machtigingen met hoge bevoegdheden door minder bevoegde machtigingen. In dit artikel wordt uitgelegd hoe u de machtigingen voor uw toepassingsaanvragen bijwerkt met behulp van het Microsoft Entra-beheercentrum en Microsoft Graph API-aanroepen.

Het bijwerken van machtigingen voor uw app is niet alleen een best practice voor beveiliging, maar ook een manier om de gebruikerservaring en acceptatie van uw app te verbeteren. In de volgende sectie vindt u een overzicht van enkele voordelen van het bijwerken van machtigingen voor uw app:

  • Als uw app een nieuwe functionaliteit heeft, kunt u meer machtigingen aanvragen waarmee de app toegang kan krijgen tot de extra resources die nodig zijn.
  • Klanten nemen uw toepassing waarschijnlijker aan als deze alleen de minst bevoegde machtigingen aanvraagt die nodig zijn om te functioneren. Het toont aan dat uw app de privacy en gegevensbescherming van de klant respecteert en geen toegang heeft tot meer resources dan nodig is.
  • Als uw app is aangetast, is er bovendien een kleinere straal met ontploffing als deze minder of minder bevoegde machtigingen heeft. Dit betekent dat de aanvaller minder toegang heeft tot de gegevens en resources van de klant, waardoor de potentiële schade wordt verminderd.
  • Door machtigingen voor uw app bij te werken, kunt u de beveiliging, bruikbaarheid en naleving van uw app verbeteren en vertrouwen opbouwen met uw klanten.

Vereisten

Als u de aangevraagde machtigingen van een app wilt bijwerken, hebt u het volgende nodig:

  • Een Microsoft Entra-gebruikersaccount. Als u nog geen account hebt, maakt u gratis een account.
  • Een van de volgende rollen: Application Beheer istrator, Cloud Application Beheer istrator. Een toepassingseigenaar die geen beheerder is, kan de aangevraagde machtigingen van een app bijwerken.

Scenario's voor het bijwerken van machtigingen

In de volgende sectie vindt u de drie belangrijkste scenario's waarin u de machtigingen van uw toepassingsaanvragen moet bijwerken:

  • Machtigingen toevoegen aan een toepassing
  • Ongebruikte machtigingen uit een toepassing verwijderen
  • Een machtiging vervangen

Notitie

Als u de aangevraagde machtigingen voor uw toepassing bijwerkt, wordt de toegang van uw app tot de beveiligde resources niet automatisch verleend of ingetrokken. Uw klanten of de beheerders in uw organisatie moeten toestemming geven voor nieuwe machtigingen die zijn toegevoegd of de machtigingen zelf handmatig intrekken.

Machtigingen toevoegen aan een toepassing

U kunt een machtiging toevoegen als uw app een nieuwe functionaliteit heeft waarvoor een machtiging is vereist die deze nog niet nodig had.

Het is raadzaam om alleen toegang te vragen tot de minimale machtigingen die uw app nodig heeft om te functioneren. Als u een nieuwe machtiging moet toevoegen om nieuwe functionaliteit in uw app te ondersteunen, vraagt u alleen de minst bevoegde machtiging voor die functie aan. Als u bijvoorbeeld een functie voor e-mailmeldingen wilt toevoegen aan uw toepassing, moet deze toegang hebben tot de e-mailberichten van uw gebruiker. Hiervoor moet u toegang aanvragen voor de Mail.ReadWrite machtiging.

Statische toestemming is een manier om machtigingen aan te vragen van gebruikers of beheerders op het moment van registratie van een toepassing, in plaats van tijdens runtime. Statische toestemming vereist dat de app alle machtigingen declareert die nodig zijn in het deelvenster App-registraties in het Microsoft Entra-beheercentrum. Met het Microsoft Entra-beheercentrum kunt u alleen machtigingen voor statische toestemming bijwerken. Zie Typen toestemming voor meer informatie over de verschillende typen toestemming. Raadpleeg het tabblad Microsoft Graph van dit artikel voor meer informatie over het bijwerken van machtigingen voor dynamische toestemming.

In deze sectie leert u hoe u machtigingen toevoegt aan statische toestemming.

U kunt machtigingen toevoegen aan statische toestemming op twee verschillende manieren in het Microsoft Entra-beheercentrum:

Optie 1: Machtigingen toevoegen in het deelvenster API-machtigingen

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassing Beheer istrator of toepassingseigenaar.
  2. Blader naar Identiteitstoepassingen>> App-registraties> Alle toepassingen.
  3. Zoek de app-registratie waaraan u machtigingen wilt toevoegen en selecteer deze. U kunt machtigingen op twee verschillende manieren toevoegen:
  4. Machtigingen toevoegen in het deelvenster API-machtigingen .
    1. Zoek het deelvenster API-machtigingen en selecteer Een machtiging toevoegen.

    2. Selecteer de API die u wilt openen en de machtiging die u wilt aanvragen in de lijst met beschikbare opties en selecteer Machtigingen toevoegen.

      Schermopname van het deelvenster API-machtigingen.

Optie 2: Machtigingen toevoegen aan het toepassingsmanifest

  1. Selecteer Manifest in het linkernavigatiedeelvenster onder de menugroep Beheren. Met de selectie wordt een editor geopend waarmee u de kenmerken van het app-registratieobject rechtstreeks kunt bewerken.
  2. Bewerk de requiredResourceAccess eigenschap zorgvuldig in het manifestbestand van de toepassing.
  3. Voeg de resourceAppId eigenschap en resourceAccess eigenschap toe en wijs de vereiste machtigingen toe.
  4. Sla uw wijzigingen op.

Als u de volgende stappen voor het toevoegen van machtigingen wilt uitvoeren, hebt u de volgende resources en bevoegdheden nodig:

  • Voer de HTTP-aanvragen uit in een hulpprogramma van uw keuze, bijvoorbeeld in uw app, via Graph Explorer of Postman.
  • Voer de API's uit als een gebruiker met ten minste een cloudtoepassing Beheer istrator of als eigenaar van de registratie van de doel-app.
  • Aan de app die wordt gebruikt om deze wijzigingen aan te brengen, moet de Application.ReadWrite.All machtiging worden verleend.
  1. Identificeer de machtigingen die uw app nodig heeft, de bijbehorende machtigings-id's en of het app-rollen (toepassingsmachtigingen) of gedelegeerde machtigingen zijn. Als u bijvoorbeeld Microsoft Graph-machtigingen wilt aanvragen, raadpleegt u Microsoft Graph-machtigingen voor een lijst met machtigingen en de bijbehorende id's.

  2. Voeg de vereiste Microsoft Graph-machtigingen toe aan uw app. In het volgende voorbeeld wordt de API van de updatetoepassing aangeroepen om de vereiste Microsoft Graph-machtigingen toe te voegen aan een app-registratie die wordt geïdentificeerd door de object-id aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb. In dit voorbeeld worden gedelegeerde machtigingen en toepassingsmachtigingen gebruikt Analytics.ReadApplication.Read.All . Microsoft Graph wordt geïdentificeerd als een ServicePrincipal-object met 00000003-0000-0000-c000-000000000000 als wereldwijd uniek AppIdobject.

    PATCH https://graph.microsoft.com/v1.0/applications/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    Content-Type: application/json
     {
         "requiredResourceAccess": [
             {
                 "resourceAppId": "00000003-0000-0000-c000-000000000000",
                 "resourceAccess": [
                     {
                         "id": "e03cf23f-8056-446a-8994-7d93dfc8b50e",
                         "type": "Scope"
                     },
                     {
                         "id": "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30",
                         "type": "Role"
                     }
                 ]
             }
         ]
     }
    

Dynamische toestemming is een manier om machtigingen aan te vragen van gebruikers of beheerders tijdens runtime, in plaats van ze statisch te declareren in het deelvenster App-registraties. Met dynamische toestemming kan de app alleen om de machtigingen vragen die nodig zijn voor een specifieke functionaliteit en om toestemming te krijgen van de gebruiker of beheerder wanneer dat nodig is. Dynamische toestemming kan worden gebruikt met gedelegeerde machtigingen en kan worden gecombineerd met het /.default bereik om beheerderstoestemming aan te vragen voor alle machtigingen.

Machtigingen toevoegen aan dynamische toestemming:

  • Microsoft Graph gebruiken: voeg de vereiste Microsoft Graph-machtigingen toe aan een app-registratie. In dit voorbeeld worden gedelegeerde machtigingen en toepassingsmachtigingen gebruikt Analytics.ReadApplication.Read.All . Vervang de waarden in 'bereiken' door waarden van gedelegeerde Microsoft Graph-machtigingen die u voor de app wilt configureren.

    De aanvraag moet eruitzien als in het volgende voorbeeld:

    https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=Analytics.Read+Application.Read

  • Gebruik MSAL.js: vervang de waarden in 'bereiken' door waarden van gedelegeerde Microsoft Graph-machtigingen die u voor de app wilt configureren.

      const Request = {
          scopes: ["openid", "profile"],
          loginHint: "example@domain.net"
      };
    
      myMSALObj.ssoSilent(Request)
          .then((response) => {
              // your logic
          }).catch(error => {
              console.error("Silent Error: " + error);
              if (error instanceof msal.InteractionRequiredAuthError) {
                  myMSALObj.loginRedirect(loginRequest);
              }
      });
    

Nadat machtigingen zijn toegevoegd aan uw toepassing, moeten gebruikers of beheerders toestemming geven voor de nieuwe machtigingen. Niet-beheerders zien een toestemmingsprompt wanneer ze zich aanmelden bij uw app. Beheer gebruikers daarentegen toestemming kunnen geven voor de nieuwe machtigingen namens alle gebruikers in hun organisatie wanneer ze zich voor het eerst aanmelden bij uw app of in het Microsoft Entra-beheercentrum.

Wanneer de toegevoegde machtigingen beheerderstoestemming vereisen, variëren de vereiste acties op basis van het app-type:

  • App met één tenant en multitenant-app in de tenant thuis: de gebruiker moet zich aanmelden als een Globale Beheer istrator en tenantbrede toestemming verlenen.
  • Apps met meerdere tenants in tenants van de klant: de gebruiker ziet nieuwe toestemmingsprompts bij de volgende aanmeldingspoging. Als de machtigingen alleen toestemming van de gebruiker vereisen, kan de gebruiker toestemming verlenen. Als de machtigingen beheerderstoestemming vereisen, moet de gebruiker contact opnemen met de beheerder om toestemming te verlenen.

Stoppen met het aanvragen van ongebruikte machtigingen

Het verwijderen van machtigingen kan het risico op het blootstellen van gevoelige gegevens verminderen of de beveiliging in gevaar brengen en het toestemmingsproces voor uw gebruikers of beheerders vereenvoudigen. Als uw app geen machtiging meer nodig heeft, moet u voorkomen dat uw app deze aanvraagt door de machtiging te verwijderen uit de vereiste resourcetoegang en code van uw app-registratie. Een toepassing die geen e-mailmeldingen meer verzendt, kan bijvoorbeeld de Mail.ReadWrite machtiging verwijderen.

Belangrijk

Als u een machtiging verwijdert uit uw app-registratie, worden de machtigingen die al aan de app zijn verleend, niet automatisch ingetrokken. U moet de machtigingen handmatig intrekken. Zie de toestemming intrekken voor de verwijderde machtigingen voor de sectie bedrijfstoepassing van dit artikel voor meer informatie.

Als u wilt stoppen met het aanvragen van machtigingen waarvoor statische toestemming is vereist, moet u de machtiging verwijderen uit het deelvenster App-registraties. Een beheerder van de tenant moet ook de machtiging intrekken in het deelvenster Bedrijfstoepassingen . Zie Machtigingen intrekken voor een bedrijfstoepassing voor meer informatie over het intrekken van machtigingen die zijn verleend aan een ondernemingstoepassing.

In deze sectie leert u hoe u het aanvragen van machtigingen voor statische toestemming stopt.

U kunt machtigingen op twee verschillende manieren verwijderen uit statische toestemming in het Microsoft Entra-beheercentrum:

Optie 1: In het deelvenster API-machtigingen

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassing Beheer istrator of toepassingseigenaar.
  2. Blader naar Identiteitstoepassingen>> App-registraties> Alle toepassingen.
  3. Zoek de app-registratie waaruit u machtigingen wilt verwijderen en selecteer deze.
  4. Verwijder de machtigingen uit het deelvenster API-machtigingen :
    1. Zoek het deelvenster API-machtigingen en zoek de machtigingen die u wilt verwijderen.

    2. Selecteer eerst de API die u wilt verwijderen en selecteer Toestemming van beheerder intrekken en verwijder vervolgens de machtiging . Het zorgt ervoor dat de verleende machtiging wordt verwijderd uit uw tenant.

      Schermopname van het verwijderen van machtigingen via het deelvenster API-machtigingen.

Optie 2: Vanuit het toepassingsmanifest

  1. Selecteer Manifest in het linkernavigatiedeelvenster onder de menugroep Beheren. Er wordt een editor geopend waarmee u de kenmerken van het app-registratieobject rechtstreeks kunt bewerken.
  2. Bewerk de requiredResourceAccess eigenschap zorgvuldig in het manifestbestand van de toepassing.
  3. Verwijder de overbodige machtigingen uit resourceAppId de eigenschap en resourceAccess eigenschap.
  4. Sla uw wijzigingen op.

Als u de volgende stappen voor het verwijderen van machtigingen wilt uitvoeren, hebt u de volgende resources en bevoegdheden nodig:

  • Voer de HTTP-aanvragen uit in een hulpprogramma van uw keuze, bijvoorbeeld in uw app, via Graph Explorer of Postman.
  • Roep de API's aan als ten minste een cloudtoepassing Beheer istrator of als eigenaar van de registratie van de doel-app.
  • Aan de app die wordt gebruikt om deze wijzigingen aan te brengen, moet de Application.ReadWrite.All machtiging worden verleend.
  1. Identificeer de machtigingen voor uw app.

  2. Als u bijvoorbeeld wilt voorkomen dat uw app microsoft Graph-machtigingen aanvraagt, identificeert u de Microsoft Graph-machtigingen voor uw app, de bijbehorende machtigings-id's en of het app-rollen (toepassingsmachtigingen) of gedelegeerde machtigingen zijn.

  3. Verwijder de ongewenste Microsoft Graph-machtigingen uit uw app. In het volgende voorbeeld wordt de API van de updatetoepassing aangeroepen om de ongewenste Microsoft Graph-machtigingen te verwijderen uit een app-registratie die is geïdentificeerd door een voorbeeldclient-id 00001111-aaaa-2222-bbbb-3333cccc4444. In dit voorbeeld heeft Analytics.Readde toepassing , User.Readen Application.Read.All. We moeten machtigingen en toepassingsmachtigingen verwijderen Analytics.Read en Application.Read.All gedelegeerd. Microsoft Graph wordt geïdentificeerd als een ServicePrincipal-object met 00000003-0000-0000-c000-000000000000 als wereldwijd uniek AppId en Microsoft Graph als het DisplayName en AppDisplayName.

    PATCH https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
    Content-Type: application/json
    {
        "requiredResourceAccess": [
            {
                "resourceAppId": "00000003-0000-0000-c000-000000000000",
                "resourceAccess": [
                    {
                        "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6 ",
                        "type": "Scope"
                    }
                ]
            }
        ]
    }
    

Wanneer u gedelegeerde machtigingen wilt verwijderen uit een dynamische toestemmingsaanvraag, geeft u de bereikparameter op terwijl u de machtigingen weglaat die u wilt verwijderen. Als u de machtigingen verwijdert, zorgt u ervoor dat de app de bijbehorende API niet aanroept.

Ga als volgende te werk om te stoppen met het aanvragen van machtigingen met dynamische toestemming:

  • Microsoft Graph gebruiken: verwijder de ongewenste gedelegeerde Machtigingen van Microsoft Graph uit de parameter Scopes. In dit voorbeeld vraagt uw toepassing drie machtigingen aan, Analytics.ReadUser.Read en Application.Read.All. De gedelegeerde machtiging Analytics.Read en toepassingsmachtiging Application.Read.All zijn niet meer vereist voor deze app. Het vereist User.Readalleen .

De aanvraag moet er ongeveer uitzien als in het volgende voorbeeld:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=User.Read

  • met behulp van MSAL.js: verwijder de ongewenste gedelegeerde Microsoft Graph-machtigingen in 'bereiken'.

        const Request = {
            scopes: ["openid", "profile"],
            loginHint: "example@domain.net"
        };
    
        myMSALObj.ssoSilent(Request)
            .then((response) => {
                // your logic
            }).catch(error => {
                console.error("Silent Error: " + error);
                if (error instanceof msal.InteractionRequiredAuthError) {
                    myMSALObj.loginRedirect(loginRequest);
                }
        });
    

Nadat de machtigingen zijn verwijderd uit de app-registratie, moet een beheerder in de tenant ook toestemming intrekken om de gegevens van uw organisatie te beveiligen. Wanneer de verwijderde machtiging beheerderstoestemming vereist, variëren de vereiste acties op basis van het app-type:

  • Eén tenant-app en multitenant-app in de basistenant: Neem voor één tenant-app contact op met de beheerder van de tenant om de machtigingen in te trekken die al aan de app zijn verleend. Neem voor een multitenant-app contact op met de beheerders van alle tenants waarin instanties van uw toepassing zich bevinden om machtigingen in te trekken die zijn verleend aan de bedrijfstoepassing. Het intrekken van toestemming voor de verwijderde machtigingen zorgt ervoor dat de toepassing geen toegang behoudt via de verwijderde machtiging.
  • Apps met meerdere tenants in tenants van klanten: zorg ervoor dat u met uw klanten communiceert om machtigingen in te trekken via aankondigingen, blogs en andere communicatiekanalen.

Voor apps met één tenant en meerdere tenants kunnen niet-beheerders in tenants waarvoor gebruikerstoestemming is ingeschakeld, de MyApps-portal gebruiken om toestemming in te trekken voor machtigingen die ze eerder hebben verleend. Zie Toestemming van eindgebruikers intrekken voor meer informatie over hoe eindgebruikers machtigingen kunnen intrekken in de MyApps-portal.

Een machtiging vervangen

U moet een machtiging met hoge bevoegdheden vervangen wanneer een minder bevoegde machtiging volstaat.

Het vervangen van machtigingen kan ook het risico op het blootstellen van gevoelige gegevens verminderen of de beveiliging in gevaar brengen en zo de gebruikerservaring en het vertrouwen verbeteren. Als uw app gebruikmaakt van een machtiging met hoge bevoegdheden, zoals Directory.ReadWrite.All, moet u overwegen of een machtiging met minder bevoegdheden, zoals User.ReadWrite.All, voldoende is voor de functionaliteit van uw app.

Notitie

Wanneer u de aangevraagde machtigingen van een app wijzigt voor statische toestemming, moet de klant opnieuw worden samengesteld. De handeling van reconsenting trekt alle eerder verleende machtigingen in en geeft toestemming aan de nieuwe machtigingen. Wanneer u de aangevraagde machtigingen van een app wijzigt voor dynamische toestemming, worden de eerder verleende machtigingen niet ingetrokken. De klant moet de machtigingen handmatig intrekken.

Als u een machtiging wilt vervangen, moet u de overbodige machtiging verwijderen en de alternatieve machtiging toevoegen. De stappen zijn hetzelfde als de stappen die worden beschreven in stoppen met het aanvragen van ongebruikte machtigingen en het toevoegen van machtigingen in dit artikel.