Emacs 31.1 URL প্রক্সি লগইন: auth-source এবং CONNECT সীমা
Emacs-এর URL লাইব্রেরির জন্য প্রমাণীকরণযুক্ত HTTP প্রক্সি কনফিগার করুন, এর Basic শংসাপত্র অনুসন্ধান বুঝুন, এবং Emacs 31.1-এ HTTPS CONNECT পথটি হিসাব করুন।
প্রক্সির ঠিকানা 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 স্টোর এই আচরণ বুঝতে সহায়ক, কিন্তু সেই ব্যক্তিগত তথ্য কাঠামো হাতে ভরলে সেটআপ বাস্তবায়নের খুঁটিনাটির সাথে বাঁধা পড়বে।