Authorization · Yetkilendirme
Authorization: kim, hangi kaynağa, ne yapabilir?
İşlem, kaynak, bağlam ve deny-by-default yaklaşımı.
Kavramı anlayalım
Authorization doğrulanmış veya anonim öznenin bir işlem yapma iznini değerlendirir. “Giriş yaptı mı?” gerekli olabilir ama yeterli değildir. Kullanıcı raporu okuyabilir, değiştiremeyebilir; kendi CV’sini görebilir, başkasınınkini göremez. İzin kararı özne, kaynak, işlem ve bağlamdan oluşur. Sisteme yeni endpoint eklenince varsayılanın yanlışlıkla açık olmaması için default-deny yaklaşımı önemlidir.
Kaynak yetkisi API’de ve veri sorgusunda uygulanır. Navbar’da admin linkini gizlemek UX’tir; güvenlik sınırı değildir. Kaynak ID’sinin UUID olması tahmini zorlaştırabilir ama yetki kontrolünün yerine geçmez. Listeleme, detay, dosya indirme, update, export ve background job sonuçları aynı kapsam politikasına uymalıdır. “GET zararsızdır” diye özel veriyi açmak yanlıştır.
Policy okunabilir iş kurallarına dayanmalı, yalnız route string’ine göre izin verilmemelidir. İzin değişince aktif session veya token’daki eski claim ne olacak sorusunu da cevapla. Başarılı ve başarısız kararları hassas bilgiyi ifşa etmeden izleyebilirsin. Düşük ayrıcalıklı kullanıcı, farklı tenant, rol iptali ve anonim istek testleri yap. Authentication doğrulaması bittiğinde güvenlik işi henüz bitmemiştir.
Her özel veri ve admin işlemine gerçek erişim sınırı kurarken.
Butonu gizlemek veya tahmin edilemez ID kullanmakla yetinmek.
Aynı konu. Üç farklı derinlik.
Subject + resource + action + context → decisionKaynak bazlı karar; tek login kontrolü değil.
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.
UI’da sil butonu yok ama DELETE endpoint’i açık. Güvenli mi?
Çözümü ve açıklamasını göster
No: enforce permission server-side.Hayır. İstemci endpoint’i doğrudan çağırabilir.