Freigeben über


So überprüfen Sie, ob meine App APIs mit minimalen Berechtigungen aufruft

Beim Erstellen Ihrer App sind wahrscheinlich mehrere APIs und Vorgänge integriert. Um sicherzustellen, dass Ihre App sicher ist und dem Prinzip der geringsten Berechtigungen folgt, sollten Sie überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft. Durch die Verwendung minimaler Berechtigungen verringern Sie das Risiko eines nicht autorisierten Zugriffs auf Ihre Daten und Ressourcen.

Die Schwierigkeit beim Überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft, besteht darin, dass Sie bei jeder Integration eines neuen Vorgangs die Berechtigungen auswerten müssen, die Sie in Ihrer App verwenden. Das manuelle Nachverfolgen aller Vorgänge und Berechtigungen ist zeitaufwändig und fehleranfällig. Mit Dev Proxy und Azure API Center können Sie die Überprüfung automatisieren, ob Ihre App APIs mit minimalen Berechtigungen aufruft.

Um zu überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft, können Sie das ApiCenterMinimalPermissionsPlugin Plug-In verwenden. Dieses Plug-In vergleicht die Berechtigungen, die Ihre App mit den im Azure API Center definierten Berechtigungen verwendet, und berichtet über übermäßige Berechtigungen. Außerdem empfiehlt es sich, den minimalen Satz von Berechtigungen zu verwenden.

Screenshot einer Eingabeaufforderung mit Der Dev Proxy-Überprüfung, ob die aufgezeichneten API-Anforderungen token minimale API-Berechtigungen verwenden.

Vor der Installation

Um zu überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft, müssen Sie über eine Azure API Center-Instanz verfügen, die Informationen zu den APIs enthält, die Sie in Ihrer Organisation verwenden.

Tipp

Laden Sie die Voreinstellung für diesen Artikel herunter, indem Sie in der Eingabeaufforderung devproxy preset get demo-apicenter-minimalpermissions ausführen.

Erstellen einer Azure API Center-Instanz

Erstellen Sie zunächst eine Azure API Center-Instanz, und registrieren Sie APIs, die Sie in Ihrer Organisation verwenden. Laden Sie für jede API die OpenAPI-Spezifikationsdatei hoch, die die API-Vorgänge und -Berechtigungen beschreibt.

Screenshot von Azure API Center mit einer API und deren OpenAPI-Spezifikation mit Sicherheitsinformationen

Anhand ApiCenterMinimalPermissionsPlugin dieser Informationen können Sie überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft.

Kopieren von API Center-Informationen

Kopieren Sie auf der Seite „Übersicht“ der Azure API Center-Instanz den Namen der API Center-Instanz sowie den Namen der Ressourcengruppe und die Abonnement-ID. Diese Informationen benötigen Sie, um ApiCenterMinimalPermissionsPlugin so zu konfigurieren, dass eine Verbindung mit Ihrer Azure API Center-Instanz hergestellt werden kann.

Screenshot der Seite „Übersicht“ von Azure API Center mit mehreren hervorgehobenen Eigenschaften

Konfigurieren von Dev Proxy

Um zu überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft, müssen Sie ApiCenterMinimalPermissionsPlugin in der Dev Proxy-Konfigurationsdatei aktivieren. Um einen Bericht der Berechtigungen zu erstellen, die Ihre App verwendet, fügen Sie einen Reporter hinzu.

Aktivieren von ApiCenterMinimalPermissionsPlugin

Fügen Sie in der Datei devproxyrc.json die folgende Konfiguration hinzu:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterMinimalPermissionsPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterMinimalPermissionsPlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.northwind.com/*"
  ],
  "apiCenterMinimalPermissionsPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

Geben Sie in den Eigenschaften subscriptionId, resourceGroupName und serviceName die Informationen zu Ihrer Azure API Center-Instanz an.

Geben Sie in der Eigenschaft urlsToWatch die URLs an, die Ihre App verwendet.

Tipp

Verwenden Sie die Visual Studio Code-Erweiterung Dev Proxy Toolkit, um die Dev Proxy-Konfiguration mühelos zu verwalten.

Hinzufügen eines Reporters

ApiCenterMinimalPermissionsPlugin erstellt einen Bericht der APIs, die Ihre App verwendet, und der minimalen Berechtigungen, die zum Aufrufen dieser APIs erforderlich sind. Fügen Sie ihrer Konfigurationsdatei für Dev Proxy einen Reporter hinzu, um diesen Bericht anzuzeigen. Dev Proxy bietet mehrere Reporter. In diesem Beispiel verwenden Sie den Nur-Text-Reporter.

Aktualisieren Sie Ihre devproxyrc.json-Datei mit einem Verweis auf den Nur-Text-Reporter:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterMinimalPermissionsPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterMinimalPermissionsPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://api.northwind.com/*"
  ],
  "apiCenterMinimalPermissionsPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

Überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft

Um zu überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft, müssen Sie eine Verbindung mit Ihrem Azure-Abonnement herstellen, Dev Proxy ausführen und Dev Proxy die API-Anforderungen von Ihrer App abfangen lassen. Dev Proxy vergleicht daraufhin die Informationen zu den API-Anforderungen mit den Informationen aus Azure API Center und erstellt einen Bericht zu den minimalen Berechtigungen.

Verbinden mit Ihrem Azure-Abonnement

Dev Proxy verwendet Informationen aus Azure API Center, um zu ermitteln, ob Ihre App APIs mit minimalen Berechtigungen aufruft. Um diese Informationen abzurufen, wird eine Verbindung mit Ihrem Azure-Abonnement benötigt. Es bestehen verschiedene Möglichkeiten, eine Verbindung mit Ihrem Azure-Abonnement herzustellen.

Ausführen von Dev Proxy

Starten Sie Dev Proxy, nachdem Sie eine Verbindung mit Ihrem Azure-Abonnement hergestellt haben. Wenn Sie Dev Proxy aus demselben Ordner starten, in dem sich Ihre devproxyrc.json-Datei befindet, wird die Konfiguration automatisch geladen. Geben Sie andernfalls mithilfe der Option --config-file den Pfad zur Konfigurationsdatei an.

Beim Starten von Dev Proxy wird überprüft, ob eine Verbindung mit Ihrem Azure-Abonnement hergestellt werden kann. Wenn die Verbindung erfolgreich hergestellt werden kann, wird eine Meldung wie die folgende angezeigt:

 info    Plugin ApiCenterMinimalPermissionsPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Drücken Sie R, um die Aufzeichnung der API-Anforderungen von Ihrer App zu starten.

Verwenden der App

Verwenden Sie Ihre App wie gewohnt. In diesem Tutorial können Sie die folgende Anforderung mit einem simulierten Zugriffstoken mit customer.readwrite-Berechtigung verwenden:

@readwriteToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJzY3AiOlsiY3VzdG9tZXIucmVhZHdyaXRlIl19.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

GET https://api.northwind.com/customers/ALFKI
Authorization: Bearer {{readwriteToken}}

Dev Proxy fängt die API-Anforderungen ab und speichert Informationen zu ihnen im Arbeitsspeicher. In der Befehlszeile, in der Dev Proxy ausgeführt wird, sollten Informationen zu API-Anforderungen angezeigt werden, die Ihre App ausführt.

 info    Plugin ApiCenterMinimalPermissionsPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://api.northwind.com/customers/ALFKI
 mock  ╰ 200 /{customer-id}

Berechtigungen überprüfen

Beenden Sie die Aufzeichnung, indem Sie S drücken. Dev Proxy stellt eine Verbindung mit der API Center-Instanz her und vergleicht die Informationen zu den Anforderungen mit den Informationen aus API Center.

 info    Plugin ApiCenterMinimalPermissionsPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://api.northwind.com/customers/ALFKI
 mock  ╰ 200 /{customer-id}
○ Stopped recording
 info    Checking if recorded API requests use minimal permissions as defined in API Center...
 info    Loading APIs from API Center...
 info    Loading API definitions from API Center...
 info    Checking minimal permissions for API https://api.northwind.com...
 info    Analyzing recorded requests...
 warn    Calling API Northwind with excessive permissions: customer.readwrite. Minimal permissions are: customer.read
 info    DONE

Nach Abschluss der Analyse erstellt Dev Proxy einen Bericht in einer Datei namens ApiCenterMinimalPermissionsPlugin_PlainTextReporter.txt mit dem folgenden Inhalt:

Azure API Center minimal permissions report

APIS

Northwind

x Called using excessive permissions

Permissions

- Minimal permissions: customer.read
- Permissions on the token: customer.readwrite
- Excessive permissions: customer.readwrite

Requests

- GET https://api.northwind.com/customers/ALFKI

UNMATCHED REQUESTS

No unmatched requests found.

ERRORS

No errors occurred.

Zusammenfassung

Mit ApiCenterMinimalPermissionsPlugin können Sie überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft. Das Plug-In vergleicht die Informationen zu API-Anforderungen aus Ihrer App mit den Informationen in Azure API Center und erstellt einen Bericht zu übermäßigen Berechtigungen. Außerdem werden die minimalen Berechtigungen zum Aufrufen der APIs empfohlen, die Sie in Ihrer App verwenden. Indem Sie überprüfen, ob Ihre App APIs mit minimalen Berechtigungen aufruft, können Sie Ihre App sicherer machen. Sie können diese Überprüfung manuell ausführen oder mit Ihrer CI/CD-Pipeline integrieren, um sicherzustellen, dass Ihre App APIs mit minimalen Berechtigungen aufruft, bevor Sie sie für die Produktion freigeben.

Weitere Informationen