"Açık Yetkilendirme" anlamına gelen OAuth, istemci uygulamalarının, kullanıcılar adına, kimlik bilgilerini bu uygulamalarla paylaşmalarına gerek kalmadan, korunan kaynaklara güvenli bir şekilde erişmelerini sağlayan açık standartlı bir yetkilendirme protokolüdür. OAuth, esnekliği, birlikte çalışabilirliği ve sağlam güvenlik mekanizmaları sayesinde, sosyal medya ağlarından e-ticaret web sitelerinden bulut depolama platformlarına ve kurumsal uygulamalara kadar çok sayıda endüstri dalında yaygın olarak benimsenmektedir.
Web sitesi geliştirme bağlamında OAuth, geliştiricilerin uygulamaları ile harici hizmetler arasında güvenli bağlantılar oluşturmaları ve yönetmeleri için güvenilir bir çerçeve sağlar. Bu, kimlik doğrulama ve yetkilendirme mekanizmalarının uygulanması sürecini büyük ölçüde basitleştirerek geliştiricilerin zamandan ve emekten tasarruf etmesini sağlarken kullanıcı gizliliğini ve veri güvenliğini sağlar.
OAuth zaman içinde birçok revizyondan geçmiştir ve en son sürüm OAuth 2.0'dır. Çok çeşitli kullanım senaryolarını ve dağıtım senaryolarını ele almayı amaçlayan kapsamlı bir dizi standart, yönerge ve en iyi uygulamalarla desteklenen kapsamlı bir sektör işbirliğinin ürünüdür.
OAuth'taki temel kavramlar şunları içerir:
- Kaynak Sahibi: Genellikle bir servis sağlayıcının platformundaki bir hesapla temsil edilen, korunan kaynakların sahibi ve kontrolünü elinde bulunduran kullanıcı.
- İstemci: Kaynak sahibi adına korunan kaynaklara erişmeyi amaçlayan uygulama.
- Kaynak Sunucusu: Korunan kaynakları barındıran sunucu.
- Yetkilendirme Sunucusu: Kaynak sahibinin kimliğini doğrulayan ve istemciye erişim belirteçleri vererek onun korunan kaynaklara erişmesini sağlayan sunucu.
- Erişim Belirteci: Kaynak sahibi tarafından istemciye verilen yetkiyi temsil eden bir dize. Erişim belirteçlerinin sınırlı ömürleri ve belirli kapsamları vardır; bu da yalnızca belirli eylemler için ve belirli zaman dilimleri içinde kullanılabileceği anlamına gelir.
OAuth'un birincil avantajı, kaynak sahiplerinin, istemcilerin kimlik bilgilerini (kullanıcı adları ve şifreler gibi) paylaşmadan, korunan kaynaklarına erişmesine izin vermesine olanak sağlamasıdır. Bu, "temsil edilen yetkilendirme" olarak bilinen ve genellikle aşağıdaki adımları içeren bir süreç aracılığıyla gerçekleştirilir:
- İstemci, belirli eylemler veya kapsamlar için yetkilendirme talep ederek kaynak sahibini yetkilendirme sunucusuna yönlendirir.
- Kaynak sahibi, yetkilendirme sunucusuyla kimlik doğrulaması yapar ve müşterinin isteğini onaylar.
- Yetkilendirme sunucusu, bir yönlendirme URI'si aracılığıyla istemciye geri gönderilen bir yetkilendirme kodu yayınlar.
- İstemci, yetkilendirme sunucusuna bir talepte bulunarak yetkilendirme kodunu bir erişim belirteci ile değiştirir.
- İstemci, kaynak sunucusundan korunan kaynaklara erişmek için erişim belirtecini kullanır.
OAuth 2.0'ın temel özelliklerinden biri, farklı müşteri türlerine ve kullanım senaryolarına göre uyarlanmış birden fazla "bağış türünü" desteklemesidir. Bu hibe türleri, istemcilerin erişim belirteçlerini elde etmek için kullandıkları belirli yöntemleri tanımlar ve şunları içerir:
- Yetki Kodu: Bu hibe türü, gizli bilgileri güvenli bir şekilde saklayabilen ve yetkilendirme sunucusuyla arka kanal üzerinden iletişim kurabilen web ve mobil uygulamalar için uygundur.
- Örtülü: Tek sayfalı uygulamalar (SPA'lar) ve sırları güvenli bir şekilde saklayamayan ve belirteçlerin doğrudan ön kanal aracılığıyla verilmesini gerektiren diğer kullanıcı aracısı tabanlı istemciler için tasarlanmıştır.
- Kaynak Sahibi Parolası Kimlik Bilgileri: Geçiş senaryoları veya birinci taraf istemciler gibi istemcinin güvenildiği ve kaynak sahibinin kimlik bilgilerini güvenli bir şekilde alıp saklayabildiği senaryolarda kullanılır.
- İstemci Kimlik Bilgileri: İstemcinin belirli bir kaynak sahibi yerine kendi adına hareket ettiği makineden makineye (M2M) kimlik doğrulaması için uygundur.
AppMaster no-code platformuyla çalışan geliştiriciler, AppMaster özel API'lerini ve kimlik doğrulama hizmetlerini kullanarak OAuth tabanlı kimlik doğrulama ve yetkilendirme mekanizmalarını kolayca entegre edebilir. Bu, onların tek oturum açma (SSO) işlevselliğini, sosyal medya oturum açma özelliklerini uygulamalarına ve hatta OAuth'u destekleyen üçüncü taraf API'lere ve bulut hizmetlerine güvenli bağlantılar kurmalarına olanak tanır. Ayrıca AppMaster ile oluşturulan uygulamalar Go, Vue3 ve Kotlin gibi endüstri standardı teknolojilerle üretilerek OAuth ile uyumluluk ve birlikte çalışabilirlik sağlanır.
Sonuç olarak OAuth, web sitesi geliştiricilerine özellikle güvenlik ve entegrasyon kolaylığı açısından önemli avantajlar sunan güçlü, uyarlanabilir ve yaygın olarak benimsenen bir yetkilendirme protokolüdür. Geliştiriciler, OAuth'tan yararlanarak özel ve potansiyel olarak güvenli olmayan kimlik doğrulama ve yetkilendirme uygulamalarına olan bağımlılıklarını azaltabilir, bu da kullanıcı verilerini koruyan ve katı erişim kontrolü politikaları uygulayan daha güvenli, daha güvenli uygulamalarla sonuçlanabilir.