പ്രോക്സിയുടെ വിലാസം 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 സ്റ്റോർ ഈ പെരുമാറ്റം മനസ്സിലാക്കാൻ ഉപകാരപ്രദമാണ്, പക്ഷേ ആ സ്വകാര്യ ഡാറ്റാ ഘടന കൈകൊണ്ട് നിറയ്ക്കുന്നത് ക്രമീകരണത്തെ നടപ്പാക്കൽ വിശദാംശങ്ങളുമായി ബന്ധിപ്പിക്കും.

അനുബന്ധ ലേഖനങ്ങൾ