windows服务中的Kerberos身份验证

本文关键字:Kerberos 身份验证 服务 windows | 更新日期: 2023-09-27 18:22:27

我是kerberos身份验证的新手,对此一无所知。我已经准备好了服务器名称、用户名和密码。

我需要从独立的windows应用程序对用户进行身份验证。有人能帮忙吗?

我在谷歌上找不到太多帮助。

感激任何想法。

windows服务中的Kerberos身份验证

在Kerberos中,您不使用对用户名/密码进行身份验证,而是通过附加Kerberos令牌进行身份验证。您可以从CredentialsCache中获取该令牌。

WebRequest WReq = WebRequest.Create (MyURI);
WReq.Credentials = CredentialCache.DefaultCredentials;

请参阅:https://msdn.microsoft.com/en-us/library/yk7437c8%28v=vs.110%29.aspx

第二行将为您提供NTLM或Kerberos凭据。您将在以下情况下获得Kerberos凭据:

  • 您的应用程序是由域用户帐户启动的
  • Kerberos KeyDistributionCentre中存在服务器的SPN或UPN
  • 服务器配置为接收Kerberos令牌,至少:您必须为其提供密码

当您执行"CredentialCache.DefaultCredentials"时,您的应用程序将使用底层机制为您生成SPNEGO令牌。里面,将是Keberos或NTLM门票。以下是它的工作原理:

  • 环境说明:https://msdn.microsoft.com/en-us/library/aa480562.aspx
  • 客户端计算机上发生的情况(SSPI实现用于生成票证)https://msdn.microsoft.com/en-us/library/aa480609.aspx