ApiCenterMinimalPermissionsPlugin
Überprüft, ob die App minimale Berechtigungen zum Aufrufen von APIs verwendet. Verwendet API-Informationen aus der angegebenen Azure API Center-Instanz.
Definition der Plug-In-Instanz
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
Konfigurationsbeispiel
{
"apiCenterMinimalPermissionsPlugin": {
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "resource-group-name",
"serviceName": "apic-instance",
"workspaceName": "default"
}
}
Konfigurationseigenschaften
Eigenschaft | BESCHREIBUNG | Standard |
---|---|---|
resourceGroupName |
Name der Ressourcengruppe, in der sich das Azure API Center befindet. | Keine |
serviceName |
Name der Azure API Center-Instanz, die Dev Proxy verwenden soll, um zu überprüfen, ob die in der App verwendeten APIs registriert sind. | Keine |
subscriptionId |
ID des Azure-Abonnements, in dem sich die Azure API Center-Instanz befindet. | Keine |
workspace |
Name des zu verwendenden Azure API Center-Arbeitsbereichs. | default |
Befehlszeilenoptionen
Keine
Hinweise
Das ApiCenterMinimalPermissionsPlugin
Plug-In überprüft, ob die App minimale Berechtigungen zum Aufrufen von APIs verwendet. Um Berechtigungen zu überprüfen, verwendet das Plug-In Informationen zu APIs, die in der angegebenen Azure API Center-Instanz registriert sind.
Herstellen einer Verbindung mit Dem Azure API Center
Um eine Verbindung mit Azure API Center herzustellen, verwendet das Plug-In Azure-Anmeldeinformationen (in dieser Reihenfolge):
- Environment
- Workload-Identität
- Verwaltete Identität
- Visual Studio
- Visual Studio Code
- Azure CLI
- Azure PowerShell
- Azure Developer CLI
Wenn das Plug-In kein Zugriffstoken für den Zugriff auf Azure erhält, wird ein Fehler angezeigt, und Der Dev-Proxy deaktiviert es. Melden Sie sich mit einem dieser Tools bei Azure an, und starten Sie Dev Proxy neu, um das ApiCenterMinimalPermissionsPlugin
Plug-In zu verwenden.
Wenn Sie Dev Proxy in CI/CD-Pipelines verwenden, können Sie Werte für die subscriptionId
Umgebungsvariablen , resourceGroupName
, und serviceName
workspaceName
Eigenschaften übergeben. Um Umgebungsvariablen zu verwenden, stellen Sie dem Namen des Werts ein @
, z. B.:
{
"apiCenterMinimalPermissionsPlugin": {
"subscriptionId": "@AZURE_SUBSCRIPTION_ID",
"resourceGroupName": "@AZURE_RESOURCE_GROUP_NAME",
"serviceName": "@AZURE_APIC_INSTANCE_NAME",
"workspaceName": "@AZURE_APIC_WORKSPACE_NAME"
}
}
In diesem Beispiel legt workspaceName
subscriptionId
serviceName
resourceGroupName
das ApiCenterMinimalPermissionsPlugin
Plug-In die Werte der Variablen , , , und Umgebung auf die Werte der AZURE_SUBSCRIPTION_ID
Variablen , AZURE_RESOURCE_GROUP_NAME
, AZURE_APIC_INSTANCE_NAME
und AZURE_APIC_WORKSPACE_NAME
Umgebung fest.
Definieren von API-Berechtigungen
Das ApiCenterMinimalPermissionsPlugin
Plug-In unterstützt die Überprüfung von OAuth-Berechtigungen für APIs, die mit OAuth gesichert sind, das im Azure API Center registriert ist. Das Plug-In berechnet die minimalen Berechtigungen, die zum Aufrufen der in der App verwendeten APIs mithilfe der Informationen aus dem API Center erforderlich sind. Anschließend vergleicht das Plug-In die Berechtigungen, die im JSON-Webtoken (JWT) verwendet werden, mit den minimal erforderlichen Bereichen, die für die Anforderungen erforderlich sind, die von Dev Proxy aufgezeichnet wurden.
Um Berechtigungen für Ihre APIs zu definieren, fügen Sie sie in die OpenAPI-Definition Ihrer API ein. Das folgende Beispiel zeigt, wie Berechtigungen für eine API in einer OpenAPI-Definition definiert werden:
{
"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"
}
}
Der relevante Teil ist der securitySchemes
Abschnitt, in dem Sie die von der API verwendeten OAuth-Bereiche definieren. Anschließend fügen Sie für jeden Vorgang die erforderlichen Bereiche in den security
Abschnitt ein.