用于NTLM身份验证的GSSAPI
GSSAPI for NTLM authentication
是否可以使用GSSAPI进行NTLM v1/v2身份验证?我正在尝试构建一个web服务器,很像squid/apache,但我想验证那些可能使用IE/FireFox、使用NTLM/协商协议的客户端。我尝试过使用海姆达尔库,但就是无法让gss_accept_sec_text正常工作。它只是以"请求了不受支持的机制"失败。我可以确认,在尝试gss_accept_sec_text之前调用gss_acquire_cred时,服务主体名称、spnego的OID等确实正确。是的,当然,我通过base64解码授权头提取了从客户端接收的令牌。我正在使用C++,并在debian上进行实验。我相信这里的一个神奇的黑客知道更多,希望能分享一些重要的线索。
提前感谢。
Heimdal的NTLM库也支持客户端。您可以使用库基元生成类型1、类型2和类型3的消息,并且它将起作用。然而,我不知道你能不能在Heimdal的顶部使用GSS-API来达到这个目的。我想那个测试,你也可以这样做。
我不确定Heimdal库以及它是否能与GSS一起使用,但GSS-ntlm-ssp特别声称自己是一个GSS库。我想你需要下载并构建它,然后你需要设置/etc/gss/mech(或Debian和Ubuntu上的/usr/gss/mec)来指向库。构建系统将在其examples目录中的mech文件中创建一个您需要的示例。
在spnego下运行此程序可能会遇到问题。当Windows将NTLM作为协商包的最首选机制时,它会发送原始NTLM令牌,而不是RFC 4178中定义的SPNEGO令牌。不过,这个代码肯定会让你走得更远;它肯定会超过gsaccept_sectext,指示不支持的机制。
Heimdal GSSAPI库支持SPNEGO、NTLMv1/v2和KRB5。它们还有原始NTLM库,您可以使用它自己实现协议。
https://www.h5l.org/manual/HEAD/gssapi/
- LibGit2 SSH身份验证失败
- 为什么 WinInet 在通过 FQDN 连接时无法通过协商自动进行身份验证,但如果通过 IP 连接则成功?
- 如何通过NetHTTPClient在HTTPS中进行身份验证
- 处理身份验证弹出窗口在wxWebView
- 如何测试我的谷歌身份验证器实现?
- 通过 Boost 和 C++ 进行 SMTP 身份验证
- libtorrent是否支持带摘要身份验证的http web种子
- 将Windows身份验证与cpprestsdk一起使用
- OCCI:使用SSL钱包身份验证连接到OracleDB
- 为什么我不能使用外围设备进行身份验证
- 无法使用C++代码向MongoDB进行身份验证
- 模拟的 HTTP 身份验证仅在本地主机上工作
- 使用OpenSSL的SHA 512 HMAC消息身份验证的问题
- Windows 套接字和身份验证构建在包含 Poco-Library 时失败
- 如何对进程进行身份验证
- 如何使用GSOAP初始化服务器上下文以启用简单身份验证(仅服务器身份验证)
- 解析 HTTP 的摘要式身份验证的正确正则表达式模式是什么?
- 在 SSH 上的公钥-私钥身份验证上的 libcurl 实现
- 是否使用LDAP+kerberos作为身份验证程序启用SASL(带有GSSAPI)的客户端和服务器?(单点登录SSO系统
- 用于NTLM身份验证的GSSAPI