ApiCenterMinimalPermissionsPlugin
Kontrollerar om appen använder minimal behörighet för att anropa API:er. Använder API-information från den angivna Azure API Center-instansen.
Definition av plugin-instans
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
Konfigurationsexempel
{
"apiCenterMinimalPermissionsPlugin": {
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "resource-group-name",
"serviceName": "apic-instance",
"workspaceName": "default"
}
}
Konfigurationsegenskaper
Property | beskrivning | Standard |
---|---|---|
resourceGroupName |
Namnet på resursgruppen där Azure API Center finns. | Ingen |
serviceName |
Namnet på den Azure API Center-instans som Dev Proxy ska använda för att kontrollera om DE API:er som används i appen är registrerade. | Ingen |
subscriptionId |
ID för Azure-prenumerationen där Azure API Center-instansen finns. | Ingen |
workspace |
Namnet på den Azure API Center-arbetsyta som ska användas. | default |
Kommandoradsalternativ
Ingen
Kommentarer
Plugin-programmet ApiCenterMinimalPermissionsPlugin
kontrollerar om appen använder minimal behörighet för att anropa API:er. För att kontrollera behörigheter använder plugin-programmet information om API:er som är registrerade i den angivna Azure API Center-instansen.
Ansluta till Azure API Center
För att ansluta till Azure API Center använder plugin-programmet Azure-autentiseringsuppgifter (i den här ordningen):
- Environment
- Arbetsbelastningsidentitet
- Hanterad identitet
- Visual Studio
- Visual Studio-koden
- Azure CLI
- Azure PowerShell
- Azure Developer CLI
Om plugin-programmet inte hämtar en åtkomsttoken för åtkomst till Azure visas ett fel och Dev Proxy inaktiverar det. Logga in på Azure med något av dessa verktyg och starta om Dev Proxy för att använda plugin-programmet ApiCenterMinimalPermissionsPlugin
.
Om du använder Dev Proxy i CI/CD-pipelines kan du skicka värden för subscriptionId
egenskaperna , resourceGroupName
, serviceName
och workspaceName
som miljövariabler. Om du vill använda miljövariabler förbereder du namnet på värdet med ett @
, till exempel:
{
"apiCenterMinimalPermissionsPlugin": {
"subscriptionId": "@AZURE_SUBSCRIPTION_ID",
"resourceGroupName": "@AZURE_RESOURCE_GROUP_NAME",
"serviceName": "@AZURE_APIC_INSTANCE_NAME",
"workspaceName": "@AZURE_APIC_WORKSPACE_NAME"
}
}
I det här exemplet ApiCenterMinimalPermissionsPlugin
anger plugin-programmet subscriptionId
egenskaperna , resourceGroupName
, serviceName
och workspaceName
till värdena AZURE_SUBSCRIPTION_ID
för miljövariablerna , AZURE_RESOURCE_GROUP_NAME
, AZURE_APIC_INSTANCE_NAME
respektive AZURE_APIC_WORKSPACE_NAME
.
Definiera API-behörigheter
Plugin-programmet ApiCenterMinimalPermissionsPlugin
stöder kontroll av OAuth-behörigheter för API:er som skyddas med OAuth registrerat i Azure API Center. Plugin-programmet beräknar de minimala behörigheter som krävs för att anropa de API:er som används i appen med hjälp av informationen från API Center. Sedan jämför plugin-programmet de behörigheter som används i JSON-webbtoken (JWT) med de minsta nödvändiga omfång som krävs för de begäranden som Dev Proxy registrerade.
Om du vill definiera behörigheter för dina API:er tar du med dem i OpenAPI-definitionen för ditt API. I följande exempel visas hur du definierar behörigheter för ett API i en OpenAPI-definition:
{
"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.19.0"
}
}
Den relevanta delen är avsnittet securitySchemes
där du definierar de OAuth-omfång som API:et använder. För varje åtgärd inkluderar du sedan de nödvändiga omfången i avsnittet security
.