Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi

Kimlik doğrulama ile yetkilendirme arasındaki fark​


Kimlik doğrulama, kullanıcının kim olduğunu kanıtlama işlemidir. Yetkilendirme ise bir istemcinin hangi işlemleri yapabileceğini veya hangi verilere erişebileceğini belirler. Giriş yapma kimlik doğrulamaya örnektir; bir kaynağa veya işleme izin verilip verilmediğini kontrol etmek yetkilendirmedir. Herkese açık bir kaynak için anonim erişim de bilinçli bir yetkilendirme kararı olabilir.

Kimlik doğrulama nasıl çalışır?​


Kullanıcı bir kullanıcı adı ve parola girdiğinde, sistem bu bilgilerin kayıtlı kimlikle eşleşip eşleşmediğini kontrol eder. Başarılıysa sistem kullanıcıya bir oturum, çerez veya erişim belirteci verir. Çok faktörlü doğrulama kullanılıyorsa parola gibi bilinen bir unsura ek olarak tek kullanımlık kod, güvenlik anahtarı veya biyometrik doğrulama gibi ikinci bir kanıt da aranır.

Bu aşamanın sonucu genellikle bir kimlik bilgisidir: örneğin user_id=42. Kimlik doğrulama başarılı olsa bile bu, kullanıcının her işlemi yapabileceği anlamına gelmez.

Yetkilendirme nasıl çalışır?​


Korunan bir kaynakta yetkilendirme, doğrulanmış kimlik için izin kontrolünü içerir. Sistem kullanıcının rolünü, sahip olduğu izinleri veya erişmek istediği kaynağın sahibi olup olmadığını değerlendirir. Örneğin bir kullanıcı sisteme giriş yapabilir; ancak yalnızca kendi siparişlerini görüntüleyebilir, başka kullanıcıların siparişlerini silemeyebilir.

Yetkilendirme kontrolü her korunan işlemde yapılmalıdır. Sadece menüde bir düğmeyi gizlemek yeterli değildir; saldırgan aynı isteği doğrudan göndererek işlemi denemeyi sürdürebilir. Asıl kontrol sunucu tarafında yapılmalıdır.

Somut örnek​


Kurgu bir içerik yönetim sisteminde editör hesabıyla giriş yapan bir kullanıcı düşünün:

  • Parolanın ve varsa ikinci doğrulama unsurunun kontrol edilmesi kimlik doğrulamadır.
  • Kullanıcı kimliğinin 42 olarak doğrulanması kimlik doğrulama sonucudur; editör rolünün ve izinlerinin değerlendirilmesi yetkilendirmeye girer.
  • Editörün yazı oluşturabilmesi ancak kullanıcı silememesi yetkilendirmedir.
  • Yönetici rolündeki kullanıcının kullanıcı hesabı silebilmesi, farklı bir yetki kuralıdır.

Örneğin kullanıcı 42 numaralı hesaba ait bir kaydı düzenlemek istediğinde uygulama yalnızca oturumun geçerli olup olmadığını değil, kaydın kullanıcıya ait olup olmadığını veya kullanıcının bu işlem için özel izni bulunup bulunmadığını da kontrol etmelidir.

Uygulamada doğru kontrol sırası​


Korunan bir istek için temel akış şu şekilde kurulabilir:

  1. İsteğin geçerli bir oturum veya erişim belirteci taşıyıp taşımadığını kontrol edin. Yoksa işlemi kimlik doğrulama gerektiren bir istek olarak sonlandırın.
  2. Oturumdan veya belirteçten kullanıcı kimliğini alın; istemcinin gönderdiği kullanıcı kimliğine tek başına güvenmeyin.
  3. Kullanıcının rolünü, özel izinlerini ve gerekiyorsa kaynağın sahipliğini sunucu tarafında değerlendirin.
  4. İzin varsa işlemi gerçekleştirin; izin yoksa işlemi reddedin ve veriyi değiştirmeyin.
  5. Başarısız kimlik doğrulama ve yetki denemelerini, parola veya erişim belirteci gibi gizli değerleri kaydetmeden incelemeye uygun şekilde günlükleyin.

Bir isteğin sonucu kabaca şöyle yorumlanır:

DurumAnlamıSonraki adım
Kimlik doğrulama yok veya geçersizSistemin isteği yapan kişiyi tanıdığı kanıtlanmadıGiriş veya yeniden doğrulama isteyin
Kimlik doğrulandı, yetki yokKullanıcı biliniyor ancak işlem için izni bulunmuyorİşlemi reddedin ve izinleri inceleyin
Kimlik doğrulandı, yetki varKullanıcı tanınıyor ve işlem kuralı karşılanıyorİşlemi uygulayın ve sonucu döndürün

Bu ayrım, hata ayıklamayı da kolaylaştırır: Kullanıcı sisteme giremiyorsa kimlik doğrulama akışını; girebildiği halde belirli işlemi yapamıyorsa yetkilendirme kurallarını inceleyin.

Sık yapılan hatalar​


Giriş yapmış olmayı tam yetki saymak: Geçerli oturum, yalnızca kullanıcının tanındığını gösterir. Rol ve kaynak izinleri ayrıca kontrol edilmelidir.

Yetkiyi yalnızca arayüzde saklamak: Gizlenen buton güvenlik kontrolü değildir. İstek doğrudan gönderildiğinde sunucu işlemi yeniden yetkilendirmelidir.

İstemciden gelen kullanıcı kimliğine güvenmek: URL veya form içindeki user_id değeri değiştirilerek başka kullanıcının verisine erişim denenebilir. Kimlik oturumdan alınmalı, kaynak erişimi sahiplik veya izin kuralıyla doğrulanmalıdır.

Rol adını izin kontrolü sanmak: Basit roller başlangıç için yeterli olabilir; ancak kaynak sahipliği, ekip sınırları veya işlem türü gibi koşullar ayrıca değerlendirilmelidir.

Sık sorulan sorular​


Kimlik doğrulama ve yetkilendirme aynı sistemde mi yapılır?​


Aynı uygulamada yapılabilir veya kimlik doğrulama ayrı bir kimlik sağlayıcıya bırakılabilir. Yetkilendirme kuralları ise çoğu durumda erişilen uygulama ve kaynağın bağlamında uygulanır.

Bir API anahtarı kimlik doğrulama mı, yetkilendirme mi?​


API anahtarının geçerli olması isteği yapan istemciyi veya hesabı tanımlamaya yarıyorsa kimlik doğrulama işlevi görür. Anahtarın hangi uç noktalara ve işlemlere erişebileceğini belirlemek ise yetkilendirmedir. Tek bir anahtar her işleme otomatik olarak izin vermemelidir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.