OAuth

Tarihçe

OAuth Kasım 2006'da başladı, Blaine Cook  Twitter OpenID uygulamasını geliştiriyordu. Bu sırada, Ma.gnolia OpenID'ye sahip üyelerinin Dashboard Widgets'leri yetkilendirerek kendi servisine erişebilmesi için  bir çözüme ihtiyacı vardı. Magnolia'dan Cook, Chris Messina ve Larry Halff , David Recordon ile tanıştılar ve OpenID'yi Twitter and Ma.gnolia APIs ile kullanarak kimlik doğrulamayı devretmeyi görüştüler. API erişim yetkisi için open standards olmadığı sonucuna vardılar. 
Açık protokol için bir taslak öneri yazmaları için küçük grup ugulayıcıdan oluşan OAuth Discussion Group Nisan 2007 de oluşturuldu. Google'dan DeWitt Clinton OAuth projesini öğrendi ve projeye duyduğu ilgiyi üzerindeki çalışmaları destekleyerek gösterdi. Temmuz 2007'de ilk tanımlamayı yayınladılar. Eran Hammer joined and coordinated the many OAuth contributions creating a more formal specification. On December 4, 2007, the OAuth Core 1.0 final draft was released.
Kasım 2008 Minneapolis  de yapılan 74. Internet Mühendisliği Görev Gücü (IETF) toplantısında düzenlenen OAuth BoF, protokolü IETF'e getirip daha standartlaştırma çalışmaları görüşmek için toplanıldı. Etkinlik katılımı yüksekti ve resmi olarak IETF içindeki OAuth çalışma grubunu kurmak için geniş bir destek geldi.
Nisan 2010 da OAuth 1.0 protokolü, yorumlar için bilgilendirme talebi olan RFC 5849 olarak yayımlandı.
31 Ağustos 2010 dan beri bütün third party Twitter uygulamaları için OAuth kullanımı mecburi oldu.
Ekim 2013'te RFC 6749 olarak OAuth 2.0 ve RFC 6750 olarak Bearer Token Usage yayımlandı. Bu iki standartta Requests for Comments takip ediliyor.

OAuth 2.0

OAuth 2.0, OAuth protokolünün bir sonraki versiyonu ve OAuth 1.0 ile uyumluluğu yok. OAuth 2.0 kullanıcı geliştirici kolaylığına, web uygulamalarına, masaüstü uygulamalarına, cep telefonlarına ve oturma odalarında kullanılan cihazlara spesifik yetki akışları sağlayarak odaklanmış oluyor. IETF OAuth çalışma grubu tarafından ilişkili RFC'ler ve spesifikasyonlar geliştiriliyor; Ekim 2012 de ana framework yayımlanıyor.(Eran Hammer'a göre 2010 sonunda bitirilmesi bekleniyordu. Fakat OAuth hakkındaki çelişen incelemeler nedeniyle Hammer çalışma grubundan ayrıldı.)
Facebook Graph API sadece OAuth 2.0 protokolünü destekliyor. Google bütün API'leri için kimlik doğrulama mekanizması olarak önerilen OAuth 2.0'ı destekliyor. 2011'den bu yana da Microsoft API'leri için OAuth 2.0'ı deneysel olarak desteklemeye başladı.
Ekim 2012 de OAuth 2.0 Framework  and Bearer Token Usage yayımlandı. Diğer dokümanlar için OAuth çalışma grubunda çalışılmaya halen devam ediliyor.

Güvenlik

Nisan 2009 da 1.0 protokolündeki oturum odaklı güvenlik açığı duyuruldu. Bu açık OAuth Core 1.0 Section 6. Version 1.0'daki OAuth kimlik doğrulama akışını ("3-legged OAuth" olarak da bilinen) etkiliyor.
Bu sebeple OAuth Core protokolü bu sorunu ortadan kaldırmak üzere görevlendiriliyor.
OAuth 2.0 de imzalama, şifreleme, channel binding veya kullanıcı doğrulama desteklenmiyor. OAuth 2.0 de gizlilik ve sunucunun kimlik doğrulaması için tamamen TLS'e güveniliyor.
OAuth 2.0 da uygulamaların maruz kaldığı birçok güvenlik açığı vardı.  Güvenlik uzmanları tarafından protokol, yapısı gereği emniyetsiz olarak tanımlandı ve spesifikasyona asıl katkı sağlayan, uygulama hatalarının neredeyse kaçınılmaz olduğunu belirtti.
Ocak 2013'te IETF OAuth 2.0 için birkaç tane tehdit modelleri tanımladı. Bunların arasından biri "Open Redirector"; 2014 baharında, Wang Jing tarafından  "Covert Redirect" adı altında tanıtıldı.
Muhtemelen OAuth'daki en yıkıcı güvenlik açığı yemleme zafiyeti oldu : OAuth kullanan her web sitesi görsel olarak (teknik olarak değil) kullanıcıların master kimliklerindeki kullanıcı adı ve şifresini soruyor, bu ise sıradan kullanıcıların saldırganın web sitesinde karşılarına çıkacak olan kimlik bilgilerini çalmak için görsel olarak taklit edilmiş yerlere master kimlik bilgilerini vermelerini engelliyor. İki faktörle yapılan kimlik doğrulama bu saldırıya engel olmuyor, çünkü yemleme sitesi onu da çalabilir (ve hemen kullanabilir).

Birlikte İşlemezlik

OAuth 2.0 tanımlanmış bir protokolden çok framework olduğu için, OAuth 2.0 uygulamaları diğer OAuth 2.0 uygulamaları ile doğal olarak birlikte işler olmaları çok olanaklı değildir. Daha ileri ayrıntılı inceleme ve spesifıkasyon birlikte işlerlik için gereklidir.

Kullanım

OAuth yetkilendirme mekanizması olarak güvenli RSS/ATOM feedlerini tüketmek için kulanılır. Kimlik doğrulaması gereken RSS/ATOM feedlerinin tüketimi her zaman bir sorun olmuştur. Örneğin; güvenilir Google Site içindeki RSS feed, Google Reader kullanılarak tüketilemez. Bunun yerine Google sitesindeki RSS feed'e ulaşması için three-legged OAuth Google Reader da yetki verme için kullanılabilir.

Karşıtlık

Temmuz 2012 de OAuh 2.0'daki baş yazar rolünden ayrılarak, IETF'deki çalışma grubundan da çekilip, ismini bu spesifikasyondan çıkardı. Hammer web ve kurumsal kültürler arasındaki bir çelişkinin üzerinde durarak, IETF'yi "tamamen kurumsal kullanım senaryoları" adı altında bir topluluk olduğunu anmıştır, bu "sadeliğe yeteneği yok" demektir. Hammer, Şu an sunulanın yetki verme protokolü için bir taslak olduğunu söylemiş ve "bu kurumsal bir yoldur", ekleyerek devam etmiştir "Danışmanlık servisleri ve entegrasyon çözümlerini satmak için yepyeni sınırdır."
OAuth 2.0 ve 1.0 karşılaştırılırken Hammer "daha karışık, daha az birlikte çalışabilir, daha kullanışsız, daha tamamlanmamış ve en önemlisi daha güvensiz" hale geldiğine parmak basıyor. Hammer, mimari değişimlerin 2.0 versiyonu için kullanıcılardan tokenlerin bağını kopardığını, bütün imzalama ve şifrelemenin protokol seviyesinde kaldırıldığını ve yetkilendirme işlemlerini zorlaştırmadan tokenler iptal edilmeyeceğinden dolayı sona erme süresi olan tokenlerin eklendiğini açıklıyor. Spesifikasyonda birçok öğe açıkça belirtilmemiş ve sınırlanmamış çünkü "bu çalışma grubunun doğası gereği, hiçbir konu tutulacak kadar ya da her bir uygulamada karar verilmesi için açık bırakılacak kadar küçük/önemsiz değildir."
Hammer daha sonra &Yet için kendi görüşlerini detaylandıran bir sunum veriyor.
David Recordon da daha sonradan kendi ismini spesifikasyonlardan belirli olmayan nedenlerden dolayı çıkarıyor. Dick Hardt editör olarak yerine devam ediyor ve framework Ekim 2012 de yayımlanıyor.