我最近接触到了一种我不知道的新身份验证方法。 经过阅读和研究理解后,我明白它与 SPNEGO 有关,或者可能只是 spnego。
我在大型网络上运行 Windows XP,当我的浏览器自动打开它时 连接到网络中的 Web 服务,需要身份验证:
HTTP/1.1 401 未经授权 WWW-身份验证:协商
然后我的浏览器会自动发送(当然还有更多 header ):
授权:协商(加密字符串)。
我得出的结论是,这次握手使用了 SPNEGO 协议(protocol)。
我需要做的是创建我自己的客户端(实际上,它是一个使用需要身份验证的网络服务的机器人)。我需要在没有任何用户交互的情况下获取该加密字符串(就像我的浏览器获取它一样,可能是通过使用某些 SPNEGO 协议(protocol))(同样,就像我的浏览器一样)。
问题是,我没有足够的时间来研究 spnego 协议(protocol)以及如何实现它。
我正在使用 c/c++,但如果我没有选择,c# 也可以。 是否有任何函数/类/代码,甚至可能是好的教程来帮助我尽快实现它?
最佳答案
curl
适用于 Kerberos/spnego。我不确定这个功能在 Windows 上的效果如何,您应该尝试看看。它在 Linux 上运行得很好。您可以查看源代码以了解它是如何完成的。
关于c - 如何获取 SPNEGO/Kerberos session key - 并实现 HTTP 身份验证 :Negotiate on my own client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7514678/