我有一个使用Kerberos进行客户端身份验证的Linux服务器应用程序和需要在Windows上运行的客户端。 Kerberos票证由Windows Active Directory颁发。如果我使用MIT KfW 3.2.2,客户端在服务器上成功验证。用于从Kerberos服务器检索AS和TGS票证并将其存储在kerberos凭证存储中的API。但这种方法的问题是用户需要再次输入他的凭证。 解决方案是访问MS LSA存储,但这不起作用。 ms2mit.exe应用程序也没有。如果我以普通用户或管理员身份运行,或者如果我完全禁用UAC,则无关紧要。 这就是为什么我想在客户端上使用SSPI来生成我将发送给服务器的KRB_AP_REQ消息。那可能吗。如果是,怎么办呢?如果不,我的其他选择是什么?请注意,服务器已经构建,需要付出很大的努力才能更改它,因此我想在Windows上找到解决方案。
答案 0 :(得分:1)
您可以使用Windows SSPI子系统的AquireCredentialsHandle和InitializeSecurityContext功能来获取有效的票证并对基于Linux的服务器进行身份验证。
首先使用AcquireCredentialsHandle()
,然后使用从服务器获取的令牌多次调用InitializeSecurityContext
,直到通过身份验证。