Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ü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/DevProxy.Plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
Konfigurationsbeispiel
{
"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"
}
}
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 |
schemeName |
Name der Sicherheitsschemadefinition, die verwendet wird, um minimale Berechtigungen zu bestimmen. Wenn nicht angegeben, liest das Plug-In Informationen aus dem ersten oauth2-Schema in der Spezifikation. | Keine |
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):
- Umwelt
- Workload-Identität
- Verwaltete Identität
- Visual Studio
- Visual Studio Code
- Azure-Befehlszeilenschnittstelle (Azure CLI)
- Azure PowerShell
- Azure Developer CLI (Befehlszeilenschnittstelle für Entwickler)
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 subscriptionIdUmgebungsvariablen , resourceGroupName, und serviceNameworkspaceName Eigenschaften übergeben. Um Umgebungsvariablen zu verwenden, stellen Sie dem Namen des Werts ein @, z. B.:
{
"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 diesem Beispiel legt ApiCenterMinimalPermissionsPluginsubscriptionIdresourceGroupNameserviceNamedas workspaceName Plug-In die Werte der Variablen , , , und Umgebung auf die Werte der AZURE_SUBSCRIPTION_IDVariablen , AZURE_RESOURCE_GROUP_NAME, AZURE_APIC_INSTANCE_NAMEund 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.27.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.