MinimalPermissionsPlugin
Controleert of de app minimale machtigingen gebruikt om API's aan te roepen. Maakt gebruik van API-gegevens uit de opgegeven lokale map.
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.