URL-proxy bejelentkezés az Emacs 31.1-ben: auth-source és CONNECT-korlátok
Állítson be hitelesített HTTP-proxyt az Emacs URL-könyvtárához, értse meg a Basic hitelesítő adatok keresését, és vegye figyelembe a HTTPS CONNECT útvonalat az Emacs 31.1-ben.
A proxy címe megmondja az Emacsnek, hová csatlakozzon. A bejelentkezés a beszélgetés másik része. Egy közönséges HTTP-kérésnél az Emacs URL-könyvtára megválaszolhatja a proxy hitelesítési kihívását, hitelesítő adatokat kérhet az auth-source-ból vagy interaktívan, és újra felhasználhatja a munkamenetben tartott adatokat.
Az alábbi részletek az Emacs 31.1-et követik. Olyan műveletekre vonatkoznak, amelyek az URL-könyvtárat használják; az Emacs-csomag által indított külső letöltőnek saját hitelesítési útvonala van.
Állítsa be az útvonalat, majd hagyja, hogy a HTTP kérje a bejelentkezést
Egy rögzített proxy-végpont a dokumentált beállítással választható ki:
(setq url-proxy-services
'(("http" . "proxy.example:8080")
("https" . "proxy.example:8080")))
Cserélje ki a helyőrzőt a kapott végpontra. A kulcsok a cél URL-sémáit írják le. A HTTPS-bejegyzés hozzáadása útvonalat választ a HTTPS-célokhoz; önmagában nem ad hitelesítő adatokat.
Egy közönséges HTTP-kérés során a proxy 407 Proxy Authentication Required és Proxy-Authenticate kihívással válaszolhat. Az URL-könyvtár kiválaszt egy támogatott hitelesítési sémát, és hitelesítő adatokat szerez a proxy végpontjához. Ezután Proxy-Authorization használatával újra próbálkozik.
A Basic hitelesítésnél egy interaktív kérés felhasználónevet és jelszót kérhet, ha nincsenek megfelelő hitelesítő adatok. A nem interaktívként megjelölt kérés nem támaszkodhat ezekre a kérésekre. A proxy bejelentkezés a célwebhely bejelentkezésétől is elkülönül: egy webhely 401 kihívása más útvonalat követ.
Tegye a tartós hitelesítő adatokat az auth-source-ba
Ha az auth-source már olvas egy titkosított hitelesítő adatfájlt, például ~/.authinfo.gpg, akkor az ehhez a példához tartozó Basic bejegyzés a következő alakú:
machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD
Használja a tényleges fiókját és titkát, és győződjön meg arról, hogy a fájl a beállított auth-sources között van. A sor az egyező mezőket szemlélteti; nem utasítás arra, hogy jelszót tegyen a Lisp inicializáló fájljába.
Két részlet számít az Emacs 31.1 Basic megvalósításában. A proxy hosztnevét a numerikus TCP-port nélkül keresi, és a proxy URL-sémáját adja át az auth-source portértékeként. Ennél a HTTP-proxynál ez az érték http, pedig a TCP-kapcsolat a 8080-as portot használja.
Ez a keresés nem tartalmazza a kihívás realmjét vagy a numerikus proxy-portot. Ne számítson arra, hogy különböző Basic-jelszavakat választ több realmhez vagy proxy-porthoz ugyanazon a hosztnéven. A Digest más hosztkeresést használ, ezért a fenti példa kifejezetten a Basichoz szól.
Az URL-könyvtár saját hitelesítési gyorsítótárat is tart. Basic bejegyzései megkülönböztetik a proxy végpontokat, és egy végponton belül realm- vagy könyvtáregyezést használnak; ez a gyorsítótár elkülönül az auth-source keresésétől. Jelszó beírása egy kérésnél feltöltheti a munkamenet gyorsítótárát anélkül, hogy új bejegyzést mentene a tartós hitelesítő adatfájlba.
A HTTPS-nek korábbi hitelesítési lépése van
HTTP-proxyn keresztüli HTTPS-célhoz az Emacs először CONNECT-et küld. Ezért a hitelesítésre szükség lehet, mielőtt elérné a webhelyhez vezető titkosított kapcsolatot.
Az Emacs 31.1-ben a CONNECT-kérés építője ellenőrzi a hitelesítési gépezete révén már elérhető hitelesítést, beleértve a gyorsítótárazott Basic hitelesítő adatokat. A Basic útvonala ezen a ponton nem kér és nem hoz friss auth-source bejegyzést. A nem 200-as CONNECT-válasz sem lép be a fent leírt közönséges HTTP 407 kihíváskezelőbe.
Következésképpen egy olyan auth-source bejegyzés, amely meg tud válaszolni egy normál HTTP Basic kihívást, nem garantálja, hogy egy új munkamenet első HTTPS-kérése sikeresen hitelesítődik. A megfelelő gyorsítótárazott hitelesítő adatokkal rendelkező munkamenet más kezdőállapotból indul. Ugyanazon jelszóbejegyzés ismételt szerkesztése önmagában nem szüntetheti meg ezt a különbséget a két útvonal között.
Ha egy HTTPS-művelet megáll a proxynál, állapítsa meg, hogy a CONNECT kapott-e 407-et, és hogy e kiadás viselkedését használja-e. Erősítse meg a proxy által kínált hitelesítési sémát is. A Basic hitelesítő adatbejegyzés nem univerzális adapter minden vállalati hitelesítési rendszerhez.
Tartsa a tartós konfigurációt a nyilvános proxy-beállításban és a választott hitelesítőadat-háttérben. Az URL-könyvtár belső Basic tárolója hasznos ennek a viselkedésnek a megértéséhez, de a privát adatszerkezet kézi feltöltése a beállítást a megvalósítás részleteihez kötné.