NTLM-аутентификация в Haskell

В моей программе на Haskell мне нужно поговорить с сервером, который требует аутентификации NTLM. Я знаю это, потому что сервер отвечает

401 ... WWW-Authenticate: NTLM

на мою просьбу. Когда я захожу на веб-сайт в Chrome и отслеживаю HTTP-разговор, очевидно, что происходит какая-то аутентификация типа «запрос-ответ».

Есть ли способ выполнить такую ​​​​аутентификацию в Haskell? Раньше я использовал библиотеку req для выполнения HTTP-запросов, но, похоже, она не поддерживает аутентификацию NTLM. Я также понимаю, что NTLM требует повторного использования одного TCP-соединения для всего трафика после аутентификации соединения. Я не вижу очевидного способа сделать это в req из моего чтения документации.


person jforberg    schedule 16.08.2019    source источник


Ответы (1)


Я не пробовал и не знаю NTLM, но похоже на привязки libcurl есть то, что вам нужно.

Возможно, вы могли бы использовать их для создания чего-то вроде этого. Вы можете попробовать:

curlGet "http://url.com" [CurlHttpAuth [HttpAuthNTLM], CurlUserPassword "username:password"]
person 5ndG    schedule 17.08.2019
comment
В конце концов, libcurl отлично сработал. Спасибо за вашу помощь! - person jforberg; 12.02.2020