Authentication · Kimlik doğrulama
Authentication: kimliğin gerçekten doğrulanması
“Sen kimsin?” sorusunun credential, handler ve principal yolculuğu.
Kavramı anlayalım
Authentication kimlik iddiasını güvenilir kanıtla doğrulama sürecidir. E-posta alanına isim yazmak kimlik doğrulama değildir. İstek cookie, bearer token, client certificate veya başka scheme ile kanıt sunabilir. Sunucu kanıtı doğrular, başarılıysa kullanıcıyı temsil eden principal ve claim’leri oluşturur. Hangi scheme’in doğruladığı ve claim’in kaynağı önemlidir.
Authentication ile authorization farklıdır. Bir çalışanın kimliği geçerli olabilir ama başka çalışanın maaş kaydını okumaya izni olmayabilir. Authentication başarılı olduktan sonra kaynak, işlem, tenant ve policy değerlendirilir. CORS kimlik doğrulamaz; HTTPS token’ı taşırken korur ama kullanıcının bu kaynağa hakkı olduğunu kanıtlamaz. JWT’yi Base64 açıp isim okumak da doğrulama değildir.
Oturumun bütün yaşam döngüsünü tasarla: ilk giriş, credential doğrulama, başarısız deneme, süre sonu, yenileme, çıkış ve hesabın kapatılması. Şifreler geri çözülebilir düz metin olarak tutulmaz; uygun password hashing ve rate limit gerekir. HTTP dersindeki akış güvenlik sisteminin kavramsal haritasıdır, hazır bir login uygulaması değildir. Sonraki dersler challenge, cookie, JWT ve OAuth farkını ayrıntılandırır.
Login ile API kaynak korumasını doğru katmanlara ayırırken.
Kullanıcı gönderdiği userId’ye güvenip principal oluşturmamak.
Aynı konu. Üç farklı derinlik.
Request → credential → authentication handler → principalKimlik zinciri; credential geçersizse principal doğrulanmış sayılmaz.
Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.
Önce kendin dene.
HTTPS bağlantısı olan herkes /admin kaynağını okuyabilir mi?
Çözümü ve açıklamasını göster
HTTPS ≠ authentication ≠ authorizationHayır. Şifreli bağlantı kimlik veya admin hakkı vermez.