Hyrja në proxy URL në Emacs 31.1: auth-source dhe kufijtë e CONNECT
Konfiguroni një proxy HTTP të vërtetuar për bibliotekën URL të Emacs, kuptoni kërkimin e kredencialeve Basic dhe merrni parasysh rrugën HTTPS CONNECT në Emacs 31.1.
Adresa e proxy-t i thotë Emacs-it ku të lidhet. Hyrja e tij është një pjesë tjetër e bisedës. Për një kërkesë të zakonshme HTTP, biblioteka URL e Emacs-it mund t'i përgjigjet një sfide vërtetimi të proxy-t, të marrë kredenciale nga auth-source ose t'i pyesë në mënyrë interaktive, dhe t'i ripërdorë kredencialet e mbajtura në sesion.
Detajet më poshtë ndjekin Emacs 31.1. Ato kanë të bëjnë me operacione që përdorin bibliotekën URL; një shkarkues i jashtëm i nisur nga një paketë Emacs ka rrugën e vet të vërtetimit.
Vendosni rrugën, pastaj lëreni HTTP të kërkojë hyrjen
Një pikë fundore fikse e proxy-t mund të zgjidhet me opsionin e dokumentuar:
(setq url-proxy-services
'(("http" . "proxy.example:8080")
("https" . "proxy.example:8080")))
Zëvendësoni mbajtësin e vendit me pikën fundore të dhënë. Çelësat përshkruajnë skemat e URL-së së destinacionit. Shtimi i zërit HTTPS zgjedh një rrugë për destinacionet HTTPS; ai vetë nuk ofron kredenciale.
Gjatë një kërkese të zakonshme HTTP, proxy mund të përgjigjet me 407 Proxy Authentication Required dhe një sfidë Proxy-Authenticate. Biblioteka URL zgjedh një skemë vërtetimi të mbështetur dhe merr kredenciale për pikën fundore të proxy-t. Pastaj provon përsëri me Proxy-Authorization.
Për vërtetimin Basic, një kërkesë interaktive mund të kërkojë emër përdoruesi dhe fjalëkalim kur nuk ka kredenciale të përshtatshme. Një kërkesë e shënuar si jointeraktive nuk mund të mbështetet në ato kërkesa. Hyrja në proxy është gjithashtu e ndarë nga hyrja në faqen e destinacionit: sfida 401 e një faqeje ndjek një rrugë tjetër.
Vendosni kredencialet e përhershme në auth-source
Nëse auth-source tashmë lexon një skedar kredencialesh të kriptuar si ~/.authinfo.gpg, një zë Basic për këtë shembull ka këtë formë:
machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD
Përdorni llogarinë dhe sekretin tuaj të vërtetë dhe sigurohuni që skedari është ndër auth-sources që keni konfiguruar. Rreshti ilustron fushat që përputhen; nuk është udhëzim për të vendosur një fjalëkalim në skedarin tuaj të inicializimit Lisp.
Dy detaje kanë rëndësi në implementimin Basic të Emacs 31.1. Ai kërkon emrin e hostit të proxy-t pa portin numerik TCP dhe kalon skemën e URL-së së proxy-t si vlerën e portit të auth-source. Për këtë proxy HTTP, ajo vlerë është http, edhe pse lidhja TCP përdor portin 8080.
Ky kërkim nuk përfshin realm-in e sfidës ose portin numerik të proxy-t. Mos prisni që ai të zgjedhë fjalëkalime Basic të ndryshme për disa realm-e ose porte proxy në të njëjtin emër hosti. Digest përdor një kërkim tjetër hosti, kështu që shembulli më sipër është posaçërisht për Basic.
Biblioteka URL mban gjithashtu cache-n e vet të vërtetimit. Zërat e saj Basic dallojnë pikat fundore të proxy-t dhe përdorin përputhje realm-i ose drejtorie brenda një pike fundore; ai cache është i ndarë nga kërkimi në auth-source. Shtypja e një fjalëkalimi në një kërkesë mund të mbushë cache-n e sesionit pa ruajtur një zë të ri në skedarin tuaj të kredencialeve të përhershme.
HTTPS ka një hap vërtetimi më të hershëm
Për një destinacion HTTPS përmes një proxy HTTP, Emacs dërgon fillimisht CONNECT. Vërtetimi mund të jetë i nevojshëm pra para se të arrijë lidhjen e kriptuar me faqen.
Në Emacs 31.1, ndërtuesi i kërkesës CONNECT kontrollon vërtetimin tashmë të disponueshëm përmes makinerisë së vërtetimit, përfshirë kredencialet Basic në cache. Rruga e tij Basic nuk kërkon dhe nuk sjell një zë të ri auth-source në atë moment. Një përgjigje CONNECT që nuk është 200 gjithashtu nuk hyn në trajtuesin e zakonshëm të sfidës HTTP 407 të përshkruar më sipër.
Rrjedhimisht, një zë auth-source që mund t'i përgjigjet një sfide normale HTTP Basic nuk garanton që kërkesa e parë HTTPS e një sesioni të ri do të vërtetohet me sukses. Një sesion me kredenciale të përshtatshme në cache ka një gjendje fillestare të ndryshme. Editimi i përsëritur i të njëjtit zë fjalëkalimi nuk mund ta heqë vetë këtë ndryshim midis dy rrugëve.
Nëse një operacion HTTPS ndalon në proxy, përcaktoni nëse CONNECT mori 407 dhe nëse po përdorni sjelljen e këtij versioni. Konfirmoni gjithashtu skemën e vërtetimit që ofron proxy. Një zë kredencialesh Basic nuk është përshtatës universal për çdo sistem vërtetimi ndërmarrjeje.
Mbajeni konfigurimin e qëndrueshëm në opsionin publik të proxy-t dhe në backend-in e kredencialeve që keni zgjedhur. Ruajtja e brendshme Basic e bibliotekës URL është e dobishme për të kuptuar këtë sjellje, por plotësimi me dorë i asaj strukture private të dhënash do ta lidhte konfigurimin me detajet e implementimit.