Delen via


Controleren of mijn app API's aanroept met minimale machtigingen

Bij het bouwen van uw app integreert u waarschijnlijk met verschillende API's en bewerkingen. Om ervoor te zorgen dat uw app veilig is en het principe van minimale bevoegdheden volgt, moet u controleren of uw app API's aanroept met minimale machtigingen. Door minimale machtigingen te gebruiken, vermindert u het risico op onbevoegde toegang tot uw gegevens en resources.

Het is moeilijk om te controleren of uw app API's aanroept met minimale machtigingen. Telkens wanneer u een nieuwe bewerking integreert, moet u de set machtigingen evalueren die u in uw app gebruikt. Het handmatig bijhouden van alle bewerkingen en machtigingen is tijdrovend en foutgevoelig. Met behulp van Dev Proxy en Azure API Center kunt u controleren of uw app API's aanroept met minimale machtigingen.

Als u wilt controleren of uw app API's aanroept met minimale machtigingen, kunt u de ApiCenterMinimalPermissionsPlugin invoegtoepassing gebruiken. Deze invoegtoepassing vergelijkt de machtigingen die uw app gebruikt met de machtigingen die zijn gedefinieerd in Azure API Center en rapporteert over overmatige machtigingen. Het raadt ook de minimale set machtigingen aan die u moet gebruiken.

Schermopname van een opdrachtprompt met Dev Proxy-controle of de vastgelegde API-aanvragen minimale API-machtigingen gebruiken.

Voordat u begint

Als u wilt controleren of uw app API's aanroept met minimale machtigingen, moet u een Azure API Center-exemplaar hebben met informatie over de API's die u in uw organisatie gebruikt.

Tip

Download de voorinstelling voor dit artikel door deze uit te voeren in de opdrachtprompt devproxy preset get demo-apicenter-minimalpermissions.

Een Azure API Center-exemplaar maken

Voordat u begint, maakt u een Azure API Center-exemplaar en registreert u API's die u in uw organisatie gebruikt. Upload voor elke API het OpenAPI-specificatiebestand dat de API-bewerkingen en -machtigingen beschrijft.

Schermopname van Azure API Center met een API en de Bijbehorende OpenAPI-specificatie met beveiligingsgegevens.

Deze ApiCenterMinimalPermissionsPlugin informatie wordt gebruikt om te controleren of uw app API's aanroept met minimale machtigingen.

Informatie over API Center kopiëren

Kopieer op de overzichtspagina van het Azure API Center-exemplaar de naam van het API Center-exemplaar, de naam van de resourcegroep en de abonnements-id. U hebt deze informatie nodig om de ApiCenterMinimalPermissionsPlugin configuratie zo te configureren dat deze verbinding kan maken met uw Azure API Center-exemplaar.

Schermopname van de overzichtspagina van Azure API Center met verschillende eigenschappen gemarkeerd.

Dev-proxy configureren

Als u wilt controleren of uw app API's aanroept met minimale machtigingen, moet u het inschakelen in het configuratiebestand van de ApiCenterMinimalPermissionsPlugin dev-proxy. Als u een rapport wilt maken met machtigingen die door uw app worden gebruikt, voegt u een reporter toe.

Schakel de ApiCenterMinimalPermissionsPlugin

Voeg in het devproxyrc.json bestand de volgende configuratie toe:

{
  "$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"
  }
}

Geef in de subscriptionId, resourceGroupNameen serviceName eigenschappen de informatie op over uw Azure API Center-exemplaar.

Geef in de urlsToWatch eigenschap de URL's op die door uw app worden gebruikt.

Tip

Gebruik de Visual Studio Code-extensie Dev Proxy Toolkit om de Dev Proxy-configuratie eenvoudig te beheren.

Een reporter toevoegen

Het ApiCenterMinimalPermissionsPlugin produceert een rapport van API's die door uw app worden gebruikt en de minimale machtigingen die nodig zijn om ze aan te roepen. Als u dit rapport wilt weergeven, voegt u een reporter toe aan uw Dev Proxy-configuratiebestand. Dev Proxy biedt verschillende reporters. In dit voorbeeld gebruikt u de reporter zonder opmaak.

Werk uw devproxyrc.json bestand bij met een verwijzing naar de reporter zonder opmaak:

{
  "$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"
  }
}

Controleer of uw app API's aanroept met minimale machtigingen

Als u wilt controleren of uw app API's aanroept met minimale machtigingen, moet u verbinding maken met uw Azure-abonnement, Dev Proxy uitvoeren en API-aanvragen van uw app laten onderscheppen. Dev Proxy vergelijkt vervolgens de informatie over de API-aanvragen met de informatie uit Het Azure API Center en rapporteert over de minimale machtigingen.

Verbinding maken met uw Azure-abonnement

Dev Proxy gebruikt informatie uit Azure API Center om te bepalen of uw app API's aanroept met minimale machtigingen. Om deze informatie op te halen, heeft deze een verbinding met uw Azure-abonnement nodig. U kunt op verschillende manieren verbinding maken met uw Azure-abonnement.

Dev-proxy uitvoeren

Nadat u verbinding hebt gemaakt met uw Azure-abonnement, start u Dev Proxy. Als u Dev Proxy start vanuit dezelfde map waarin het devproxyrc.json bestand zich bevindt, wordt de configuratie automatisch geladen. Geef anders het pad naar het configuratiebestand op met behulp van de --config-file optie.

Wanneer dev proxy wordt gestart, wordt gecontroleerd of deze verbinding kan maken met uw Azure-abonnement. Wanneer de verbinding is geslaagd, ziet u een bericht dat lijkt op:

 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

Druk op r om API-aanvragen van uw app op te nemen.

Uw app gebruiken

Gebruik uw app zoals u dat normaal zou doen. In deze zelfstudie kunt u de volgende aanvraag gebruiken met een gesimuleerd toegangstoken met customer.readwrite machtiging:

@readwriteToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJzY3AiOlsiY3VzdG9tZXIucmVhZHdyaXRlIl19.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

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

Dev Proxy onderschept de API-aanvragen en slaat informatie over deze aanvragen op in het geheugen. Op de opdrachtregel waar Dev Proxy wordt uitgevoerd, ziet u informatie over API-aanvragen die uw app maakt.

 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}

Machtigingen controleren

Stop de opname door op s te drukken. Dev Proxy maakt verbinding met het API Center-exemplaar en vergelijkt de informatie over aanvragen met de informatie uit 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

Wanneer de analyse van de Dev Proxy is voltooid, wordt er een rapport gemaakt in een bestand met de volgende ApiCenterMinimalPermissionsPlugin_PlainTextReporter.txt inhoud:

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.

Samenvatting

Met behulp van de ApiCenterMinimalPermissionsPlugin, kunt u controleren of uw app API's aanroept met minimale machtigingen. De invoegtoepassing vergelijkt de informatie over API-aanvragen van uw app met informatie uit Azure API Center en rapporteert over overmatige machtigingen. Het raadt ook de minimale machtigingen aan die nodig zijn om de API's aan te roepen die u in uw app gebruikt. Als u controleert of uw app API's aanroept met minimale machtigingen, kunt u uw app veiliger maken. U kunt deze controle handmatig uitvoeren of integreren met uw CI/CD-pijplijn om ervoor te zorgen dat uw app API's aanroept met minimale machtigingen voordat deze wordt vrijgegeven voor productie.

Meer informatie