MinimalPermissionsPlugin
Comprueba si la aplicación usa permisos mínimos para llamar a las API. Usa información de API de la carpeta local especificada.
Definición de instancia del complemento
{
"name": "MinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "minimalPermissionsPlugin"
}
Ejemplo de configuración
{
"minimalPermissionsPlugin": {
"apiSpecsFolderPath": "./api-specs"
}
}
Propiedades de configuración
Propiedad | Descripción | Valor predeterminado |
---|---|---|
apiSpecsFolderPath |
Ruta de acceso relativa o absoluta a la carpeta con especificaciones de API | Ninguno |
Opciones de línea de comandos
Ninguno
Comentarios
El MinimalPermissionsPlugin
complemento comprueba si la aplicación usa permisos mínimos para llamar a las API. Para comprobar los permisos, el complemento usa información sobre las API ubicadas en la carpeta local especificada.
Definición de permisos de API
El MinimalPermissionsPlugin
complemento admite la comprobación de permisos de OAuth para las API protegidas con OAuth. El complemento calcula los permisos mínimos necesarios para llamar a las API usadas en la aplicación mediante la información de las especificaciones de API proporcionadas. A continuación, el complemento compara los permisos usados en el token json Web Token (JWT) con los ámbitos mínimos necesarios para las solicitudes que registró el proxy de desarrollo.
Para definir permisos para las API, inclúyelos en la definición de OpenAPI de la API. En el ejemplo siguiente se muestra cómo definir permisos para una API en una definición de OpenAPI:
{
"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"
}
}
La parte pertinente es la securitySchemes
sección, donde se definen los ámbitos de OAuth que usa la API. A continuación, para cada operación, se incluyen los ámbitos necesarios en la security
sección .