# RBAC (Rol Tabanlı Erişim Kontrolü (Role-Based Access Control))

Adres: https://softwaredictionary.org/tr/terimler/rbac
Kategori: Güvenlik
Son güncelleme: 2026-09-30
Okunuşu: ar-bek ya da ar-bi-ey-si

Kısaca: RBAC, izinleri admin veya editor gibi rollere veren ve kullanıcılara bu rolleri atayarak erişim sağlayan bir yetkilendirme modelidir.

## RBAC nedir?

RBAC, yani rol tabanlı erişim kontrolü, her kullanıcının ne yapabileceğine karar vermenin bir yoludur. İzinleri tek tek kişilere bağlamak yerine `viewer`, `editor` ve `admin` gibi roller tanımlar, her role bir izin kümesi verir ve rolleri kullanıcılara atarsınız. Biri görev değiştirdiğinde onlarca bireysel izni düzenlemek yerine rolünü değiştirirsiniz.

Bir istek geldiğinde uygulama önce kullanıcının kimliğini doğrular, ardından sahip olduğu rolleri bulur ve bu rollerden herhangi birinin `invoice:delete` gibi gereken izni içerip içermediğini denetler. Roller kapsamlandırılabilir; örneğin bir projenin admin'i ama bir diğerinin viewer'ı olmak gibi. Bazı sistemler, üst düzey bir rolün alt düzey bir rolün izinlerini miras aldığı rol hiyerarşilerini destekler. İyi RBAC tasarımları en az ayrıcalık ilkesini izler ve her role yalnızca gerçekten ihtiyaç duyduğu izinleri verir.

Hemşirelerin, doktorların ve resepsiyonistlerin her birinin belirli kapıları ve kayıtları açan farklı bir rozet türü taşıdığı bir hastaneyi düşünün. Hastane her çalışan için kapı kapı karar vermez; rozet türü başına bir kez karar verir. RBAC, iş uygulamalarında, veritabanlarında, bulut platformlarında ve Kubernetes gibi container orkestratörlerinde aynı şekilde kullanılır.

RBAC sıklıkla nitelik tabanlı erişim kontrolü olan ABAC ile karşılaştırılır. RBAC kullanıcının hangi role sahip olduğunu sorar; ABAC ise kullanıcının, kaynağın ve bağlamın departman, belge sahibi veya günün saati gibi niteliklerini değerlendirir. RBAC'ı anlamak ve denetlemek daha basittir, ancak büyük kuruluşlar rol patlaması (role explosion) denen bir sorunla, fazla sayıda dar kapsamlı rolle karşılaşabilir.

## Önemli noktalar

- İzinler rollere bağlanır ve kullanıcılar rol atanarak izin kazanır.
- RBAC, kimlik doğrulamadan sonra gerçekleşen bir yetkilendirme biçimidir.
- En az ayrıcalık, her role yalnızca ihtiyaç duyduğu izinleri vermek demektir.
- Bir kullanıcının erişimini değiştirmek genellikle bireysel izinleri değil, rolünü değiştirmek demektir.
- Roller tek başına yeterince ince taneli olmadığında ABAC, nitelik tabanlı kurallar ekler.

## Örnek: İzinleri roller üzerinden denetlemek

```typescript
// Each role maps to a set of permissions
const rolePermissions: Record<string, string[]> = {
  viewer: ["invoice:read"],
  editor: ["invoice:read", "invoice:update"],
  admin: ["invoice:read", "invoice:update", "invoice:delete"],
};

function can(userRoles: string[], permission: string): boolean {
  return userRoles.some((role) => rolePermissions[role]?.includes(permission));
}

console.log(can(["editor"], "invoice:update")); // true
console.log(can(["viewer"], "invoice:delete")); // false
```

## Sık sorulan sorular

**RBAC ile ABAC arasındaki fark nedir?**

RBAC, erişimi kullanıcının sahip olduğu rollere, örneğin admin veya editor'a göre verir. Nitelik tabanlı erişim kontrolü olan ABAC ise kullanıcının, kaynağın ve bağlamın departman ya da günün saati gibi niteliklerine göre karar verir; bu daha esnektir ama yönetimi daha zordur.

**RBAC kimlik doğrulama mı, yetkilendirme mi?**

RBAC yetkilendirmedir. Kimlik doğrulama önce kullanıcının kim olduğunu doğrular, RBAC ise rollerine göre o kullanıcının neler yapabileceğine karar verir.

**Rol patlaması (role explosion) nedir?**

Rol patlaması, bir kuruluşun özel durumlar için dar kapsamlı roller oluşturmaya devam edip yüzlerce role ulaştığı ve kimin neye erişebildiğini kimsenin söyleyemediği durumda ortaya çıkar. Düzenli erişim incelemeleri ve RBAC'ı nitelik tabanlı kurallarla birleştirmek bunu önlemeye yardımcı olur.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
