Genellikle, yetkilendirme kararlarını sunucu tarafı denetleyicilerime yerleştiririm. Bunlar son zamanlarda RESTful son noktalar oldu, ancak aynı şeyin MVC tipi mimariler için de geçerli olduğunu düşünüyorum. Argüman uğruna, rol tabanlı yetkilendirme olduğunu varsayalım. Korumalı bir yöntem açıklamalı olacak veya kontroller yapacak ve gerekirse 403'leri geri gönderecektir.
Şimdi, yetkilendirmenin aslında bir iş kuralı olduğu düşünülürse - “sadece yöneticiler X'i listeleyebilir”, örneğin, bir katmana itilmeleri gerektiğini düşünüyorum. Bir denetleyici iş katmanını işlemi gerçekleştirmesini istediğinde, hizmet veya iş katmanı denetleyiciye yetkili olmadığını bildirir.
Bu makul bir yaklaşım mı? Bunun dezavantajları var mı?
Bunu yapmak için temelde bir sürü statik prosedür kodlanmış kuralını tutan bir Yetkilendirme Hizmetine sahip olmaktan nefret ediyorum ama belki de tüm erişim mantığını bir yerde tutmak mantıklı geliyor. Ayrı tutulması gereken bir kesişme endişesi midir?
Bu yüzden, birisinin bunu yapıp yapmadığını ve nasıl temiz bir şekilde başardıklarını veya okuyabildiğim iyi kaynaklar olup olmadığını soruyorum. Java fwiw kullanıyorum ama bu bir dil agnostik soru.
İlgili soruları burada kontrol ettim ve çok zayıflar ve cevapları çok iyi. Örneğin: Etki Alanı Modellerinde Doğrulama ve Yetkilendirme ve Servis Katmanı ile MVC'ye Taşımak
Kesişen bir endişe olduğu için bazı iyi argümanlar yapan bahar güvenlik belgelerini okuyorum , ancak bunun sadece "bahar yolu" olduğundan ve daha geniş bakış açılarıyla ilgilendiğinden endişeleniyorum. Ayrıca, başvurunuzu belirli bir çerçeveye bağlar.