Authentication ve Authorization

Authentication  Nedir ?
Authentication, bir kişinin iddia ettiği kişi olduğunu doğrulayan bir süreçtir.

Authorization Nedir ? 

Authentication dan sonra yani kullanıcı doğrulandıktan sonra hangi verilere uygulamalara veya hangi işlemleri yapabileceğini belirler  . amacı kritik önemli verilerin korunması işlemlerini güvenli bir şekilde ve sadece yetkili oldukları işlemleri yapmalarını sağlamak.

 

Authentication'in Amacı

Authentication, kullanıcının kimliğini doğrulamak ve yetkisiz kişilerin sisteme erişimini engellemek için kullanılır. Bu, özellikle hassas verilerin korunması ve sadece yetkili kullanıcıların belirli kaynaklara erişebilmesini sağlamak açısından önemlidir.

Popüler Authentication Yöntemleri

  1. Kullanıcı Adı ve Şifre: En yaygın kullanılan yöntemdir. Kullanıcı, sisteme giriş yapmak için kullanıcı adı ve şifre bilgilerini girer. Veritabanında bu bilgilerin eşleşip eşleşmediği kontrol edilir. Eşleşme varsa, kullanıcı geçerli bir kullanıcı olarak kabul edilir.
  2. Biyometrik Veriler: Parmak izi, yüz tanıma, retina taraması gibi biyometrik veriler kullanılarak kimlik doğrulaması yapılır. Bu yöntemler, kullanıcının fiziksel özelliklerine dayandığı için oldukça güvenlidir.
  3. Tek Kullanımlık Şifreler (OTP): Kullanıcıya SMS, e-posta veya bir uygulama üzerinden gönderilen tek kullanımlık şifreler ile kimlik doğrulaması yapılır. Bu şifreler genellikle belirli bir süre için geçerlidir ve bir kez kullanıldıktan sonra geçerliliğini yitirir.
  4. Çok Faktörlü Kimlik Doğrulama (MFA): Birden fazla doğrulama yöntemi kullanılarak güvenlik artırılır. Örneğin, kullanıcı hem şifresini girer hem de telefonuna gönderilen bir OTP'yi kullanır. Bu, yetkisiz erişimi daha da zorlaştırır.

 

 

Authentication Yöntemleri

 

1. HTTP Basic Authentication

 Basic Authentication, kullanıcı adı ve şifre kombinasyonunu base64 kodlaması ile bir HTTP başlığı içinde göndererek kimlik doğrulama yapar. Nasıl Çalışır:

  • Kullanıcı adı ve şifre, base64 ile kodlanır.
  • Kodlanmış bilgi, Authorization başlığı altında Basic kelimesi ile birlikte HTTP isteği içinde gönderilir.
  • Sunucu, bu bilgiyi alır ve kimliği doğrular. Avantajları: Basit ve hızlı bir şekilde uygulanabilir. Dezavantajları: Şifreler base64 ile yalnızca kodlandığından, güvenli bir taşıma katmanı (SSL/TLS) olmadan gönderilmesi güvensizdir.

2. API Key Authentication

istemcinin bir API anahtarı (genellikle rastgele bir dize) kullanarak kimlik doğrulama yaptığı bir yöntemdir. Nasıl Çalışır:

  • Kullanıcı, API anahtarını istemci uygulamasına ekler.
  • API anahtarı, genellikle Authorization başlığı altında veya sorgu parametresi olarak HTTP isteği içinde sunucuya gönderilir.
  • Sunucu, bu anahtarı doğrular ve isteğe izin verir veya reddeder. Avantajları: Basit, hızlı ve kolayca dağıtılabilir. Dezavantajları: API anahtarı çalınırsa, kötü niyetli kullanıcılar bu anahtarı kullanarak yetkisiz erişim sağlayabilirler.

3. OAuth Authentication

OAuth, üçüncü taraf uygulamalara kullanıcı kaynaklarına sınırlı erişim sağlayan bir yetkilendirme protokolüdür. Nasıl Çalışır:

  • OAuth 1.0a ve OAuth 2.0 olmak üzere iki sürümü vardır, ancak en yaygın olarak kullanılanı OAuth 2.0'dır.
  • Kullanıcı, istemci uygulamaya erişim izni verir.
  • İstemci, bir yetkilendirme sunucusundan bir erişim belirteci (access token) alır.
  • İstemci, erişim belirtecini API isteklerinde kullanarak kullanıcı adına kaynaklara erişir. Avantajları: Güvenli, esnek ve geniş bir dizi kullanım senaryosunu destekler. Dezavantajları: Karmaşıktır ve uygulaması zaman alabilir.

4. JWT (JSON Web Token) Authentication

JSON formatında bilgi taşıyan ve imzalanmış bir belirteçtir (token). Kullanıcı kimliğini doğrulamak için kullanılır. Nasıl Çalışır:

  • Kullanıcı, kimlik doğrulama bilgilerini sunucuya gönderir.
  • Sunucu, kullanıcıyı doğrular ve bir JWT oluşturur. JWT, üç parçadan oluşur: başlık (header), veri (payload) ve imza (signature).
  • JWT, istemciye gönderilir ve istemci her istekle birlikte bu belirteci sunucuya gönderir.
  • Sunucu, JWT'yi doğrular ve kullanıcı kimliğini belirler. Avantajları: Taşınabilir, ölçeklenebilir ve farklı uygulamalar arasında kolayca paylaşılabilir. İmzalandığı için veri bütünlüğü ve doğrulama sağlar. Dezavantajları: İmzalanmış olsa bile, taşınan veri şifrelenmemiş olabilir, bu yüzden hassas bilgilerin taşınması riskli olabilir.

5. OpenID Connect (OIDC)

OpenID Connect (OIDC), OAuth 2.0 protokolü üzerine inşa edilmiş bir kimlik doğrulama protokolüdür. OIDC, OAuth 2.0’ın yetkilendirme yeteneklerini kullanarak kimlik doğrulama işlevselliği ekler. Nasıl Çalışır:

  1. Kullanıcı Girişi:
    • Kullanıcı, bir istemci (örneğin, bir web uygulaması) üzerinden oturum açmak istediğinde, istemci kullanıcıyı bir kimlik sağlayıcısına (Identity Provider, IdP) yönlendirir.
  2. Yetkilendirme İsteği:
    • İstemci, kimlik sağlayıcısına bir yetkilendirme isteği gönderir. Bu istek, istemcinin kullanıcı adına belirli bilgilere ve izinlere erişim izni istemesini içerir.
  3. Kimlik Sağlayıcı Doğrulama:
    • Kimlik sağlayıcı, kullanıcıyı doğrulamak için kullanıcıdan kimlik bilgilerini (örneğin, kullanıcı adı ve şifre) ister.
    • Kullanıcı kimlik bilgilerini girdikten sonra, kimlik sağlayıcı kullanıcıyı doğrular.
  4. Yetkilendirme Kodu Alımı:
    • Kullanıcı başarıyla doğrulandıktan sonra, kimlik sağlayıcı bir yetkilendirme kodu oluşturur ve bu kodu istemciye geri gönderir.
  5. Erişim ve Kimlik Belirtecinin Alınması:
    • İstemci, bu yetkilendirme kodunu kimlik sağlayıcıya gönderir ve bir erişim belirteci (access token) ile bir kimlik belirteci (ID token) alır.
  6. Kaynaklara Erişim:
    • İstemci, erişim belirteci ile API çağrıları yapabilir ve kimlik belirteci ile kullanıcının kimliğini doğrulayabilir. Avantajları: Güvenli, esnek ve geniş bir dizi kullanım senaryosunu destekler. Kullanıcının kimliği doğrulanırken ek kullanıcı bilgileri alınabilir. Dezavantajları: Karmaşıktır ve uygulaması zaman alabilir.

 


 Authorization Nedir ?

Authentication dan sonra yani kullanıcı doğrulandıktan sonra hangi verilere uygulamalara veya hangi işlemleri yapabileceğini belirler  . amacı kritik önemli verilerin korunması işlemlerini güvenli bir şekilde ve sadece yetkili oldukları işlemleri yapmalarını sağlamak

Authorization Yöntemleri

  1. Erişim Kontrol Listeleri (ACL): Bu yöntemde, her kaynak için hangi kullanıcıların veya grupların erişim iznine sahip olduğu belirlenir. Örneğin, bir dosya için sadece belirli kullanıcıların okuma veya yazma izni olabilir.
  2. Rol Tabanlı Erişim Kontrolü (RBAC): Bu yöntemde, kullanıcılar belirli rollerle tanımlanır ve bu rollere göre yetkilendirilir. Örneğin, bir "yönetici" rolü tüm kaynaklara erişim iznine sahip olabilirken, bir "kullanıcı" rolü sınırlı erişim iznine sahip olabilir.
  3. Politikalar: Bu yöntemde, belirli kurallara göre erişim izinleri tanımlanır ve yönetilir. Politikalar, belirli koşullar altında erişim izni verip vermemeye karar verir.

Adil ALATAŞ