Comment vérifier si mon application appelle des API avec des autorisations minimales
Lors de la création de votre application, vous intégrez probablement plusieurs API et opérations. Pour vous assurer que votre application est sécurisée et suit le principe du privilège minimum, vous devez vérifier si votre application appelle les API avec les autorisations minimales. En utilisant les autorisations minimales, vous réduisez le risque d’accès non autorisé à vos données et ressources.
Il est difficile de vérifier si votre application appelle des API avec les autorisations minimales, car à chaque fois que vous intégrez une nouvelle opération, vous devez évaluer le jeu d’autorisations que vous utilisez dans votre application. Le suivi manuel de toutes les opérations et autorisations est chronophage et sujet aux erreurs. En utilisant le proxy de développement et le Centre des API Azure, vous pouvez vérifier automatiquement si votre application appelle les API avec les autorisations minimales.
Pour vérifier si votre application appelle des API à l’aide d’autorisations minimales, vous pouvez utiliser le ApiCenterMinimalPermissionsPlugin
plug-in. Ce plug-in compare les autorisations que votre application utilise avec les autorisations définies dans le Centre des API Azure et signale les autorisations excessives. Il recommande également le jeu minimal d’autorisations que vous devez utiliser.
Avant de commencer
Pour vérifier si votre application appelle des API à l’aide d’autorisations minimales, vous devez disposer d’une instance du Centre d’API Azure avec des informations sur les API que vous utilisez dans votre organisation.
Conseil
Téléchargez la présélection de cet article explicatif en exécutant l’invite de commandes devproxy preset get demo-apicenter-minimalpermissions
.
Créer une instance du Centre des API Azure
Avant de commencer, créez une instance du Centre des API Azure et inscrivez des API que vous utilisez dans votre organisation. Pour chaque API, chargez le fichier de spécification OpenAPI qui décrit les opérations et autorisations de l’API.
L’utilisation ApiCenterMinimalPermissionsPlugin
de ces informations permet de vérifier si votre application appelle des API à l’aide d’autorisations minimales.
Copier les informations du Centre API
Dans la page Vue d’ensemble de l’instance du Centre API Azure, copiez le nom de l’instance du Centre API, le nom du groupe de ressources et l’ID d’abonnement. Vous avez besoin de ces informations pour configurer le ApiCenterMinimalPermissionsPlugin
afin qu’il puisse se connecter à votre instance Centre des API Azure.
Configurer Dev Proxy
Pour vérifier si votre application appelle les API en utilisant les autorisations minimales, vous devez activer le ApiCenterMinimalPermissionsPlugin
dans le fichier de configuration du proxy de développement. Pour créer un rapport sur les autorisations utilisées par votre application, ajoutez un reporter.
Activer le ApiCenterMinimalPermissionsPlugin
Dans le fichier devproxyrc.json
, ajoutez la configuration suivante :
{
"$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"
}
}
Dans les propriétés subscriptionId
, resourceGroupName
et serviceName
, fournissez les informations relatives à votre instance du Centre API Azure.
Dans la propriété urlsToWatch
, spécifiez les URL que votre application utilise.
Conseil
Utilisez l’extension Visual Studio Code Dev Proxy Toolkit pour gérer facilement la configuration Dev Proxy.
Ajouter un rapporteur
Le ApiCenterMinimalPermissionsPlugin
produit un rapport des API que votre application utilise et les autorisations minimales requises pour les appeler. Pour afficher ce rapport, ajoutez un rapporteur à votre fichier de configuration Dev Proxy. Dev Proxy propose plusieurs rapporteurs. Dans cet exemple, vous utilisez le rapporteur en texte brut.
Mettez à jour votre fichier devproxyrc.json
avec une référence au rapporteur en texte brut :
{
"$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"
}
}
Vérifier si votre application appelle les API en utilisant les autorisations minimales
Pour vérifier si votre application appelle les API en utilisant les autorisations minimales, vous devez vous connecter à votre abonnement Azure, exécuter le proxy de développement et le laisser intercepter les requêtes d’API provenant de votre application. Le proxy de développement compare ensuite les informations sur les requêtes d’API avec les informations du Centre des API Azure et produit un rapport sur les autorisations minimales.
Connectez-vous à un abonnement Azure
Le proxy de développement utilise les informations du Centre Des API Azure pour déterminer si votre application appelle les API en utilisant les autorisations minimales. Pour obtenir ces informations, il a besoin d’une connexion à votre abonnement Azure. Vous pouvez vous connecter à votre abonnement Azure de plusieurs façons.
Exécuter Dev Proxy
Après vous être connecté à votre abonnement Azure, démarrez Dev Proxy. Si vous démarrez Dev Proxy à partir du dossier où se trouve votre fichier devproxyrc.json
, il charge automatiquement la configuration. Sinon, spécifiez le chemin d’accès au fichier de configuration à l’aide de l’option --config-file
.
Lors de son démarrage, Dev Proxy vérifie qu’il peut se connecter à votre abonnement Azure. Une fois la connexion établie, un message similaire à celui-ci s’affiche :
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
Appuyez sur r pour démarrer l’enregistrement des requêtes d’API provenant de votre application.
Utiliser votre application
Utilisez votre application comme vous le feriez normalement. Dans ce tutoriel, vous pouvez utiliser la requête suivante avec un jeton d’accès simulé avec l’autorisation customer.readwrite
:
@readwriteToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJzY3AiOlsiY3VzdG9tZXIucmVhZHdyaXRlIl19.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
GET https://api.northwind.com/customers/ALFKI
Authorization: Bearer {{readwriteToken}}
Dev Proxy intercepte les requêtes d’API et stocke les informations sur celles-ci en mémoire. Sur la ligne de commande où Dev Proxy s’exécute, vous devez voir des informations sur les requêtes d’API effectuées par votre application.
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}
Vérifiez les autorisations
Arrêtez l’enregistrement en appuyant sur s. Dev Proxy se connecte à l’instance du Centre API, et compare les informations sur les requêtes aux informations contenues dans le Centre 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
Lorsque Dev Proxy termine son analyse, il crée un rapport dans un fichier nommé ApiCenterMinimalPermissionsPlugin_PlainTextReporter.txt
avec le contenu suivant :
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.
Résumé
En utilisant le ApiCenterMinimalPermissionsPlugin
, vous pouvez vérifier si votre application appelle les API en utilisant les autorisations minimales. Le plug-in compare les informations sur les requêtes d’API de votre application avec les informations du Centre des API Azure et produit un rapport sur les autorisations excessives. Il recommande également les autorisations minimales nécessaires pour appeler les API que vous utilisez dans votre application. Vérifier que votre application appelle les API en utilisant les autorisations minimales permet de rendre votre application plus sécurisée. Vous pouvez exécuter cette vérification manuellement, ou l’intégrer à votre pipeline CI/CD pour vous assurer que votre application appelle les API en utilisant les autorisations minimales avant de la passer en production.