MinimalPermissionsPlugin
Zkontroluje, jestli aplikace používá k volání rozhraní API minimální oprávnění. Používá informace rozhraní API ze zadané místní složky.
Definice instance modulu plug-in
{
"name": "MinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "minimalPermissionsPlugin"
}
Příklad konfigurace
{
"minimalPermissionsPlugin": {
"apiSpecsFolderPath": "./api-specs"
}
}
Vlastnosti konfigurace
Vlastnost | Popis | Výchozí |
---|---|---|
apiSpecsFolderPath |
Relativní nebo absolutní cesta ke složce se specifikací rozhraní API | Nic |
Možnosti příkazového řádku
Nic
Poznámky
Modul MinimalPermissionsPlugin
plug-in zkontroluje, jestli aplikace používá minimální oprávnění k volání rozhraní API. Ke kontrole oprávnění používá modul plug-in informace o rozhraních API umístěných v zadané místní složce.
Definování oprávnění rozhraní API
Modul MinimalPermissionsPlugin
plug-in podporuje kontrolu oprávnění OAuth pro rozhraní API zabezpečená pomocí OAuth. Modul plug-in vypočítá minimální oprávnění potřebná k volání rozhraní API používaných v aplikaci s využitím informací ze zadaných specifikací rozhraní API. Pak modul plug-in porovná oprávnění použitá v tokenu JSON Web Token (JWT) s minimálními požadovanými obory potřebnými pro požadavky, které dev proxy zaznamenal.
Pokud chcete definovat oprávnění pro vaše rozhraní API, zahrňte je do definice OpenAPI vašeho rozhraní API. Následující příklad ukazuje, jak definovat oprávnění pro rozhraní API v definici 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"
}
}
Relevantní část je securitySchemes
část, ve které definujete obory OAuth, které rozhraní API používá. Pro každou operaci pak do oddílu security
zahrnete požadované obory.