Role Based Access Control Nedir, Nasıl Kurulur?

Role Based Access Control (RBAC), kullanıcıya doğrudan dağınık yetkiler vermek yerine izinleri rollere bağlayan erişim modelidir. Örneğin “editör” rolü yazı düzenleme izni alabilir. Ancak rol adı tek başına güvenlik sağlamaz: her istekte, ilgili kaynak ve işlem için sunucuda yetki denetimi yapılmalıdır.
Rol, izin ve kullanıcı ilişkisi
Temel veri modeli users, roles, permissions, user_roles ve role_permissions tablolarından oluşabilir. İzin adı, arayüz başlığı yerine yapılacak işlemi anlatmalıdır: article.read, article.edit, article.publish gibi. Çok kiracılı sistemde üyelik ve yetki ayrıca kuruluş ya da çalışma alanı kapsamında tutulmalıdır.
Yetki kontrolü nasıl uygulanır?
İstek geldiğinde kullanıcı kimliğini doğrulayın, işlem için gereken izni belirleyin ve rol izin eşleşmesini sunucuda kontrol edin. “Varsayılan ret” yaklaşımında açıkça izin verilmemiş işlem reddedilir. Liste ekranı, ayrıntı ekranı, API ve arka plan işi için aynı politika uygulanmalıdır. Görünümde düğmeyi gizlemek yalnızca kullanıcı deneyimidir; güvenlik denetimi değildir.
Örneğin article.edit izni olan bir editörün başka kuruluşa ait yazıyı değiştirmesini ayrıca engellemek gerekir. Bu, kaynak düzeyinde sahiplik ve kapsam kontrolüdür. RBAC tek başına bütün koşullu politikaları ifade etmez; gerektiğinde özellik veya ilişki temelli kurallarla desteklenir.
PHP projesinde kurulum sırası
- İşlem ve kaynak matrisini çıkarın; hangi rol ne yapabilir yazın.
- Veritabanında rol ve izin ilişkilerine benzersiz kısıtlar ekleyin.
- Merkezi bir yetki denetleyicisi veya politika katmanı oluşturun.
- Denetimi her sunucu isteğinde çağırın; başarısız isteği uygun HTTP durumuyla reddedin.
- Rol değişikliklerini kaydedin ve eski oturum/önbellek etkisini yönetin.
- İzinli, izinsiz ve başka kullanıcı kaynağı senaryolarını test edin.
Yaygın hatalar
“Admin” metin karşılaştırmasını uygulamanın her yerine dağıtmak; istemciden gelen rol alanına güvenmek; yeni eklenen uç noktayı izinsiz bırakmak; sadece sayfa düzeyinde kontrol edip kayıt sahipliğini unutmak; bütün yöneticilere gereksiz tam yetki vermek. İzin adları ve rol değişiklikleri için tek bir yönetim noktası belirleyin.
Sık sorulan sorular
RBAC ve oturum açma aynı mı? Hayır. Oturum açma kim olduğunuzu, yetkilendirme ne yapabileceğinizi belirler.
Rolü JWT içine koymak yeterli mi? Uzun ömürlü belirteçte rol değişikliği gecikebilir. Güncel yetki ve belirteç iptali stratejisi tasarlayın.




