OAuth Yetkilendirme ve Kimlik Doğrulama


90

OAuth terminolojisi beni uzun zamandır rahatsız ediyor. OAuth Yetkilendirmesi bazılarının önerdiği gibi mi yoksa Kimlik Doğrulama mı?

Yanılıyorsam düzeltin, ancak Yetkilendirmeyi birisinin bir kaynağa erişmesine izin verme eylemi olarak okudum, ancak OAuth, kullanıcıların belirli bir kaynağa erişmesine gerçekten izin veren herhangi bir uygulamaya sahip görünmüyor. Tüm OAuth uygulamaları, bir kullanıcıya bir jeton (imzalı ve bazen şifreli) sağlamaktır. Bu jeton, daha sonra, yine bir OAuth sorunu değil, geçerlilik açısından kontrol edildiği bir arka uç hizmet uç noktasına yapılan her çağrı ile iletilir.

OAuth Kimlik Doğrulaması (her makale öyle olmadığını söylüyor) kabul ettiğim bir kullanıcının kimlik bilgilerini sağlamasını gerektiriyor mu? Bu da kullanıcının erişmesi gerektiğini / olmaması gerektiğini kanıtlıyor mu?

Bu nedenle, diğer işlemler tarafından gerçekleştirilmesi gerektiğinden, OAuth'un Yetkilendirme NOR Kimlik Doğrulaması olmadığı görülmektedir. Peki bu ne? Bir belirteci iletmek için bir süreç mi? Gerçekten belirli bir anlamı olmayan kabarık bir kelime mi?

Bu konu hakkında esrarengiz ve batıl inançlar (hayaletler ve goblinler) gelmeden soru sormak zor, bu yüzden bu soruyu cevaplamanın da basit bir şey olmayacağını umuyorum. Kendi risklerini göze al.


Ayrıca bu yanıtları yararlı buldum: security.stackexchange.com/questions/44611/…
antak

OAuth 2.0 bir güvenlik protokolüdür. Ayrıntılar: stackoverflow.com/a/54304326/3623172
Rajat

Yanıtlar:


153

OAuth, yetkilendirme için bir spesifikasyondur

OAuth 2.0, yetkilendirme için bir belirtimdir, ancak kimlik doğrulama için DEĞİLDİR. RFC 6749, 3.1. Yetkilendirme Uç Noktası açıkça şunu söylüyor:

Yetkilendirme uç noktası, kaynak sahibiyle etkileşim kurmak ve bir yetki onayı almak için kullanılır. Yetkilendirme sunucusu öncelikle kaynak sahibinin kimliğini doğrulamalıdır. Yetkilendirme sunucusunun kaynak sahibini doğrulama yöntemi (örneğin, kullanıcı adı ve şifre girişi, oturum çerezleri) bu spesifikasyonun kapsamı dışındadır .


OAuth kimlik doğrulaması?

Kimlik doğrulama, "kim olduğu" hakkındaki bilgileri ele alır. Yetkilendirme, "kimin kime hangi izinleri verdiği" hakkındaki bilgileri ele alır. Yetkilendirme akışı, ilk adım olarak kimlik doğrulamayı içerir. İnsanların genellikle kafalarının karışmasının nedeni budur.

Kimlik doğrulama için OAuth 2.0 kullanan birçok kitaplık ve hizmet vardır. Genellikle "sosyal giriş" olarak adlandırılır ve insanların kafasını daha fazla karıştırır. "OAuth kimlik doğrulaması" görüyorsanız ("OAuth yetkilendirmesi" değil), bu, kimlik doğrulama için OAuth kullanan bir çözümdür.


OpenID Connect

OpenID 1.0 ve OpenID 2.0, kimlik doğrulama için eski belirtimlerdir. Spesifikasyonları yapanlar, kişilerin kimlik doğrulama için OpenID kullanmasını bekliyordu. Ancak, bazı kişiler kimlik doğrulama için (yetkilendirme için değil) OAuth 2.0'ı kullanmaya başladı ve OAuth kimlik doğrulaması hızla yaygınlaştı.

OpenID çalışanlarının bakış açısından, OAuth tabanlı kimlik doğrulama yeterince güvenli değildi, ancak insanların OAuth kimlik doğrulamasını tercih ettiklerini kabul etmeleri gerekiyordu. Sonuç olarak, OpenID çalışanları OAuth 2.0'ın üzerine yeni bir özellik olan OpenID Connect'i tanımlamaya karar verdiler .

Evet, bu insanları daha çok karıştırdı.


OAuth 2.0 ve OpenID Connect'in tek cümlelik tanımları

OAuth 2.0 , bir hizmet kullanıcısının kimlik bilgilerini (kimlik ve şifre) uygulamaya açıklamadan hizmette barındırılan verilerine üçüncü taraf bir uygulamanın erişmesine izin verebileceği bir çerçevedir.

görüntü açıklamasını buraya girin

OpenID Connect , üçüncü taraf bir uygulamanın, bir hizmet tarafından yönetilen bir kullanıcının kimlik bilgilerini elde edebileceği OAuth 2.0'ın üzerinde bir çerçevedir.

görüntü açıklamasını buraya girin

(Üzgünüz, bu tanımlar şirketimin genel bakış sayfasından alıntılardır )


Uygulayıcılar açısından tanımlar

Kimlik doğrulama , bir son kullanıcının konusunu (= benzersiz tanımlayıcı) belirleme işlemidir. Konuyu belirlemenin birçok yolu var. Kimlik ve şifre, parmak izleri, iris tanıma vb.

Yetkilendirme , konuyu istenen izinlerle ve izinleri isteyen istemci uygulamasıyla ilişkilendirme işlemidir. Bir erişim belirteci, ilişkiyi temsil eder.


Ayrıca bakınız

  1. Bulgular Hakkında OAuth ve OpenID Connect Görüşmelerinin Tam Kazı Kazan Uygulayıcısı
  2. Tüm OAuth 2.0 Akışlarının Şemaları ve Filmleri
  3. Tüm OpenID Connect Akışlarının Şemaları
  4. OAuth 2.0 İçin En Basit Kılavuz

13
OAuth'a dayalı kimlik doğrulamasının neden yeterince güvenli olmadığını merak edenler için , bu yaygın tuzakların neden olduğunu varsayıyorum .
antak

4
"Yetkilendirme akışı, ilk adım olarak kimlik doğrulamasını içerir. İnsanların genellikle kafalarının karışmasının nedeni budur." Altın.
Sully

1
İki diyagram arasında görebildiğim tek fark, ilkinin "kullanıcının verilerini" ve ikincisinin "kullanıcının kimliğini" içermesidir, bu yüzden evet bu kafa karıştırıcı.
Joel_Blum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.