Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Belirtilen API işlemlerini gerçekleştirmek için gereken en düşük izinleri algılar. Belirtilen yerel klasörden API bilgilerini kullanır.
Eklenti örneği tanımı
{
"name": "MinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "minimalPermissionsPlugin"
}
Yapılandırma örneği
{
"minimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/minimalpermissionsplugin.schema.json",
"apiSpecsFolderPath": "./api-specs"
}
}
Yapılandırma özellikleri
| Özellik | Açıklama | Varsayılan |
|---|---|---|
apiSpecsFolderPath |
API belirtimlerine sahip klasörün göreli veya mutlak yolu | Hiçbiri |
schemeName |
En düşük izinleri belirlemek için kullanılan güvenlik şeması tanımının adı. Belirtilmezse eklenti, belirtimdeki ilk oauth2 düzenindeki bilgileri okur | Hiçbiri |
Komut satırı seçenekleri
Hiçbiri
Açıklamalar
Eklenti, MinimalPermissionsPlugin uygulamanın API'leri çağırmak için en düşük izinleri kullanıp kullanmadiğini denetler. eklenti, izinleri denetlemek için belirtilen yerel klasörde bulunan API'ler hakkındaki bilgileri kullanır.
API izinlerini tanımlama
Eklenti, MinimalPermissionsPlugin OAuth ile güvenliği sağlanan API'ler için OAuth izinlerini denetlemeyi destekler. Eklenti, sağlanan API belirtimlerindeki bilgileri kullanarak uygulamada kullanılan API'leri çağırmak için gereken en düşük izinleri hesaplar.
API'lerinizin izinlerini tanımlamak için bunları API'nizin OpenAPI tanımına ekleyin. Aşağıdaki örnekte, OpenAPI tanımında BIR API için izinlerin nasıl tanımlanacağı gösterilmektedir:
{
"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"
}
}
İlgili bölüm, API'nin securitySchemes kullandığı OAuth kapsamlarını tanımladığınız bölümdür. Ardından, her işlem için bölümüne gerekli kapsamları security eklersiniz.
API belirtimlerindeki değişkenleri değiştirme
Bazı API belirtimleri sunucu URL'lerinde değişkenler içerebilir. Değişkenlerin kullanılması, farklı ortamları (geliştirme, hazırlama, üretim gibi), API sürümlerini veya kiracıları barındırmak için yaygın bir uygulamadır. Değişken içeren bir URL şöyle görünü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
Eklenti, MinimalPermissionsPlugin API belirtim içeriğindeki değişkenlerin değiştirilmesini destekler. Bir değişkeni değiştirmek için Dev Proxy'yi --env seçeneğiyle başlatın ve değişken adını ve değerini belirtin. Örneğin, değişkenini tenant ile contosodeğiştirmek için aşağıdaki komutu kullanın:
devproxy --env tenant=northwind
Bu komut, API belirtimlerindeki değişkenini değeriyle tenantdeğiştirirnorthwind. Eklenti, uygulamanın API'leri çağırmak için en düşük izinleri kullanıp kullanmadiğini denetlemek için değiştirilen URL'yi kullanır.