پراکسی کا پتہ 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 ذخیرہ اس رویے کو سمجھنے کے لیے مفید ہے، لیکن اس نجی ڈیٹا ڈھانچے کو ہاتھ سے بھرنا سیٹ اپ کو نفاذ کی تفصیلات سے باندھ دے گا۔

متعلقہ مضامین