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.
API'lere gönderilen JWT belirtecinde kullanılan izinleri ara sunucu tarafından kaydedilen istekler için gereken en düşük kapsamlarla karşılaştırır ve farkı gösterir.
Eklenti örneği tanımı
{
"name": "MinimalPermissionsGuidancePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "minimalPermissionsGuidancePlugin"
}
Yapılandırma örneği
{
"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"
]
}
}
Yapılandırma özellikleri
| Özellik | Açıklama | Varsayılan |
|---|---|---|
apiSpecsFolderPath |
API belirtimlerine sahip klasörün göreli veya mutlak yolu | Hiçbiri |
permissionsToExclude |
Yoksayılıp rapora dahil edilmeyen kapsamlar. | profile openid offline_access email |
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, MinimalPermissionsGuidancePlugin 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, MinimalPermissionsGuidancePlugin 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. Daha sonra eklenti, JSON Web Belirteci (JWT) belirtecinde kullanılan izinleri Dev Proxy'nin kaydettiği istekler için gereken en düşük kapsamlarla karşılaştırır.
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, MinimalPermissionsGuidancePlugin 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.