Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Jämför de behörigheter som används i JWT-token som skickas till API:er med de minsta nödvändiga omfång som krävs för begäranden som proxyn har registrerat och visar skillnaden.
Definition av plugin-instans
{
"name": "MinimalPermissionsGuidancePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "minimalPermissionsGuidancePlugin"
}
Konfigurationsexempel
{
"minimalPermissionsGuidancePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/minimalpermissionsguidanceplugin.schema.json",
"apiSpecsFolderPath": "./api-specs",
"permissionsToExclude": [
"profile",
"openid",
"offline_access",
"email"
]
}
}
Konfigurationsegenskaper
| Fastighet | beskrivning | Standard |
|---|---|---|
apiSpecsFolderPath |
Relativ eller absolut sökväg till mappen med API-specifikationer | Ingen |
permissionsToExclude |
De omfång som ska ignoreras och inte inkluderas i rapporten. | profile openid offline_access email |
schemeName |
Namnet på den definition av säkerhetsschema som används för att fastställa minimala behörigheter. Om det inte anges läser plugin-programmet information från det första oauth2-schemat i specifikationen | Ingen |
Kommandoradsalternativ
Ingen
Anmärkningar
Plugin-programmet MinimalPermissionsGuidancePlugin 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 finns i den angivna lokala mappen.
Definiera API-behörigheter
Plugin-programmet MinimalPermissionsGuidancePlugin stöder kontroll av OAuth-behörigheter för API:er som skyddas med OAuth. 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 de angivna API-specifikationerna. 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.22.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 .
Ersätt variabler i API-specifikationer
Vissa API-specifikationer kan innehålla variabler i server-URL:er. Att använda variabler är en vanlig metod för att hantera olika miljöer (till exempel utveckling, mellanlagring, produktion), API-versioner eller klientorganisationer. En URL med en variabel ser ut så här:
openapi: 3.0.4
info:
title: SharePoint REST API
description: SharePoint REST API
version: v1.0
servers:
- url: https://{tenant}.sharepoint.com
variables:
tenant:
default: contoso
Plugin-programmet MinimalPermissionsGuidancePlugin stöder ersättning av variabler i API-specifikationernas innehåll. Om du vill ersätta en variabel startar du Dev Proxy med --env alternativet och anger variabelns namn och värde. Om du till exempel vill ersätta variabeln tenant med contosoanvänder du följande kommando:
devproxy --env tenant=northwind
Det här kommandot ersätter variabeln tenant i API-specifikationerna med värdet northwind. Plugin-programmet använder den ersatta URL:en för att kontrollera om appen använder minimala behörigheter för att anropa API:er.