Authorization · Yetkilendirme
.NET kaynak policy’si ve yetki test matrisi
Authorize attribute’undan ownership handler ve regresyon testine.
Kavramı anlayalım
Authorize attribute endpoint’in genel gereksinimini ifade eder; kaydın sahibi veya tenant’ı gibi veri yüklenince bilinen kurallar için tek başına yeterli olmayabilir. IAuthorizationService ile kaynağı yükledikten sonra operation policy’si değerlendirilebilir. Veriyi mümkün olduğunca izin kapsamıyla yükle; yanlış kullanıcıya ait veriyi önce response’a yazıp sonra kontrol etme.
Handler doğrulanmış principal ile resource özelliklerini karşılaştırır. Client’tan ownerId alıp eşleştirme yapma; stored owner ve trusted subject kullanılır. Gereksinim başarısızsa Challenge veya Forbid ayrımı seçilen scheme’e göre yapılır. Tutarlı concealment policy varsa 404 üretilebilir. Bu örnek bir akış haritasıdır; tam handler kaydı, veri modeli ve null handling mevcut uygulamada tamamlanır.
Test matrisi: anonymous, invalid token, valid wrong owner, same owner, wrong tenant, revoked permission, read allowed/write denied. Liste endpoint’i ve dosya yolu da matrise dahil olsun. Denetim cache’leniyorsa key’e principal/tenant/operation sürümü gibi gereken bağlamları koy ve iptal davranışını belirle. Policy’nin okunabilir olması sonraki endpointlerin yanlış kopyalanmasını azaltır.
.NET API’de kaynak bazlı yetkiyi sürdürülebilir testlerle kurarken.
Tek Admin testi geçince bütün authorization’ın doğru olduğunu sanmak.
Aynı konu. Üç farklı derinlik.
[Authorize]
// Load resource within the verified access scope.Attribute genel kapıdır; kaynak kontrolü ayrıca gerekir.
Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.
Önce kendin dene.
Detay endpoint’i korundu ama listede bütün tenant verisi var. Test tamam mı?
Çözümü ve açıklamasını göster
No: test list scoping and all alternate resource paths.Hayır. Listeleme de kaynak yetkisinin parçasıdır.