目标: 我正在尝试构建一个Proof Of Concept客户端应用程序,通过使用SSPI实现单点登录。我对C#还不熟悉,感到有些困惑。
我的了解和已经做的事情: 所有用户都是Active Directory域的一部分,因此我知道在登录期间使用Kerberos进行身份验证。在这个阶段,我所需要做的就是从Kerberos获取服务令牌,以便我可以将其传递给服务资源,而不是用户名和密码(如果我错了,请纠正我)。我已经收到了已经在Kerberos中注册为服务的服务主体名称(SPN)和密码。
我希望不必使用平台调用服务来调用SSPI函数,但如果我必须这样做,我会使用它。我阅读了“.NET Remoting Authentication and Authorization Sample - Part I”,并使用Microsoft.Samples.Security.SSPI进行测试。我还尝试使用C#/.Net Interface To The Win32 SSPI Authentication API。
到目前为止,我可以获得用户/客户端凭据,构建客户端安全上下文。但是我如何为给定的SPN请求服务票证?
我将非常感谢您的帮助和指导。如果可能,请具体说明,并让我知道您是否有任何问题。