API Anahtarları ve hatta Jetonlar, REST API'lerinin açık kaynaklarına erişim sağladıkları için doğrudan Kimlik Doğrulama ve Yetkilendirme mekanizmaları kategorisine girer. Bu tür doğrudan mekanizmalar, yetkilendirme kullanım durumlarında kullanılabilir.
Bir kaynağa veya REST uç noktaları tarafından açığa çıkan bir dizi kaynağa erişim elde etmek için, istekte bulunan ayrıcalıklarının kimliğine göre kontrol edilmesi gerekir. İş akışının ilk adım, daha sonra ile kimlik doğrulama bir doğrulama isteği; birbirini izleyen adım, erişim düzeyini (yani okuma, yazma veya okuma / yazma) yetkilendirmek için bir dizi tanımlanmış kurala göre kimliği kontrol etmektir . Bahsedilen adımlar tamamlandıktan sonra, tipik bir diğer endişe, izin verilen istek oranıdır , yani talep sahibinin verilen kaynak (lar) a karşı saniyede kaç istek gerçekleştirmesine izin verildiği anlamına gelir.
OAuth (Açık Yetkilendirme) , çoğu zaman büyük İnternet Şirketleri tarafından parola sağlamadan erişim sağlamak için kullanılan, temsili erişim için standart bir protokoldür . Açıkça görüldüğü gibi, OAuth, yukarıda belirtilen endişeleri yerine getiren bir protokoldür: Kaynak sahibi adına sunucu kaynaklarına güvenli yetkilendirilmiş erişim sağlayarak Kimlik Doğrulama ve Yetkilendirme. Üçüncü tarafın, kaynak sahibi adına sunucu tarafından yönetilen kaynağa erişmesine izin veren erişim Jetonları mekanizmasına dayanır. Örneğin, ServiceX, John yetkilendirmeyi yetkilendirdikten sonra John adına John Smith'in Google Hesabına erişmek ister; Ardından, ServiceX'e Google Hesabı ayrıntılarına erişmek için zamana dayalı bir Token verilecektir, büyük olasılıkla yalnızca okuma erişiminde.
API Anahtarı kavramı, yukarıda açıklanan OAuth Jetonuna çok benzer. En büyük fark, yetkilendirmenin olmamasıdır: Kullanıcı, anahtarın birbirini izleyen programatik etkileşimler için hizmet sağlayıcıdan doğrudan talep etmesidir. API Anahtarının durumu da zamana dayalıdır: OAuth Jetonu olarak Anahtar bir süreli kiralamaya veya sona erme süresine tabidir. İlave bir husus olarak, Anahtar ve Token, hizmet sözleşmesi ile oran sınırlamasına tabi olabilir, yani, saniyede sadece belirli sayıda talep yerine getirilebilir.
Özetlemek gerekirse, gerçekte geleneksel Kimlik Doğrulama ve Yetkilendirme mekanizmaları ile Anahtar / Belirteç tabanlı sürümler arasında gerçek bir fark yoktur. Paradigma biraz farklıdır: İstemci ile sunucu arasındaki her etkileşimde kimlik bilgilerini yeniden kullanmaya devam etmek yerine, genel etkileşim deneyimini daha sorunsuz ve muhtemelen daha güvenli hale getiren bir destek Anahtarı / Belirteci kullanılır (genellikle JWT standardını, Anahtarları ve Jetonlar, işçiliği önlemek için sunucu tarafından dijital olarak imzalanır).
- Doğrudan Kimlik Doğrulama ve Yetkilendirme : Geleneksel kimlik bilgilerine dayalı sürümlerin bir çeşidi olarak anahtar tabanlı protokoller.
- Yetkilendirilmiş Kimlik Doğrulama ve Yetkilendirme : Sırayla Belirteçleri kullanan OAuth tabanlı protokoller gibi, yine kimlik bilgilerine dayalı sürümlerin bir çeşidi olarak (genel amaç parolayı herhangi bir üçüncü tarafa ifşa etmek değildir).
Her iki kategori de, ilgilenen kaynakların sahibi olan sunucuyla ilk etkileşim için geleneksel bir kimlik doğrulama iş akışı kullanır.