OAuth 2.0, bu karmaşık ortamda yetkilendirme için standart protokol olarak ortaya çıkmış, çeşitli platformlar arasında güvenilir bağlantılar kurmaktadır. Bu makale, güvenli yetkilendirilmiş erişimi sağlayan rolleri, akışları, belirteçleri ve uygulama en iyi uygulamalarını açıklayan OAuth 2.0 hakkında bir giriş niteliğindedir.
OAuth 2.0 Nedir
OAuth 2.0, üçüncü taraf uygulamaların, kullanıcının kimlik bilgilerini paylaşmasına gerek kalmadan bir sunucudaki kullanıcının kaynaklarına erişmesine izin veren bir yetkilendirme çerçevesidir. Kullanıcıların, oturum açma kimlik bilgilerinden ödün vermeden, verilerine diğer uygulamalara erişim izni vermeleri için güvenli ve standart bir yol sağlar.
OAuth 1 vs OAuth 2
OAuth 2.0, daha iyi güvenlik, esneklik ve basitlikle önceki sürümlerin üzerine çıkarak yetkilendirme için standart haline gelmiştir.
OAuth 1.0, özellikle ilk sosyal medya platformları arasında yaygın olarak kullanılmaya devam etmektedir. Kullanıcı kimlik bilgilerini ifşa etmeden, kısa ömürlü erişim belirteçleri aracılığıyla yetkilendirilmiş API erişimine izin verir. OAuth 1.0 hala kullanılsa da, çoğu modern uygulama artık çeşitli platformları ve veri kaynaklarını entegre etmede üstün güvenlik ve kolaylık için OAuth 2.0'dan yararlanmaktadır.
İşte OAuth 1.0 ve OAuth 2.0 arasındaki temel farklılıkların hızlı bir özeti:
OAuth 1.0:
- 2007'de yayınlandı.
- Yetkilendirme için kriptografik imzalar kullanır. Her istek, gizli bir anahtar ve karma algoritması kullanılarak imzalanmalıdır.
- Tüketici anahtarı, tüketici sırrı, istek belirteci ve erişim belirteci ile 3 ayaklı yetkilendirmeyi destekler.
- The main grant types, kaynak sahibi adına korunan kaynaklara erişmek içindir.
- Her API çağrısını imzalamak daha karmaşık olarak görülür.
OAuth 2.0:
- 2012'de daha basit bir alternatif olarak yayınlandı.
- Taşıyıcı belirteç yetkilendirmesi ile erişim belirteçleri kullanır. Belirteçler, kaynaklara erişmek için anahtar görevi görür.
- Uygulamalar için yetkilendirme kodu verme akışı ile 4 ayaklı yetkilendirmeyi destekler.
- Web uygulamaları, mobil uygulamalar vb. için özel yetkilendirme akışları tanımlar.
- JWT erişim belirteçleri için yerel destek içerir.
- Çağrı başına imza olmadan daha basit istemci uygulamaları.
Apidog'da OAuth 2.0
Apidog, OAuth 2.0 erişim belirteçlerini kolayca elde etmek ve yönetmek için sezgisel bir kullanıcı arayüzüne sahip, güçlü bir API yönetim aracıdır. Tek bir tıklamayla bir erişim belirteci alabilir ve isteklere otomatik olarak başlık ekleyebilirsiniz. Belirteç son kullanma tarihi açıkça gösterilir ve gerektiğinde tek bir tıklamayla belirteci yenileyebilirsiniz, bu da OAuth 2.0 kimlik doğrulamalı API'leri test etmek için çok uygundur.

Google OAuth 2.0
Google, kullanıcıların Google kullanıcı adlarını ve şifrelerini ifşa etmeden, Google hesap verilerine üçüncü taraf uygulamalara veya hizmetlere erişim izni vermelerine izin vermek için OAuth 2.0 protokolünü kullanır. Referansınız için ayrıntılı kılavuz.

OAuth 2.0'ın Ana Rolleri
OAuth 2.0, yetkilendirme sürecinde yer alan çeşitli ana rolleri tanımlar. Her rolün kendi sorumlulukları vardır ve OAuth 2.0 protokolünün güvenliğini ve işlevselliğini sağlamada çok önemli bir rol oynar. Gelin bu rollere daha yakından bakalım:
- Kaynak Sahibi: Korumalı kaynaklara erişim izni verir.
- İstemci: Sahibi adına kaynaklara erişim talep eder.
- Yetkilendirme Sunucusu: Sahibi doğrular ve erişim belirteçleri yayınlar.
- Kaynak Sunucusu: Korumalı kaynakları barındırır, erişim belirteçlerini doğrular.
- Kullanıcı Aracısı: Sahibin istemci ve yetkilendirme sunucusu ile etkileşim kurması için arayüz.
OAuth 2.0 Nasıl Çalışır
OAuth 2.0, kullanıcıların üçüncü taraf uygulamalara izin vermeleri için güvenli ve standart bir yol sağlayan güçlü bir yetkilendirme çerçevesidir. Kullanıcı kaynaklarına güvenli erişim gerektiren birçok uygulama için ideal bir seçim olmasını sağlayan esneklik, ölçeklenebilirlik ve yaygın benimseme sunar. Ancak, kullanıcı verilerinin bütünlüğünü ve gizliliğini sağlamak için gerekli güvenlik önlemlerini anlamak ve uygulamak önemlidir.
OAuth 2.0, kullanıcıların verilerine sosyal medya entegrasyonu, tek oturum açma ve API erişim kontrolü gibi üçüncü taraf uygulamalara erişim izni vermek istedikleri senaryolarda yaygın olarak kullanılır. Kullanıcıların, üçüncü taraf uygulamalara verilen izinleri kolayca yönetmelerine ve iptal etmelerine olanak tanıyarak, verilerinin gizliliğini ve güvenliğini sağlar.
OAuth 2.0 Örneği
OAuth 2.0'ın temel amacı, kullanıcıların sosyal medya hesapları, bulut depolama veya diğer web hizmetleri gibi kaynaklarına erişmek için üçüncü taraf uygulamalara izin vermeleri için güvenli ve verimli bir yol sağlamaktır. Kullanıcıların parolalarını üçüncü taraf uygulamalarla paylaşma ihtiyacını ortadan kaldırarak, kimlik bilgisi hırsızlığı ve yetkisiz erişim riskini azaltır.
OAuth 2.0, kullanıcının istemci uygulamasına izin vermesinden sonra yetkilendirme sunucusu tarafından yayınlanan erişim belirteçleri kavramını tanıtır. Bu erişim belirteçleri daha sonra, kullanıcının adına kaynak sunucusuna istekleri doğrulamak ve yetkilendirmek için istemci uygulaması tarafından kullanılır. Bu, istemci uygulamasının kimlik bilgilerini doğrudan işlemeye gerek kalmadan kullanıcının kaynaklarına erişmesini sağlar. Postman OAuth 2.0'ı nasıl kullanacağınıza dair ayrıntılı bir kılavuz bulunmaktadır.

OAuth 2.0 Yetkilendirme Süreci
OAuth 2.0, kullanıcıların kimlik bilgilerini paylaşmadan, bir web sitesindeki kaynaklarına başka bir web sitesinden erişim izni vermelerine olanak tanıyan bir yetkilendirme çerçevesidir. Kullanıcılara, sosyal medya siteleri veya bulut depolama hizmetleri gibi çeşitli platformlardaki verilerine erişmek için üçüncü taraf uygulamaları yetkilendirmeleri için güvenli ve standart bir yol sağlar.
OAuth 2.0 yetkilendirme akışı birkaç adımdan oluşur:
- Kullanıcı süreci başlatır: Kullanıcı, üçüncü taraf uygulama tarafından sağlanan bir düğmeyi veya bağlantıyı tıklayarak yetkilendirme sürecini başlatır. Bu, "Google ile Oturum Aç" veya "Facebook ile Bağlan" düğmesi olabilir.
- Yetkilendirme sunucusuna yönlendirme: Kullanıcı, kullanıcının kimliğini doğrulamaktan ve istenen kaynaklara erişim izni vermek için onayını almaktan sorumlu olan yetkilendirme sunucusuna yönlendirilir.
- Kullanıcı yetkilendirme izni verir: Yetkilendirme sunucusu, üçüncü taraf uygulamanın hangi verilere erişim izni istediğini açıklayan bir onay ekranı sunar. Kullanıcı daha sonra erişim izni vermeyi veya reddetmeyi seçebilir.
- Yetkilendirme kodu verilir: Kullanıcı yetkilendirme izni verirse, yetkilendirme sunucusu bir yetkilendirme kodu oluşturur ve kullanıcıyı yetkilendirme koduyla birlikte üçüncü taraf uygulamanın geri arama URL'sine geri yönlendirir.
- Erişim belirteci isteği: Üçüncü taraf uygulama, yetkilendirme sunucusundan bir erişim belirteci istemek için yetkilendirme kodunu kullanır. Erişim belirteci, uygulamanın kullanıcı adına kullanıcının kaynaklarına erişmesine izin veren bir kimlik bilgisidir.
- Erişim belirteci verilir: Yetkilendirme kodu geçerliyse, yetkilendirme sunucusu üçüncü taraf uygulamaya bir erişim belirteci verir. Erişim belirteci, genellikle kullanıcının adına API istekleri yapmak için kullanılabilen uzun ömürlü bir belirteçtir.
- Kaynaklara erişim: Üçüncü taraf uygulama artık, kullanıcının kaynak sunucusundaki kaynaklarına erişmek için erişim belirtecini kullanabilir. Kaynak sunucusu, erişim belirtecini doğrular ve belirteç geçerliyse istenen kaynaklara erişim izni verir.
- Yenileme belirteci (isteğe bağlı): Bazı durumlarda, yetkilendirme sunucusu, erişim belirteciyle birlikte bir yenileme belirteci de yayınlayabilir. Yenileme belirteci, kullanıcının yetkilendirme sürecinden tekrar geçmesini gerektirmeden, geçerli olanın süresi dolduğunda yeni bir erişim belirteci elde etmek için kullanılabilir.
OAuth 2.0 yetkilendirme akışı, üçüncü taraf uygulamaların kimlik bilgilerini doğrudan işlemeye gerek kalmadan kullanıcı verilerine erişmeleri için güvenli ve kullanıcı dostu bir yol sağlar. Kullanıcılara, hangi uygulamaların verilerine erişebileceği konusunda kontrol sahibi olmalarını sağlar ve çeşitli platformlarla entegrasyon için standart bir yaklaşım sunar.
OAuth 2.0 için Güvenlik Hususları
OAuth 2.0, üçüncü taraf uygulamaların kimlik bilgileri olmadan kullanıcı kaynaklarına erişmesine izin verir, ancak güvenlik hayati öneme sahiptir. Erişim belirteçleri, yenileme belirteçleri ve istemci sırları gibi hassas bilgiler güvenli bir şekilde saklanmalı ve HTTPS üzerinden iletilmelidir. Uygun erişim kontrolleri erişimi kısıtlamalıdır. Ayrıca, belirteç süresi dolumu ve iptali, yetkisiz erişimi önlemeye yardımcı olur.
OpenID Connect gibi protokoller aracılığıyla güçlü kimlik doğrulama, istemci uygulamaların kimlik bilgileriyle kimlik doğrulaması yapmasını gerektirerek riski azaltır. Yetkilendirme sunucusunun kendisi, güvenli kodlama, denetim ve izleme gibi önlemlerle güvence altına alınmalıdır. API'ler için uygun olsa da, OAuth 2.0, belirteç yönetimi, kimlik doğrulama, yetkilendirme sunucusu güvenliği ve diğer en iyi uygulamalar aracılığıyla azaltılması gereken riskler sunar. Bu hususların ele alınması genel güvenliği artırır.