2011-02-04 11 views
8

मैं कस्टम बुनियादी प्रमाणीकरण similar to this लागू करने की कोशिश कर रहा हूं और एक चीज जो मुझे भ्रमित करती है वह दायरे की अवधारणा है। उदाहरण के लिए, वहाँ एक क्षण है जब मेरे मॉड्यूल जबाब में कुछ जादू स्ट्रिंग सम्मिलित करता है:आईआईएस प्रमाणीकरण में "दायरे" क्या है और यह SSL प्रमाणपत्र पैरामीटर से कैसे संबंधित है?

void ReplyWithAuthHeader() 
{ 
    HttpContext currentContext = HttpContext.Current; 
    context.Response.StatusCode = 401; 
    context.Response.AddHeader("WWW-Authenticate", 
     String.Format("Basic realm=\"{0}\"", "myname.mycompany.com")); 
} 

साइट makecert उपयोगिता के साथ बनाई गई एक SSL certicicate असाइन किया गया है और "जारी" है करने के लिए "myname.mycompany.com"। फोन करने वाले एक अनुरोध बनाता है:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(serverUrl); 
CredentialCache cache = new CredentialCache(); 
cache.Add(new Uri(serverUrl), "Basic", new NetworkCredential("UserName", "password")); 
request.Credentials = cache; 

जहां https:// और साथ serverUrl शुरू होता है जब अनुरोध सर्वर सर्वर "WWW-प्रमाणित" उत्तर भेजता द्वारा कार्रवाई की जा रही है, तो एक अपवाद ग्राहक के पक्ष के साथ "फेंक दिया जाता है परिवहन कनेक्शन में डेटा लिखने में असमर्थ: आपके होस्ट मशीन में सॉफ़्टवेयर द्वारा एक स्थापित कनेक्शन निरस्त किया गया था। " पाठ।

तो स्पष्ट रूप से एसएसएल वार्ता स्तर पर कुछ गड़बड़ है और मैं यह नहीं समझ सकता कि यह क्या है। मुझे लगता है कि यह क्षेत्र से निपटने वाला कुछ हो सकता है।

मेरा प्रश्न है - वास्तविक क्या है और यह एसएसएल पर कनेक्शन होने पर एसएसएल प्रमाणपत्र जारी किए जाने वाले पार्टी के नाम से कैसे संबंधित है?

उत्तर

10

RFC 2617 से अपने प्रश्न कुछ copypasta उत्तर देने के लिए, "एक दायरे है क्या?":

दायरे निर्देश (केस-संवेदी) सभी प्रमाणीकरण स्कीम कि एक चुनौती जारी करने के लिए आवश्यक है। वास्तविक मूल्य (केस-सेंसिटिव), कैनोलिक रूट यूआरएल के साथ संयोजन में (सर्वर के लिए absoluteURI जिसका abs_path खाली है; सर्वर के [2] की धारा 5.1.2 देखें), सुरक्षा स्थान को परिभाषित करता है। ये क्षेत्र किसी सर्वर पर संरक्षित संसाधनों को सुरक्षा रिक्त स्थान के सेट में विभाजित करने की अनुमति देते हैं, प्रत्येक की अपनी प्रमाणीकरण योजना और/या प्राधिकरण डेटाबेस के साथ। दायरे का मान एक स्ट्रिंग है, जिसे आम तौर पर मूल सर्वर द्वारा असाइन किया जाता है, जिसमें प्रमाणीकरण योजना के लिए विशिष्ट अतिरिक्त अर्थशास्त्र हो सकते हैं। ध्यान दें कि एक ही लेख-योजना के साथ कई चुनौतियां हो सकती हैं लेकिन अलग-अलग क्षेत्र।

आपके प्रश्न के अनुसार यह आपके SSL प्रमाणपत्र से कैसे संबंधित है: यह नहीं है। क्या गलत हो रहा है यह जानने का सबसे आसान तरीका है, बस अपने ब्राउज़र में यूआरएल तक पहुंच कर। आपको समस्या का एक स्पष्ट स्पष्ट विवरण प्राप्त करना चाहिए (होस्टनाम प्रमाणपत्र से मेल नहीं खाता है, अविश्वसनीय सीए, समाप्त हो गया है, आदि)।

5

दायरे उस दायरे को इंगित करता है जिसके लिए क्लाइंट प्रमाणीकरण कर रहा है। एक ब्राउज़र उपयोगकर्ता नाम, पासवर्ड और दायरे को कैश करेगा और उस क्षेत्र के प्रमाणीकरण की आवश्यकता वाले किसी और सर्वर प्रतिक्रियाओं के लिए प्रमाण-पत्र पुनः भेज देगा।

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

संबंधित मुद्दे