URL starpniekservera pieteikšanās Emacs 31.1: auth-source un CONNECT ierobežojumi
Konfigurējiet autentificētu HTTP starpniekserveri Emacs URL bibliotēkai, izprotiet tās Basic akreditācijas datu meklēšanu un ņemiet vērā HTTPS CONNECT ceļu Emacs 31.1.
Starpniekservera adrese pasaka Emacs, kur savienoties. Tā pieteikšanās ir vēl viena sarunas daļa. Parastam HTTP pieprasījumam Emacs URL bibliotēka var atbildēt uz starpniekservera autentifikācijas izaicinājumu, iegūt akreditācijas datus no auth-source vai jautāt interaktīvi, un atkārtoti izmantot sesijā turētos datus.
Tālāk sniegtā informācija atbilst Emacs 31.1. Tā attiecas uz darbībām, kas izmanto URL bibliotēku; ārējam lejupielādētājam, ko palaiž Emacs pakotne, ir savs autentifikācijas ceļš.
Iestatiet maršrutu, pēc tam ļaujiet HTTP pieprasīt pieteikšanos
Fiksētu starpniekservera galapunktu var izvēlēties ar dokumentēto opciju:
(setq url-proxy-services
'(("http" . "proxy.example:8080")
("https" . "proxy.example:8080")))
Aizstājiet vietturi ar norādīto galapunktu. Atslēgas apraksta galamērķa URL shēmas. HTTPS ieraksta pievienošana izvēlas maršrutu HTTPS galamērķiem; tā pati akreditācijas datus nesniedz.
Parasta HTTP pieprasījuma laikā starpniekserveris var atbildēt ar 407 Proxy Authentication Required un Proxy-Authenticate izaicinājumu. URL bibliotēka izvēlas atbalstītu autentifikācijas shēmu un iegūst akreditācijas datus starpniekservera galapunktam. Pēc tam tā mēģina vēlreiz ar Proxy-Authorization.
Basic autentifikācijai interaktīvs pieprasījums var prasīt lietotājvārdu un paroli, ja piemēroti akreditācijas dati nav pieejami. Pieprasījums, kas atzīmēts kā neinteraktīvs, nevar paļauties uz šiem jautājumiem. Pieteikšanās starpniekserverī ir arī atsevišķa no pieteikšanās galamērķa tīmekļa vietnē: vietnes 401 izaicinājums iet citu ceļu.
Ievietojiet pastāvīgos akreditācijas datus auth-source
Ja auth-source jau lasa šifrētu akreditācijas datu failu, piemēram, ~/.authinfo.gpg, Basic ierakstam šajā piemērā ir šāda forma:
machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD
Izmantojiet savu īsto kontu un noslēpumu un pārliecinieties, ka fails ir starp konfigurētajiem auth-sources. Rinda ilustrē atbilstošos laukus; tas nav norādījums ievietot paroli savā Lisp inicializācijas failā.
Emacs 31.1 Basic ieviešanā ir svarīgas divas detaļas. Tā meklē starpniekservera resursdatora nosaukumu bez ciparu TCP porta un nodod starpniekservera URL shēmu kā auth-source porta vērtību. Šim HTTP starpniekserverim šī vērtība ir http, lai gan TCP savienojums izmanto portu 8080.
Šī meklēšana neietver izaicinājuma realm vai ciparu starpniekservera portu. Neesperiet, ka tā izvēlēsies dažādas Basic paroles vairākiem realm vai starpniekservera portiem vienā resursdatora nosaukumā. Digest izmanto citu resursdatora meklēšanu, tāpēc iepriekš minētais piemērs ir īpaši Basic.
URL bibliotēka uztur arī savu autentifikācijas kešatmiņu. Tās Basic ieraksti atšķir starpniekservera galapunktus un galapunkta ietvaros izmanto realm vai direktorija atbilstību; šī kešatmiņa ir atsevišķa no auth-source meklēšanas. Paroles ievadīšana uzvednē var aizpildīt sesijas kešatmiņu, nesaglabājot jaunu ierakstu pastāvīgajā akreditācijas datu failā.
HTTPS ir agrāks autentifikācijas solis
HTTPS galamērķim caur HTTP starpniekserveri Emacs vispirms sūta CONNECT. Tāpēc autentifikācija var būt nepieciešama pirms šifrētā savienojuma ar vietni sasniegšanas.
Emacs 31.1 CONNECT pieprasījuma veidotājs pārbauda autentifikāciju, kas jau pieejama tā autentifikācijas mehānismā, tostarp kešatmiņā saglabātos Basic datus. Tā Basic ceļš tajā brīdī neprasa un neiegūst jaunu auth-source ierakstu. CONNECT atbilde, kas nav 200, arī neiekļūst iepriekš aprakstītajā parastajā HTTP 407 izaicinājuma apstrādātājā.
Līdz ar to auth-source ieraksts, kas spēj atbildēt uz parastu HTTP Basic izaicinājumu, negarantē, ka jaunas sesijas pirmais HTTPS pieprasījums tiks sekmīgi autentificēts. Sesijai ar piemērotiem kešatmiņā saglabātiem datiem ir cits sākuma stāvoklis. Atkārtota tā paša paroles ieraksta rediģēšana pati par sevi nevar novērst šo atšķirību starp abiem ceļiem.
Ja HTTPS darbība apstājas starpniekserverī, noskaidrojiet, vai CONNECT saņēma 407 un vai izmantojat šī laidiena uzvedību. Apstipriniet arī starpniekservera piedāvāto autentifikācijas shēmu. Basic akreditācijas datu ieraksts nav universāls adapteris katrai uzņēmuma autentifikācijas sistēmai.
Glabājiet ilgtermiņa konfigurāciju publiskajā starpniekservera opcijā un izvēlētajā akreditācijas datu aizmugurē. URL bibliotēkas iekšējā Basic krātuve ir noderīga šīs uzvedības izpratnei, bet manuāla šīs privātās datu struktūras aizpildīšana piesaistītu iestatījumu ieviešanas detaļām.