Delen via


ApiCenterMinimalPermissionsPlugin

Controleert of de app minimale machtigingen gebruikt om API's aan te roepen. Maakt gebruik van API-gegevens van het opgegeven Azure API Center-exemplaar.

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

Definitie van invoegtoepassingexemplaren

{
  "name": "ApiCenterMinimalPermissionsPlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
  "configSection": "apiCenterMinimalPermissionsPlugin"
}

Configuratievoorbeeld

{
  "apiCenterMinimalPermissionsPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "resource-group-name",
    "serviceName": "apic-instance",
    "workspaceName": "default"
  }
}

Configuratie-eigenschappen

Eigenschappen Beschrijving Standaard
resourceGroupName Naam van de resourcegroep waar het Azure API Center zich bevindt. Geen
serviceName De naam van het Azure API Center-exemplaar dat dev proxy moet gebruiken om te controleren of de API's die in de app worden gebruikt, zijn geregistreerd. Geen
subscriptionId Id van het Azure-abonnement waar het Azure API Center-exemplaar zich bevindt. Geen
workspace De naam van de Azure API Center-werkruimte die moet worden gebruikt. default

Opdrachtregelopties

Geen

Opmerkingen

De ApiCenterMinimalPermissionsPlugin invoegtoepassing controleert of de app minimale machtigingen gebruikt om API's aan te roepen. Voor het controleren van machtigingen gebruikt de invoegtoepassing informatie over API's die zijn geregistreerd in het opgegeven Azure API Center-exemplaar.

Verbinding maken met Azure API Center

Als u verbinding wilt maken met Azure API Center, gebruikt de invoegtoepassing Azure-referenties (in deze volgorde):

  • Omgeving
  • Workloadidentiteit
  • Beheerde identiteit
  • Visual Studio
  • Visual Studio Code
  • Azure-CLI
  • Azure PowerShell
  • Azure Developer CLI

Als de invoegtoepassing geen toegangstoken voor toegang tot Azure krijgt, wordt er een fout weergegeven en wordt deze uitgeschakeld door Dev Proxy. Meld u aan bij Azure met een van deze hulpprogramma's en start Dev Proxy opnieuw om de ApiCenterMinimalPermissionsPlugin invoegtoepassing te gebruiken.

Als u Dev Proxy in CI/CD-pijplijnen gebruikt, kunt u waarden doorgeven voor de subscriptionId, resourceGroupNameen serviceNameworkspaceName eigenschappen als omgevingsvariabelen. Als u omgevingsvariabelen wilt gebruiken, prepeneert u de naam van de waarde met een @, bijvoorbeeld:

{
  "apiCenterMinimalPermissionsPlugin": {
    "subscriptionId": "@AZURE_SUBSCRIPTION_ID",
    "resourceGroupName": "@AZURE_RESOURCE_GROUP_NAME",
    "serviceName": "@AZURE_APIC_INSTANCE_NAME",
    "workspaceName": "@AZURE_APIC_WORKSPACE_NAME"
  }
}

In dit voorbeeld stelt de ApiCenterMinimalPermissionsPlugin invoegtoepassing respectievelijk de resourceGroupNameworkspaceName serviceNamewaarden van de , AZURE_RESOURCE_GROUP_NAMEen AZURE_APIC_INSTANCE_NAMEomgevingsvariabelen in op de waarden van de AZURE_SUBSCRIPTION_ID, en AZURE_APIC_WORKSPACE_NAME omgevingsvariabelen.subscriptionId

API-machtigingen definiƫren

De ApiCenterMinimalPermissionsPlugin invoegtoepassing ondersteunt het controleren van OAuth-machtigingen voor API's die zijn beveiligd met OAuth die zijn geregistreerd in Azure API Center. De invoegtoepassing berekent de minimale machtigingen die nodig zijn om de API's aan te roepen die in de app worden gebruikt met behulp van de informatie uit API Center. Vervolgens vergelijkt de invoegtoepassing de machtigingen die worden gebruikt in het JSON Web Token-token (JWT) ten opzichte van de minimaal vereiste bereiken die nodig zijn voor de aanvragen die dev proxy heeft vastgelegd.

Als u machtigingen voor uw API's wilt definiƫren, neemt u deze op in de OpenAPI-definitie van uw API. In het volgende voorbeeld ziet u hoe u machtigingen definieert voor een API in een OpenAPI-definitie:

{
  "openapi": "3.0.1",
  "info": {
    "title": "Northwind API",
    "description": "Northwind API",
    "version": "v1.0"
  },
  "servers": [
    {
      "url": "https://api.northwind.com"
    }
  ],
  "components": {
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
            "tokenUrl": "https://login.microsoftonline.com/common/oauth2/token",
            "scopes": {
              "customer.read": "Grants access to ready customer info",
              "customer.readwrite": "Grants access to read and write customer info"
            }
          }
        }
      }
    },
    "schemas": {
      "Customer": {
        "type": "object",
        // [...] trimmed for brevity
      }
    }
  },
  "paths": {
    "/customers/{customers-id}": {
      "description": "Provides operations to manage a customer",
      "get": {
        "summary": "Get customer by ID",
        "operationId": "getCustomerById",
        "security": [
          {
            "OAuth2": [
              "customer.read"
            ]
          },
          {
            "OAuth2": [
              "customer.readwrite"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update customer by ID",
        "operationId": "updateCustomerById",
        "security": [
          {
            "OAuth2": [
              "customer.readwrite"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Customer"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "parameters": [
        {
          "name": "customers-id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    }
  },
  "x-ms-generated-by": {
    "toolName": "Dev Proxy",
    "toolVersion": "0.19.0"
  }
}

Het relevante onderdeel is de securitySchemes sectie waarin u de OAuth-bereiken definieert die door de API worden gebruikt. Vervolgens neemt u voor elke bewerking de vereiste bereiken op in de security sectie.

Meer informatie