İçeriğe geç
VexCoreVexCore
Sözlük

OAuth Nedir?

OAuth, bir uygulamanın kullanıcı parolasını paylaşmadan başka bir servisteki kaynaklara erişmesini sağlayan açık yetkilendirme protokolüdür. Token mantığı bu rehberde.

Kısa Cevap

OAuth, bir uygulamanın kullanıcının parolasını öğrenmeden, başka bir servisteki belirli kaynaklara sınırlı erişim almasını sağlayan açık bir yetkilendirme (authorization) protokolüdür. Kullanıcı izni sonrası uygulamaya parola yerine süreli bir erişim jetonu (access token) verilir. "Google ile giriş yap" gibi sosyal ve kurumsal girişlerin temelinde yaygın olarak OAuth 2.0 bulunur.

Özet

  • OAuth, parola paylaşmadan sınırlı erişim sağlayan yetkilendirme protokolüdür.
  • Kimlik doğrulama (authentication) değil; yetkilendirme (authorization) odaklıdır.
  • Erişim, parola yerine süreli ve kapsamı sınırlı token ile verilir.
  • Sosyal ve kurumsal "ile giriş yap" akışlarının temelinde genellikle OAuth 2.0 vardır.
  • Doğru kurulduğunda saldırı yüzeyini azaltmaya yardımcı olur; tek başına tam güvenlik garantisi vermez.

OAuth ne demek?

OAuth, "Open Authorization" ifadesinin kısaltmasıdır ve bir uygulamanın, kullanıcının parolasını öğrenmeden başka bir servisteki kaynaklara sınırlı erişim almasını sağlayan açık bir standarttır. Günümüzde en yaygın kullanılan sürüm OAuth 2.0'dır.

Klasik yöntemde bir uygulamaya başka bir hesabın verisine erişmesi için kullanıcı adı ve parolanın doğrudan verilmesi gerekirdi. Bu yaklaşım, parolanın üçüncü tarafça saklanması ve sınırsız erişim gibi riskler taşır. OAuth, bu sorunu yetki devri mantığıyla çözer: kullanıcı izin verir, uygulamaya ise parola yerine süreli bir jeton iletilir.

Yetkilendirme mi, kimlik doğrulama mı?

Bu ayrım sık karıştırılır:

  • Kimlik doğrulama (authentication): Kullanıcının kim olduğunu doğrular.
  • Yetkilendirme (authorization): Doğrulanmış kullanıcının neye erişebileceğini belirler.

OAuth temelde bir yetkilendirme protokolüdür; "bu uygulama, benim adıma şu kaynaklara erişebilir" iznini yönetir. Kimlik bilgisinin de paylaşılması gereken senaryolarda OAuth 2.0 üzerine kurulu OpenID Connect (OIDC) kullanılır. Bu nedenle "ile giriş yap" akışlarında çoğu zaman ikisi birlikte değerlendirilir.

Sosyal ve kurumsal giriş

"Google ile giriş yap", "Microsoft ile giriş yap" gibi seçeneklerin arkasında genellikle OAuth bulunur. Kullanıcı tanıdığı bir sağlayıcı üzerinden onay verir; uygulama yeni bir parola oluşturmadan erişim alır.

Kurumsal tarafta OAuth, tek oturum açma (SSO) ve merkezi kimlik yönetimi mimarilerinin de bir parçası olabilir. Çalışanlar tek bir kurumsal hesapla birden çok uygulamaya erişebilir; erişim, merkezden yönetilebilir ve gerektiğinde geri alınabilir.

Token mantığı

OAuth akışının merkezinde token (jeton) kavramı vardır:

  1. Kullanıcı, uygulamaya erişim izni verir.
  2. Yetkilendirme sunucusu, parola yerine bir access token (erişim jetonu) üretir.
  3. Uygulama, kaynaklara erişirken bu jetonu sunar.
  4. Jeton süreli ve kapsamı (scope) sınırlıdır; yalnızca izin verilen işlemleri kapsar.

Çoğu senaryoda erişim jetonunun ömrü kısadır; yenileme için refresh token kullanılır. Bu yapı, parolanın dolaşıma girmesini engeller ve bir jeton ele geçse bile etkiyi sınırlamaya yardımcı olur.

Güvenlik açısından

OAuth, doğru yapılandırıldığında parola paylaşımını ortadan kaldırarak saldırı yüzeyini azaltmaya yardımcı olur. Ancak tek başına her riski ortadan kaldıran bir çözüm değildir; jeton saklama, yönlendirme (redirect) doğrulaması, kapsam sınırlandırması ve güvenli iletişim (HTTPS) gibi konuların özenle ele alınması gerekir. Hatalı kurgulanmış bir OAuth akışı, yeni güvenlik açıkları doğurabilir.

Bu nedenle protokol seçimi kadar uygulama detayları da önemlidir ve duruma göre uzman değerlendirmesi gerektirebilir.

VexCore yaklaşımı

VexCore, kuruma özel yazılım ve sistem entegrasyonu projelerinde kimlik ve erişim yönetimini, gereksinime göre OAuth 2.0/OIDC ve SSO mimarileriyle değerlendirir. Yapay zekâ destekli özelliklerde ise erişim kararları karar destek katmanı olarak ele alınır; kritik adımlarda insan onayı ve denetim izi öngörülür.

Sık sorulan sorular

OAuth ile kimlik doğrulama (authentication) aynı şey mi?
Tam olarak değil. OAuth temelde bir yetkilendirme protokolüdür; kimin neye erişebileceğini yönetir. Kimlik doğrulama gereken giriş senaryolarında OAuth 2.0 üzerine kurulu OpenID Connect (OIDC) kullanılır.
OAuth 1.0 ile OAuth 2.0 arasındaki fark nedir?
OAuth 2.0, daha sade akışlar ve farklı istemci türleri için ayrı senaryolar sunan güncel sürümdür. Bugün yeni uygulamalarda yaygın olarak OAuth 2.0 ve onun üzerine kurulu OIDC tercih edilir.
Access token ile refresh token farkı nedir?
Access token, kaynaklara erişimde kullanılan ve genellikle kısa ömürlü olan jetondur. Refresh token ise süresi dolan erişim jetonunu yeniden almak için kullanılan, ömrü daha uzun olabilen jetondur.
OAuth kullanmak güvenliği tek başına garanti eder mi?
Hayır. OAuth, parola paylaşımını azaltarak güvenliğe katkı sağlar; ancak jeton saklama, redirect doğrulaması, kapsam sınırlama ve HTTPS gibi konular doğru kurgulanmazsa yeni açıklar oluşabilir.
"Google ile giriş yap" OAuth mı kullanır?
Bu tür sosyal giriş akışları genellikle OAuth 2.0 ve OpenID Connect birlikte kullanır. Kullanıcı sağlayıcı üzerinden onay verir; uygulama parola yerine süreli bir jetonla erişim alır.
OAuth kurumsal SSO ile ilişkili mi?
Evet, ilişkili olabilir. OAuth 2.0/OIDC, tek oturum açma (SSO) ve merkezi kimlik yönetimi mimarilerinin bir parçası olarak değerlendirilebilir; erişim merkezden yönetilebilir.

Projeniz için konuşalım

Kurumunuzun ihtiyaçlarını birlikte değerlendirelim; size uygun çözüm ve teklif için bizimle iletişime geçin.