Aktualisieren der angeforderten Berechtigungen einer App in Microsoft Entra ID

Beim Einrichten einer Anwendung mit Microsoft Entra ID können Entwickler*innen den Zugriff auf Daten aus anderen Apps und Diensten mithilfe von Berechtigungen anfordern. Sie können Berechtigungen anfordern, indem sie statische Berechtigungen zum Manifest ihrer App hinzufügen oder dynamisch Berechtigungen zur Laufzeit anfordern. Benutzer*innen oder Administrator*innen können dann während der Einwilligung Berechtigungen erteilen, sodass die App auf die benötigten Daten zugreifen kann.

Da sich die Funktionalität einer Anwendung weiterentwickelt, müssen sich auch die Ressourcen, auf die sie zugreifen, ändern. Diese Änderungen könnten die Aktivierung neuer Funktionen umfassen, unnötigen Zugriff beseitigen oder hochprivilegierte Berechtigungen durch weniger privilegierte Berechtigungen ersetzen. In diesem Artikel wird erläutert, wie Sie die Berechtigungen aktualisieren, die Ihre Anwendung über das Microsoft Entra Admin Center und Microsoft Graph-API-Aufrufe anfordert.

Das Aktualisieren von Berechtigungen für Ihre App ist nicht nur eine bewährte Sicherheitsmethode, sondern auch eine Möglichkeit, die Benutzerfreundlichkeit und Akzeptanz Ihrer App zu verbessern. Im folgenden Abschnitt werden einige der Vorteile der Aktualisierung von Berechtigungen für Ihre App beschrieben:

  • Wenn Ihre App über eine neue Funktionalität verfügt, können Sie weitere Berechtigungen anfordern, mit denen die App auf die benötigten zusätzlichen Ressourcen zugreifen kann.
  • Die Wahrscheinlichkeit, dass Kund*innen Ihre Anwendung annehmen, ist größer, wenn diese nur die geringsten Berechtigungen anfordert, die zum Funktionieren erforderlich sind. Es zeigt, dass Ihre App den Datenschutz und die Datensicherheit der Kundschaft respektiert und nicht auf mehr Ressourcen zugreift, als sie benötigt.
  • Wenn Ihre App kompromittiert wird, fällt die Auswirkung geringer aus, wenn sie weniger oder geringere Berechtigungen besitzt. Das bedeutet, dass Angreifende weniger Zugriff auf die Daten und Ressourcen der Kund*innen hat und der potenzielle Schaden somit reduziert wird.
  • Durch das Aktualisieren von Berechtigungen für Ihre App können Sie die Sicherheit, Benutzerfreundlichkeit und Compliance Ihrer App verbessern und Vertrauen bei Ihrer Kundschaft aufbauen.

Voraussetzungen

Um die angeforderten Berechtigungen einer App zu aktualisieren, benötigen Sie:

  • Ein Microsoft Entra-Benutzerkonto. Erstellen Sie ein kostenloses Konto, falls Sie noch keines besitzen.
  • Eine der folgenden Rollen: Anwendungsadministrator, Cloudanwendungsadministrator. Anwendungsbesitzer*innen, die kein*e Administrator*in sind, können die angeforderten Berechtigungen einer App aktualisieren.

Szenarien für das Aktualisieren von Berechtigungen

Im folgenden Abschnitt werden die drei Hauptszenarien aufgeführt, in denen Sie die Berechtigungen aktualisieren müssen, die Ihre Anwendung anfordert:

  • Hinzufügen von Berechtigungen zu einer Anwendung
  • Entfernen nicht verwendeter Berechtigungen aus einer Anwendung
  • Ersetzen einer Berechtigung

Hinweis

Das Aktualisieren der angeforderten Berechtigungen für Ihre Anwendung gewährt oder widerruft Ihrer App nicht automatisch Zugriff auf die geschützten Ressourcen. Ihre Kund*innen oder die Administrator*innen in Ihrer Organisation müssen die Zustimmung zu neuen hinzugefügten Berechtigungen erteilen oder die Berechtigungen selbst manuell widerrufen.

Hinzufügen von Berechtigungen zu einer Anwendung

Sie können eine Berechtigung hinzufügen, wenn Ihre App über eine neue Funktion verfügt, die eine Berechtigung erfordert, die die App zuvor nicht brauchte.

Es empfiehlt sich, den Zugriff nur auf die Mindestberechtigungen anzufordern, die Ihre App verwenden muss. Wenn Sie eine neue Berechtigung hinzufügen müssen, um neue Funktionen in Ihrer App zu unterstützen, fordern Sie nur die Berechtigung mit den geringsten Berechtigungen für diese Funktion an. Wenn Sie Ihrer Anwendung beispielsweise eine E-Mail-Benachrichtigungsfunktion hinzufügen möchten, muss sie auf die E-Mails Ihrer Benutzer*innen zugreifen. Dazu müssen Sie den Zugriff für die Mail.ReadWrite-Berechtigung anfordern.

Die statische Einwilligung ist eine Möglichkeit, Berechtigungen von Benutzer*innen oder Administrator*innen zum Zeitpunkt der Registrierung einer Anwendung anstelle zur Laufzeit anzufordern. Die statische Einwilligung erfordert, dass die App alle Berechtigungen deklariert, die sie im Bereich App-Registrierungen im Microsoft Entra Admin Center benötigt. Mit dem Microsoft Entra Admin Center können Sie nur Berechtigungen für die statische Einwilligung aktualisieren. Weitere Informationen zu den verschiedenen Arten der Einwilligung finden Sie unter Arten der Einwilligung. Informationen zum Aktualisieren von Berechtigungen für die dynamische Einwilligung finden Sie auf der Registerkarte „Microsoft Graph“ in diesem Artikel.

In diesem Abschnitt erfahren Sie, wie Sie Berechtigungen zur statischen Einwilligung hinzufügen.

Sie können Berechtigungen zur statischen Einwilligung auf zwei verschiedene Arten im Microsoft Entra Admin Center hinzufügen:

Option 1: Hinzufügen von Berechtigungen im API-Berechtigungsbereich

  1. Melden Sie sich beim Microsoft Entra-Admin Center mindestens mit der Rolle Cloudanwendungsadministrator oder als Anwendungsbesitzer*in an.
  2. Browsen Sie zu Identität>Anwendungen>App-Registrierungen>Alle Anwendungen.
  3. Suchen Sie die App-Registrierung, der Sie Berechtigungen hinzufügen möchten, und wählen Sie sie aus. Sie können Berechtigungen auf zwei verschiedene Arten hinzufügen:
  4. Hinzufügen von Berechtigungen im Bereich API-Berechtigungen.
    1. Suchen Sie den Bereich API-Berechtigungen, und wählen Sie Berechtigung hinzufügen aus.

    2. Wählen Sie die API aus, auf die Sie zugreifen möchten, und die Berechtigung, die Sie in der Liste der verfügbaren Optionen anfordern möchten, und wählen Sie Berechtigungen hinzufügen aus.

      Screenshot des Bereichs der API-Berechtigungen.

Option 2: Hinzufügen von Berechtigungen zum Anwendungsmanifest

  1. Wählen Sie im linken Navigationsbereich unter der Menügruppe Verwalten die Option Manifest aus. Dadurch öffnet sich ein Editor, mit dem Sie die Attribute des App-Registrierungsobjekts direkt bearbeiten können.
  2. Bearbeiten Sie die requiredResourceAccess-Eigenschaft sorgfältig in der Manifestdatei der Anwendung.
  3. Fügen Sie die resourceAppId-Eigenschaft und resourceAccess-Eigenschaft hinzu, und weisen Sie die erforderlichen Berechtigungen zu.
  4. Speichern Sie die Änderungen.

Um die folgenden Schritte zum Hinzufügen von Berechtigungen auszuführen, benötigen Sie die folgenden Ressourcen und Berechtigungen:

  • Führen Sie die HTTP-Anforderungen in einem Tool Ihrer Wahl aus, z. B. in Ihrer App oder über den Graph-Tester.
  • Führen Sie die APIs als Benutzer*in mit mindestens der Rolle Cloudanwendungsadministrator oder als Besitzer*in der Ziel-App-Registrierung aus.
  • Der App, die zum Vornehmen dieser Änderungen verwendet wird, muss die Application.ReadWrite.All-Berechtigung erteilt werden.
  1. Identifizieren Sie die Berechtigungen, die Ihre App benötigt, deren Berechtigungs-IDs und ob es sich dabei um App-Rollen (Anwendungsberechtigungen) oder delegierte Berechtigungen handelt. Wenn Sie beispielsweise Microsoft Graph-Berechtigungen anfordern möchten, lesen Sie Microsoft Graph-Berechtigungen für eine Liste der Berechtigungen und deren IDs.

  2. Fügen Sie Ihrer App die erforderlichen Microsoft Graph-Berechtigungen hinzu. Im folgenden Beispiel wird die Updateanwendungs-API aufgerufen, um die erforderlichen Microsoft Graph-Berechtigungen zu einer App-Registrierung hinzuzufügen, die durch die Objekt-ID „aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb“ identifiziert wird. In diesem Beispiel werden die delegierten Berechtigungen Analytics.Read und Application.Read.All sowie Anwendungsberechtigungen verwendet. Microsoft Graph wird als ServicePrincipal-Objekt mit 00000003-0000-0000-c000-000000000000 als global eindeutige AppId identifiziert.

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

Die dynamische Einwilligung ist eine Möglichkeit, Berechtigungen von Benutzer*innen oder Administrator*innen zur Laufzeit anzufordern, anstatt sie im Bereich App-Registrierungen statisch zu deklarieren. Mit der dynamischen Einwilligung kann die App nur die Berechtigungen anfordern, die sie für eine bestimmte Funktionalität benötigt, und bei Bedarf die Einwilligung von Benutzer*innen oder Administrator*innen einholen. Die dynamische Einwilligung kann mit delegierten Berechtigungen verwendet und kann mit dem Bereich „/.default“ kombiniert werden, um die Administratoreinwilligung für alle Berechtigungen anzufordern.

So fügen Sie Berechtigungen zur dynamischen Einwilligung hinzu:

  • Verwenden von Microsoft Graph: Fügen Sie einer App-Registrierung die erforderlichen Microsoft Graph-Berechtigungen hinzu. In diesem Beispiel werden die delegierten Berechtigungen Analytics.Read und Application.Read.All sowie Anwendungsberechtigungen verwendet. Ersetzen Sie die Werte unter „Bereiche“ durch Werte aller delegierten Microsoft Graph-Berechtigungen, die Sie für die App konfigurieren möchten.

    Die Anforderung sollte wie im folgenden Beispiel aussehen:

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

  • MSAL.js: Ersetzen Sie die Werte unter „Bereiche“ durch Werte aller delegierten Microsoft Graph-Berechtigungen, die Sie für die App konfigurieren möchten.

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

Nachdem Ihrer Anwendung Berechtigungen hinzugefügt wurden, müssen Benutzer*innen oder Administrator*innen die Einwilligung zu den neuen Berechtigungen erteilen. Nichtadminbenutzer*innen sehen eine Einwilligungsaufforderung, wenn sie sich bei Ihrer App anmelden. Administrator*innen können dagegen den neuen Berechtigungen im Namen aller Benutzer*innen in ihrer Organisation zustimmen, wenn sie sich zum ersten Mal bei Ihrer App oder im Microsoft Entra Admin Center anmelden.

Wenn für die hinzugefügten Berechtigungen die Administratoreinwilligung erforderlich ist, variieren die erforderlichen Aktionen je nach App-Typ:

  • Einzelinstanzenfähige App und mehrinstanzenfähige App im Basismandanten: Benutzer müssen sich mindestens mit der Rolle Administrator für privilegierte Rollen anmelden und mandantenweite Einwilligung erteilen.
  • Mehrinstanzenfähige Apps in den Kundenmandanten: Benutzer*innen sehen beim nächsten Anmeldeversuch neue Einwilligungsaufforderungen. Wenn die Berechtigungen nur eine Benutzereinwilligung erfordern, können Benutzer*innen die Einwilligung erteilen. Wenn die Berechtigungen eine Administratoreinwilligung erfordern, müssen Benutzer*innen den Administrator kontaktieren, um die Einwilligung zu erteilen.

Beenden der Anforderung nicht verwendeter Berechtigungen

Durch das Entfernen von Berechtigungen kann das Risiko reduziert werden, vertrauliche Daten verfügbar zu machen oder die Sicherheit zu gefährden und den Einwilligungsprozess für Ihre Benutzer*innen oder Administrator*innen zu vereinfachen. Wenn Ihre App keine Berechtigung mehr benötigt, sollten Sie verhindern, dass Ihre App sie anfordert, indem Sie die Berechtigung aus den erforderlichen Ressourcenzugriff und Code der App-Registrierung entfernen. Beispielsweise kann eine Anwendung, die keine E-Mail-Benachrichtigungen mehr sendet, die Berechtigung „Mail.ReadWrite“ entfernen.

Wichtig

Durch das Entfernen einer Berechtigung aus Ihrer App-Registrierung werden die Berechtigungen, die der App bereits erteilt wurden, nicht automatisch widerrufen. Sie müssen die Berechtigungen manuell widerrufen. Weitere Informationen finden Sie im Abschnitt Widerrufen der Einwilligung für die entfernten Berechtigungen für die Unternehmensanwendung in diesem Artikel.

Um das Anfordern von Berechtigungen, die statische Einwilligung erfordern, zu beenden, müssen Sie die Berechtigung aus dem Bereich App-Registrierungen entfernen. Ein*e Administrator*in des Mandanten muss auch die Berechtigung im Bereich Unternehmensanwendungen widerrufen. Weitere Informationen zum Widerrufen von Berechtigungen, die einer Unternehmensanwendung erteilt wurden, finden Sie unter Widerrufen von Berechtigungen für eine Unternehmensanwendung.

In diesem Abschnitt erfahren Sie, wie Sie das Anfordern von Berechtigungen für die statische Einwilligung beenden.

Sie können Berechtigungen aus der statischen Einwilligung auf zwei verschiedene Arten im Microsoft Entra Admin Center entfernen:

Option 1: Aus dem Bereich API-Berechtigungen

  1. Melden Sie sich beim Microsoft Entra-Admin Center mindestens mit der Rolle Cloudanwendungsadministrator oder als Anwendungsbesitzer*in an.
  2. Browsen Sie zu Identität>Anwendungen>App-Registrierungen>Alle Anwendungen.
  3. Suchen Sie die App-Registrierung, aus der Sie Berechtigungen entfernen möchten, und wählen Sie sie aus.
  4. Entfernen Sie die Berechtigungen aus dem Bereich API-Berechtigungen:
    1. Suchen Sie den Bereich API-Berechtigungen, und suchen Sie die Berechtigungen, die Sie entfernen möchten.

    2. Wählen Sie die API aus, die Sie entfernen möchten, und wählen Sie zuerst die Administratoreinwilligung widerrufen und dann Berechtigung entfernen. Dadurch wird sichergestellt, dass die erteilte Berechtigung von Ihrem Mandanten entfernt wird.

      Screenshot des Entfernens von Berechtigungen über den API-Berechtigungsbereich.

Option 2: Aus dem Anwendungsmanifest

  1. Wählen Sie im linken Navigationsbereich unter der Menügruppe Verwalten die Option Manifest aus. Es öffnet sich ein Editor, mit dem Sie die Attribute des App-Registrierungsobjekts direkt bearbeiten können.
  2. Bearbeiten Sie die requiredResourceAccess-Eigenschaft sorgfältig in der Manifestdatei der Anwendung.
  3. Entfernen Sie die nicht benötigten Berechtigungen aus resourceAppId-Eigenschaft und resourceAccess-Eigenschaft.
  4. Speichern Sie die Änderungen.

Um die folgenden Schritte zum Entfernen von Berechtigungen auszuführen, benötigen Sie die folgenden Ressourcen und Berechtigungen:

  • Führen Sie die HTTP-Anforderungen in einem Tool Ihrer Wahl aus, z. B. in Ihrer App oder über den Graph-Tester.
  • Rufen Sie die APIs mit mindestens der Rolle Cloudanwendungsadministrator oder als Besitzer*in der Ziel-App-Registrierung auf.
  • Der App, die zum Vornehmen dieser Änderungen verwendet wird, muss die Application.ReadWrite.All-Berechtigung erteilt werden.
  1. Identifizieren Sie die Berechtigungen für Ihre App.

  2. Um beispielsweise zu verhindern, dass Ihre App Microsoft Graph-Berechtigungen anfordert, identifizieren Sie die Microsoft Graph-Berechtigungen für Ihre App, deren Berechtigungs-IDs und ob sie App-Rollen (Anwendungsberechtigungen) oder delegierte Berechtigungen sind.

  3. Entfernen Sie die unerwünschten Microsoft Graph-Berechtigungen aus Ihrer App. Im folgenden Beispiel wird die API Anwendung aktualisieren aufgerufen, um die unerwünschten Microsoft Graph-Berechtigungen aus einer App-Registrierung zu entfernen, die durch die Beispielclient-ID 00001111-aaaa-2222-bbbb-3333cccc4444 identifiziert ist. In diesem Beispiel verfügt die Anwendung über Analytics.Read, User.Read und Application.Read.All. Wir müssen die delegierten Berechtigungen Analytics.Read und Application.Read.All sowie Anwendungsberechtigungen entfernen. Microsoft Graph wird als ServicePrincipal-Objekt mit 00000003-0000-0000-c000-000000000000 als global eindeutige AppId und Microsoft Graph als DisplayName und AppDisplayName identifiziert.

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

Wenn Sie delegierte Berechtigungen aus einer dynamischen Einwilligungsanforderung entfernen müssen, geben Sie den Bereichsparameter an, und lassen Sie die Berechtigungen aus, die Sie entfernen möchten. Durch das Entfernen der Berechtigungen wird sichergestellt, dass die App die entsprechende API nicht aufruft.

Diese Methode funktioniert nur für delegierte Berechtigungen. Anwendungsberechtigungen werden von einem Administrator über statische Einwilligung angefordert und erteilt und sind während der OAuth 2.0-Autorisierungsanforderung nicht im Bereichsparameter enthalten.

So beenden Sie das Anfordern von Berechtigungen mit dynamischer Einwilligung:

  • Microsoft Graph: Entfernen Sie die unerwünschten delegierten Microsoft Graph-Berechtigungen aus dem Parameter „Bereiche“. In diesem Beispiel fordert Ihre Anwendung drei Berechtigungen an: Analytics.Read, User.Read und Application.Read. Die delegierten Berechtigungen Analytics.Read und Application.Read sind für diese App nicht mehr erforderlich. Es ist nur User.Read erforderlich.

Die Anforderung sollte ungefähr wie das folgende Beispiel aussehen:

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

  • MSAL.js: Entfernen Sie die unerwünschten delegierten Microsoft Graph-Berechtigungen aus „Bereiche“.

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

Nachdem die Berechtigungen aus der App-Registrierung entfernt wurden, muss ein*e Administrator*in im Mandanten auch die Einwilligung widerrufen, um die Daten Ihrer Organisation zu schützen. Wenn für die entfernte Berechtigung eine Administratoreinwilligung erforderlich ist, variieren die erforderlichen Aktionen je nach App-Typ:

  • Einzelmandanten-App und mehrinstanzenfähige App im Heimmandanten: Wenden Sie sich für eine Einzelmandanten-App an den*die Administrator*in des Mandanten, um die Berechtigungen zu widerrufen, die der App bereits erteilt wurden. Wenden Sie sich für eine mehrinstanzenfähige App an die Administrator*innen aller Mandanten, in denen sich Instanzen Ihrer Anwendung befinden, um die Berechtigungen zu widerrufen, die der Unternehmensanwendung erteilt wurden. Durch das Widerrufen der Einwilligung zu den entfernten Berechtigungen wird sichergestellt, dass die Anwendung keinen Zugriff über die entfernte Berechtigung aufrecht erhält.
  • Mehrinstanzenfähige Apps in den Kundenmandanten: Stellen Sie sicher, dass Sie Ihren Kund*innen durch Ankündigungen, Blogs und andere Kommunikationskanäle mitteilen, dass Berechtigungen widerrufen werden.

Sowohl für Einzelmandanten- als auch für mehrinstanzenfähige Apps können Nichtadminbenutzer*innen in Mandanten, in denen die Benutzereinwilligung aktiviert ist, das MyApps-Portal verwenden, um die Einwilligung zu Berechtigungen zu widerrufen, die sie zuvor erteilt haben. Weitere Informationen dazu, wie Endbenutzer*innen Berechtigungen im MyApps-Portal widerrufen können, finden Sie unter Widerrufen der Endbenutzereinwilligung.

Ersetzen einer Berechtigung

Sie sollten eine hochprivilegierte Berechtigung ersetzen, wenn eine weniger privilegierte Berechtigung ausreicht.

Durch das Ersetzen von Berechtigungen kann auch das Risiko reduziert werden, vertrauliche Daten verfügbar zu machen oder die Sicherheit zu gefährden und so die Benutzererfahrung und das Vertrauen verbessern. Wenn Ihre App eine hochprivilegierte Berechtigung verwendet, z. B. Directory.ReadWrite.All, sollten Sie überlegen, ob eine weniger privilegierte Berechtigung, z. B. User.ReadWrite.All, für die Funktionalität Ihrer App ausreichend wäre.

Hinweis

Wenn Sie die angeforderten Berechtigungen einer App für die statische Einwilligung ändern, müssen Kund*innen erneut einwilligen. Die erneute Einwilligung widerruft alle zuvor erteilten Berechtigungen und erteilt die Einwilligung zu den neuen. Wenn Sie die angeforderten Berechtigungen einer App für die dynamische Einwilligung ändern, werden die zuvor erteilten Berechtigungen nicht widerrufen. Kund*innen müssen die Berechtigungen manuell widerrufen.

Um eine Berechtigung zu ersetzen, müssen Sie die nicht benötigte Berechtigung entfernen und die alternative Berechtigung hinzufügen. Die Schritte ähneln den Schritten, die in den Abschnitten Beenden der Anforderung nicht verwendeter Berechtigungen und Berechtigungen hinzufügen in diesem Artikel beschrieben werden.