Örnek sorular
Security Authn AuthzZorluk 1
Kimlik doğrulama (authentication) ile yetkilendirme (authorization) arasındaki temel kavramsal fark nedir?
- aKimlik doğrulama kim olduğunu doğrular; yetkilendirme ne yapmaya izinli olduğuna karar verir✓
- bKimlik doğrulama ne yapmaya izinli olduğuna karar verir; yetkilendirme kim olduğunu doğrular
- cİkisi aynı kimlik doğrulama adımının farklı isimleridir
- dKimlik doğrulama yalnızca insanlar için, yetkilendirme yalnızca makine hesapları için geçerlidir
Açıklama:Kimlik doğrulama (ör. kimlik bilgileriyle kim olduğunu kanıtlama) ve yetkilendirme (kurulan bu kimliğe göre izinleri kontrol etme) birbirinden ayrı ve her zaman bu sırayla işleyen adımlardır — bir sistem, çağıranın ne yapabileceğine karar vermeden önce kim olduğunu bilmelidir.
Security Authn AuthzZorluk 2
Bir kullanıcı geçerli bir parolayla başarıyla giriş yapıyor ama sonra istekteki bir ID'yi değiştirerek başka bir kullanıcının özel sipariş geçmişini açmaya çalışıyor. İstek engelleniyor. Bunu hangi güvenlik kontrolü yakaladı?
- aKimlik doğrulama, çünkü ikinci istekte parola tekrar kontrol edildi
- bYetkilendirme, çünkü sistem istenen kaynak için izinleri kontrol etti✓
- cŞifreleme, çünkü istekteki ID okunamaz durumdaydı
- dRate limiting, çünkü kısa sürede çok fazla istek gönderildi
Açıklama:Kullanıcı zaten kimlik doğrulamasını geçmişti (giriş başarılıydı); engelleme, sistem bu doğrulanmış kimliğin belirli bir kaynağa erişim iznine sahip olup olmadığını değerlendirdiğinde gerçekleşti — bu kontrol, kaç istek gönderildiğinden bağımsız olarak yetkilendirmedir.
Security Authn AuthzZorluk 2
Bir sistem kullanıcıyı teknik olarak doğru şekilde kimlik doğrulasa da neden yine de yanlış bir güvenlik kararı verebilir?
- aÇünkü kimlik doğrulama ve yetkilendirme her zaman birlikte başarısız olur
- bÇünkü doğru kimlik doğrulama otomatik olarak her kaynağa tam erişim verir
- cÇünkü yetkilendirme, doğru kimlik doğrulamadan bağımsız olarak hata verebilir✓
- dÇünkü parolalar yetkilendirme kurallarından daha hızlı süresi dolar
Açıklama:Kimlik doğrulama ve yetkilendirme ayrı ayrı uygulanan kontrollerdir. Kusursuz işleyen bir giriş akışı, ardından gelen kodun artık bilinen kimliğin ne yapabileceğini doğru şekilde kısıtlayıp kısıtlamadığı hakkında hiçbir şey söylemez — bu, sık hata yapılan ayrı bir katmandır.
Security Authn AuthzZorluk 1
Session (oturum) tabanlı kimlik doğrulamada, kimin giriş yapmış olduğuna dair yetkili kayıt genellikle nerede tutulur?
- aYalnızca tarayıcının local storage'ında, sunucuda asla tutulmaz
- bSunucu taraflı oturum durumunda, istemcinin tuttuğu bir tanımlayıcıyla referanslanır✓
- cKullanıcının parolasının içinde, her istekte tekrar gönderilir
- dHiçbir yerde — session tabanlı kimlik doğrulama tanım gereği sunucu tarafında durum tutmaz
Açıklama:Session tabanlı kimlik doğrulama, yetkili giriş durumunu sunucuda (bellekte, veritabanında veya paylaşılan bir depoda) tutar; istemci yalnızca her istekte bu durumu bulmak için kullanılan opak bir oturum tanımlayıcısı taşır.
Security Authn AuthzZorluk 2
Bir backend ekibi, session tabanlı kimlik doğrulamadan; kimlik iddialarını taşıyan ve sunucu taraflı bir sorgu yapılmadan doğrulanabilen kendi kendine yeten token'lara geçiyor. Kabul ettikleri temel trade-off nedir?
- aDaha kolay yatay ölçeklenme, ama verilmiş bir kimlik bilgisinin anında iptalinin zorlaşması✓
- bDaha zor yatay ölçeklenme, ama verilmiş her kimlik bilgisinin anında iptali
- cÖlçeklenme veya iptalde bir değişiklik yok, sadece farklı bir tel formatı
- dToken'lar kimlik doğrulama ihtiyacını tamamen ortadan kaldırır
Açıklama:Kendi kendine yeten token'lar sunucu taraflı bir oturum deposu sorgusuna ihtiyaç duymaz, bu yüzden herhangi bir stateless sunucu onları doğrulayabilir — ölçeklenme için iyidir. Bedeli, ekstra bir iptal mekanizması (kara liste, kısa ömür vb.) eklenmedikçe token'ın süresi dolana kadar geçerli kalmasıdır; oysa bir oturum sunucu tarafında anında silinebilir.
Security Authn AuthzZorluk 3
Session tabanlı ve token tabanlı kimlik yönetimini karşılaştıran hangi ifade doğrudur?
- aSession tabanlı yaklaşımlar doğası gereği güvensiz, token tabanlı yaklaşımlar doğası gereği güvenlidir
- bToken tabanlı yaklaşımlar asla süresi dolmaz, session tabanlı yaklaşımlar her zaman süresi dolar
- cSession tabanlı yaklaşımlar hiçbir koşulda birden fazla sunucuda çalışamaz
- dİkisinin de ölçeklenme ve iptal konusunda farklı trade-off'ları vardır; hiçbiri evrensel olarak üstün değildir✓
Açıklama:Hiçbir model kategorik olarak 'daha güvenli' değildir — seçim, sunucu taraflı durum (kolay iptal, ölçeklenmek için paylaşılan oturum deposu gerektirir) ile kendi kendine yeten token'lar (kolay ölçeklenme, anında iptalin daha zor olması) arasında bir mühendislik trade-off'udur. Güvenlik her iki durumda da doğru uygulamaya bağlıdır.