- Difficulty level
- Beginner
- What readers will learn
- Bu rehberin sonunda;
Authentication'ın ne olduğunu,
neden gerekli olduğunu,
giriş ekranının arkasında neler yaşandığını,
parolaların neden şifrelenmediğini, hash'lendiğini,
Session ve Token mantığını,
Authentication ile Authorization arasındaki farkı,
modern uygulamalarda kimlik doğrulamanın nasıl çalıştığını
örneklerle öğrenmiş olacaksınız.
30 Saniyelik Özet
Bir web sitesine veya mobil uygulamaya giriş yaptığınızda sistem önce kim olduğunuzu doğrular. İşte bu sürece Authentication (Kimlik Doğrulama) denir.
Kullanıcı adı ve parolanız kontrol edilir. Bilgiler doğruysa sistem sizi tanır ve hesabınıza erişmenize izin verir.
Kısacası;
Authentication, "Sen gerçekten söylediğin kişi misin?" sorusunun cevabını veren güvenlik mekanizmasıdır.
Bilmeniz Gereken
Authentication ve Authorization aynı şey değildir.
Birçok kişi bu iki kavramı karıştırır.
Authentication;
sorusunu cevaplar."Sen kimsin?"
Authorization ise;
sorusunu cevaplar."Bu işlemi yapmaya yetkin var mı?"
İlk önce Authentication gerçekleşir.
Daha sonra Authorization devreye girer.
Authentication Nedir?
Her gün onlarca kez Authentication işlemi yapıyoruz.Örneğin;
- E-posta hesabımıza giriş yaparken
- İnternet bankacılığına bağlanırken
- Sosyal medya hesabımızı açarken
- Forumumuza üye olurken
- ChatGPT hesabımıza giriş yaparken
Sistem önce sizin kim olduğunuzu doğrular.
Doğrulama başarılı olursa hesabınıza erişebilirsiniz.
Gerçek Hayattan Bir Örnek
Bir otelde oda kartınızı düşünün.Resepsiyona gidiyorsunuz.
Görevli kimliğinizi kontrol ediyor.
Rezervasyonun size ait olduğunu doğruluyor.
İşte bu işlem Authentication'dır.
Daha sonra görevli size oda kartını veriyor.
Artık odanıza girebiliyorsunuz.
Bilmeniz Gereken
Kimliğiniz doğrulanmadan hiçbir sistem size erişim vermez.
Önce Authentication.
Sonra yetkilendirme.
Bir Giriş İşlemi Arkasında Neler Olur?
Bir kullanıcı giriş yaptığında yalnızca bir düğmeye basmış gibi görünür.Ancak sunucu tarafında birçok işlem gerçekleşir.
Tüm bu işlemler çoğu zaman bir saniyeden kısa sürede tamamlanır.Kullanıcı
│
▼
Kullanıcı Adı + Şifre
│
▼
HTTP POST İsteği
│
▼
Sunucu
│
▼
Veritabanı
│
Şifre Kontrolü
▼
Authentication Başarılı
│
▼
Session / Token Oluştur
│
▼
Kullanıcı Giriş Yaptı
Authentication Adım Adım Nasıl Çalışır?
Şimdi süreci tek tek inceleyelim.1. Kullanıcı Bilgilerini Girer
Örneğin;
Kod:
E-posta
[email protected]
Şifre
***********
Sadece bilgiler hazırlanmıştır.
2. Tarayıcı HTTP İsteği Gönderir
Kullanıcı "Giriş Yap" butonuna bastığında tarayıcı sunucuya bir POST isteği gönderir.Örneğin;
HTTP:
POST /login HTTP/1.1
Content-Type: application/json
İstek gövdesinde ise şu bilgiler bulunabilir:
JSON:
{
"email": "[email protected]",
"password": "********"
}
Bu veriler HTTPS üzerinden güvenli şekilde iletilmelidir.
Dikkat
Gerçek uygulamalarda giriş bilgileri mutlaka HTTPS üzerinden gönderilmelidir.
HTTP kullanılması, ağ üzerindeki saldırganların kullanıcı adı ve parola gibi hassas bilgileri ele geçirmesine neden olabilir.
3. Sunucu Kullanıcıyı Bulur
Sunucu önce şu soruyu sorar:Veritabanında ilgili e-posta adresi aranır.Bu kullanıcı gerçekten kayıtlı mı?
Bulunamazsa giriş başarısız olur.
Bulunursa sonraki adıma geçilir.
4. Parola Kontrolü Yapılır
İşte en kritik nokta burasıdır.Birçok kişi şifrelerin veritabanında düz metin olarak saklandığını düşünür.
Aslında güvenli sistemlerde durum böyle değildir.
Parolalar Neden Düz Metin Saklanmaz?
Kötü bir örnek:| Kullanıcı | Parola |
|---|---|
| Ali | 123456 |
| Ayşe | qwerty |
| Mehmet | password |
Veritabanı ele geçirilirse tüm kullanıcıların parolaları da ortaya çıkar.
Bu büyük bir güvenlik açığıdır.
Bilmeniz Gereken
Profesyonel uygulamalarda parolalar hash algoritmaları kullanılarak saklanır.
Yani gerçek parola hiçbir zaman doğrudan veritabanına yazılmaz.
Örneğin;
Parola
wmstudio2026Veritabanında şu şekilde görünebilir:
$2b$12$8mLz2...Bu değerden orijinal parolayı geri elde etmek pratik olarak mümkün değildir.
Hash Nedir?
Hash, bir veriyi sabit uzunlukta farklı bir çıktıya dönüştüren tek yönlü matematiksel işlemdir.Örneğin;
WMStudioHash işleminden sonra tamamen farklı bir değere dönüşebilir.
Önemli olan nokta şudur:
Hash geri çözülemez.
Bu nedenle kullanıcı giriş yaptığında sistem, girilen parolayı yeniden hash'ler ve veritabanındaki hash ile karşılaştırır.
Eşleşiyorsa Authentication başarılı olur.
Gerçek Hayattan Benzetme
Hash'i bir parmak izi gibi düşünebilirsiniz.Bir insanın parmak izine bakarak kimliğini doğrulayabilirsiniz.
Ancak sadece parmak izinden kişinin kendisini yeniden oluşturamazsınız.
Hash de aynı mantıkla çalışır.
Bu Bölümün Özeti
Bu bölümde öğrendiklerimiz:- Authentication, kullanıcının kimliğini doğrular.
- Giriş isteği genellikle HTTP POST ile gönderilir.
- Sunucu kullanıcıyı veritabanında arar.
- Parolalar düz metin olarak saklanmaz.
- Hash algoritmaları güvenli kimlik doğrulamanın temelini oluşturur.
Bir sonraki bölümde şu konuları ayrıntılı olarak işleyeceğiz:
- Session nedir?
- Cookie nasıl çalışır?
- Token tabanlı Authentication
- JWT'ye giriş
- Çok faktörlü kimlik doğrulama (MFA)
- Authentication ve Authorization arasındaki farklar
- Yaygın güvenlik hataları
- En iyi uygulamalar
- Gerçek sistem mimarisi diyagramları
- Sık Sorulan Sorular (FAQ)