在将凭据从用户传递到IIS然后从IIS传递到SQL时,我遇到了使
Windows身份验证(Kerberos)工作的问题.我已经为SQL设置了SPN,并将IIS服务器帐户设置为允许委派.
如果我将IIS计算机帐户设置为允许任何服务的委派,它可以工作:
但是,如果我为特定服务设置它,则不会传递凭据,并且我收到有关与匿名用户连接的错误:
正如您所看到的,我正在连接到SQL Express实例,并且我已经设置了许多SPN来尝试解决这个问题,但没有任何运气.显然它在允许任何服务时起作用的事实,对我说这个服务列表中缺少其他东西,但我不知道是什么!
对于可能遇到此问题的任何其他人,问题在于使用Kernal模式身份验证,以及应用程序池帐户的域用户帐户.
内核模式身份验证为IIS SPN执行大部分工作,但是它希望您将系统帐户用于应用程序池标识.如果您使用的是域帐户,则需要为此用户设置HTTP SPN.然后,您将需要在此用户帐户上委派对SQL的访问权限,而不是在IIS计算机帐户上,就像通常使用内核模式身份验证一样.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。