प्रोक्सीको ठेगानाले Emacs लाई कहाँ जडान गर्ने भनी बताउँछ। यसको लगइन कुराकानीको अर्को भाग हो। साधारण HTTP अनुरोधका लागि, Emacs को URL पुस्तकालयले प्रोक्सीको प्रमाणीकरण चुनौतीको जवाफ दिन सक्छ, auth-source बाट प्रमाणहरू प्राप्त गर्न वा अन्तरक्रियात्मक रूपमा सोध्न सक्छ, र सत्रमा राखिएका प्रमाणहरू पुनः प्रयोग गर्न सक्छ।

तलका विवरणहरू Emacs 31.1 लाई पछ्याउँछन्। तिनीहरू URL पुस्तकालय प्रयोग गर्ने कार्यहरूसँग सम्बन्धित छन्; Emacs प्याकेजले सुरु गर्ने बाह्य डाउनलोडरको आफ्नै प्रमाणीकरण मार्ग हुन्छ।

मार्ग निर्धारण गर्नुहोस्, त्यसपछि HTTP लाई लगइन माग्न दिनुहोस्

स्थिर प्रोक्सी एन्डपोइन्ट दस्तावेजीकृत विकल्पद्वारा छान्न सकिन्छ:

(setq url-proxy-services
      '(("http" . "proxy.example:8080")
        ("https" . "proxy.example:8080")))

प्लेसहोल्डरलाई दिइएको एन्डपोइन्टले बदल्नुहोस्। कुञ्जीहरूले गन्तव्य URL योजनाहरू वर्णन गर्छन्। HTTPS प्रविष्टि थप्दा HTTPS गन्तव्यहरूका लागि मार्ग छानिन्छ; यसले आफैं प्रमाणहरू प्रदान गर्दैन।

साधारण HTTP अनुरोधको क्रममा प्रोक्सीले 407 Proxy Authentication Required र Proxy-Authenticate चुनौतीसँग जवाफ दिन सक्छ। URL पुस्तकालयले समर्थित प्रमाणीकरण योजना छान्छ र प्रोक्सी एन्डपोइन्टका लागि प्रमाणहरू प्राप्त गर्छ। त्यसपछि यसले Proxy-Authorization सँग पुनः प्रयास गर्छ।

Basic प्रमाणीकरणका लागि, उपयुक्त प्रमाणहरू उपलब्ध नभएमा अन्तरक्रियात्मक अनुरोधले प्रयोगकर्ता नाम र पासवर्ड सोध्न सक्छ। गैर-अन्तरक्रियात्मक भनी चिन्ह लगाइएको अनुरोधले ती प्रश्नहरूमा भर पर्न सक्दैन। प्रोक्सी लगइन गन्तव्य वेबसाइटको लगइनबाट पनि अलग छ: वेबसाइटको 401 चुनौतीले फरक मार्ग पछ्याउँछ।

स्थायी प्रमाणहरू auth-source मा राख्नुहोस्

यदि auth-source ले पहिले नै ~/.authinfo.gpg जस्तो इन्क्रिप्ट गरिएको प्रमाण फाइल पढ्छ भने, यस उदाहरणका लागि Basic प्रविष्टिको स्वरूप यस्तो हुन्छ:

machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD

तपाईंको वास्तविक खाता र गोप्य प्रयोग गर्नुहोस्, र फाइल तपाईंले कन्फिगर गरेका auth-sources मध्ये छ भनी सुनिश्चित गर्नुहोस्। यो पङ्क्तिले मिल्ने फाँटहरू देखाउँछ; यो तपाईंको Lisp सुरुवात फाइलमा पासवर्ड राख्ने निर्देशन होइन।

Emacs 31.1 को Basic कार्यान्वयनमा दुई विवरण महत्त्वपूर्ण छन्। यसले प्रोक्सीको होस्टनाम संख्यात्मक TCP पोर्ट बिना खोज्छ, र प्रोक्सी URL को योजना auth-source को पोर्ट मानको रूपमा पठाउँछ। यस HTTP प्रोक्सीका लागि, TCP जडानले पोर्ट 8080 प्रयोग गरे पनि, त्यो मान http हो।

यो खोजमा चुनौतीको realm वा संख्यात्मक प्रोक्सी पोर्ट समावेश छैन। एउटै होस्टनाममा धेरै realm वा प्रोक्सी पोर्टका लागि यसले फरक Basic पासवर्ड छान्छ भनी नसोच्नुहोस्। Digest ले फरक होस्ट खोज प्रयोग गर्छ, त्यसैले माथिको उदाहरण विशेष गरी Basic का लागि हो।

URL पुस्तकालयले आफ्नै प्रमाणीकरण क्यास पनि राख्छ। यसका Basic प्रविष्टिहरूले प्रोक्सी एन्डपोइन्टहरू छुट्याउँछन् र एन्डपोइन्टभित्र realm वा डाइरेक्टरी मिलान प्रयोग गर्छन्; त्यो क्यास auth-source खोजबाट अलग छ। प्रम्प्टमा पासवर्ड टाइप गर्दा तपाईंको स्थायी प्रमाण फाइलमा नयाँ प्रविष्टि नराखी सत्र क्यास भर्न सक्छ।

HTTPS मा पहिलेको प्रमाणीकरण चरण छ

HTTP प्रोक्सीमार्फत HTTPS गन्तव्यका लागि, Emacs ले पहिले CONNECT पठाउँछ। त्यसैले वेबसाइटसँगको इन्क्रिप्टेड जडानमा पुग्नुअघि प्रमाणीकरण आवश्यक हुन सक्छ।

Emacs 31.1 मा, CONNECT अनुरोध निर्माताले आफ्नो प्रमाणीकरण मेसिनरीमार्फत पहिले नै उपलब्ध प्रमाणीकरण जाँच्छ, क्यास गरिएका Basic प्रमाणहरू सहित। यसको Basic मार्गले त्यस बिन्दुमा नयाँ auth-source प्रविष्टि माग्दैन वा ल्याउँदैन। 200 नभएको CONNECT प्रतिक्रिया पनि माथि वर्णन गरिएको साधारण HTTP 407 चुनौती ह्यान्डलरमा प्रवेश गर्दैन।

त्यसैले, साधारण HTTP Basic चुनौतीको जवाफ दिन सक्ने auth-source प्रविष्टिले नयाँ सत्रको पहिलो HTTPS अनुरोध सफलतापूर्वक प्रमाणित हुने ग्यारेन्टी दिँदैन। उपयुक्त क्यास गरिएका प्रमाणहरू भएको सत्रको सुरुवाती अवस्था फरक हुन्छ। एउटै पासवर्ड प्रविष्टि बारम्बार सम्पादन गर्दा दुई मार्गबीचको यो भिन्नता आफैं हटाउन सक्दैन।

यदि HTTPS कार्य प्रोक्सीमा रोकियो भने, CONNECT ले 407 प्राप्त गरेको हो या होइन र तपाईं यस संस्करणको व्यवहार प्रयोग गर्दै हुनुहुन्छ भनी निर्धारण गर्नुहोस्। प्रोक्सीले प्रस्ताव गर्ने प्रमाणीकरण योजना पनि पुष्टि गर्नुहोस्। Basic प्रमाण प्रविष्टि हरेक उद्यम प्रमाणीकरण प्रणालीका लागि सार्वभौमिक एडाप्टर होइन।

स्थायी कन्फिगरेसन सार्वजनिक प्रोक्सी विकल्पमा र तपाईंले छानेको प्रमाण ब्याकएन्डमा राख्नुहोस्। URL पुस्तकालयको आन्तरिक Basic भण्डार यो व्यवहार बुझ्न उपयोगी छ, तर त्यो निजी डाटा संरचना हातले भर्दा सेटअप कार्यान्वयन विवरणसँग बाँधिनेछ।

सम्बन्धित लेखहरू