繁体   English   中英

为什么BasicHttpBinding不需要主体名称就可以在IIS7上使用Kerberos Auth?

[英]Why doesn't BasicHttpBinding need a Principal Name to use Kerberos Auth on IIS7?

我对Kerberos身份验证的工作原理了解很多,但就我的一生而言,我无法解释我在IIS托管的WCF服务中看到的奇怪行为。

我已经建立了一个非常简单的WCF应用程序,该应用程序使用BasicHttpBinding和TransportCredentialOnly公开了一个端点。 我的理解是,要使Kerberos工作,客户端必须指定用户主体名称或服务主体名称。 由于某种原因,在不同的绑定类型之间似乎不一致。

当我省略此主体名称时,在IIS6上最终会使用NTLM。 在IIS7上,它使用Kerberos。 当我在IIS6上指定用户主体名称时,使用Kerberos,但在IIS7上调用失败(在Kerberos握手过程中,Wireshark显示KRB_AP_ERR_BADMATCH错误)。

当我通过Message Security将绑定切换到WSHttpBinding时,它会变得更加有趣。 在该实验中,如果我未在IIS6上指定用户主体名称,则调用将失败,并在IIS7上使用NTLM。 当我指定UPN时,IIS6失败,并且II7使用Kerberos结束。 这是我的发现的摘要。 如果有任何人可以帮助我确定发生的事情,我将永远感激不已。

汇总表

您知道IIS 7中的内核模式身份验证吗? 它消除了对应用程序池使用自定义标识的需求,并且(在大多数情况下)也消除了将SPN分配给自定义标识或主机的需求。

这是一篇博客文章 ,描述了使用内核模式身份验证时何时需要设置SPN。

暂无
暂无

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

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