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.
Memeriksa apakah aplikasi menggunakan izin minimal untuk memanggil API. Menggunakan informasi API dari instans Azure API Center yang ditentukan.
Contoh konfigurasi
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
],
"apiCenterMinimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "resource-group-name",
"serviceName": "apic-instance",
"workspace": "default"
}
}
Properti konfigurasi
| Properti | Deskripsi | Bawaan |
|---|---|---|
resourceGroupName |
Nama grup sumber daya tempat Azure API Center berada. | Tidak |
serviceName |
Nama instans Azure API Center yang harus digunakan Dev Proxy untuk memeriksa apakah API yang digunakan dalam aplikasi terdaftar. | Tidak |
subscriptionId |
ID langganan Azure tempat instans Azure API Center berada. | Tidak |
workspace |
Nama ruang kerja Azure API Center yang akan digunakan. | default |
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 ApiCenterMinimalPermissionsPlugin memeriksa apakah aplikasi menggunakan izin minimal untuk memanggil API. Untuk memeriksa izin, plugin menggunakan informasi tentang API yang terdaftar dalam instans Azure API Center yang ditentukan.
Menyambungkan ke Azure API Center
Untuk menyambungkan ke Azure API Center, plugin menggunakan kredensial Azure (dalam urutan ini):
- Lingkungan
- Identitas Beban Kerja
- Identitas Terkelola
- Visual Studio
- Visual Studio Code
- Azure CLI (antarmuka baris perintah Azure)
- Azure PowerShell
- Azure Developer CLI
Jika plugin gagal mendapatkan token akses untuk mengakses Azure, plugin menunjukkan kesalahan dan Proksi Dev menonaktifkannya. Masuk ke Azure menggunakan salah satu alat ini, dan mulai ulang Dev Proxy untuk menggunakan ApiCenterMinimalPermissionsPlugin plugin.
Jika Anda menggunakan Proksi Dev dalam alur CI/CD, Anda dapat meneruskan nilai untuk subscriptionIdproperti , , resourceGroupNameserviceName, dan workspace sebagai variabel lingkungan. Untuk menggunakan variabel lingkungan, tambahkan nama nilai dengan @, misalnya:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
],
"apiCenterMinimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "@AZURE_SUBSCRIPTION_ID",
"resourceGroupName": "@AZURE_RESOURCE_GROUP_NAME",
"serviceName": "@AZURE_APIC_INSTANCE_NAME",
"workspace": "@AZURE_APIC_WORKSPACE_NAME"
}
}
Dalam contoh ini, ApiCenterMinimalPermissionsPlugin plugin menetapkan subscriptionIdproperti , , resourceGroupNameserviceName, dan workspace ke nilai AZURE_SUBSCRIPTION_IDvariabel lingkungan , , AZURE_RESOURCE_GROUP_NAMEAZURE_APIC_INSTANCE_NAME, dan AZURE_APIC_WORKSPACE_NAME masing-masing.
Menentukan izin API
Plugin ApiCenterMinimalPermissionsPlugin mendukung pemeriksaan izin OAuth untuk API yang diamankan dengan OAuth yang terdaftar di Azure API Center. Plugin menghitung izin minimal yang diperlukan untuk memanggil API yang digunakan dalam aplikasi menggunakan informasi dari API Center. Kemudian, plugin membandingkan izin yang digunakan dalam token JSON Web Token (JWT) dengan cakupan minimum yang diperlukan untuk permintaan yang direkam Proksi Dev.
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.27.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