Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du skapar din app kan du förmodligen integrera med flera API:er och åtgärder. För att säkerställa att din app är säker och följer principen om minsta behörighet bör du kontrollera om appen anropar API:er med minimal behörighet. Genom att använda minimala behörigheter minskar du risken för obehörig åtkomst till dina data och resurser.
Det som är svårt med att kontrollera om appen anropar API:er med minimal behörighet är att varje gång du integrerar en ny åtgärd måste du utvärdera den uppsättning behörigheter som du använder i din app. Att manuellt spåra alla åtgärder och behörigheter är tidskrävande och felbenäget. Med Dev Proxy och Azure API Center kan du automatisera kontrollen av om appen anropar API:er med minimal behörighet.
Om du vill kontrollera om appen anropar API:er med minimal behörighet kan du använda plugin-programmet ApiCenterMinimalPermissionsPlugin . Det här plugin-programmet jämför de behörigheter som appen använder med de behörigheter som definierats i Azure API Center och rapporterar om eventuella överdrivna behörigheter. Den rekommenderar också den minimala uppsättning behörigheter som du bör använda.
Innan du börjar
För att kontrollera om din app anropar API:er med minimal behörighet måste du ha en Azure API Center-instans med information om de API:er som du använder i din organisation.
Tips
Ladda ner förinställningen för denna "how to"-artikel genom att använda kommandotolken devproxy config get demo-apicenter-minimalpermissions.
Skapa en Azure API Center-instans
Innan du börjar skapar du en Azure API Center-instans och registrerar API:er som du använder i din organisation. För varje API laddar du upp OpenAPI-specifikationsfilen som beskriver API-åtgärder och -behörigheter.
              ApiCenterMinimalPermissionsPlugin Använder den här informationen för att kontrollera om appen anropar API:er med minimala behörigheter.
Kopiera API Center-information
På sidan Översikt för Azure API Center-instans kopierar du namnet på API Center-instansen, namnet på resursgruppen och prenumerations-ID :t. Du behöver den här informationen för att konfigurera så att den ApiCenterMinimalPermissionsPlugin kan ansluta till din Azure API Center-instans.
Konfigurera Dev Proxy
Om du vill kontrollera om din app anropar API:er med minimal behörighet måste du aktivera ApiCenterMinimalPermissionsPlugin i konfigurationsfilen för Dev Proxy. Om du vill skapa en rapport med behörigheter som appen använder lägger du till en reporter.
Aktivera ApiCenterMinimalPermissionsPlugin
              devproxyrc.json Lägg till följande konfiguration i filen:
{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterMinimalPermissionsPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "apiCenterMinimalPermissionsPlugin"
    }
  ],
  "urlsToWatch": [
    "https://api.northwind.com/*"
  ],
  "apiCenterMinimalPermissionsPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}
I egenskaperna subscriptionId, resourceGroupName och serviceName anger du information om din Azure API Center-instans.
I egenskapen urlsToWatch anger du de URL:er som appen använder.
Tips
Använd Tillägget Dev Proxy Toolkit Visual Studio Code för att enkelt hantera Dev Proxy-konfiguration.
Lägga till en reporter
              ApiCenterMinimalPermissionsPlugin Genererar en rapport över API:er som din app använder och de minimala behörigheter som krävs för att anropa dem. Om du vill visa den här rapporten lägger du till en reporter i dev proxy-konfigurationsfilen. Dev Proxy erbjuder flera reportrar. I det här exemplet använder du textredigerare för oformaterad text.
Uppdatera din devproxyrc.json-fil med en referens till en plaintext-rapport.
{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterMinimalPermissionsPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "apiCenterMinimalPermissionsPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://api.northwind.com/*"
  ],
  "apiCenterMinimalPermissionsPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}
Kontrollera om appen anropar API:er med minimala behörigheter
För att kontrollera om appen anropar API:er med minimal behörighet måste du ansluta till din Azure-prenumeration, köra Dev Proxy och låta den fånga upp API-begäranden från din app. Dev Proxy jämför sedan informationen om API-begäranden med informationen från Azure API Center och rapporter om de minsta behörigheterna.
Ansluta till din Azure-prenumeration
Dev Proxy använder information från Azure API Center för att avgöra om din app anropar API:er med minimal behörighet. För att få den här informationen behöver den en anslutning till din Azure-prenumeration. Du kan ansluta till din Azure-prenumeration på flera sätt.
Kör Dev Proxy
När du har anslutit till din Azure-prenumeration startar du Dev Proxy. Om du startar Dev Proxy från samma mapp där devproxyrc.json filen finns läser den in konfigurationen automatiskt. Annars anger du sökvägen till konfigurationsfilen med hjälp av --config-file alternativet .
När Dev Proxy startar kontrollerar den att den kan ansluta till din Azure-prenumeration. När anslutningen lyckas visas ett meddelande som liknar:
 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
Tryck på r för att börja spela in API-begäranden från din app.
Använda appen
Använd din app som vanligt. I den här handledningen kan du använda följande begäran med en simulerad åtkomsttoken med customer.readwrite behörighet:
@readwriteToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJzY3AiOlsiY3VzdG9tZXIucmVhZHdyaXRlIl19.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
GET https://api.northwind.com/customers/ALFKI
Authorization: Bearer {{readwriteToken}}
Dev Proxy fångar upp API-begäranden och lagrar information om dem i minnet. På kommandoraden där Dev Proxy körs bör du se information om API-begäranden som appen gör.
 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}
Kontrollera behörigheter
Stoppa inspelningen genom att trycka på s. Dev Proxy ansluter till API Center-instansen och jämför informationen om begäranden med informationen från 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
När Dev Proxy har slutfört analysen skapas en rapport i en fil med namnet ApiCenterMinimalPermissionsPlugin_PlainTextReporter.txt med följande innehåll:
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.
Sammanfattning
Med hjälp av ApiCenterMinimalPermissionsPluginkan du kontrollera om appen anropar API:er med minimala behörigheter. Plugin-programmet jämför informationen om API-begäranden från din app med information från Azure API Center och rapporter om överdrivna behörigheter. Den rekommenderar också de minimala behörigheter som krävs för att anropa de API:er som du använder i din app. Om du kontrollerar att appen anropar API:er med minimala behörigheter kan du göra din app säkrare. Du kan köra den här kontrollen manuellt eller integrera med din CI/CD-pipeline för att säkerställa att appen anropar API:er med minimal behörighet innan den släpps till produktion.
 
              
               
              
              