# Yetkilendirme (Authorization)

Adres: https://softwaredictionary.org/tr/terimler/authorization
Kategori: Güvenlik
Son güncelleme: 2026-09-30
İngilizcesi: Authorization
Okunuşu: otırızeyşın

Kısaca: Yetkilendirme, kimliği doğrulanmış bir kullanıcının ya da servisin hangi verileri okuyabileceğine, değiştirebileceğine veya silebileceğine karar vermektir.

## Yetkilendirme nedir?

Yetkilendirme, “Ne yapmana izin var?” sorusuna yanıt verir. Kimlik doğrulamanın ardından gerçekleşir: sistem isteği kimin yaptığını öğrendikten sonra, bu kimliğin bir sayfayı görüntüleyip görüntüleyemeyeceğine, bir kaydı düzenleyip düzenleyemeyeceğine, bir API'yi çağırıp çağıramayacağına veya bir yönetici işlemi yapıp yapamayacağına karar vermek için kuralları denetler. Kontrol başarısız olursa sunucu `403 Forbidden` ile ya da kaynağın var olduğunu belli etmemek için bazen `404 Not Found` ile reddeder.

Yaygın modeller arasında; izinlerin viewer, editor ve admin gibi rollerde gruplandığı rol tabanlı erişim kontrolü (RBAC), kuralların departman, günün saati veya kaynak sahibi gibi niteliklere baktığı nitelik tabanlı erişim kontrolü (ABAC) ve erişimin bir belgenin sahibi ya da bir ekibin üyeleri gibi bağlantıları izlediği ilişki tabanlı modeller yer alır. OAuth kapsamları da üçüncü taraf bir uygulamanın kullanıcı adına neler yapabileceğini sınırlayan başka bir yetkilendirme biçimidir.

Bir bina benzetmesi işe yarar: kimlik kartınız kim olduğunuzu kanıtlar, bu kimlik doğrulamadır; ancak kart sistemi hangi kapıların sizin için açılacağına karar verir, bu da yetkilendirmedir. Her kapının kartı kontrol etmesi gibi her isteğin de sunucuda kontrol edilmesi gerekir; çünkü kullanıcı arayüzünde bir düğmeyi gizlemek, birinin API'yi doğrudan çağırmasını engellemez.

Bozuk erişim kontrolü (broken access control), web uygulaması güvenlik risklerinin OWASP Top 10 listesinde en üst sırada yer alır. Klasik örnek, sunucu sahipliği hiç denetlemediği için `/invoices/123` adresini `/invoices/124` olarak değiştirmenin başkasının faturasını gösterdiği güvensiz doğrudan nesne referansıdır (IDOR). Savunmak için erişimi varsayılan olarak reddedin, izinleri her istekte tek ve merkezi bir yerde denetleyin, yalnızca gereken en az ayrıcalığı verin ve başka kullanıcıların verilerine ulaşmaya çalışan testler yazın.

## Önemli noktalar

- Yetkilendirme, kimliği doğrulanmış bir kimliğin neler yapabileceğine karar verir.
- Her zaman kimlik doğrulamadan sonra gerçekleşir.
- RBAC izinleri rollerde gruplar; ABAC nitelikleri ve bağlamı kullanır.
- İzin kontrolleri her istek için sunucuda çalışmalıdır.
- Varsayılan olarak reddedin ve yalnızca gereken en az ayrıcalığı verin.

## Örnek: Veriyi döndürmeden önce sahipliği denetlemek (Express)

```javascript
// Allow the request only if the user owns the invoice or is an admin
app.get("/invoices/:id", requireLogin, async (req, res) => {
  const invoice = await db.invoices.findById(req.params.id);
  if (!invoice) return res.sendStatus(404);

  const isOwner = invoice.ownerId === req.user.id;
  const isAdmin = req.user.roles.includes("admin");
  if (!isOwner && !isAdmin) {
    return res.sendStatus(403); // authenticated, but not allowed
  }

  res.json(invoice);
});
```

## Sık sorulan sorular

**Yetkilendirme ile kimlik doğrulama arasındaki fark nedir?**

Kimlik doğrulama kullanıcının kim olduğunu doğrular, yetkilendirme ise o kullanıcının neler yapabileceğini belirler. Bir sistem önce isteğin kimliğini doğrulamalı, ardından veri döndürmeden veya değişiklik yapmadan önce yetkilendirmelidir.

**RBAC nedir?**

RBAC, yani rol tabanlı erişim kontrolü, izinleri viewer, editor veya admin gibi rollere atar, ardından rolleri kullanıcılara atar. Yönetimi basittir, ancak kurallar sahipliğe ya da bağlama bağlı olduğunda katı hâle gelebilir.

**401 ile 403 arasındaki fark nedir?**

`401 Unauthorized`, isteğin kimliğinin doğrulanmadığı anlamına gelir; örneğin giriş token'ı eksik ya da geçersizdir. `403 Forbidden` ise sunucunun kullanıcının kim olduğunu bildiği, ancak kullanıcının izni olmadığı anlamına gelir.

---

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