Delen via


MinimalPermissionsPlugin

Controleert of de app minimale machtigingen gebruikt om API's aan te roepen. Maakt gebruik van API-gegevens uit de opgegeven lokale map.

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

Definitie van invoegtoepassingexemplaren

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

Configuratievoorbeeld

{
  "minimalPermissionsPlugin": {
    "apiSpecsFolderPath": "./api-specs"
  }
}

Configuratie-eigenschappen

Eigenschappen Beschrijving Standaard
apiSpecsFolderPath Relatief of absoluut pad naar de map met API-specificaties Geen

Opdrachtregelopties

Geen

Opmerkingen

De MinimalPermissionsPlugin invoegtoepassing controleert of de app minimale machtigingen gebruikt om API's aan te roepen. Om machtigingen te controleren, gebruikt de invoegtoepassing informatie over API's die zich in de opgegeven lokale map bevinden.

API-machtigingen definiƫren

De MinimalPermissionsPlugin invoegtoepassing ondersteunt het controleren van OAuth-machtigingen voor API's die zijn beveiligd met OAuth. 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 de opgegeven API-specificaties. 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.22.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