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.
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.
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.
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.