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.
Bir bakışta
Hedef: API çağrılarının Azure API Center aracılığıyla minimum izinler kullandığını doğrulama
Süre: 20 dakika
Eklentiler:ApiCenterMinimalPermissionsPlugin
Önkoşullar:Geliştirme Proxy'sini ayarlama, Azure API Center
Uygulamanızı oluştururken büyük olasılıkla çeşitli API'ler ve işlemler ile tümleştirebilirsiniz. Uygulamanızın güvenli olduğundan ve en az ayrıcalık ilkesine uydığından emin olmak için uygulamanızın API'leri en az izinle çağırıp çağırmadığını denetlemeniz gerekir. En düşük izinleri kullanarak verilerinize ve kaynaklarınıza yetkisiz erişim riskini azaltırsınız.
Uygulamanızın API'leri en az izinle çağırıp çağırmadığını denetlemenin zor yanı, her yeni işlemi tümleştirdiğinizde, uygulamanızda kullandığınız izin kümesini değerlendirmeniz gerektiğidir. Tüm işlemleri ve izinleri el ile izlemek zaman alır ve hataya açıktır. Dev Proxy ve Azure API Center'ı kullanarak uygulamanızın API'leri en az izinle çağırıp çağırmaması denetimini otomatikleştirebilirsiniz.
Uygulamanızın en düşük izinleri kullanarak API'leri çağırıp çağırmadiğini denetlemek için eklentiyi ApiCenterMinimalPermissionsPlugin kullanabilirsiniz. Bu eklenti, uygulamanızın kullandığı izinleri Azure API Center'da tanımlanan izinlerle karşılaştırır ve aşırı izinler hakkında raporlar. Ayrıca, kullanmanız gereken en az izin kümesini de önerir.
Başlamadan önce
Uygulamanızın en düşük izinleri kullanarak API'leri çağırıp çağırmadığını denetlemek için, kuruluşunuzda kullandığınız API'ler hakkında bilgi içeren bir Azure API Center örneğine sahip olmanız gerekir.
İpucu
Komut isteminde devproxy config get demo-apicenter-minimalpermissionskomutunu çalıştırarak bu nasıl yapılır makalesinin ön ayarını indirin.
Azure API Center örneği oluşturma
Başlamadan önce bir Azure API Center örneği oluşturun ve kuruluşunuzda kullandığınız API'leri kaydedin. Her API için, API işlemlerini ve izinlerini açıklayan OpenAPI belirtim dosyasını karşıya yükleyin.
, ApiCenterMinimalPermissionsPlugin uygulamanızın en düşük izinleri kullanarak API'leri çağırıp çağırmadiğini denetlemek için bu bilgileri kullanır.
API Center bilgilerini kopyalama
Azure API Center örneğine Genel Bakış sayfasından API Center örneğinin adını, kaynak grubunun adını ve abonelik kimliğini kopyalayın.
ApiCenterMinimalPermissionsPlugin öğesini, Azure API Center örneğine bağlanabilmesi için yapılandırmak amacıyla bu bilgilere ihtiyacınız vardır.
Geliştirme Ara Sunucusunu Yapılandırma
Uygulamanızın en düşük izinleri kullanarak API'leri çağırıp çağırmadiğini denetlemek için Geliştirme Ara Sunucusu yapılandırma dosyasında öğesini etkinleştirmeniz ApiCenterMinimalPermissionsPlugin gerekir. Uygulamanızın kullandığı izinler raporu oluşturmak için bir muhabir ekleyin.
ApiCenterMinimalPermissionsPlugin öğesini etkinleştir
devproxyrc.json dosyasına aşağıdaki yapılandırmayı ekleyin:
Dosya: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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/v2.3.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "demo",
"serviceName": "contoso-api-center",
"workspaceName": "default"
}
}
subscriptionId, resourceGroupName ve serviceName özelliklerinde Azure API Center örneğinizle ilgili bilgileri sağlayın.
özelliğinde urlsToWatch , uygulamanızın kullandığı URL'leri belirtin.
İpucu
Dev Proxy yapılandırmasını kolayca yönetmek için Dev Proxy Toolkit Visual Studio Code uzantısını kullanın.
Muhabir ekleme
, ApiCenterMinimalPermissionsPlugin uygulamanızın kullandığı API'lerin bir raporunu ve bunları çağırmak için gereken en düşük izinleri oluşturur. Bu raporu görüntülemek için Dev Proxy yapılandırma dosyanıza bir muhabir ekleyin. Dev Proxy çeşitli raporlama araçları sunar. Bu örnekte düz metin muhabirini kullanırsınız.
Dosyanızı devproxyrc.json düz metin raporlayıcıya bir referansla güncelleyin.
Dosya: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.3.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/v2.3.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "demo",
"serviceName": "contoso-api-center",
"workspaceName": "default"
}
}
Uygulamanızın en düşük izinleri kullanarak API'leri çağırıp çağırmadiğini denetleyin
Uygulamanızın en düşük izinleri kullanarak API'leri çağırıp çağırmayacağını denetlemek için Azure aboneliğinize bağlanmanız, Dev Proxy'yi çalıştırmanız ve uygulamanızdan gelen API isteklerini kesmesine izin vermeniz gerekir. Ardından Dev Proxy, API istekleri hakkındaki bilgileri Azure API Center'dan alınan bilgilerle karşılaştırır ve en düşük izinlerle ilgili raporlar.
Azure aboneliğinize bağlanma
Dev Proxy, uygulamanızın en düşük izinleri kullanarak API'leri çağırıp çağırmadığını belirlemek için Azure API Center'daki bilgileri kullanır. Bu bilgileri almak için Azure aboneliğinize bir bağlantı gerekir. Azure aboneliğinize çeşitli yollarla bağlanabilirsiniz.
Geliştirme Proxy'si çalıştırma
Azure aboneliğinize bağlandıktan sonra Dev Proxy'yi başlatın. Dev Proxy'yi dosyanızın devproxyrc.json bulunduğu klasörden başlatırsanız, yapılandırma otomatik olarak yüklenir. Aksi takdirde, --config-file seçeneğini kullanarak yapılandırma dosyasının yolunu belirtin.
Geliştirme Proxy'si başlatıldığında Azure aboneliğinize bağlanıp bağlanamayacağını denetler. Bağlantı başarılı olduğunda şuna benzer bir ileti görürsünüz:
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
Uygulamanızdan API isteklerini kaydetmeye başlamak için r tuşuna basın.
Uygulamanızı kullanma
Uygulamanızı normalde yaptığınız gibi kullanın. Bu öğreticide, customer.readwrite izni içeren simüle edilmiş bir erişim belirteci ile aşağıdaki isteği kullanabilirsiniz.
@readwriteToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJzY3AiOlsiY3VzdG9tZXIucmVhZHdyaXRlIl19.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
GET https://api.northwind.com/customers/ALFKI
Authorization: Bearer {{readwriteToken}}
Dev Proxy, API isteklerini durdurur ve bunlar hakkındaki bilgileri bellekte depolar. Dev Proxy'nin çalıştığı komut satırında, uygulamanızın yaptığı API istekleri hakkındaki bilgileri görmeniz gerekir.
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}
İzinleri denetleme
s tuşuna basarak kaydı durdurun. Geliştirme Proxy'si API Center örneğine bağlanır ve istekler hakkındaki bilgileri API Center'dan alınan bilgilerle karşılaştırır.
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
Geliştirme Proxy'si çözümlemesini tamamladığında, adlı ApiCenterMinimalPermissionsPlugin_PlainTextReporter.txt dosyada aşağıdaki içeriklere sahip bir rapor oluşturur:
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.
Özet
kullanarak, uygulamanızın ApiCenterMinimalPermissionsPluginen düşük izinleri kullanarak API'leri çağırıp çağırmadiğini de kontrol edebilirsiniz. Eklenti, uygulamanızdan gelen API istekleri hakkındaki bilgileri Azure API Center'dan alınan bilgilerle karşılaştırır ve aşırı izinler hakkında raporlar. Ayrıca, uygulamanızda kullandığınız API'leri çağırmak için gereken en düşük izinleri de önerir. Uygulamanızın en düşük izinleri kullanarak API'leri çağırdığını doğrulamak, uygulamanızı daha güvenli hale getirmenize yardımcı olur. Uygulamanızı üretim ortamına bırakmadan önce en düşük izinleri kullanarak API'leri çağırdığından emin olmak için bu denetimi el ile çalıştırabilir veya CI/CD işlem hattınızla tümleştirebilirsiniz.