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.
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.
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.
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
, resourceGroupName
en 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.