OAuth 2.0:
Modern Yetkilendirme Çerçevesi
Üçüncü taraf uygulamalara, kullanıcıların hassas kimlik bilgilerini paylaşmadan HTTP hizmetlerine sınırlı erişim sağlamak için tasarlanmış bir yetkilendirme çerçevesi.
Yaygın Kullanım
Google, Facebook, Microsoft gibi büyük teknoloji şirketleri tarafından benimsenen endüstri standardı.
Güvenlik
Kullanıcı şifrelerini paylaşmadan güvenli erişim sağlar, veri ihlali riskini azaltır.
Çoklu Platform
Web, mobil, masaüstü ve akıllı cihazlar gibi geniş bir cihaz yelpazesini destekler.
OAuth 2.0'a Giriş ve Temel Kavramlar
OAuth 2.0 Nedir?
OAuth 2.0, üçüncü taraf uygulamalara, kaynak sahibinin kimlik bilgilerini (örneğin, kullanıcı adı ve şifre) paylaşmadan, HTTP hizmetlerine sınırlı erişim sağlamak için bir yetkilendirme çerçevesidir [8] [310]. Bu, kaynak sahibi adına hareket eden bir istemci uygulamasının, kaynak sahibinin onayıyla veya kendi adına korunan kaynaklara erişmesine olanak tanır.
Önemli Hatırlatma
OAuth 2.0 bir yetkilendirme protokolüdür, kimlik doğrulama (authentication) yerine yetkilendirme (authorization) sağlar. "Google ile Giriş Yap" gibi düğmeler OAuth 2.0 kullanır [1] [117].
Temel Terminoloji
| Terim | Tanım | Önem |
|---|---|---|
| Kaynak Sahibi | Erişim izni veren kullanıcı veya varlık | GDPR ve LOPDGDD gibi düzenlemelerle uyumluluk için kritik |
| İstemci | Kaynak sahibi adına korunan kaynaklara erişim isteyen uygulama | Web, mobil, masaüstü uygulamaları olabilir |
| Yetkilendirme Sunucusu | Kaynak sahibinin kimliğini doğrulayan ve erişim belirteçleri veren sunucu | Kimlik doğrulama sürecini yönetir |
| Kaynak Sunucusu | Korunan kaynakları barındıran sunucu | İstemciden gelen istekleri alır ve doğrular |
| Erişim Belirteci | Kaynaklara erişmek için geçici kimlik bilgisi | Ortalama geçerlilik süresi: 1 saat |
OAuth 2.0 Yetkilendirme Türleri
Yetkilendirme Kodu
Sunucu taraflı web uygulamaları için önerilen ve en güvenli kabul edilen akıştır. PKCE ile birlikte mobil ve SPA'lar için de kullanılır.
İstemci Kimlik Bilgileri
Makineden makineye (M2M) iletişim için idealdir. Kullanıcı etkileşimi olmadan, istemcinin kendi adına erişim sağlamasını sağlar.
Cihaz Kodu
Giriş imkanı kısıtlı cihazlar (akıllı TV'ler, yazıcılar) için tasarlanmıştır. Kullanıcı başka bir cihaz üzerinden kimlik doğrulaması yapar.
Örtük Akış
Erişim belirteçlerini doğrudan tarayıcıya gönderir. Güvenlik riskleri nedeniyle OAuth 2.1 ile kullanımdan kaldırılmıştır.
Yetkilendirme Kodu Akışı
OAuth 2.0 Belirteçleri
Erişim Belirteci
İstemcinin korunan kaynaklara erişmek için kullandığı geçici kimlik bilgisi.
- • Genellikle 1 saat geçerlilik süresi
- • Taşıyıcı belirteç olarak kullanılır
- • JWT formatında olabilir
Yenileme Belirteci
Erişim belirteçlerinin ömrünü uzatmak için kullanılan uzun ömürlü kimlik bilgisi.
- • HSM'lerde güvenli saklanmalı
- • Kullanıcının yeniden giriş yapmasını önler
- • OAuth 2.1'de rotasyon önerilir
Kimlik Belirteci
OpenID Connect ile gelen, kullanıcı kimliği hakkında talep içeren JWT.
- • sub, iss, aud talepleri içerir
- • Kimlik doğrulama sağlar
- • Profil bilgilerini taşır
JWT (JSON Web Token) Yapısı
HEADER.PAYLOAD.SIGNATURE
Başlık (Header)
Belirteç türünü ve kullanılan imzalama algoritmasını belirtir (ör: alg: "RS256")
Yük (Payload)
Kullanıcı bilgilerini ve belirtecin sona erme süresi gibi talepleri içerir
İmza (Signature)
Belirtecin bütünlüğünü ve göndericinin kimliğini doğrulamak için kullanılır
Güvenlik Yönleri ve En İyi Uygulamalar
Yaygın Saldırı Vektörleri
-
Token Hijacking: Yetkilendirme kodunun veya erişim belirtecinin ele geçirilmesi [215]
-
CSRF Saldırıları: State parametresi olmadan yetkilendirme isteği sahteciliği [216]
-
Açık Yönlendirme: Yönlendirme URI'lerinin yeterince doğrulanmaması [273]
-
Clickjacking: Kullanıcı arayüzü giydirme saldırıları [224]
Güvenlik Önlemleri
-
PKCE: Kod değişimi için kanıt anahtarı, yetkilendirme kodunun kötüye kullanılmasını önler [216]
-
State Parametresi: CSRF saldırılarına karşı koruma sağlar [219]
-
JWT İmzalama: Belirteçlerin bütünlüğünü ve kaynağını doğrular [270]
-
HTTPS: Tüm OAuth iletişimleri şifrelenmiş kanal üzerinden yapılmalı [268]
OAuth 2.1: Güvenlik Güncellemeleri
OAuth 2.1, OAuth 2.0'ın güvenlik açıklarını gidermek ve en iyi uygulamaları standartlaştırmak amacıyla geliştirilen bir güncellemedir [346].
Önemli Değişiklikler:
- • PKCE Zorunlu: Tüm yetkilendirme kodu akışları için
- • Örtük Akış Kaldırıldı: Güvenlik riskleri nedeniyle
- • ROPC Kaldırıldı: Parola paylaşımını gerektirdiği için
- • Kesin URI Eşleşme: Açık yönlendirme zafiyetlerini önler
- • Yenileme Belirteci Rotasyonu: Güçlü şekilde önerilir
OAuth 2.0 vs OAuth 2.1 Karşılaştırması
| Özellik | OAuth 2.0 | OAuth 2.1 | Güvenlik Etkisi |
|---|---|---|---|
| PKCE Kullanımı | Genel istemciler için önerilir | Tüm akışlar için ZORUNLU | Yetkilendirme kodu ele geçirme saldırılarını önler |
| Örtük Akış | Desteklenir | KALDIRILDI | Tarayıcıda belirteç sızıntısı riskini ortadan kaldırır |
| Yönlendirme URI | Esnek eşleştirme | KESİN DİZE EŞLEŞMESİ | Yönlendirme manipülasyonuyla belirteç hırsızlığını önler |
| Yenileme Rotasyonu | İsteğe bağlı | GÜÇLÜ ŞEKİLDE ÖNERİLİR | Belirteç yeniden kullanım saldırılarını önler |
İşletme Perspektifi
İş Değeri
OAuth 2.0, güvenli API erişimi sağlayarak B2B SaaS uygulamalarında entegrasyon pazar yerleri oluşturmayı kolaylaştırır.
- • Parola paylaşımını ortadan kaldırır
- • İnce taneli izinler sağlar
- • Müşteri memnuniyetini artırır
API Güvenliği
API benimseme oranında %72'lik büyümeyle, OAuth 2.0 koruma ve kullanıcı deneyimi dengesini sağlar.
- • Sıfır Güven entegrasyonu
- • Kısa ömürlü belirteçler
- • Yetkisiz erişim riskini azaltır
Kullanım Senaryoları
Sosyal medya entegrasyonları, ödeme ağ geçitleri, kurumsal uygulamalar ve IoT cihazlarında yaygın kullanım.
- • Tek tıkla giriş deneyimi
- • Çapraz platform uyumluluğu
- • Standartlaştırılmış entegrasyon
OAuth 2.0'ın İşletmelere Sağladığı Faydalar
Kullanıcılar İçin
- • Düzinelerce şifreyi hatırlama zorunluluğu olmadan tek tıkla hızlı erişim
- • Hassas kimlik bilgilerini paylaşmadan güvenli giriş
- • Verileri ve erişim düzeyi üzerinde tam kontrol
- • İzinleri istedikleri zaman iptal edebilme
İşletmeler İçin
- • Daha yüksek kayıt oranları ve daha az işlem terki
- • Kimlik doğrulama yükünü güvenilir hizmetlere devretme
- • Maliyetleri düşürürken güvenliği artırma
- • Ekosistemler ve pazar yerleri oluşturma imkanı
"Audi'nin dijital dönüşüm projesinde, OAuth 2.0 ve OpenID Connect kullanarak müşterilere ve bayilere çeşitli hizmetler sunabilmek için yüksek düzeyde güvenli bir yetkilendirme mekanizması uygulandı."
Sonuç
OAuth 2.0, modern dijital uygulamalar için vazgeçilmez bir yetkilendirme çerçevesidir. Kullanıcıların hassas kimlik bilgilerini paylaşmadan güvenli erişim sağlaması, işletmelerin API güvenliği ve entegrasyon ihtiyaçlarını karşılamada kritik bir rol oynar.
Güvenlik
Kullanıcı şifrelerini korurken güvenli erişim sağlar
Kontrol
Kullanıcılar verileri ve erişim düzeyi üzerinde tam kontrole sahiptir
Standart
Endüstri çapında kabul görmüş, yaygın olarak uygulanan bir protokol
OAuth 2.1'e Geçiş
OAuth 2.1 ile birlikte güvenlik en iyi uygulamalarının zorunlu hale getirilmesi, geliştiricilerin daha güvenli uygulamalar oluşturmasını sağlayacaktır. PKCE'nin zorunlu kılınması, örtük akışın kaldırılması gibi iyileştirmeler, OAuth'ın gelecekteki güvenlik standartlarını belirleyecektir.