HTTP मूल प्रमाणीकरण - अपेक्षित वेब ब्राउज़र अनुभव क्या है?


255

जब कोई सर्वर बेसिक HTTP ऑथेंटिकेशन के माध्यम से एक्सेस की अनुमति देता है, तो वेब ब्राउजर में क्या अनुभव होने की उम्मीद है ?

वेब ब्राउज़र को एक पल के लिए अनदेखा करना, यहां मूल प्रामाणिक अनुरोध कैसे बनाया जाए curl:

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

लेकिन एक वेब ब्राउज़र में क्या है? मैंने कुछ वेबसाइटों पर जो देखा है, क्या मैं यूआरएल का दौरा कर रहा हूं, और फिर सर्वर प्रतिक्रिया कोड 401 को लौटाता है। ब्राउज़र तब उपयोगकर्ता नाम / पासवर्ड संकेत दिखाता है।

हालाँकि, somesite.com पर, मुझे ऑथोराइज़ेशन प्रॉम्प्ट बिल्कुल नहीं मिल रहा है, सिर्फ एक पेज जो कहता है कि मैं अधिकृत नहीं हूं। क्या किसी दिन बेसिक प्रामाणिक वर्कफ़्लो को सही तरीके से लागू नहीं किया गया था, या क्या मुझे कुछ और करने की ज़रूरत है?


क्या आप सुनिश्चित हैं कि आप बेसिक ऑथेंट का उपयोग करते हैं और डाइजेस्ट का नहीं?
b_erb

अंतर के बारे में सुनिश्चित नहीं है, जब तक आप पूछ रहे हैं कि क्या मैं आधार -64 एनकोड करता हूं। अगर मैं उस कार्यक्रम को कर रहा था, लेकिन यह मेरे लिए कर्ल करता है।
बापपा

आप पता लगा सकते हैं कि डब्ल्यूडब्ल्यूडब्ल्यू-ऑथेंटिकेटेड रिस्पॉन्स हेडर (वैल्यू: डाइजेस्ट या बेसिक) से प्रमाणीकरण का क्या उपयोग किया जाता है।
नाइगनापोलके

2
मुझे लगता है कि इस सवाल को फिर से समझने की जरूरत है। एक से अधिक प्रतिवादी सोचते हैं कि यह ब्राउज़र के बजाय कर्ल के बारे में एक प्रश्न है।
एलएस

क्या आप "प्रमाणीकरण" शब्द का उपयोग करते हैं जब आप "प्राधिकरण" शब्द का उपयोग करते हैं?
तरुण

जवाबों:


160

सभी को भ्रम से बचने में मदद करने के लिए, मैं प्रश्न को दो भागों में सुधारूंगा।

पहला: "बुनियादी ब्राउज़र का उपयोग करके एक ब्राउज़र के साथ एक प्रामाणिक HTTP अनुरोध कैसे किया जा सकता है?"

यदि आप इस प्रारूप का अनुसरण करते हैं, तो ब्राउज़र में आप आने वाले प्रॉम्प्ट का इंतजार करके या URL को संपादित करके पहले एक http बेसिक कर सकते हैं: http://myusername:mypassword@somesite.com

एनबी: प्रश्न में उल्लिखित कर्ल कमांड पूरी तरह से ठीक है, यदि आपके पास कमांड-लाइन और कर्ल स्थापित है। ;)

संदर्भ:

इसके अलावा CURL मैनुअल पेज 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.

दूसरा और वास्तविक प्रश्न है "हालाँकि, somesite.com पर, मुझे ऑथोराइज़ेशन प्रॉम्प्ट बिलकुल नहीं मिल रहा है, बस एक पेज जो कहता है कि मैं अधिकृत नहीं हूँ। क्या सोसाइटी ने बेसिक ऑथोर वर्कफ़्लो को सही तरीके से लागू नहीं किया है, या कुछ है और मुझे करने की आवश्यकता है? "

कर्ल डॉक्यूमेंटेशन कहता है कि -uऑप्शन ऑथेंटिकेशन के कई तरीके सपोर्ट करता है, बेसिक डिफॉल्ट होने के कारण।


3
सवाल कर्ल के बारे में है, जो ब्राउज़र नहीं है।
रे बैक्सटर 20

26
आपने प्रश्न को पूरी तरह से नहीं पढ़ा होगा, क्योंकि यह कर्ल कमांड के तहत कहता है: "हालांकि, अभी मेरे पास कर्ल (लंबी कहानी) तक पहुंच नहीं है, और मैं इसे वेब ब्राउज़र से करना चाहता हूं, यदि संभव हो तो । " ;)
निकोक्यूब

3
मैं पूरी तरह से सहमत हूं कि कर्ल ठीक काम करता है, मैं व्यक्तिगत रूप से नियमित रूप से इसका उपयोग करता हूं, लेकिन सवाल कर्ल के बारे में नहीं है ...
निकोक्यूब

4
पूछने वाला जानना चाहता है कि विशेषाधिकार क्यों है। ब्राउज़र में काम नहीं कर रहा है। सवाल cURL के बारे में नहीं है।
एलएस

68

आपने कोशिश की है ?

curl somesite.com --user username:password

13
@daronwolff आपने केवल तर्क-वितर्क पदों को बदल दिया और -uer (जो केवल दीर्घकालिक है) के साथ बदल दिया, लेकिन इसके अलावा आपने ठीक वही लिखा जो ओपी ने पहले से ही अपने प्रश्न में लिखा था
मर्सिल

3
पूछने वाला जानना चाहता है कि विशेषाधिकार क्यों है। ब्राउज़र में काम नहीं कर रहा है। सवाल cURL के बारे में नहीं है।
एलएस

15

आपके ब्राउज़र में पुराना अमान्य उपयोगकर्ता नाम / पासवर्ड कैश्ड हो सकता है। उन्हें साफ़ करने का प्रयास करें और फिर से जांचें।

यदि आप IE का उपयोग कर रहे हैं और somesite.com आपके इंट्रानेट सुरक्षा क्षेत्र में है, तो हो सकता है कि IE आपके विंडोज़ क्रेडेंशियल्स को स्वचालित रूप से भेज रहा हो।


8

डब्ल्यूडब्ल्यूडब्ल्यू-ऑथेंटिकेट हेडर

आपको यह भी मिल सकता है अगर सर्वर 401 प्रतिक्रिया कोड भेज रहा है, लेकिन डब्ल्यूडब्ल्यूडब्ल्यू-ऑथेंटिकेट हेडर को सही तरीके से सेट नहीं कर रहा है - मुझे पता होना चाहिए, मैंने अभी तय किया है कि खुद के कोड में क्योंकि वीबी ऐप्स प्रमाणीकरण प्रॉम्प्ट को पॉप अप नहीं कर रहे थे।


6

यदि अनुरोध शीर्षलेखों में कोई क्रेडेंशियल प्रदान नहीं किए गए हैं, तो उपयोगकर्ता को क्रेडेंशियल्स के लिए संकेत देने और अनुरोध को पुनः सबमिट करने के लिए IE के लिए निम्नलिखित न्यूनतम प्रतिक्रिया आवश्यक है।

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

5

आप पोस्टमैन को क्रोम के लिए एक प्लगइन का उपयोग कर सकते हैं। यह प्रमाणीकरण अनुरोधों को चुनने की क्षमता देता है जो आपको प्रत्येक अनुरोध के लिए आवश्यक है। उस मेनू में आप उपयोगकर्ता और पासवर्ड को कॉन्फ़िगर कर सकते हैं। पोस्टमैन स्वचालित रूप से एक प्रमाणीकरण हेडर के लिए कॉन्फ़िगर करेगा जो आपके अनुरोध के साथ भेजा जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.