# Kimlik Doğrulama (Authentication)

Adres: https://softwaredictionary.org/tr/terimler/authentication
Kategori: Güvenlik
Son güncelleme: 2026-09-30
İngilizcesi: Authentication
Okunuşu: otentikeyşın

Kısaca: Kimlik doğrulama, bir kullanıcının, cihazın veya servisin gerçekten iddia ettiği kişi olduğunu, örneğin parola ya da passkey kontrol ederek doğrulama işlemidir.

## Kimlik doğrulama nedir?

Kimlik doğrulama, “Sen kimsin?” sorusuna yanıt verir. Bir uygulama özel verileri göstermeden veya değişiklikleri kabul etmeden önce, isteği yapan kişi ya da programın hesabın gerçek sahibi olduğuna dair kanıta ihtiyaç duyar. Bu kanıta kimlik bilgisi (credential) denir; başarılı bir kontrolün ardından sunucu genellikle bir oturum çerezi oluşturur veya bir token verir; böylece kullanıcının her istekte yeniden giriş yapması gerekmez.

Kimlik bilgileri üç klasik faktöre ayrılır: parola veya PIN gibi bildiğiniz bir şey; telefon veya donanım güvenlik anahtarı gibi sahip olduğunuz bir şey; parmak izi veya yüz taraması gibi olduğunuz bir şey. İki veya daha fazla faktörü birleştirmeye çok faktörlü kimlik doğrulama denir. WebAuthn standardına dayanan passkey'ler, bir cihaza bağlı açık anahtarlı kriptografi kullanır ve phishing'e karşı dirençlidir; bu yüzden giderek parolaların yerini almaktadır.

Kimlik doğrulama sürekli yetkilendirmeyle karıştırılır. Kimlik doğrulama kimliği kanıtlar, yetkilendirme ise o kimliğin ne yapmasına izin verildiğine karar verir: bir havalimanında pasaportunuzu göstermek kimlik doğrulamadır, hangi uçağa binebileceğinize karar veren biniş kartınız ise yetkilendirmedir. Kimlik doğrulamayı geçemeyen bir istek genellikle `401 Unauthorized` yanıtı alır; izni olmayan bilinen bir kullanıcı ise `403 Forbidden` alır.

Girişleri korumak için parolaları yalnızca Argon2id veya bcrypt ile salt'lı hash olarak saklayın, iki faktörlü kimlik doğrulama veya passkey sunun ve parola tahminini ve saldırganların diğer sitelerden sızdırılmış parolaları denediği credential stuffing saldırısını yavaşlatmak için giriş denemelerine hız sınırı koyun. Saldırganların hangi hesapların var olduğunu öğrenememesi için “Geçersiz e-posta veya parola” gibi genel bir hata mesajı kullanın ve kimlik doğrulama kodunu sıfırdan yazmak yerine iyi test edilmiş bir kimlik sağlayıcısını ya da kütüphaneyi tercih edin.

## Önemli noktalar

- Kimlik doğrulama kimliği doğrular; “Sen kimsin?” sorusuna yanıt verir.
- Faktörler bildiğiniz bir şey, sahip olduğunuz bir şey ve olduğunuz bir şeydir.
- Girişten sonra bir oturum çerezi veya token kullanıcıyı doğrulanmış tutar.
- Kimlik doğrulama, kullanıcının ne yapabileceğine karar veren yetkilendirme değildir.
- Girişleri hash'lenmiş parolalar, 2FA veya passkey'ler ve hız sınırlamasıyla koruyun.

## Örnek: Parolalı bir giriş işleyicisi (Express)

```javascript
app.post("/login", loginRateLimit, async (req, res) => {
  const { email, password } = req.body;
  const user = await db.users.findByEmail(email);

  // Compare with the stored bcrypt hash, never a plain-text password
  const ok = user && (await bcrypt.compare(password, user.passwordHash));
  if (!ok) {
    // Same message either way, so attackers cannot probe which emails exist
    return res.status(401).send("Invalid email or password");
  }

  req.session.userId = user.id; // the user is now authenticated
  res.redirect("/dashboard");
});
```

## Sık sorulan sorular

**Kimlik doğrulama ile yetkilendirme arasındaki fark nedir?**

Kimlik doğrulama, kullanıcının kim olduğunu, örneğin parola ya da passkey kontrol ederek doğrular. Yetkilendirme bunun ardından gelir ve doğrulanmış kullanıcının neye erişebileceğine veya neyi değiştirebileceğine karar verir.

**Passkey nedir?**

Passkey, açık anahtarlı kriptografiye dayanan, bir cihazda veya parola yöneticisinde saklanan ve parmak izi, yüz taraması veya PIN ile açılan bir giriş kimlik bilgisidir. Özel anahtar cihazdan asla çıkmaz ve yalnızca gerçek web sitesinde çalışır; sunucu yalnızca açık anahtarı saklar. Bu yüzden passkey'ler phishing'e dirençlidir ve sunucu veritabanını çalan saldırganlar için işe yaramaz.

**HTTP 401 ne anlama gelir?**

Adına rağmen `401 Unauthorized`, isteğin eksik veya süresi dolmuş bir token gibi geçerli kimlik doğrulamasından yoksun olduğu anlamına gelir. Kullanıcı doğrulanmış ama bir işlemi yapmasına izin verilmiyorsa doğru durum kodu `403 Forbidden`'dır.

---

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