Biasanya, saya menempatkan keputusan otorisasi di pengontrol sisi server saya. Ini telah menjadi titik akhir yang tenang baru-baru ini, tapi saya pikir singkatan yang sama untuk arsitektur tipe MVC. Demi argumen, anggaplah itu otorisasi berdasarkan peran. Metode yang dilindungi akan diberi catatan atau melakukan pemeriksaan dan mengembalikan 403 jika perlu.
Sekarang, mengingat bahwa otorisasi sebenarnya adalah aturan bisnis - "hanya administrator yang dapat mencantumkan X" misalnya, saya pikir mereka harus didorong ke bawah. Ketika pengontrol meminta lapisan bisnis untuk melakukan operasi, lapisan layanan atau bisnis memberi tahu pengontrol itu tidak sah.
Apakah ini pendekatan yang masuk akal? Apakah ada kerugian untuk ini?
Saya enggan memiliki AuthorisationService yang pada dasarnya memiliki banyak aturan kode prosedural statis untuk melakukan ini, tetapi mungkin masuk akal untuk menjaga semua logika akses di satu tempat. Apakah ini merupakan masalah lintas sektoral yang harus dipisahkan?
Jadi saya bertanya apakah ada yang telah melakukan ini dan bagaimana mereka mencapainya dengan cara yang bersih atau jika ada sumber daya bagus yang bisa saya baca. Saya menggunakan Java fwiw tapi ini pertanyaan agnostik bahasa.
Saya telah memeriksa pertanyaan terkait di sini dan mereka sangat tipis di tanah dan jawabannya. Misalnya: Validasi dan Otorisasi dalam Model Domain dan Membawa itu melalui Lapisan Layanan ke MVC
Saya membaca dokumen keamanan musim semi yang membuat beberapa argumen yang baik untuk itu menjadi perhatian lintas sektoral, tapi saya khawatir itu hanya "jalan semi" dan ingin perspektif yang lebih luas. Ini juga mengikat aplikasi Anda ke kerangka kerja tertentu.