Size daha iyi hizmet sunabilmek için çerezleri kullanıyoruz.
Web sitemizde gezinme deneyiminizi geliştirmek, size kişiselleştirilmiş içerik ve hedefli reklamlar göstermek, web sitesi trafiğimizi analiz etmek ve ziyaretçilerimizin nereden geldiğini anlamak için çerezleri ve diğer izleme teknolojilerini kullanıyoruz.
⚠️
KVKK ve Çerez Politikası Bilgilendirmesi
6698 sayılı Kişisel Verilerin Korunması Kanunu (KVKK) ve Aydınlatma Yükümlülüğü kapsamında; web sitemizin temel fonksiyonlarının çalışabilmesi, veri güvenliğinin sağlanması ve performans analizi yapılabilmesi için zorunlu çerezlerin kullanımı gerekmektedir. Çerez kullanımını reddetmeniz halinde, teknik imkansızlıklar ve veri senkronizasyonu kesintileri nedeniyle web sitemizdeki hizmetlerden yararlanmanız mümkün olmamaktadır. Sitemizdeki içeriklere erişebilmek için çerez kullanımını onaylamanız gerekmektedir.
OAuth2, OpenID Connect ve Zero Trust: Modern Kimlik Doğrulama ve Ağ Güvenlik Mimarileri
Modern dijital ekosistemde güvenlik, artık çevresel bir savunma hattı kurmaktan ziyade her bir veri paketinin ve kimlik bilgisinin sürekli doğrulanması esasına dayanmaktadır. Geleneksel “güven ama doğrula” yaklaşımı, yerini “asla güvenme, her zaman doğrula” prensibine, yani Zero Trust (Sıfır Güven) mimarisine bırakmıştır. Bu mimarinin temel taşlarını ise OAuth 2.0 ve OpenID Connect (OIDC) protokolleri oluşturur.
Şekil 1: OAuth2, OpenID Connect ve Zero Trust: Modern Kimlik Doğrulama ve Ağ Güvenlik Mimarileri
OAuth 2.0, bir kullanıcının şifresini paylaşmadan üçüncü taraf uygulamalara sınırlı erişim izni vermesini sağlayan bir yetkilendirme çerçevesidir. Teknik olarak bir “kimlik doğrulama” (authentication) protokolü değil, bir “yetkilendirme” (authorization) protokolüdür.
Temel Aktörler ve Akış (Grant Types)
OAuth 2.0 mimarisinde dört ana rol bulunur:
Resource Owner (Kaynak Sahibi): Veriye erişim izni veren kullanıcı.
Client (İstemci): Kaynağa erişmek isteyen uygulama.
Authorization Server (Yetkilendirme Sunucusu): Kullanıcıyı doğrulayan ve token üreten sunucu.
Resource Server (Kaynak Sunucusu): Verinin barındığı, Access Token ile erişilen API.
Teknik Uygulama: Authorization Code Flow
Modern web uygulamalarında en güvenli yöntem olan Authorization Code Flow ile bir token alımı şu şekildedir:
OAuth 2.0 yetkilendirme yaparken, kimin giriş yaptığını söylemez. OIDC, OAuth 2.0’ın üzerine inşa edilmiş bir kimlik doğrulama katmanıdır. Temel farkı, ID Token kavramını getirmesidir.
ID Token ve JWT Yapısı
OIDC, kimlik bilgilerini taşımak için JSON Web Token (JWT) formatını kullanır. Bir JWT üç bölümden oluşur: Header, Payload ve Signature.
import jwt
# Resource Server tarafında token doğrulamasıdefverify_token(token, public_key):
try:
payload = jwt.decode(token, public_key, algorithms=['RS256'], audience='my-api')
return payload
except jwt.ExpiredSignatureError:
return"Token süresi dolmuş."except jwt.InvalidTokenError:
return"Geçersiz token."
3. Zero Trust Networking (ZTN): Çevresiz Güvenlik
Zero Trust, ağın içindeki veya dışındaki hiç kimseye varsayılan olarak güvenilmediği bir stratejik modeldir. “Mikro-segmentasyon” ve “En Az Yetki İlkesi” (Least Privilege) üzerine kuruludur.
Zero Trust Mimarisinin Üç Sütunu
Açıkça Doğrula: Kullanıcı kimliği, konumu, cihaz sağlığı ve veri sınıflandırması gibi tüm mevcut veri noktalarına dayanarak her zaman doğrulama yapın.
En Az Yetkili Erişimi Kullan: Tam zamanında ve yeterli erişim (JIT/JEA) ile riskleri sınırlayın.
İhlal Varsayımı (Assume Breach): Saldırı alanını en aza indirmek için ağı küçük parçalara bölün (mikro-segmentasyon). Şifreleme ve analitiği uçtan uca uygulayın.
4. Teknik Entegrasyon: OAuth2/OIDC ve Zero Trust İlişkisi
Zero Trust mimarisinde OAuth2 ve OIDC, Policy Enforcement Point (PEP) görevini görür. Kullanıcı bir kaynağa erişmek istediğinde, sistem sadece şifreye bakmaz; OIDC üzerinden gelen ID Token’daki “context” (bağlam) bilgilerini inceler.
Güvenlik Kütüphaneleri ve Araçlar
Modern mimarilerde bu protokolleri implemente etmek için kullanılan popüler kütüphaneler:
5. İleri Düzey Güvenlik Parametreleri: PKCE ve mTLS
PKCE (Proof Key for Code Exchange)
Mobil ve Single Page Application (SPA) gibi “public client” yapılarında, client_secret güvenli tutulamaz. PKCE, bir kod yakalama saldırısını (code interception attack) önlemek için geçici bir gizli anahtar (code verifier) kullanır.
mTLS (Mutual TLS)
Zero Trust mimarisinde sadece istemci sunucuyu doğrulamaz, sunucu da istemcinin sertifikasını kontrol eder. OAuth 2.0’da Sender-Constrained Tokens mekanizması ile token, istemcinin TLS sertifikasına bağlanarak çalınsa dahi başka bir cihazda kullanılmasını engeller.
6. Mikroservislerde Kimlik Yönetimi
Mikroservis mimarisinde her servis kendi başına bir Resource Server’dır. İstekler genellikle bir API Gateway üzerinden geçer.
Edge Authentication: API Gateway, OIDC kullanarak dış dünyadan gelen isteği doğrular.
Internal Token Exchange: İç servisler arası iletişimde, orijinal token daha kısıtlı yetkilere sahip yeni bir token ile takas edilebilir.
Notlar ve Kritik Uyarılar
NOT 1: Asla Implicit Grant akışını kullanmayın; güvenlik açıkları nedeniyle bu akış OAuth 2.1 spesifikasyonunda kaldırılmıştır. Bunun yerine PKCE destekli Authorization Code Flow tercih edilmelidir.
NOT 2: Token süresini (Expiration Time) kısa tutun. Uzun süreli oturumlar için Refresh Token kullanın ve bu token’ları güvenli (HttpOnly, Secure cookies) alanlarda saklayın.
NOT 3: Zero Trust bir ürün değil, bir süreçtir. Sadece OIDC kullanmak sizi “Zero Trust” yapmaz; cihaz sağlığı (Device Health) ve davranış analitiği (UEBA) ile desteklenmelidir.
Sonuç
Modern güvenlik mimarisi, kimlik doğrulamanın (OIDC) ve yetkilendirmenin (OAuth 2.0) dinamik bir şekilde, her işlemde yeniden değerlendirildiği Zero Trust felsefesine evrilmiştir. Geliştiriciler için bu, sadece kütüphane entegrasyonu değil, aynı zamanda verinin ve erişimin en küçük parçaya (granularity) kadar kontrol edilmesi anlamına gelir. Güçlü bir şifreleme, katı bir kimlik denetimi ve sürekli izleme, bu üçlü yapının başarısı için vazgeçilmezdir.