NTLM и Голанг
Я недавно выучил Go и экспериментирую с net/http
библиотека. Я пытался пройти аутентификацию на сайте, используя http.SetBasicAuth
функционировать, но это никогда не работает. Работает нормально с cURL
но не с го. Я знаю, что это как-то связано с NTLM
но я не знаю, как решить проблему
Скручивание
curl -v "http://server_that_im_trying_to_auth_with" --ntlm -u user:pass
Идти:
req, _ := http.NewRequest("GET", "url", nil)
req.SetBasicAuth(user, pass)
resp, _ := http.DefaultClient.Do(req)
body, _ := ioutil.ReadAll(resp.Body)
Тело продолжает возвращать сайты 401.
1 ответ
Проверка подлинности NTLM и обычная проверка подлинности не совпадают. NTLM - это протокол, который сложнее, чем просто user: строка пароля в заголовке.
Если вы хотите сделать запрос из кода Golang для аутентификации, вы должны использовать одну из существующих библиотек, например: go-ntlmssp
Также вы можете узнать больше о самом протоколе NTLM здесь