URL-puhverserveri sisselogimine Emacsis 31.1: auth-source ja CONNECT-i piirid
Seadistage Emacsi URL-teegile autenditud HTTP-puhverserver, mõistke selle Basic-mandaatide otsingut ja arvestage HTTPS CONNECT-i teekonda Emacsis 31.1.
Puhverserveri aadress ütleb Emacsile, kuhu ühenduda. Selle sisselogimine on vestluse teine osa. Tavalise HTTP-päringu korral võib Emacsi URL-teek vastata puhverserveri autentimisväljakutsele, hankida mandaadid auth-source'ist või küsida neid interaktiivselt ning taaskasutada sessioonis hoitavaid mandaate.
Alljärgnevad üksikasjad järgivad Emacsi 31.1. Need puudutavad toiminguid, mis kasutavad URL-teeki; Emacsi paketi käivitatud väline allalaadija on oma autentimisteega.
Määrake marsruut ja laske seejärel HTTP-l sisselogimist küsida
Fikseeritud puhverserveri lõpp-punkti saab valida dokumenteeritud valikuga:
(setq url-proxy-services
'(("http" . "proxy.example:8080")
("https" . "proxy.example:8080")))
Asendage kohahoidja antud lõpp-punktiga. Võtmed kirjeldavad sihtkoha URL-i skeeme. HTTPS-kirje lisamine valib marsruudi HTTPS-sihtkohtadele; see ise mandaate ei anna.
Tavalise HTTP-päringu ajal võib puhverserver vastata 407 Proxy Authentication Required ja Proxy-Authenticate-väljakutsega. URL-teek valib toetatud autentimisskeemi ja hangib puhverserveri lõpp-punkti jaoks mandaadid. Seejärel proovib see uuesti Proxy-Authorization-ga.
Basic-autentimise korral võib interaktiivne päring küsida kasutajanime ja parooli, kui sobivad mandaadid puuduvad. Mitteinteraktiivseks märgitud päring ei saa neile küsimustele toetuda. Puhverserveri sisselogimine on ka sihtveebisaidi sisselogimisest eraldi: veebisaidi 401-väljakutse järgib teist teed.
Pange püsivad mandaadid auth-source'i
Kui auth-source loeb juba krüptitud mandaadifaili nagu ~/.authinfo.gpg, on selle näite Basic-kirje järgmise kujuga:
machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD
Kasutage oma tegelikku kontot ja saladust ning veenduge, et fail kuulub seadistatud auth-sources hulka. Rida illustreerib sobivaid välju; see ei ole juhis panna parool oma Lispi algfaili.
Emacsi 31.1 Basic-teostuses on olulised kaks üksikasja. See otsib puhverserveri hostinime ilma numbrilise TCP-pordita ja edastab puhverserveri URL-i skeemi auth-source'i pordiväärtusena. Selle HTTP-puhverserveri puhul on see väärtus http, kuigi TCP-ühendus kasutab porti 8080.
See otsing ei hõlma väljakutse realm'i ega numbrilist puhverserveri porti. Ärge oodake, et see valiks sama hostinime juures mitme realm'i või puhverserveri pordi jaoks erinevaid Basic-paroole. Digest kasutab teistsugust hostiotsingut, seega ülaltoodud näide on mõeldud just Basicu jaoks.
URL-teek hoiab ka oma autentimisvahemälu. Selle Basic-kirjed eristavad puhverserveri lõpp-punkte ja kasutavad lõpp-punkti sees realm'i või kataloogi vastavust; see vahemälu on auth-source'i otsingust eraldi. Parooli sisestamine küsimuse juures võib sessiooni vahemälu täita, ilma et püsivasse mandaadifaili salvestataks uus kirje.
HTTPS-il on varasem autentimissamm
HTTP-puhverserveri kaudu HTTPS-sihtkoha jaoks saadab Emacs esmalt CONNECT-i. Autentimine võib seega olla vajalik enne, kui jõutakse veebisaidiga krüptitud ühenduseni.
Emacsis 31.1 kontrollib CONNECT-päringu koostaja autentimist, mis on juba saadaval selle autentimismehhanismi kaudu, sealhulgas vahemällu salvestatud Basic-mandaadid. Selle Basic-teek ei küsi ega hanki sel hetkel uut auth-source'i kirjet. CONNECT-i vastus, mis ei ole 200, ei sisene ka ülalkirjeldatud tavalisse HTTP 407 väljakutse töötlejasse.
Järelikult ei taga auth-source'i kirje, mis suudab vastata tavalisele HTTP Basic-väljakutsele, et uue sessiooni esimene HTTPS-päring autentitakse edukalt. Sobivate vahemällu salvestatud mandaatidega sessioonil on teistsugune algolek. Sama paroolikirje korduv muutmine ei saa iseenesest seda erinevust kahe tee vahel kõrvaldada.
Kui HTTPS-toiming peatub puhverserveri juures, tehke kindlaks, kas CONNECT sai 407 ja kas kasutate selle väljalaske käitumist. Kinnitage ka puhverserveri pakutav autentimisskeem. Basic-mandaatide kirje ei ole universaalne adapter iga ettevõtte autentimissüsteemi jaoks.
Hoidke püsiv konfiguratsioon avalikus puhverserveri valikus ja valitud mandaatide taustsüsteemis. URL-teegi sisemine Basic-hoidla on selle käitumise mõistmiseks kasulik, kuid selle privaatse andmestruktuuri käsitsi täitmine seoks seadistuse teostuse üksikasjadega.