Come verificare se l'app chiama le API con autorizzazioni minime
Articolo
Durante la compilazione dell'app, è probabile che si integri con diverse API e operazioni. Per assicurarsi che l'app sia sicura e segua il principio dei privilegi minimi, devi verificare se l'app chiama le API con autorizzazioni minime. Usando autorizzazioni minime, si riduce il rischio di accesso non autorizzato ai dati e alle risorse.
È difficile verificare se l'app chiama le API con autorizzazioni minime è che ogni volta che si integra una nuova operazione, è necessario valutare il set di autorizzazioni usate nell'app. Il rilevamento manuale di tutte le operazioni e le autorizzazioni richiede molto tempo e è soggetto a errori. Usando Dev Proxy e Centro API di Azure è possibile automatizzare il controllo se l'app chiama le API con autorizzazioni minime.
Per verificare se l'app chiama le API usando autorizzazioni minime, è possibile usare il plug-in ApiCenterMinimalPermissionsPlugin . Questo plug-in confronta le autorizzazioni usate dall'app con le autorizzazioni definite nel Centro API di Azure e segnala eventuali autorizzazioni eccessive. Consiglia anche il set minimo di autorizzazioni da usare.
Prima di iniziare
Per verificare se l'app chiama le API usando autorizzazioni minime, è necessario disporre di un'istanza del Centro API di Azure con informazioni sulle API usate nell'organizzazione.
Suggerimento
Scaricare il set di impostazioni per questo articolo eseguendo nel prompt dei devproxy preset get demo-apicenter-minimalpermissionscomandi .
Creare un'istanza del Centro API di Azure
Prima di iniziare, creare un'istanza del Centro API di Azure e registrare le API usate nell'organizzazione. Per ogni API, caricare il file di specifica OpenAPI che descrive le operazioni e le autorizzazioni dell'API.
ApiCenterMinimalPermissionsPlugin Usa queste informazioni per verificare se l'app chiama le API usando autorizzazioni minime.
Copiare le informazioni del Centro API
Nella pagina Panoramica dell'istanza del Centro API di Azure copiare il nome dell'istanza di Centro API, il nome del gruppo di risorse e l'ID sottoscrizione. Queste informazioni sono necessarie per configurare in modo che possa connettersi all'istanza ApiCenterMinimalPermissionsPlugin del Centro API di Azure.
Configurare il proxy di sviluppo
Per verificare se l'app chiama le API usando autorizzazioni minime, è necessario abilitare ApiCenterMinimalPermissionsPlugin nel file di configurazione del proxy di sviluppo. Per creare un report delle autorizzazioni usate dall'app, aggiungere un reporter.
Abilitare ApiCenterMinimalPermissionsPlugin
devproxyrc.json Nel file aggiungere la configurazione seguente:
subscriptionIdNelle proprietà , resourceGroupNamee serviceName specificare le informazioni sull'istanza del Centro API di Azure.
urlsToWatch Nella proprietà specificare gli URL usati dall'app.
Suggerimento
Usare l'estensione Dev Proxy Toolkit di Visual Studio Code per gestire facilmente la configurazione del proxy di sviluppo.
Aggiungere un giornalista
Genera ApiCenterMinimalPermissionsPlugin un report delle API che l'app usa e le autorizzazioni minime necessarie per chiamarle. Per visualizzare questo report, aggiungere un reporter al file di configurazione del proxy di sviluppo. Dev Proxy offre diversi reporter. In questo esempio si usa il reporter di testo normale.
Aggiornare il devproxyrc.json file con un riferimento al reporter in testo normale:
Controllare se l'app chiama le API usando autorizzazioni minime
Per verificare se l'app chiama le API usando autorizzazioni minime, è necessario connettersi alla sottoscrizione di Azure, eseguire Dev Proxy e consentire l'intercettazione delle richieste API dall'app. Dev Proxy confronta quindi le informazioni sulle richieste API con le informazioni del Centro API di Azure e segnala le autorizzazioni minime.
Connettersi alla sottoscrizione di Azure
Dev Proxy usa le informazioni del Centro API di Azure per determinare se l'app chiama le API usando autorizzazioni minime. Per ottenere queste informazioni, è necessaria una connessione alla sottoscrizione di Azure. È possibile connettersi alla sottoscrizione di Azure in diversi modi.
Eseguire il proxy di sviluppo
Dopo la connessione alla sottoscrizione di Azure, avviare Dev Proxy. Se si avvia Dev Proxy dalla stessa cartella in cui si trova il devproxyrc.json file, carica automaticamente la configurazione. In caso contrario, specificare il percorso del file di configurazione usando l'opzione --config-file .
All'avvio di Dev Proxy verifica che possa connettersi alla sottoscrizione di Azure. Quando la connessione ha esito positivo, viene visualizzato un messaggio simile al seguente:
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
Premere r per avviare la registrazione delle richieste API dall'app.
Usare l'app
Usa la tua app come normalmente fai. In questa esercitazione è possibile usare la richiesta seguente con un token di accesso simulato con customer.readwrite autorizzazione:
@readwriteToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJzY3AiOlsiY3VzdG9tZXIucmVhZHdyaXRlIl19.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
GET https://api.northwind.com/customers/ALFKI
Authorization: Bearer {{readwriteToken}}
Dev Proxy intercetta le richieste API e li archivia in memoria. Nella riga di comando in cui viene eseguito Il proxy di sviluppo dovrebbero essere visualizzate informazioni sulle richieste API eseguite dall'app.
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}
Verificare le autorizzazioni
Arrestare la registrazione premendo s. Dev Proxy si connette all'istanza di Centro API e confronta le informazioni sulle richieste con le informazioni del Centro API.
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
Al termine dell'analisi, Dev Proxy crea un report in un file denominato ApiCenterMinimalPermissionsPlugin_PlainTextReporter.txt con il contenuto seguente:
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.
Riepilogo
Usando , è possibile verificare se l'app ApiCenterMinimalPermissionsPluginchiama le API usando autorizzazioni minime. Il plug-in confronta le informazioni sulle richieste API dall'app con le informazioni del Centro API di Azure e segnala autorizzazioni eccessive. Consiglia anche le autorizzazioni minime necessarie per chiamare le API in uso nell'app. Verificare che l'app chiami le API usando autorizzazioni minime, consente di rendere l'app più sicura. È possibile eseguire questo controllo manualmente o integrarsi con la pipeline CI/CD per assicurarsi che l'app chiami le API usando autorizzazioni minime prima di rilasciarla nell'ambiente di produzione.
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.
Feedback su Dev Proxy
Dev Proxy è un progetto di open source. Selezionare un collegamento per fornire feedback:
Quando si creano app per il lavoro, in genere si esegue l'integrazione con API protette. Informazioni sui due modi comuni di proteggere le API, ovvero la chiave API e OAuth2, e su come integrarle durante la creazione di un plug-in API per gli agenti dichiarativi eseguiti in Microsoft 365 Copilot.
Illustrare i concetti fondamentali della protezione dei dati, della gestione del ciclo di vita, della protezione delle informazioni e della conformità per proteggere una distribuzione di Microsoft 365.