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:
- Kullanıcı, uygulamaya erişim izni verir.
- Yetkilendirme sunucusu, parola yerine bir access token (erişim jetonu) üretir.
- Uygulama, kaynaklara erişirken bu jetonu sunar.
- 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.