Access Control List (ACL) Nedir?

Erişim Kontrol Listesi (Access Control List) uygulamadaki kullanıcıların yetkilendirme (authorization) kayıtlarını içeren listedir. Bu liste içerisinde kullanıcının erişim yetkilerini tanımlarız ve sonrasında ilgili yerlerde bu kontrolleri sağlayarak kullanıcının yalnızca yetkileri dahilde ekranlar görebilmesini/işlemler yapabilmesini sağlarız.

OAuth‘da bulunan scope alanında ilgili kullanıcıya ait yetkilerin genellikle {MODULE}:{ACTION} şeklinde belirtilir, bu yetkiler boşluklar ile birleştirilmesi ile oluşur.

Bu doğrultuda örnek vermek gerekirse;
Modülümüzün adı Catalog ise Catalog:read ve Catalog:write şeklinde yetkilerimiz olabilir. Kullanıcının ACL aldıktan sonra; katalog modülünde okuma yetkisi var mı diye kontrol etmek için ACL içerisinde Catalog:read bakarız, eğer kayıt ekleme/düzenleme/silme gibi işlemler yapabileceğini kontrol etmek isteseydik Catalog:write bakacaktık.

Burada örnek vermek için read ve write actionları belirttik fakat bu yapı tamamiyle ihtiyaçlarınız doğrultusunda oluşturulmalıdır.

Örneğin; write diye genel bir action tanımlamak yerine add, update, delete şeklinde actionlarımız olabilirdi. Bu durumda Catalog:add, Catalog:update, Catalog:delete için kontrol sağlıyor olacaktık.

Eğer bir LDAP altyapınız var ise ACL için yapı oluşturmak yerine LDAP’ı entegre etmeniz çok daha kolay ve mantıklı olacaktır.

“Bu sayfayı görmeye/işlemi yapmaya yetkiniz yok :/” vb. yetki hataları ile karşılaşmadığınız, yalnızca ihtiyacınız olan ve size risk yüklemeyecek yetkileriniz olması dileğiyle…