Uppdatera en apps begärda behörigheter i Microsoft Entra-ID

När du konfigurerar ett program med Microsoft Entra-ID kan utvecklare begära åtkomst till data från andra appar och tjänster med hjälp av behörigheter. De kan begära behörigheter genom att lägga till statiska behörigheter i appens manifest eller genom att dynamiskt begära behörigheter vid körning. Användare eller administratörer kan sedan välja att bevilja behörigheter under medgivandet, så att appen får åtkomst till de data som behövs.

I takt med att programmets funktioner utvecklas måste de resurser som krävs för att även kunna ändras. Dessa ändringar kan innebära att nya funktioner aktiveras, onödig åtkomst elimineras eller att behörigheter med hög behörighet ersätts med mindre privilegierade. Den här artikeln beskriver hur du uppdaterar behörigheterna för dina programbegäranden med hjälp av Administrationscenter för Microsoft Entra och Microsoft Graph API-anrop.

Att uppdatera behörigheter för din app är inte bara en metod för säkerhet, utan också ett sätt att förbättra appens användarupplevelse och implementering. I följande avsnitt beskrivs några av fördelarna med att uppdatera behörigheter för din app:

  • Om din app har en ny funktion kan du begära fler behörigheter som gör det möjligt för appen att komma åt de extra resurser den behöver.
  • Kunder är mer benägna att anta ditt program om det bara begär de minst privilegierade behörigheter som krävs för att fungera. Den visar att din app respekterar kundens integritet och dataskydd och inte har åtkomst till fler resurser än den behöver.
  • Om din app komprometteras finns det dessutom en mindre explosionsradie om den har färre eller mindre privilegierade behörigheter. Det innebär att angriparen har mindre åtkomst till kundens data och resurser, och därmed minskas den potentiella skadan.
  • Genom att uppdatera behörigheter för din app kan du förbättra appens säkerhet, användbarhet och efterlevnad och skapa förtroende hos dina kunder.

Förutsättningar

Om du vill uppdatera en apps begärda behörigheter behöver du:

  • Ett Microsoft Entra-användarkonto. Om du inte redan har ett skapar du ett konto kostnadsfritt.
  • En av följande roller: Programadministratör, molnprogramadministratör. En programägare som inte är administratör kan uppdatera en apps begärda behörigheter.

Scenarier för uppdatering av behörigheter

I följande avsnitt visas de tre huvudscenarierna där du behöver uppdatera behörigheterna för dina programbegäranden:

  • Lägga till behörigheter i ett program
  • Ta bort oanvända behörigheter från ett program
  • Ersätt en behörighet

Not

Uppdatering av de begärda behörigheterna för ditt program beviljar eller återkallar inte automatiskt appens åtkomst till de skyddade resurserna. Dina kunder eller administratörerna i din organisation måste bevilja medgivande till nya behörigheter som lagts till, eller återkalla själva behörigheterna manuellt.

Lägga till behörigheter i ett program

Du kan lägga till en behörighet om din app har en ny funktion som behöver en behörighet som den inte behövde tidigare.

Det är bästa praxis att bara begära åtkomst till de minsta behörigheter som appen behöver för att fungera. Om du behöver lägga till en ny behörighet för att stödja nya funktioner i din app begär du endast den minst privilegierade behörigheten för den funktionen. Om du till exempel vill lägga till en e-postaviseringsfunktion i ditt program måste den komma åt användarens e-postmeddelanden. För att göra det måste du begära åtkomst för behörigheten Mail.ReadWrite .

Statiskt medgivande är ett sätt att begära behörigheter från användare eller administratörer vid tidpunkten för ett programs registrering, i stället för vid körning. Statiskt medgivande kräver att appen deklarerar alla behörigheter den behöver i Appregistreringar-fönstret i administrationscentret för Microsoft Entra. Med administrationscentret för Microsoft Entra kan du bara uppdatera behörigheter för statiskt medgivande. Mer information om de olika typerna av medgivande finns i Typer av medgivande. Information om hur du uppdaterar behörigheter för dynamiskt medgivande finns på fliken Microsoft Graph i den här artikeln.

I det här avsnittet får du lära dig hur du lägger till behörigheter i statiskt medgivande.

Du kan lägga till behörigheter till statiskt medgivande på två olika sätt i administrationscentret för Microsoft Entra:

Alternativ 1: Lägg till behörigheter i fönstret API-behörigheter

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör eller programägare.
  2. Bläddra till Identitetsprogram>> Appregistreringar> Alla program.
  3. Leta upp den appregistrering som du vill lägga till behörigheter till och välj den. Du kan lägga till behörigheter på två olika sätt:
  4. Lägg till behörigheter i fönstret API-behörigheter .
    1. Leta upp fönstret API-behörigheter och välj Lägg till en behörighet.

    2. Välj det API som du vill komma åt och den behörighet som du vill begära från listan över tillgängliga alternativ och välj Lägg till behörigheter.

      Skärmbild av fönstret API-behörigheter.

Alternativ 2: Lägga till behörigheter i programmanifestet

  1. I det vänstra navigeringsfönstret går du till menygruppen Hantera och väljer Manifest. Markeringen öppnar en redigerare som gör att du kan redigera attributen för appregistreringsobjektet direkt.
  2. Redigera egenskapen noggrant requiredResourceAccess i programmets manifestfil.
  3. resourceAppId Lägg till egenskapen och resourceAccess egenskapen och tilldela de behörigheter som krävs.
  4. Spara ändringarna.

För att slutföra följande steg för att lägga till behörigheter behöver du följande resurser och behörigheter:

  • Kör HTTP-begäranden i ett valfritt verktyg, till exempel i din app eller via Graph Explorer.
  • Kör API:erna som en användare med minst en molnprogramadministratör eller som ägare av målappregistreringen.
  • Den app som används för att göra dessa ändringar måste beviljas behörigheten Application.ReadWrite.All .
  1. Identifiera de behörigheter som din app kräver, deras behörighets-ID:n och om de är approller (programbehörigheter) eller delegerade behörigheter. Om du till exempel vill begära Microsoft Graph-behörigheter läser du Microsoft Graph-behörigheter för en lista över behörigheter och deras ID:n.

  2. Lägg till nödvändiga Microsoft Graph-behörigheter i din app. I följande exempel anropas API:et För uppdateringsprogram för att lägga till nödvändiga Microsoft Graph-behörigheter till en appregistrering som identifieras av objekt-ID aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb. I det här exemplet används Analytics.Read och Application.Read.All delegeras behörighet och programbehörighet. Microsoft Graph identifieras som ett ServicePrincipal-objekt med 00000003-0000-0000-c000-000000000000 som globalt unikt AppId.

    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"
                     }
                 ]
             }
         ]
     }
    

Dynamiskt medgivande är ett sätt att begära behörigheter från användare eller administratörer vid körning i stället för att statiskt deklarera dem i fönstret Appregistreringar. Med dynamiskt medgivande kan appen bara be om de behörigheter den behöver för en specifik funktion och få medgivande från användaren eller administratören när det behövs. Dynamiskt medgivande kan användas med delegerade behörigheter och kan kombineras med omfånget /.default för att begära administratörsmedgivande för alla behörigheter.

Så här lägger du till behörigheter i dynamiskt medgivande:

  • Använd Microsoft Graph: Lägg till nödvändiga Microsoft Graph-behörigheter i en appregistrering. I det här exemplet används Analytics.Read och Application.Read.All delegeras behörighet och programbehörighet. Ersätt värdena i "omfång" med värden för alla Microsoft Graph-delegerade behörigheter som du vill konfigurera för appen.

    Begäran bör se ut som i följande exempel:

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

  • Använd MSAL.js: Ersätt värdena i "omfång" med värden för alla Microsoft Graph-delegerade behörigheter som du vill konfigurera för appen.

      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);
              }
      });
    

När behörigheter har lagts till i ditt program måste användare eller administratörer bevilja medgivande till de nya behörigheterna. Nonadmin-användare ser en uppmaning om medgivande när de loggar in på din app. Administratörsanvändare kan å andra sidan ge medgivande till de nya behörigheterna för alla användare i organisationen när de loggar in på din app eller i administrationscentret för Microsoft Entra.

När de tillagda behörigheterna kräver administratörsmedgivande varierar de nödvändiga åtgärderna beroende på apptyp:

  • En klientapp och en app med flera klientorganisationer i hemklientorganisationen: Användaren måste logga in som minst en privilegierad rolladministratörsroll och bevilja klientomfattande medgivande.
  • Appar för flera klientorganisationer i kundens klientorganisationer: Användaren ser nya medgivandemeddelanden vid nästa inloggningsförsök. Om behörigheterna endast kräver användarmedgivande kan användaren bevilja medgivande. Om behörigheterna kräver administratörsmedgivande måste användaren kontakta administratören för att bevilja medgivande.

Sluta begära oanvända behörigheter

Att ta bort behörigheter kan minska risken för att exponera känsliga data eller äventyra säkerheten och förenkla medgivandeprocessen för dina användare eller administratörer. Om din app inte längre behöver en behörighet bör du förhindra att appen begär den genom att ta bort behörigheten från din appregistrerings nödvändiga resursåtkomst och kod. Till exempel kan ett program som inte längre skickar e-postaviseringar ta bort behörigheten Mail.ReadWrite .

Viktig

Om du tar bort en behörighet från appregistreringen återkallas inte automatiskt de behörigheter som redan har beviljats till appen. Du måste återkalla behörigheterna manuellt. Mer information finns i Avsnittet Återkalla medgivande för borttagna behörigheter för företagsprogram i den här artikeln.

Om du vill sluta begära behörigheter som kräver statiskt medgivande måste du ta bort behörigheten från fönstret Appregistreringar. En administratör för klientorganisationen måste också återkalla behörigheten i fönstret Företagsprogram . Mer information om hur du återkallar behörigheter som beviljats ett företagsprogram finns i Återkalla behörigheter för ett företagsprogram.

I det här avsnittet får du lära dig hur du slutar begära behörigheter för statiskt medgivande.

Du kan ta bort behörigheter från statiskt medgivande på två olika sätt i administrationscentret för Microsoft Entra:

Alternativ 1: Från fönstret API-behörigheter

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör eller programägare.
  2. Bläddra till Identitetsprogram>> Appregistreringar> Alla program.
  3. Leta upp den appregistrering som du vill ta bort behörigheter från och välj den.
  4. Ta bort behörigheterna från fönstret API-behörigheter :
    1. Leta upp fönstret API-behörigheter och leta reda på de behörigheter som du vill ta bort.

    2. Välj det API som du vill ta bort och välj Återkalla administratörsmedgivande först och ta bort behörigheten härnäst. Det säkerställer att den beviljade behörigheten tas bort från din klientorganisation.

      Skärmbild som visar hur du tar bort behörigheter via fönstret API-behörigheter.

Alternativ 2: Från programmanifestet

  1. I det vänstra navigeringsfönstret går du till menygruppen Hantera och väljer Manifest. En redigerare öppnas som gör att du kan redigera attributen för appregistreringsobjektet direkt.
  2. Redigera egenskapen noggrant requiredResourceAccess i programmets manifestfil.
  3. Ta bort de behörigheter som inte behövs från resourceAppId egenskapen och resourceAccess egenskapen.
  4. Spara ändringarna.

För att slutföra följande steg för att ta bort behörigheter behöver du följande resurser och behörigheter:

  • Kör HTTP-begäranden i ett valfritt verktyg, till exempel i din app eller via Graph Explorer.
  • Anropa API:erna som minst molnprogramadministratör eller som ägare av målappregistreringen.
  • Den app som används för att göra dessa ändringar måste beviljas behörigheten Application.ReadWrite.All .
  1. Identifiera behörigheterna för din app.

  2. Om du till exempel vill hindra din app från att begära Microsoft Graph-behörigheter identifierar du Microsoft Graph-behörigheterna för din app, deras behörighets-ID:n och om de är approller (programbehörigheter) eller delegerade behörigheter.

  3. Ta bort oönskade Microsoft Graph-behörigheter från din app. I följande exempel anropas API:et Uppdatera program för att ta bort oönskade Microsoft Graph-behörigheter från en appregistrering som identifieras av ett exempelklient-ID 00001111-aaaa-2222-bbbb-3333cccc4444. I det här exemplet har Analytics.Readprogrammet , User.Readoch Application.Read.All. Vi måste ta bort Analytics.Read och Application.Read.All delegerad behörighet och programbehörighet. Microsoft Graph identifieras som ett ServicePrincipal-objekt med 00000003-0000-0000-c000-000000000000 som globalt unikt AppId och Microsoft Graph som dess DisplayName och 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"
                    }
                ]
            }
        ]
    }
    

När du behöver ta bort delegerade behörigheter från begäran om dynamiskt medgivande anger du omfångsparametern samtidigt som du utelämnar de behörigheter som du vill ta bort. Om du tar bort behörigheterna ser du till att appen inte anropar motsvarande API.

Den här metoden fungerar bara för delegerade behörigheter. Programbehörigheter begärs och beviljas av en administratör via statiskt medgivande och ingår inte i omfångsparametern under OAuth 2.0-auktoriseringsbegäran.

Så här slutar du begära behörigheter med dynamiskt medgivande:

  • Använda Microsoft Graph: Ta bort de oönskade Microsoft Graph-delegerade behörigheterna från parametern "scopes". I det här exemplet begär programmet tre delegerade behörigheter – Analytics.Readoch User.Read Application.Read. Delegerade behörigheter Analytics.Read och Application.Read krävs inte längre för den här appen. Det kräver User.Readbara .

Begäran bör likna följande exempel:

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

  • med hjälp av MSAL.js: Ta bort oönskade Microsoft Graph-delegerade behörigheter i "omfång".

        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);
                }
        });
    

När behörigheterna har tagits bort från appregistreringen måste en administratör i klientorganisationen också återkalla medgivandet för att skydda organisationens data. När den borttagna behörigheten kräver administratörsmedgivande varierar de nödvändiga åtgärderna beroende på apptyp:

  • En klientapp och en app med flera klientorganisationer i hemklientorganisationen: Kontakta administratören för klientorganisationen för att återkalla de behörigheter som redan har beviljats till appen. För en app med flera klienter kontaktar du administratörerna för alla klienter där instanser av ditt program finns för att återkalla behörigheter som beviljats till företagsprogrammet. Om du återkallar medgivandet till de borttagna behörigheterna ser du till att programmet inte behåller åtkomsten via den borttagna behörigheten.
  • Appar för flera klientorganisationer i kundernas klientorganisationer: Se till att du kommunicerar med dina kunder för att återkalla behörigheter via meddelanden, bloggar och andra kommunikationskanaler.

För både enskilda klient- och multitenantappar kan icke-administratörsanvändare i klientorganisationer där användarens medgivande är aktiverat använda MyApps-portalen för att återkalla medgivande till behörigheter som de tidigare beviljat. Mer information om hur slutanvändare kan återkalla behörigheter i MyApps-portalen finns i Återkalla slutanvändarens medgivande.

Ersätt en behörighet

Du bör ersätta en behörighet med hög behörighet när en mindre privilegierad behörighet räcker.

Att ersätta behörigheter kan också minska risken för att exponera känsliga data eller äventyra säkerheten och därmed förbättra användarupplevelsen och förtroendet. Om din app använder en mycket privilegierad behörighet, till exempel Directory.ReadWrite.All, bör du överväga om en mindre privilegierad behörighet, till exempel User.ReadWrite.All, skulle vara tillräcklig för appens funktioner.

Not

När du ändrar en apps begärda behörigheter för statiskt medgivande måste kunden återaktivera. Återerövringsakten återkallar alla tidigare beviljade behörigheter och beviljar medgivande till de nya. När du ändrar en apps begärda behörigheter för dynamiskt medgivande återkallas inte tidigare beviljade behörigheter. Kunden måste återkalla behörigheterna manuellt.

Om du vill ersätta en behörighet måste du ta bort den onödiga behörigheten och lägga till den alternativa behörigheten. Stegen är som de som beskrivs i avsnittet Sluta begära oanvända behörigheter och lägg till behörigheter i den här artikeln.