Prijava prek proxyja URL v Emacsu 31.1: auth-source in omejitve CONNECT
Nastavite overjeni proxy HTTP za knjižnico URL v Emacsu, razumite iskanje poverilnic Basic in upoštevajte pot HTTPS CONNECT v Emacsu 31.1.
Naslov proxyja pove Emacsu, kam naj se poveže. Prijava je drugi del pogovora. Pri običajni zahtevi HTTP lahko knjižnica URL v Emacsu odgovori na izziv preverjanja pristnosti proxyja, pridobi poverilnice iz auth-source ali jih vpraša interaktivno ter znova uporabi poverilnice, shranjene v seji.
Podrobnosti spodaj ustrezajo Emacsu 31.1. Nanašajo se na operacije, ki uporabljajo knjižnico URL; zunanji prenašalnik, ki ga zažene paket Emacsa, ima svojo pot preverjanja pristnosti.
Nastavite pot in nato pustite HTTP, da zahteva prijavo
Fiksno končno točko proxyja lahko izberete z dokumentirano možnostjo:
(setq url-proxy-services
'(("http" . "proxy.example:8080")
("https" . "proxy.example:8080")))
Zamenjajte nadomestni znak z dobavljeno končno točko. Ključi opisujejo sheme URL cilja. Dodajanje vnosa HTTPS izbere pot za cilje HTTPS; samo po sebi ne zagotavlja poverilnic.
Med običajno zahtevo HTTP lahko proxy odgovori z 407 Proxy Authentication Required in izzivom Proxy-Authenticate. Knjižnica URL izbere podprto shemo preverjanja pristnosti in pridobi poverilnice za končno točko proxyja. Nato poskusi znova z Proxy-Authorization.
Pri preverjanju pristnosti Basic lahko interaktivna zahteva vpraša za uporabniško ime in geslo, kadar ustrezne poverilnice niso na voljo. Zahteva, označena kot neinteraktivna, se ne more zanesti na ta vprašanja. Prijava prek proxyja je tudi ločena od prijave na ciljno spletno mesto: izziv 401 spletnega mesta sledi drugi poti.
Shranite trajne poverilnice v auth-source
Če auth-source že bere šifrirano datoteko poverilnic, kot je ~/.authinfo.gpg, ima vnos Basic za ta primer naslednjo obliko:
machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD
Uporabite svoj resnični račun in skrivnost ter poskrbite, da je datoteka med vašimi nastavljenimi auth-sources. Vrstica ponazarja ujemajoča se polja; ni navodilo, da bi geslo vstavili v svojo inicializacijsko datoteko Lisp.
V implementaciji Basic v Emacsu 31.1 sta pomembna dva podrobnosti. Išče ime gostitelja proxyja brez številčnih vrat TCP in posreduje shemo URL proxyja kot vrednost vrat za auth-source. Za ta proxy HTTP je ta vrednost http, čeprav povezava TCP uporablja vrata 8080.
To iskanje ne vključuje realm izziva ali številčnih vrat proxyja. Ne pričakujte, da bo izbralo različna gesla Basic za več realmov ali vrat proxyja na istem imenu gostitelja. Digest uporablja drugačno iskanje gostitelja, zato zgornji primer velja posebej za Basic.
Knjižnica URL vodi tudi lastno predpomnilnik preverjanja pristnosti. Njeni vnosi Basic razlikujejo končne točke proxyja in uporabljajo ujemanje realma ali imenika znotraj končne točke; ta predpomnilnik je ločen od iskanja v auth-source. Vnos gesla na poziv lahko napolni predpomnilnik seje, ne da bi shranil nov vnos v vaši datoteki trajnih poverilnic.
HTTPS ima zgodnejši korak preverjanja pristnosti
Za cilj HTTPS prek proxyja HTTP Emacs najprej pošlje CONNECT. Preverjanje pristnosti je zato morda potrebno, preden doseže šifrirano povezavo s spletnim mestom.
V Emacsu 31.1 graditelj zahteve CONNECT preveri preverjanje pristnosti, ki je že na voljo prek njegovega mehanizma, vključno s predpomnjenimi poverilnicami Basic. Njegova pot Basic takrat ne zahteva in ne pridobi svežega vnosa auth-source. Odgovor CONNECT, ki ni 200, prav tako ne vstopi v običajni obdelovalnik izziva HTTP 407, opisan zgoraj.
Zato vnos auth-source, ki lahko odgovori na običajen izziv HTTP Basic, ne zagotavlja, da bo prva zahteva HTTPS nove seje uspešno preverjena. Seja z ustreznimi predpomnjenimi poverilnicami ima drugačno začetno stanje. Ponovno urejanje istega vnosa gesla samo po sebi ne more odpraviti te razlike med obema potema.
Če se operacija HTTPS ustavi pri proxyju, ugotovite, ali je CONNECT prejel 407 in ali uporabljate vedenje te izdaje. Potrdite tudi shemo preverjanja pristnosti, ki jo ponuja proxy. Vnos poverilnic Basic ni univerzalni vmesnik za vsak poslovni sistem preverjanja pristnosti.
Trajno konfiguracijo hranite v javni možnosti proxyja in v izbranem hrambi poverilnic. Notranje shramba Basic knjižnice URL je koristna za razumevanje tega vedenja, vendar bi ročno polnjenje te zasebne podatkovne strukture namestitev privezalo na podrobnosti izvedbe.