Emacs 31.1 ішіндегі URL проксисіне кіру: auth-source және CONNECT шектеулері
Emacs-тің URL кітапханасы үшін аутентификацияланған HTTP проксиін конфигурациялаңыз, оның Basic тіркелгі деректерін іздеуін түсініңіз және Emacs 31.1 ішіндегі HTTPS CONNECT жолын ескеріңіз.
Проксидің мекенжайы Emacs-қа қайда қосылу керегін айтады. Оның кіруі әңгіменің басқа бөлігі. Кәдімгі HTTP сұрауы үшін Emacs-тің URL кітапханасы проксидің аутентификация шақыруына жауап бере алады, auth-source-тан тіркелгі деректерін ала алады немесе интерактивті түрде сұрай алады және сессияда ұсталған деректерді қайта пайдалана алады.
Төмендегі мәліметтер Emacs 31.1-ге сәйкес. Олар URL кітапханасын пайдаланатын әрекеттерге қатысты; Emacs бумасы іске қосатын сыртқы жүктеушінің өз аутентификация жолы бар.
Маршрутты белгілеңіз, содан кейін HTTP кіруді сұрасын
Тіркелген прокси соңғы нүктесін құжатталған опциямен таңдауға болады:
(setq url-proxy-services
'(("http" . "proxy.example:8080")
("https" . "proxy.example:8080")))
Орынтолтырғышты берілген соңғы нүктемен ауыстырыңыз. Кілттер мақсатты URL схемаларын сипаттайды. HTTPS жазбасын қосу HTTPS мақсаттары үшін маршрут таңдайды; ол өзі тіркелгі деректерін бермейді.
Кәдімгі HTTP сұрауы кезінде прокси 407 Proxy Authentication Required және Proxy-Authenticate шақыруымен жауап бере алады. URL кітапханасы қолдау көрсетілетін аутентификация схемасын таңдап, прокси соңғы нүктесі үшін тіркелгі деректерін алады. Содан кейін Proxy-Authorization-пен қайта әрекет жасайды.
Basic аутентификациясы үшін интерактивті сұрау қолайлы тіркелгі деректері болмаған кезде пайдаланушы аты мен құпиясөзді сұрай алады. Интерактивті емес деп белгіленген сұрау бұл сұрауларға сене алмайды. Проксиге кіру мақсатты веб-сайтқа кіруден де бөлек: веб-сайттың 401 шақыруы басқа жолмен жүреді.
Тұрақты тіркелгі деректерін auth-source-қа салыңыз
Егер auth-source әлдеқашан ~/.authinfo.gpg сияқты шифрланған тіркелгі деректері файлын оқыса, осы мысал үшін Basic жазбасы мынадай пішінде болады:
machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD
Нақты тіркелгіңіз бен құпияңызды пайдаланыңыз және файлдың конфигурацияланған auth-sources қатарында екеніне көз жеткізіңіз. Жол сәйкес өрістерді көрсетеді; бұл Lisp инициализация файлыңызға құпиясөз салу туралы нұсқау емес.
Emacs 31.1-дің Basic іске асырылуында екі мәлімет маңызды. Ол проксидің хост атын сандық TCP портынсыз іздейді және прокси URL схемасын auth-source-тың порт мәні ретінде жібереді. Бұл HTTP проксиі үшін TCP қосылымы 8080 портын пайдаланса да, бұл мән http.
Бұл іздеу шақырудың realm-ін немесе сандық прокси портын қамтымайды. Бір хост атындағы бірнеше realm немесе прокси порты үшін әртүрлі Basic құпиясөздерді таңдайды деп күтпеңіз. Digest басқа хост іздеуін пайдаланады, сондықтан жоғарыдағы мысал Basic үшін арнайы.
URL кітапханасы өзінің аутентификация кэшін де ұстайды. Оның Basic жазбалары прокси соңғы нүктелерін ажыратады және соңғы нүкте ішінде realm немесе каталог сәйкестігін пайдаланады; бұл кэш auth-source іздеуінен бөлек. Сұрау кезінде құпиясөз теру тұрақты тіркелгі деректері файлыңызға жаңа жазба сақтамай-ақ сессия кэшін толтыра алады.
HTTPS-тің неғұрлым ерте аутентификация қадамы бар
HTTP проксиі арқылы HTTPS мақсаты үшін Emacs әуелі CONNECT жібереді. Сондықтан веб-сайтпен шифрланған қосылымға жетпес бұрын аутентификация қажет болуы мүмкін.
Emacs 31.1-де CONNECT сұрауын құрастырушы өзінің аутентификация механизмі арқылы әлдеқашан қолжетімді аутентификацияны тексереді, оның ішінде кэштегі Basic тіркелгі деректері. Оның Basic жолы сол сәтте жаңа auth-source жазбасын сұрамайды және әкелмейді. 200 емес CONNECT жауабы да жоғарыда сипатталған кәдімгі HTTP 407 шақыру өңдеушісіне кірмейді.
Демек, кәдімгі HTTP Basic шақыруына жауап бере алатын auth-source жазбасы жаңа сессияның бірінші HTTPS сұрауы сәтті аутентификацияланатынына кепілдік бермейді. Қолайлы кэштегі тіркелгі деректері бар сессияның бастапқы күйі басқа. Бірдей құпиясөз жазбасын қайта-қайта өңдеу екі жол арасындағы бұл айырмашылықты өздігінен жоя алмайды.
Егер HTTPS әрекеті проксиде тоқтаса, CONNECT 407 алды ма және осы шығарылымның әрекетін пайдаланып жатқаныңызды анықтаңыз. Прокси ұсынатын аутентификация схемасын да растаңыз. Basic тіркелгі деректері жазбасы әрбір кәсіпорындық аутентификация жүйесі үшін әмбебап адаптер емес.
Тұрақты конфигурацияны жария прокси опциясында және таңдаған тіркелгі деректері бэкендінде сақтаңыз. URL кітапханасының ішкі Basic қоймасы бұл әрекетті түсіну үшін пайдалы, бірақ сол жеке деректер құрылымын қолмен толтыру конфигурацияны іске асыру мәліметтеріне байлап қояр еді.