SORU
30 AĞUSTOS 2011, Salı


Sabitleme tekerleği yeniden icat olmadan API DİNLENME

Ne zaman REST API tasarımı bir kullanıcı önce kimlik doğrulaması ortak?

Aradığım Tipik kullanım örneği:

  • Kullanıcı veri almak istiyor. Emin serin paylaşmayı seviyoruz! Ortak bir API anahtarı alın ve hemen okuyun!
  • Kullanıcı/güncelleme veri depolamak istiyor... dur, bekle! sana bunu kim yapabilir?

Bunu inşa etmek için bir kez ve bir web-app, bir android uygulaması kullanmak için bir iPhone uygulaması ki izin verirdim.

REST API bu gibi gereksinimleri ile mantıklı bir seçim gibi görünüyor

Benim sorum göstermek için basit bir örnek kullanacağım.

Bir veritabanı, bir madde varratingöznitelik (tamsayı (1-5).

Eğer SONUNA doğru anladıysam böyle bir csv, xml veya json döndüren istek seçtiğim bir dil kullanarak uygulamak istiyorum:

http://example.com/product/getrating/{id}/

Biz JSON biz geri al dediler

{
  "id": "1",
  "name": "widget1",
  "attributes": { "rating": {"type":"int", "value":4} }
}

Bu halk için iyi API karşı karşıya. O kısmı anladım.

Nerede benim sorum ton nasıl bir güvenlik modeli ile bu birleştirmek mi var? Beni göndermeye karar ne olursa olsun, ne yapabilirim kontrol edebilirim diye bir oturum durumu her zaman benim kullanıcı tanımlama var web uygulama güvenlik alıştım. Anladığım kadarıyla bu durumda kötü bir çözüm olurdu bu kadar Huzurlu değil.

Başka bir örnek, aynı öğe/rating kullanmaya çalışacağım.

"CAN" eklemek istiyor . Eğer kullanıcı ^strong>ratingbirmadde

Bu kullanılarak yapılabilir:

http://example.com/product/addrating/{id}/{givenRating}/

Bu noktada veri "JOE" ürün {ıd} {} givenRating bir derece verdi. söyleyerek saklamak istiyorum

Soru: Nasıl bir istek geldi biliyor musunuz "JOE" ve "BOB".

Eğer bir kullanıcının telefon numarası gibi daha hassas verileri varsa ayrıca, ne?

Şimdiye kadar ne yaptım

1) dahili HTTP özellik her isteği doğrulamak için, ya da düz HTTP veya HTTPS Kullanın.

Bu her isteği şimdi şeklini alması anlamına gelir:

https://joe:joepassword@example.com/product/addrating/{id}/{givenRating}/

2) Amazon S3 özel ve genel anahtar ile şunun gibi bir yaklaşım Kullanın: http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/

3) kurabiye Kullan ve geri KALAN vatansız bölüm sonu.

İkinci yaklaşım bana daha iyi görünüyor, ama gerçekten yeniden icat etmek için tüm bu şeyler var mı merak ediyorum kaldı mı? Karma, anahtarlar, tek başıma vb üreten saklamak?

Bu benim için genellikle "yanlış güvenlik ile ilgili." özellikle yapıyorsun yani normal bir web uygulamasında session kullanarak ve bütün afişleri yeniden kendin gibi bir sürü sesler

EDİT: OAuth de bahsetmiştim sanırım.

CEVAP
30 AĞUSTOS 2011, Salı


Merak etmeyin"", güvenliği hakkında endişe. Dinlendirici Ne yapalım bu işte:

Adım 1: Kullanıcı kimlik doğrulaması hizmet vurur.

Adım 2: Eğer kimlik bilgilerini kontrol edin, iade parmak izi, oturum kimliği, vb... ve pop içlerine paylaşılan bellek için hızlı alma veya daha sonra kullanmak bir veritabanı sakıncası yoksa ekleme bir kaç milisaniye için web servis geri dönüş süresi.

3 . adım: parmak izi ve oturum kimliği için. doğrular her web hizmeti script (ilk giriş noktası çağrı Ekleyin ^em>herweb hizmet isteği.

Parmak izi ve oturum kimliği geçerli değil ya da kimlik doğrulama için yönlendirme zaman aşımına uğradı. adım 4:

BU OKUYUN:

RESTful Authentication

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • LiveForGodsKingdom

    LiveForGodsK

    6 NİSAN 2008
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012