OAuth 2.0 ve OpenID Connect Güvenliği: Yaygın Hatalar ve Doğru Kullanım
5 Ekim 2026
OAuth 2.0 ve OpenID Connect (OIDC), modern “ile giriş yap” akışlarının temelidir. Güçlüdürler ama sık yanlış kullanılırlar; ve kimlik akışındaki bir hata, doğrudan hesap ele geçirmeye dönüşebilir. Bu yazıda ikisinin farkını ve en yaygın güvenlik hatalarını ele alıyoruz.
Önce kavram: OAuth ≠ OIDC
Sık karıştırılan iki kavram:
- OAuth 2.0 bir yetkilendirme çerçevesidir: “bu uygulamanın, benim adıma şu kaynağa erişmesine izin veriyorum.” Kimin giriş yaptığını doğrulamak onun asıl işi değildir.
- OpenID Connect (OIDC), OAuth 2.0 üzerine kurulu bir kimlik doğrulama katmanıdır: “bu kullanıcı gerçekten kim?” sorusunu bir kimlik token’ı (ID token) ile yanıtlar.
Yaygın hata, OAuth’u kimlik doğrulama için “ödünç” kullanmaktır. Erişim token’ının varlığı “kullanıcı giriş yaptı” anlamına gelmez; kimlik doğrulama için OIDC ve doğrulanmış ID token gerekir.
Yaygın güvenlik hataları
- Gevşek yönlendirme URI (redirect_uri): Yetkilendirme kodu/token, kayıtlı yönlendirme adresine gönderilir. Bu adres gevşek eşleştirilirse (açık yönlendirme veya joker), saldırgan kodu/token’ı kendi adresine yönlendirebilir. Yönlendirme URI’lerini tam ve katı eşleştirin.
- PKCE kullanmamak: Özellikle mobil/SPA gibi “public” istemcilerde, yetkilendirme kodunun araya girilerek çalınmasına karşı PKCE (Proof Key for Code Exchange) kullanılmalıdır. Bugün önerilen varsayılandır.
stateparametresini atlamak:state, CSRF’ye benzer akış-sahteciliğine karşı korur; her istekte rastgele üretilip doğrulanmalıdır.- Token’ları güvensiz saklamak: Erişim/yenileme token’larını güvensiz yerlerde (ör. XSS’e açık
localStorage) tutmak, bir XSS’i hesap ele geçirmeye çevirir. - Token’ları doğrulamamak: ID token’ın imzası,
iss(yayıncı),aud(hedef) ve süresi doğrulanmalı; körlemesine güvenmek tehlikelidir. - Aşırı geniş kapsam (scope): Uygulamaya yalnız gereken izinleri isteyin; “her şeye erişim” gereksiz risk biriktirir.
Özet
OAuth 2.0 yetkilendirme, OIDC kimlik doğrulama içindir; ikisini karıştırmak ilk hatadır. En kritik güvenlik önlemleri: yönlendirme URI’lerini katı eşleştirmek, public istemcilerde PKCE kullanmak, state ile akışı korumak, token’ları güvenli saklamak ve ID token’ı (imza/iss/aud/süre) doğrulamak. Bu akıştaki bir gevşeklik, doğrudan hesap ele geçirmeye yol açabilir.
Kaynaklar: OAuth 2.0 Security Best Current Practice (RFC 9700), OpenID Connect, OWASP: OAuth.
Kimlik akışlarınızın (yönlendirme, token) güvenliği doğru kurulmuş mu? CyberTestify’ın aktif doğrulama ve tam pentest paketleri, kimlik doğrulamalı akışları değerlendirir.