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.

Seotud artiklid