Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mendeteksi izin minimal yang diperlukan untuk melakukan operasi API yang ditentukan. Menggunakan informasi API dari folder lokal yang ditentukan.
Contoh konfigurasi
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "MinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "minimalPermissionsPlugin"
}
],
"minimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/minimalpermissionsplugin.schema.json",
"apiSpecsFolderPath": "./api-specs"
}
}
Properti konfigurasi
| Properti | Deskripsi | Bawaan |
|---|---|---|
apiSpecsFolderPath |
Jalur relatif atau absolut ke folder dengan spesifikasi API | Tidak |
schemeName |
Nama definisi skema keamanan yang digunakan untuk menentukan izin minimal. Jika tidak ditentukan, plugin membaca informasi dari skema oauth2 pertama dalam spesifikasi | Tidak |
Opsi baris Perintah
Tidak
Keterangan
Plugin MinimalPermissionsPlugin memeriksa apakah aplikasi menggunakan izin minimal untuk memanggil API. Untuk memeriksa izin, plugin menggunakan informasi tentang API yang terletak di folder lokal yang ditentukan.
Menentukan izin API
Plugin MinimalPermissionsPlugin mendukung pemeriksaan izin OAuth untuk API yang diamankan dengan OAuth. Plugin menghitung izin minimal yang diperlukan untuk memanggil API yang digunakan dalam aplikasi menggunakan informasi dari spesifikasi API yang disediakan.
Untuk menentukan izin untuk API Anda, sertakan dalam definisi OpenAPI API Anda. Contoh berikut menunjukkan cara menentukan izin untuk API dalam definisi 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",
"properties": {}
}
}
},
"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"
}
}
Bagian yang relevan adalah bagian securitySchemes , di mana Anda menentukan cakupan OAuth yang digunakan API. Kemudian, untuk setiap operasi, Anda menyertakan cakupan yang diperlukan di bagian .security
Mengganti variabel dalam spesifikasi API
Beberapa spesifikasi API mungkin berisi variabel dalam URL server. Menggunakan variabel adalah praktik umum untuk mengakomodasi lingkungan yang berbeda (misalnya, pengembangan, penahapan, produksi), versi API, atau penyewa. URL dengan variabel terlihat seperti ini:
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 MinimalPermissionsPlugin mendukung mengganti variabel dalam konten spesifikasi API. Untuk mengganti variabel, mulai Proksi Dev dengan --env opsi dan tentukan nama dan nilai variabel. Misalnya, untuk mengganti tenant variabel dengan contoso, gunakan perintah berikut:
devproxy --env tenant=northwind
Perintah ini menggantikan tenant variabel dalam spesifikasi API dengan nilai northwind. Plugin menggunakan URL yang diganti untuk memeriksa apakah aplikasi menggunakan izin minimal untuk memanggil API.