ApiCenterMinimalPermissionsPlugin
Controleert of de app minimale machtigingen gebruikt om API's aan te roepen. Maakt gebruik van API-gegevens van het opgegeven Azure API Center-exemplaar.
Definitie van invoegtoepassingexemplaren
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
Configuratievoorbeeld
{
"apiCenterMinimalPermissionsPlugin": {
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "resource-group-name",
"serviceName": "apic-instance",
"workspaceName": "default"
}
}
Configuratie-eigenschappen
Eigenschappen | Beschrijving | Standaard |
---|---|---|
resourceGroupName |
Naam van de resourcegroep waar het Azure API Center zich bevindt. | Geen |
serviceName |
De naam van het Azure API Center-exemplaar dat dev proxy moet gebruiken om te controleren of de API's die in de app worden gebruikt, zijn geregistreerd. | Geen |
subscriptionId |
Id van het Azure-abonnement waar het Azure API Center-exemplaar zich bevindt. | Geen |
workspace |
De naam van de Azure API Center-werkruimte die moet worden gebruikt. | default |
Opdrachtregelopties
Geen
Opmerkingen
De ApiCenterMinimalPermissionsPlugin
invoegtoepassing controleert of de app minimale machtigingen gebruikt om API's aan te roepen. Voor het controleren van machtigingen gebruikt de invoegtoepassing informatie over API's die zijn geregistreerd in het opgegeven Azure API Center-exemplaar.
Verbinding maken met Azure API Center
Als u verbinding wilt maken met Azure API Center, gebruikt de invoegtoepassing Azure-referenties (in deze volgorde):
- Omgeving
- Workloadidentiteit
- Beheerde identiteit
- Visual Studio
- Visual Studio Code
- Azure-CLI
- Azure PowerShell
- Azure Developer CLI
Als de invoegtoepassing geen toegangstoken voor toegang tot Azure krijgt, wordt er een fout weergegeven en wordt deze uitgeschakeld door Dev Proxy. Meld u aan bij Azure met een van deze hulpprogramma's en start Dev Proxy opnieuw om de ApiCenterMinimalPermissionsPlugin
invoegtoepassing te gebruiken.
Als u Dev Proxy in CI/CD-pijplijnen gebruikt, kunt u waarden doorgeven voor de subscriptionId
, resourceGroupName
en serviceName
workspaceName
eigenschappen als omgevingsvariabelen. Als u omgevingsvariabelen wilt gebruiken, prepeneert u de naam van de waarde met een @
, bijvoorbeeld:
{
"apiCenterMinimalPermissionsPlugin": {
"subscriptionId": "@AZURE_SUBSCRIPTION_ID",
"resourceGroupName": "@AZURE_RESOURCE_GROUP_NAME",
"serviceName": "@AZURE_APIC_INSTANCE_NAME",
"workspaceName": "@AZURE_APIC_WORKSPACE_NAME"
}
}
In dit voorbeeld stelt de ApiCenterMinimalPermissionsPlugin
invoegtoepassing respectievelijk de resourceGroupName
workspaceName
serviceName
waarden van de , AZURE_RESOURCE_GROUP_NAME
en AZURE_APIC_INSTANCE_NAME
omgevingsvariabelen in op de waarden van de AZURE_SUBSCRIPTION_ID
, en AZURE_APIC_WORKSPACE_NAME
omgevingsvariabelen.subscriptionId
API-machtigingen definiƫren
De ApiCenterMinimalPermissionsPlugin
invoegtoepassing ondersteunt het controleren van OAuth-machtigingen voor API's die zijn beveiligd met OAuth die zijn geregistreerd in Azure API Center. De invoegtoepassing berekent de minimale machtigingen die nodig zijn om de API's aan te roepen die in de app worden gebruikt met behulp van de informatie uit API Center. Vervolgens vergelijkt de invoegtoepassing de machtigingen die worden gebruikt in het JSON Web Token-token (JWT) ten opzichte van de minimaal vereiste bereiken die nodig zijn voor de aanvragen die dev proxy heeft vastgelegd.
Als u machtigingen voor uw API's wilt definiƫren, neemt u deze op in de OpenAPI-definitie van uw API. In het volgende voorbeeld ziet u hoe u machtigingen definieert voor een API in een OpenAPI-definitie:
{
"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"
}
}
Het relevante onderdeel is de securitySchemes
sectie waarin u de OAuth-bereiken definieert die door de API worden gebruikt. Vervolgens neemt u voor elke bewerking de vereiste bereiken op in de security
sectie.