Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Deteta as permissões mínimas necessárias para executar as operações de API especificadas. Usa informações de API da pasta local especificada.
Definição de instância de plug-in
{
"name": "MinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "minimalPermissionsPlugin"
}
Exemplo de configuração
{
"minimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/minimalpermissionsplugin.schema.json",
"apiSpecsFolderPath": "./api-specs"
}
}
Propriedades de configuração
| Propriedade | Descrição | Predefinido |
|---|---|---|
apiSpecsFolderPath |
Caminho relativo ou absoluto para a pasta com especificações da API | Nenhuma |
Opções de linha de comando
Nenhuma
Observações
O MinimalPermissionsPlugin plug-in verifica se o aplicativo usa permissões mínimas para chamar APIs. Para verificar as permissões, o plug-in usa informações sobre APIs localizadas na pasta local especificada.
Definir permissões de API
O MinimalPermissionsPlugin plug-in suporta a verificação de permissões OAuth para APIs protegidas com OAuth. O plug-in calcula as permissões mínimas necessárias para chamar as APIs usadas no aplicativo usando as informações das especificações de API fornecidas.
Para definir permissões para suas APIs, inclua-as na definição de OpenAPI de sua API. O exemplo a seguir mostra como definir permissões para uma API em uma definição 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"
}
}
A parte relevante é a securitySchemes seção onde você define os escopos OAuth que a API usa. Em seguida, para cada operação, você inclui os escopos necessários na security seção .
Substituir variáveis nas especificações da API
Algumas especificações de API podem conter variáveis em URLs de servidor. O uso de variáveis é uma prática comum para acomodar diferentes ambientes (por exemplo, desenvolvimento, preparação, produção), versões de API ou locatários. Um URL com uma variável tem esta aparência:
openapi: 3.0.4
info:
title: SharePoint REST API
description: SharePoint REST API
version: v1.0
servers:
- url: https://{tenant}.sharepoint.com
variables:
tenant:
default: contoso
O MinimalPermissionsPlugin plug-in suporta a substituição de variáveis no conteúdo das especificações da API. Para substituir uma variável, inicie o Dev Proxy com a --env opção e especifique o nome e o valor da variável. Por exemplo, para substituir a tenant variável por contoso, use o seguinte comando:
devproxy --env tenant=northwind
Este comando substitui a tenant variável nas especificações da API pelo valor northwind. O plug-in usa a URL substituída para verificar se o aplicativo usa permissões mínimas para chamar APIs.