繁体   English   中英

GSSAPI用于NTLM身份验证

[英]GSSAPI for NTLM authentication

是否可以使用GSSAPI进行NTLM v1 / v2身份验证? 我正在尝试构建一个web服务器,就像squid / apache一样,但我想使用NTLM / Negotiate协议验证可能正在使用IE / FireFox的客户端。 我尝试使用heimdal库,但根本无法使用gss_accept_sec_context。 它只是失败了“请求了一个不支持的机制”。 我可以确认在尝试gss_accept_sec_context之前调用gss_acquire_cred时,服务主体名称,spnego等的OID确实发生了。 是的,当然,我通过base64解码授权头来提取从客户端收到的令牌。 我正在使用C ++,并在debian上进行实验。 我相信这里的一个奇妙的黑客知道更多,希望将分享一些重要的线索。

提前致谢。

Heimdal的NTLM库也支持客户端。 你可以使用库原语生成type1,2和3消息,它可以工作。 但是,我不知道您是否可以在Heimdal顶部使用GSS-API用于此目的。 我假设测试,你也可以这样做。

我不确定Heimdal库以及它是否适用于GSS,但gss ntlm ssp特别声称是一个gss库。 我希望你需要下载并构建它,然后你需要设置/ etc / gss / mech(或Debian和Ubuntu上的/ usr / etc / gss / mech)来指向库。 Ther build系统将在其examples目录中的mech文件中创建所需内容的示例。

在spnego下运行这个可能会遇到麻烦。 当Windows将NTLM作为协商程序包的首选机制时,它会发送原始NTLM令牌而不是RFC 4178中定义的SPNEGO令牌。这段代码肯定会让你更进一步; 它肯定会超过gss_accept_sec_context,表明一个不受支持的机制。

Heimdal GSSAPI库支持SPNEGO,NTLMv1 / v2和KRB5。 他们还有原始的NTLM库,您可以使用它来自己实现协议。

https://www.h5l.org/manual/HEAD/gssapi/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM