OAuth 1.0, OAuth 2.0'a karşı
OAuth'a Giriş
OAuth'u bir arabanın vale anahtarı olarak düşünelim. Sahibine sınırsız erişim sağlayan normal bir anahtarın aksine, bir vale bu vale anahtarını, torpido gözüne veya bagaja erişimi olmaksızın aracı yalnızca geçici bir dönüş için kullanmak için kullanır. OAuth, bir son kullanıcının hesap bilgilerinin Amazon, Facebook, Google, Instagram, LinkedIn, Netflix, Paypal, Microsoft, Twitter vb. kimlik bilgilerini haber siteleri, blog platformları, çevrimiçi video oyunları vb. uygulamalarda paylaşın.
Örneğin, bir kullanıcı Facebook'ta başka bir uygulamada oturum açarken Facebook oturum aç düğmesini tıklayabilir. Ardından, Facebook otomatik olarak kimliklerini doğrular ve web sitesi, Facebook'un izniyle onlara erişim izni verir. OAuth, Gmail gibi e-posta kimlik doğrulaması için de kullanılır; burada bir web hizmeti, başka bir cihazdaki korumalı kaynaklara erişim kazanır ve kullanıcının tek bir girişle iki farklı hizmete erişmesine olanak tanır.
OAuth sürümü:
OAuth 2.0, OAuth 1.0'ın tamamen yeniden yazılmış bir çerçevesidir ve 1.0 sürümü, farklı terminoloji ve terimler kullanan bir protokol olarak kabul edilir. İşlevdeki temel fark, her iki sürümün de görevleri ve son kullanıcı deneyimini nasıl kategorize ettiğidir.
OAuth 1.0 bir tüketiciye, hizmet sağlayıcıya ve kullanıcıya sahiptir ve kaynak sunucusu ile yetkilendirme sunucusunun rollerini açıkça ayırmaz.
Öte yandan, OAuth 2.0'ın bir istemcisi, yetkilendirme sunucusu, kaynak sunucusu ve kaynak sahibi vardır. Bu yüzden bu sürümlerin geriye dönük uyumluluğu yoktur. OAuth 2.0, web uygulamaları, masaüstü uygulamaları, cep telefonları, akıllı cihazlar ve API tabanlı hizmetler gibi tarayıcı tabanlı olmayan uygulamalar için özel yetkilendirme akışları sunar.
OAuth 1.0
⇒ A kullanıcısı, Uygulama 1'in Uygulama 2'deki verilere erişmesini istiyor
⇒ Uygulama 1, A kullanıcısı tarafından başlatılan Uygulama 2'ye bağlanma isteği gönderir
⇒ Uygulama 2, Uygulama 1'den gelen isteği kabul eder
⇒ Uygulama 2, Uygulama 1'e geçici bir belirteç gönderir
⇒ Uygulama 1, A kullanıcısını oturum açmaya yönlendirir veya önceden biçimlendirilmiş URL'ler de kullanılabilir
⇒ A kullanıcısı, Uygulama 1'de başarılı bir şekilde kimlik doğrulaması yaptıktan sonra, Uygulama 1, Uygulama 2'nin kaynaklarına erişmesi için Uygulama 2'ye izin vermesi için A kullanıcısından onay ister.
⇒ Onay verildiğinde, Uygulama 1 bilgilendirilir
⇒ Uygulama 1, Uygulama 2'den Geçici Belirteç kullanarak yeni bir erişim belirteci ister
⇒ Uygulama 2, isteği onaylar ve yeni bir erişim belirteci gönderir
⇒ Uygulama 1 artık yeni erişim belirtecini kullanarak Uygulama 2'nin verilerine erişebilir

OAuth 2.0
⇒ A kullanıcısı, Uygulama 1'in Uygulama 2'deki verilere erişmesini istiyor
⇒ Uygulama 1, yetkilendirme sunucusundan Uygulama 2'ye erişim talep eder
⇒ A kullanıcısı, yukarıdaki adımda alınan bu kimlik bilgisi ile yetkilendirme sunucusunda kimlik doğrulaması yapar ve Uygulama 2'deki verilere erişmek için Uygulama 1'e yetkilendirme izni verir
⇒ Şimdi, Uygulama 1, A kullanıcısının yukarıdaki 3. adımda verdiği yetkilendirme iznini kullanarak Yetkilendirme sunucusundan erişim belirtecini istiyor
⇒ Yetkilendirme sunucusu isteği doğrular ve Uygulama 1'e bir erişim belirteci gönderir
⇒ Uygulama 1 artık erişim belirteci ile Uygulama 1'deki verilere erişebilir

Neden OAuth 2.0?
- Tarayıcı dışı uygulamalar için daha iyi destek
- Rollerin ayrılması
- Kısa ömürlü erişim belirteci ve yenileme belirteci
- İmzalama isteklerinde azaltılmış karmaşıklık