Kimlik Bilgisiyle Kapılanmış API Erişimi ve Kanıtın Kapsadığıyla Kapsamadığı Arasındaki Sınır
Fikir ve neden çekici olduğu
Anonim API anahtarını doğrulanmış bir kimlikle değiştirin. Birinin bir zamanlar bir dizgi aldığını kanıtlayan paylaşılan bir sır yerine, çağıran, adı belli bir ajanın ne yapabileceğini söyleyen bir kimlik bilgisi tuttuğuna dair bir kanıt sunuyor.
Kontrol çevrimdışı çalışıyor. Kanıtı doğrulamak bize bir çağrı ve bizde bir hesap gerektirmiyor, ki bunu bizimle hiçbir ilişkisi olmayan biri için kullanılabilir kılan şey odur.
Ne sevk ediliyor
Dört giriş noktası: biri Express, biri Fastify, biri bir araç çağrısı sunucusu ve biri yalnızca web API'lerini kullanan kenar çalışma zamanları için.
Her biri bir doğrulayıcı ve seçenekler alıyor, en faydalısı belirli kapsamları zorunlu kılıp onlardan yoksun bir kimlik bilgisini reddeden seçenek, artı açıklanan iddialar üzerinde kendi politikanız için bir kanca.
Başarısızlıklar bir durum, bir başlık ve bir ayrıntı olarak geri geliyor ve araç çağrısı koruması bunun yerine protokol tarzı bir hata kodu taşıyan bir hata yükseltiyor.
Kanıtın tam olarak neyi kapsadığı
HTTP üzerinden: istek yöntemi, istek yolu ve bir zaman damgası. Başka hiçbir şey. Gövde değil, yol dizgisinin ötesindeki sorgu anlamları değil.
Bir araç çağrısı üzerinden: araç adı ve bir zaman damgası. Argümanlar değil.
O ikincisi bir yan cümle değil bir paragraf hak ediyor. Bir HTTP uç noktası için yol genellikle anlamın çoğunu taşıyor, dolayısıyla onu bağlamak bir kapının önemsediğinin çoğunu kapsıyor. Bir araç çağrısı içinse argümanlar çoğu zaman isteğin tamamıdır. Bir aracın bir çağrılışı için sunulan bir kanıt, kabul penceresi içinde aynı aracın herhangi bir başka çağrılışı için geçerlidir.
Yani: yetkilendirmeyle ilgili bir kararı araç argümanlarına koyup kanıtın onu kapsamasını beklemeyin. Bir eylemin tutarı, hedefi ya da kapsamı argümanlarda yaşıyorsa, kapı kimin çağırdığını doğrulamış ve ne istediğini doğrulamamıştır.
Sonuç doğuran ayrımı araç adının parçası yaparak ya da paketin tek kullanımlık anlam gerektiren her şey için açıkça önerdiği gibi kendi meydan okumanızı taşıyarak buna göre tasarlayın.
Durum referansını kapıda zorunlu kılın
Bir kapı, tam olarak birinin manşet alanı okuyup geçtiği yerdir.
Zarfta durum referansı yoksa doğrulama, kontrol edilmemiş bir iptal durumuyla geçerli bir hüküm döndürüyor ve referansı sunan taraf sağlıyor. Yalnızca manşet alanına bakıp kabul eden bir kapı, kendi iptalinin kontrol edilip edilmeyeceğine çağırana karar verdiriyor.
Durum referansı olmayan bir zarfı reddedin. Kontrol edilmemiş bir durumu başarısızlık sayın. Verenin durum imzalama anahtarını sağlayın, yoksa her referans hataya kapalı başarısız olur ve herkesi reddeden bir kapı kurmuş olursunuz.
Ve her iki yoldan gelen bir iptal hükmünü iptal sayın, çünkü iki yol kısmi bir başarısızlık sırasında tek bir yönde ayrışıyor.
Dayandığınız model
Uç noktalar arası yeniden oynatma kuruluşu gereği engelleniyor, çünkü yöntem ve yol, ya da araç adı, imzalı bağlamanın içinde.
Aynı uç noktada yeniden oynatma, varsayılan olarak altmış saniyelik bir kayma penceresiyle zamanla sınırlanıyor, varsayılan olarak açık bir yeniden oynatma önbelleğiyle.
Ve paket kendi güvencesinin sınırını adlandırıyor: katı tek kullanımlık anlam gerektiren her şey kendi meydan okumasını vermeli ve ona karşı doğrulamalı. Sonuç doğuran bir şeyi koruyan bir kapı için varsayılanı değil o tavsiyeyi alın.
Burada gerçekten iyi olan şey
Çevrimdışı doğrulama. İstek yolunda bize çağrı yok, dolayısıyla gecikmeniz ve erişilebilirliğiniz bizim problemimiz hâline gelmiyor.
Kapsam dayatması ve bir politika kancası, dolayısıyla yaygın durum kod değil yapılandırmadır ve alışılmadık durum yine de ulaşılabilirdir.
Kenar dahil dört çalışma zamanı, yalnızca web API'leri üzerine kurulu, ki bu birinin sonradan akıl ettiği bir şey değil saygı gösterdiği gerçek bir kısıttır.
Ve dürüst çerçeve
Üzerine kapıladığınız kapsamlar hiçbir kelime dağarcığına hesap vermiyor.
Hiçbir şey izin verilen bir küme tanımlamıyor, dolayısıyla
requireScopes listenizdeki dizgilerle bir verenin bir kimlik bilgisine koyduğu dizgiler aranızda
kararlaştırılmak zorunda.
Okumaya devam edin
- İptal Nasıl Çalışıyor ve Yetkili Cevabın Bayat Olan Olduğu Tek Durum
- Ajan Kimliği SDK Hızlı Başlangıcı, Bir Hızlı Başlangıcın Genellikle Gizlediği Üç Şeyle
- Ajan Kimlik Bilgisi Web Kancası Olayları ve Zaman Damgasının Neden Arayacağınız Yerde Olmadığı
- Siciller ve Pazar Yeri Sözcüğü: Üçten Birine Yazıyoruz ve Üçüncüsü Yalnızca Bir Adres

