Я пытался получить curl версии 7.63 для Windows, чтобы подключиться к API REST HTTP / 2 и использовать проверку подлинности Windows.
Конечная точка REST настроена на «согласование» и работает на «Домен "Присоединен" Windows Server.поэтому он получит делегирование Kerberos от Windows DC KDC.
Это все работает в http / 1.1, но если я попытаюсь принудительно заставить curl использовать http / 2, он вернется к http / 1.1
Когда я использую «базовую» аутентификацию, curl может подключиться к остальной конечной точке, используя http / 2.
. Я нашел это сообщение в блоге от бывшего инженера IIS в Microsoft, в котором говорится, что IIs не поддерживает Http / 2.с аутентификацией Windows.https://blogs.iis.net/davidso/http2
, поскольку моя конечная точка REST отвечает следующим образом в заголовке: Сервер: Microsoft-HTTPAPI / 2.0
Я считаю, что он использует ту же библиотеку, что и IIS, и это может быть причинойпочему он не может обрабатывать проверку подлинности Windows (проверка подлинности Windows необходима для обработки единого входа, чтобы пользователю не нужно было вводить свои учетные данные).
это ограничение в спецификации http / 2 или просто ограничение вбиблиотеки Microsoft и IIS?
curl 7.63.0 (x86_64-w64-mingw32) libcurl / 7.63.0 OpenSSL / 1.1.1a (WinSSL) zlib / 1.2.11 libidn2 / 2.0.5 nghttp2 / 1.35.1 Дата выпуска: 2018-12-12 Протоколы: файл dict ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp Особенности: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL libz TLS-SRP HTTPSLS-TLS-SRP HTTP2 HTLS-HTLTMetalink