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.
Sekilas
Tujuan: Memverifikasi panggilan API menggunakan izin minimal melalui Azure API Center
Waktu: 20 menit
Plugins:ApiCenterMinimalPermissionsPlugin
Prasyarat:Menyiapkan Dev Proxy, Azure API Center
Saat membuat aplikasi, Anda mungkin berintegrasi dengan beberapa API dan operasi. Untuk memastikan bahwa aplikasi Anda aman dan mengikuti prinsip hak istimewa paling sedikit, Anda harus memeriksa apakah aplikasi Anda memanggil API dengan izin minimal. Dengan menggunakan izin minimal, Anda mengurangi risiko akses tidak sah ke data dan sumber daya Anda.
Sulitnya memeriksa apakah aplikasi Anda memanggil API dengan izin minimal adalah bahwa setiap kali Mengintegrasikan operasi baru, Anda perlu mengevaluasi serangkaian izin yang Anda gunakan di aplikasi Anda. Melacak semua operasi dan izin secara manual memakan waktu dan rawan kesalahan. Menggunakan Dev Proxy dan Azure API Center, Anda dapat mengotomatiskan pemeriksaan apakah aplikasi Anda memanggil API dengan izin minimal.
Untuk memeriksa apakah aplikasi Anda memanggil API menggunakan izin minimal, Anda dapat menggunakan ApiCenterMinimalPermissionsPlugin plugin. Plugin ini membandingkan izin yang digunakan aplikasi Anda dengan izin yang ditentukan di Azure API Center dan melaporkan izin yang berlebihan. Ini juga merekomendasikan serangkaian izin minimal yang harus Anda gunakan.
Sebelum memulai
Untuk memeriksa apakah aplikasi Anda memanggil API menggunakan izin minimal, Anda harus memiliki instans Azure API Center dengan informasi tentang API yang Anda gunakan di organisasi Anda.
Tips
Unduh prasetel untuk artikel panduan ini dengan menjalankan perintah di prompt devproxy config get demo-apicenter-minimalpermissions.
Membuat instans Azure API Center
Sebelum memulai, buat instans Azure API Center dan daftarkan API yang Anda gunakan di organisasi Anda. Untuk setiap API, unggah file spesifikasi OpenAPI yang menjelaskan operasi dan izin API.
ApiCenterMinimalPermissionsPlugin menggunakan informasi ini untuk memeriksa apakah aplikasi Anda memanggil API-API menggunakan izin minimal.
Salin informasi API Center
Dari halaman Gambaran Umum instans Azure API Center, salin nama instans API Center, nama grup sumber daya, dan ID langganan. Anda memerlukan informasi ini untuk mengonfigurasi ApiCenterMinimalPermissionsPlugin sehingga dapat terhubung ke instans Azure API Center Anda.
Mengonfigurasi Proksi Dev
Untuk memeriksa apakah aplikasi Anda memanggil API menggunakan izin minimal, Anda perlu mengaktifkan ApiCenterMinimalPermissionsPlugin di dalam file konfigurasi Proksi Dev. Untuk membuat laporan izin yang digunakan aplikasi Anda, tambahkan reporter.
Aktifkan ApiCenterMinimalPermissionsPlugin
devproxyrc.json Dalam file, tambahkan konfigurasi berikut:
File: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
"plugins": [
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
],
"urlsToWatch": [
"https://api.northwind.com/*"
],
"apiCenterMinimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "demo",
"serviceName": "contoso-api-center",
"workspaceName": "default"
}
}
Di properti subscriptionId, resourceGroupName, dan serviceName, berikan informasi tentang instans Azure API Center Anda.
urlsToWatch Di properti , tentukan URL yang digunakan aplikasi Anda.
Tips
Gunakan ekstensi Dev Proxy Toolkit Visual Studio Code untuk mengelola konfigurasi Dev Proxy dengan mudah.
Menambahkan wartawan
ApiCenterMinimalPermissionsPlugin menghasilkan laporan tentang API yang digunakan oleh aplikasi Anda, dan izin minimal yang diperlukan untuk memanggilnya. Untuk melihat laporan ini, tambahkan reporter ke file konfigurasi Dev Proxy Anda. Dev Proxy menawarkan beberapa wartawan. Dalam contoh ini, Anda menggunakan pelapor teks biasa.
Perbarui file Anda devproxyrc.json dengan referensi ke reporter teks biasa:
File: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
"plugins": [
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
},
{
"name": "PlainTextReporter",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
],
"urlsToWatch": [
"https://api.northwind.com/*"
],
"apiCenterMinimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "demo",
"serviceName": "contoso-api-center",
"workspaceName": "default"
}
}
Periksa apakah aplikasi Anda memanggil API menggunakan izin minimal
Untuk memeriksa apakah aplikasi Anda memanggil API menggunakan izin minimal, Anda perlu menyambungkan ke langganan Azure, menjalankan Proksi Dev, dan membiarkannya mencegat permintaan API dari aplikasi Anda. Dev Proxy kemudian membandingkan informasi tentang permintaan API dengan informasi dari Azure API Center dan laporan tentang izin minimal.
Menyambungkan ke langganan Azure Anda
Dev Proxy menggunakan informasi dari Azure API Center untuk menentukan apakah aplikasi Anda memanggil API menggunakan izin minimal. Untuk mendapatkan informasi ini, diperlukan koneksi ke langganan Azure Anda. Anda dapat menyambungkan ke langganan Azure Anda dengan beberapa cara.
Jalankan Proksi Dev
Setelah menyambungkan ke langganan Azure Anda, mulai Dev Proxy. Jika Anda memulai Proksi Dev dari folder yang sama tempat file Anda devproxyrc.json berada, file tersebut secara otomatis memuat konfigurasi. Jika tidak, tentukan jalur ke file konfigurasi menggunakan --config-file opsi .
Saat Dev Proxy dimulai, Dev Proxy memeriksa apakah proksi tersebut dapat tersambung ke langganan Azure Anda. Saat koneksi berhasil, Anda akan melihat pesan yang mirip dengan:
info Plugin ApiCenterMinimalPermissionsPlugin connecting to Azure...
info Listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy
Tekan r untuk mulai merekam permintaan API dari aplikasi Anda.
Menggunakan aplikasi Anda
Gunakan aplikasi seperti yang biasa Anda lakukan. Dalam tutorial ini, Anda dapat menggunakan permintaan berikut dengan token akses simulasi dengan customer.readwrite izin:
@readwriteToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJzY3AiOlsiY3VzdG9tZXIucmVhZHdyaXRlIl19.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
GET https://api.northwind.com/customers/ALFKI
Authorization: Bearer {{readwriteToken}}
Dev Proxy mencegat permintaan API dan menyimpan informasi tentang mereka dalam memori. Di baris perintah tempat Proksi Dev berjalan, Anda akan melihat informasi tentang permintaan API yang dilakukan aplikasi Anda.
info Plugin ApiCenterMinimalPermissionsPlugin connecting to Azure...
info Listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy
◉ Recording...
req ╭ GET https://api.northwind.com/customers/ALFKI
mock ╰ 200 /{customer-id}
Periksa izin
Hentikan perekaman dengan menekan s. Dev Proxy terhubung ke instans API Center dan membandingkan informasi tentang permintaan dengan informasi dari API Center.
info Plugin ApiCenterMinimalPermissionsPlugin connecting to Azure...
info Listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy
◉ Recording...
req ╭ GET https://api.northwind.com/customers/ALFKI
mock ╰ 200 /{customer-id}
○ Stopped recording
info Checking if recorded API requests use minimal permissions as defined in API Center...
info Loading APIs from API Center...
info Loading API definitions from API Center...
info Checking minimal permissions for API https://api.northwind.com...
info Analyzing recorded requests...
warn Calling API Northwind with excessive permissions: customer.readwrite. Minimal permissions are: customer.read
info DONE
Saat Dev Proxy menyelesaikan analisisnya, Dev Proxy membuat laporan dalam file bernama ApiCenterMinimalPermissionsPlugin_PlainTextReporter.txt dengan konten berikut:
Azure API Center minimal permissions report
APIS
Northwind
x Called using excessive permissions
Permissions
- Minimal permissions: customer.read
- Permissions on the token: customer.readwrite
- Excessive permissions: customer.readwrite
Requests
- GET https://api.northwind.com/customers/ALFKI
UNMATCHED REQUESTS
No unmatched requests found.
ERRORS
No errors occurred.
Ringkasan
ApiCenterMinimalPermissionsPluginDengan menggunakan , Anda dapat memeriksa apakah aplikasi Anda memanggil API menggunakan izin minimal. Plugin membandingkan informasi tentang permintaan API dari aplikasi Anda dengan informasi dari Azure API Center dan laporan tentang izin yang berlebihan. Ini juga merekomendasikan izin minimal yang diperlukan untuk memanggil API yang Anda gunakan di aplikasi Anda. Memverifikasi bahwa aplikasi Anda memanggil API menggunakan izin minimal, membantu Anda membuat aplikasi Anda lebih aman. Anda dapat menjalankan pemeriksaan ini secara manual atau berintegrasi dengan alur CI/CD Anda untuk memastikan bahwa aplikasi Anda memanggil API menggunakan izin minimal sebelum merilisnya ke produksi.