logologo
Ai badge logo

Bu madde yapay zeka desteği ile üretilmiştir.

OAuth2

fav gif
Kaydet
viki star outline
oauth-2-sm.png
OAuth 2.0
Çıkış tarihi
1 Ekim 2012
Geliştiren
IETF (Internet Engineering Task Force)
Standart
RFC 6749

İnternet tabanlı sistemlerde kullanıcı verilerine güvenli ve kontrollü erişim sağlamak amacıyla çeşitli yetkilendirme protokolleri kullanılmaktadır. Bu protokoller, kullanıcı kimlik bilgilerini doğrudan paylaşmadan üçüncü taraf uygulamaların belirli kaynaklara erişimini mümkün kılar. OAuth 2.0, bu amaçla geliştirilen yetkilendirme protokolüdür.


OAuth 2.0 bir yetkilendirme (authorization) protokolüdür, kimlik doğrulama (authentication) protokolü değildir. Bu ayrım önemlidir; çünkü OAuth 2.0, kullanıcı kimliğini doğrulamak yerine, belirli kaynaklara erişim yetkisi vermeye odaklanır. İnternet güvenliği ve kullanıcı veri gizliliği açısından büyük önem taşır. Modern web uygulamalarının çoğunda yaygın olarak kullanılmaktadır.

Tarihçe

OAuth protokolü ilk olarak 2006 yılında geliştirilmeye başlanmış ve 2012 yılında IETF (Internet Engineering Task Force) tarafından RFC 6749 numarasıyla resmî bir standart hâline getirilmiştir. OAuth 2.0, önceki sürüm olan OAuth 1.0'a göre daha esnek, genişletilebilir ve kullanım açısından daha kolaydır.

Temel Bileşenler

OAuth 2.0 protokolü dört ana bileşenden oluşur: kaynak sahibi (kullanıcı), istemci (uygulama), yetkilendirme sunucusu ve kaynak sunucusu. Bu bileşenler arasındaki etkileşim, erişim jetonları aracılığıyla gerçekleşir. Protokol, farklı erişim senaryoları için "authorization code", "implicit", "resource owner password credentials" ve "client credentials" olmak üzere dört ana yetkilendirme türünü destekler. Ayrıca, Google, Facebook, Microsoft gibi büyük teknoloji şirketleri bu temel protokol üzerine kendi güvenlik ve kullanıcı deneyimi ihtiyaçlarına göre özel OAuth 2.0 implementasyonlarını geliştirmiştir. Bu uygulamalar, standart protokole ek güvenlik katmanları ve kimlik doğrulama özellikleri ekleyerek OAuth 2.0'ı daha işlevsel hâle getirmektedir.

Authorization Code Flow

Authorization Code Flow, OAuth 2.0 protokolünün en yaygın ve güvenli yetkilendirme türlerinden biridir. Bu akış, özellikle sunucu tarafında çalışan web uygulamaları için tasarlanmıştır. Süreç şu adımlarla işler:


  1. Yönlendirme ve İzin İstemi: Kullanıcı, uygulama tarafından yetkilendirme sunucusuna yönlendirilir. Yetkilendirme sunucusu, kullanıcının kimliğini doğrular ve uygulamanın erişim izni isteğini kullanıcıya gösterir. Kullanıcı izni verdiğinde süreç devam eder.
  2. Yetkilendirme Kodunun Alınması: Kullanıcının izni sonrası, yetkilendirme sunucusu istemci uygulamaya kısa süreli bir "yetkilendirme kodu" gönderir. Bu kod genellikle bir yönlendirme URI'si aracılığıyla iletilir.
  3. Erişim Jetonunun Alınması: Uygulama, aldığı yetkilendirme kodunu kullanarak yetkilendirme sunucusuna bir arka kanal (sunucu-sunucu) isteği yapar. Bu istekte istemci kimlik bilgileri de gönderilir. Sunucu, geçerli bir kod ve istemci doğrulaması alırsa, uygulamaya erişim jetonu (access token) gönderir. Gerekiyorsa, uzun vadeli oturumlar için bir yenileme jetonu (refresh token) de sağlanabilir.
  4. Korunan Kaynaklara Erişim: Uygulama, erişim jetonunu kullanarak kaynak sunucudan kullanıcı adına veri talep edebilir. Erişim jetonunun geçerlilik süresi ve kapsamı, önceden belirlenen yetkilere göre sınırlıdır.


Authorization Code Flow (auth0.com)

Authorization Code Flow'un temel avantajı, erişim jetonlarının istemcinin tarayıcısına doğrudan iletilmemesi ve bunun yerine sunucu tarafında güvenli bir şekilde alınmasıdır. Bu yapı, kimlik bilgileri ve erişim verilerinin sızma riskini önemli ölçüde azaltır.

OpenID Connect

OpenID Connect, OAuth 2.0 protokolü üzerine inşa edilmiş, kullanıcı kimliğinin doğrulanmasına odaklanan bir kimlik doğrulama (authentication) protokolüdür. OAuth 2.0 yalnızca yetkilendirme sağlarken, OpenID Connect bu protokole ek katmanlar ekleyerek kullanıcı kimliğinin güvenli ve standart bir şekilde doğrulanmasını mümkün kılar. OpenID Connect, JSON Web Token (JWT) formatında ID tokenları kullanarak kullanıcı hakkında kimlik bilgilerini taşır ve farklı uygulamalar arasında tek oturum açma (Single Sign-On) deneyimi sağlar. Günümüzde birçok büyük teknoloji firması ve servis, OpenID Connect standardını kimlik doğrulama için tercih etmektedir.

OpenID Ayarları

OpenID Connect standardı, kimlik doğrulama ve yetkilendirme süreçlerini kolaylaştırmak amacıyla .well-known/openid-configuration adında standart bir endpoint tanımlar. Bu endpoint, yetkilendirme sunucusunun yapılandırma bilgilerini (örneğin, desteklenen yetkilendirme yöntemleri, token endpointleri, kullanıcı bilgisi endpointi gibi) JSON formatında sunar. İstemci uygulamalar bu endpoint'e başvurarak, yetkilendirme sunucusunun desteklediği protokol özellikleri ve URL’ler hakkında dinamik ve güvenilir bilgi edinir. Bu sayede, uygulamalar farklı yetkilendirme sunucularına kolayca uyum sağlayabilir ve yapılandırma süreçleri otomatikleşir. Örnek olarak Google'ın openid-configuration endpoint'ine bakabilirsiniz.

Kullanım Alanları

OAuth 2.0, sosyal medya hesaplarıyla giriş, üçüncü taraf uygulamaların takvim, e-posta veya dosya gibi servislere erişimi gibi pek çok kullanım alanına sahiptir. Google, Facebook, Microsoft gibi büyük teknoloji firmaları bu protokolü yaygın şekilde kullanmaktadır.

Güvenlik ve Eleştiriler

OAuth 2.0, güvenliğin sağlanması için HTTPS gibi güvenli iletişim protokollerinin kullanılmasını zorunlu kılar. Ancak, uygulamanın kötü yapılandırılması durumunda güvenlik açıkları doğabilir. Ayrıca bazı uzmanlar, OAuth 2.0'ın esnekliği nedeniyle karmaşık güvenlik gereksinimlerini uygulamada zorluklar yaşanabileceğini belirtmektedir.

Kaynakça

Hardt, Eran. "The OAuth 2.0 Authorization Framework." RFC 6749, Internet Engineering Task Force, Ekim 2012. Erişim Tarihi: 22 Mayıs 2025. https://tools.ietf.org/html/rfc6749.


Sakimura, Nat, John Bradley, Michael Jones, Breno de Medeiros, and Chuck Mortimore. "OpenID Connect Core 1.0." OpenID Foundation, Kasım 2014. Erişim Tarihi: 22 Mayıs 2025. https://openid.net/specs/openid-connect-core-1_0.html.


Google Developers. "Google Identity Platform." Erişim Tarihi: 22 Mayıs 2025. https://developers.google.com/identity/protocols/oauth2.


Meta for Developers. "Facebook Login." Erişim Tarihi: 22 Mayıs 2025. https://developers.facebook.com/docs/facebook-login/.


Auth0. "What is OAuth 2?" Erişim Tarihi: 22 Mayıs 2025. https://auth0.com/intro-to-iam/what-is-oauth-2


Auth0. "Authorization Code Flow." Erişim Tarihi: 22 Mayıs 2025. https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow.


Sen de Değerlendir!

0 Değerlendirme

Yazar Bilgileri

Avatar
Ana YazarOsman Aslancan22 Mayıs 2025 12:26
KÜRE'ye Sor