Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Controlla se l'app usa autorizzazioni minime per chiamare le API. Usa le informazioni sull'API dall'istanza del Centro API di Azure specificata.
Definizione dell'istanza del plug-in
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
Esempio di configurazione
{
"apiCenterMinimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "resource-group-name",
"serviceName": "apic-instance",
"workspaceName": "default"
}
}
Proprietà di configurazione
| Proprietà | Descrizione | Predefinito |
|---|---|---|
resourceGroupName |
Nome del gruppo di risorse in cui si trova il Centro API di Azure. | Nessuno |
serviceName |
Nome dell'istanza del Centro API di Azure che Dev Proxy deve usare per verificare se le API usate nell'app sono registrate. | Nessuno |
subscriptionId |
ID della sottoscrizione di Azure in cui si trova l'istanza del Centro API di Azure. | Nessuno |
workspace |
Nome dell'area di lavoro del Centro API di Azure da usare. | default |
schemeName |
Nome della definizione dello schema di sicurezza usata per determinare le autorizzazioni minime. Se non specificato, il plug-in legge le informazioni dal primo schema oauth2 nella specifica | Nessuno |
Opzioni della riga di comando
Nessuno
Osservazioni:
Il ApiCenterMinimalPermissionsPlugin plug-in controlla se l'app usa autorizzazioni minime per chiamare le API. Per controllare le autorizzazioni, il plug-in usa informazioni sulle API registrate nell'istanza del Centro API di Azure specificata.
Connettersi al Centro API di Azure
Per connettersi al Centro API di Azure, il plug-in usa le credenziali di Azure (in questo ordine):
- Ambiente
- Identità del carico di lavoro
- Identità gestita
- Visual Studio
- Visual Studio Code
- Interfaccia della riga di comando di Azure
- Azure PowerShell
- CLI per sviluppatori di Azure
Se il plug-in non riesce a ottenere un token di accesso ad Azure, viene visualizzato un errore e Dev Proxy lo disabilita. Accedere ad Azure usando uno di questi strumenti e riavviare Dev Proxy per usare il plug-in ApiCenterMinimalPermissionsPlugin .
Se si usa Dev Proxy nelle pipeline CI/CD, è possibile passare i valori per le subscriptionIdproprietà , resourceGroupName, serviceNamee workspaceName come variabili di ambiente. Per usare le variabili di ambiente, anteporre il nome del valore con , @ad esempio:
{
"apiCenterMinimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "@AZURE_SUBSCRIPTION_ID",
"resourceGroupName": "@AZURE_RESOURCE_GROUP_NAME",
"serviceName": "@AZURE_APIC_INSTANCE_NAME",
"workspaceName": "@AZURE_APIC_WORKSPACE_NAME"
}
}
In questo esempio, il ApiCenterMinimalPermissionsPlugin plug-in imposta subscriptionIdrispettivamente le proprietà , resourceGroupNameserviceName, e workspaceName sui valori delle variabili di AZURE_SUBSCRIPTION_IDambiente , AZURE_RESOURCE_GROUP_NAMEAZURE_APIC_INSTANCE_NAME, e AZURE_APIC_WORKSPACE_NAME .
Definire le autorizzazioni API
Il ApiCenterMinimalPermissionsPlugin plug-in supporta il controllo delle autorizzazioni OAuth per le API protette con OAuth registrato nel Centro API di Azure. Il plug-in calcola le autorizzazioni minime necessarie per chiamare le API usate nell'app usando le informazioni del Centro API. Il plug-in confronta quindi le autorizzazioni usate nel token JWT (JSON Web Token) con gli ambiti minimi necessari per le richieste registrate da Dev Proxy.
Per definire le autorizzazioni per le API, includerle nella definizione OpenAPI dell'API. L'esempio seguente illustra come definire le autorizzazioni per un'API in una definizione 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.27.0"
}
}
La parte pertinente è la securitySchemes sezione in cui si definiscono gli ambiti OAuth usati dall'API. Quindi, per ogni operazione, includere gli ambiti necessari nella security sezione .