2013-10-12 35 views
38

Restful API'lerinin konsepti konusunda yeniyim.HTTP Temel Kimlik Doğrulaması REST API için SSL Üzerinden

Çevrimiçi bir mağaza için huzurlu bir api tasarlıyorum.

Ssl üzerinden temel http kimlik doğrulaması kavramını tam olarak anlamadım.

Bu, her istek için kullanıcının kullanıcı adını ve şifresini tekrar girmek zorunda kalacağı anlamına mı geliyor?

Birisi, nasıl çalıştığını ve nasıl kullanılacağını ayrıntılı olarak açıklayabilir mi?

Şimdiden teşekkürler.

cevap

60

Temel doğrulama kullanıcı ile sadece standart HTTP başlık ve base64 kodlanmış geçiren: Eğer dinlenme API çağrılarını doğrulamak .Eğer Temel QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

(http://en.wikipedia.org/wiki/Basic_access_authentication):

Yetkilendirme Bu başlık ile ssl olmayan bir kongre üzerinde sorun, ortadaki herhangi bir adamın kullanıcı adınızı ve parolanızı kimlik doğrulama başlığınızdan çözebiliyor olmasıdır.

Parolanızın güvenli bir şekilde gönderildiğinden emin olmak için normal bir HTTP bağlantısı yerine HTTPS kullanmanız gerekir. HTTP ve HTTPS arasındaki tek fark, HTTPS'nin TCP/IP yerine TCP/IP üzerinden SSL/TSL güvenlik protokolünü kullanmasıdır. Şimdi bu bir HTTPS bağlantısı kurmanın cpu üzerinde normal HTTP bağlantısından daha pahalı olduğu dezavantajına sahiptir. Bu başlık ile her istekte dinlenme çağrılarınızı doğrulamak istiyorsanız, dinlenme API'nizi yalnızca HTTPS bağlantılarında kullanabilmeniz gerekir.

+1

Yetkilendirme üstbilgisi sunucuya giden her istekte gönderilecek mi? –

+3

Evet. Rest api'nin durumu olmadığından (örneğin: kullanıcı durumunda oturum açmışsa). Büyük uygulamalar için bir kimlik doğrulama modülüne veya devlete sahip bir filtreye sahip olmanız gerektiğini düşünüyorum. Ya da OAuth gibi bir şey. OAuth 2'yi anlamaya çalışacağım, örneğin api'nizi kullanan herkes için daha eksiksiz ve genel bir çözüm. –

+0

Ve başlık otomatik olarak önbelleğe alınacak ve tarayıcım tarafından tekrar tekrar gönderilecek mi? Veya başlığı api koduyla göndermem gerekecek mi? –

İlgili konular