Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Detecta 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 do 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 | Padrão |
|---|---|---|
apiSpecsFolderPath |
Caminho relativo ou absoluto para a pasta com especificações de API | Nenhum |
schemeName |
O nome da definição do esquema de segurança usado para determinar permissões mínimas. Se não for especificado, o plug-in lerá informações do primeiro esquema oauth2 na especificação | Nenhum |
Opções de linha de comando
Nenhum
Comentários
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 dá suporte à 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 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"
}
}
A parte relevante é a securitySchemes seção em que você define os escopos do OAuth que a API usa. Em seguida, para cada operação, você inclui os escopos necessários na security seção.
Substituir variáveis em especificações de API
Algumas especificações de API podem conter variáveis nas URLs do servidor. Usar variáveis é uma prática comum para acomodar ambientes diferentes (por exemplo, desenvolvimento, preparo, produção), versões de API ou locatários. Uma 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 dá suporte à substituição de variáveis no conteúdo de especificações de API. Para substituir uma variável, inicie o Proxy de Desenvolvimento pela opção --env e especifique o nome e o valor da variável. Por exemplo, para substituir a tenant variável contoso, use o seguinte comando:
devproxy --env tenant=northwind
Esse 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.