HTTP Temel Kimlik Doğrulaması - beklenen web tarayıcısı deneyimi nedir?


255

Bir sunucu Temel HTTP Kimlik Doğrulaması yoluyla erişime izin verdiğinde , bir web tarayıcısında olması beklenen deneyim nedir?

Web tarayıcısını bir an için yok sayarak, Temel Kimlik Doğrulama isteğinin nasıl oluşturulacağı aşağıda açıklanmıştır curl:

curl -u myusername:mypassword http://somesite.com

Peki ya bir Web Tarayıcısında? Bazı web sitelerinde gördüğüm URL'yi ziyaret ediyorum ve sunucu 401 yanıt kodunu döndürüyor. Tarayıcı daha sonra bir kullanıcı adı / şifre istemi görüntülüyor.

Ancak, somesite.com'da, yetkilendirme istemi almıyorum, yalnızca yetkilendirilmediğimi söyleyen bir sayfa. Bir alan Temel Kimlik Doğrulama iş akışını doğru bir şekilde uygulamadı mı yoksa yapmam gereken başka bir şey var mı?


Özet değil, Temel Yetkilendirme kullandığınızdan emin misiniz?
b_erb

Eğer base-64 kodlamak isteyip istemediğinizi sormazsanız, farkından emin değilim. eğer bunu programlı yapsaydım, ama curl bunu benim için yapar.
bpapa

Hangi kimlik doğrulamanın kullanıldığını WWW-Authenticate yanıt başlığından (değer: Özet veya Temel) öğrenebilirsiniz.
Kniganapolke

2
Bence bu sorunun yeniden ifade edilmesi gerekiyor. Birden fazla katılımcı bunun tarayıcıdan ziyade kıvrılma ile ilgili bir soru olduğunu düşünüyor.
LS

"Yetkilendirme" terimini kullandığınızda "kimlik doğrulama" anlamına mı geliyor?
Tarun

Yanıtlar:


160

Herkesin kafa karışıklığından kaçınmasına yardımcı olmak için, soruyu iki kısımda yeniden biçimlendireceğim.

Birincisi: "BASIC yetkilendirmesini kullanarak tarayıcı ile nasıl kimlik doğrulamalı HTTP isteği yapabilir?" .

Tarayıcıda, önce istemi bekleyerek veya şu biçimi izlerseniz URL'yi düzenleyerek http temel kimlik doğrulaması yapabilirsiniz: http://myusername:mypassword@somesite.com

Not: Bir komut satırı ve curl yüklüyse, soruda belirtilen curl komutu gayet iyi. ;)

Referanslar:

Ayrıca CURL kılavuz sayfasına göre https://curl.haxx.se/docs/manual.html

HTTP

  Curl also supports user and password in HTTP URLs, thus you can pick a file
  like:

      curl http://name:passwd@machine.domain/full/path/to/file

  or specify user and password separately like in

      curl -u name:passwd http://machine.domain/full/path/to/file

  HTTP offers many different methods of authentication and curl supports
  several: Basic, Digest, NTLM and Negotiate (SPNEGO). Without telling which
  method to use, curl defaults to Basic. You can also ask curl to pick the
  most secure ones out of the ones that the server accepts for the given URL,
  by using --anyauth.

  NOTE! According to the URL specification, HTTP URLs can not contain a user
  and password, so that style will not work when using curl via a proxy, even
  though curl allows it at other times. When using a proxy, you _must_ use
  the -u style for user and password.

İkinci ve gerçek soru "Ancak, somesite.com'da, bir yetkilendirme istemi almıyorum, sadece yetkilendirilmediğimi söyleyen bir sayfa var. başka yapmam gerekir mi? "

Curl belgeleri, -useçeneğin birçok kimlik doğrulama yöntemini desteklediğini, Basic'in varsayılan olduğunu söylüyor .


3
Soru, bir tarayıcı olmayan kıvırmayla ilgili.
Ray Baxter

26
Sadece kıvırma komutunun altında söylediği gibi soruyu tamamen okumamış olabilirsiniz: "Ancak, şu anda kıvrılmaya erişimim yok (uzun hikaye) ve bunu mümkünse web tarayıcısından yapmak istiyorum ." ;)
Nicocube


4
Asker neden doğru olduğunu bilmek istiyor. tarayıcıda çalışmıyor. Soru cURL ile ilgili değil.
LS

68

Denedin mi ?

curl somesite.com --user username:password

13
@daronwolff Sadece argüman pozisyonlarını değiştirdiniz ve -u yerine --user (sadece uzun vadeli) yazdınız, fakat bunun dışında OP'nin sorusunda yazdıklarını tam olarak
yazdınız

3
Asker neden doğru olduğunu bilmek istiyor. tarayıcıda çalışmıyor. Soru cURL ile ilgili değil.
LS

15

Tarayıcınızda eski geçersiz kullanıcı adı / şifre önbelleğe alınmış olabilir. Onları temizlemeyi deneyin ve tekrar kontrol edin.

IE kullanıyorsanız ve somesite.com Intranet güvenlik bölgenizdeyse, IE Windows kimlik bilgilerinizi otomatik olarak gönderiyor olabilir.


8

WWW-Kimlik Doğrulama başlığı

Sunucu 401 yanıt kodu gönderiyor, ancak WWW-Authenticate üstbilgisini doğru ayarlamıyorsa bunu da alabilirsiniz - Bilmeliyim, VB uygulamaları kimlik doğrulama istemini açmadıkları için bunu kendi koduyla düzelttim.


6

İstek üstbilgilerinde sağlanan kimlik bilgileri yoksa, IE'den kullanıcıdan kimlik bilgilerini istemesi ve isteği yeniden göndermesi için gereken en düşük yanıt aşağıdadır.

Response.Clear();
Response.StatusCode = (Int32)HttpStatusCode.Unauthorized;
Response.AddHeader("WWW-Authenticate", "Basic");

5

Postman'ı krom için bir eklenti kullanabilirsiniz. Her istek için ihtiyacınız olan kimlik doğrulama türünü seçme olanağı verir. Bu menüde kullanıcı ve şifreyi yapılandırabilirsiniz. Postacı, yapılandırmayı otomatik olarak isteğinizle birlikte gönderilecek bir kimlik doğrulama başlığına çevirir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.