sql-server - IIS 到 SQL Server kerberos 身份验证问题

标签 sql-server iis kerberos

我们有一个第三方产品,允许我们的一些用户通过单独服务器 (SvrWeb) 上的网站操作数据库(我们称之为 SvrSQL)中的数据。

在 SvrWeb 上,我们为此应用程序设置了一个特定的非默认网站,因此不必访问 http://SvrWeb.company.com访问我们使用的网站http://application.company.com它解析为 SvrWeb,主机 header 解析为正确的网站。

还为此站点设置了一个特定的应用程序池,它使用我们称为“company\SrvWeb_iis”的 Active Directory 帐户身份。我们设置为允许对此帐户进行委派,并允许它模拟我们希望它执行的另一个登录。 (我们希望此帐户将登录网站的人员的 AD 凭据传递到 SQL Server,而不是服务帐户。

我们还通过以下命令为 SrvWeb_iis 帐户设置 SPN: setspn -A HTTP/SrvWeb.company.com SrvWeb_iis

网站已启动,但网站中调用数据库的部分返回消息: 无法执行数据库查询。 用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。

我以为我们的 SPN 信息设置正确,但是当我检查 SrvWeb 上的安全事件日志时,我看到了我的登录条目,但它似乎使用的是 NTLM 而不是 kerberos:

Logon Type: 3
Logon Process:  NtLmSsp 
Authentication Package: NTLM

任何详细介绍此设置的想法或文章将不胜感激!

如果有帮助的话,我们正在使用 SQL Server 2005,并且 Web 和 SQL 服务器都是 Windows 2003。

最佳答案

kerberos 失败有多种可能的原因,其中包括缺少 SPN 和重复的 SPN。

如果 SQL 在自定义帐户下运行,您还需要为 SQL 添加 SPN。
另请记住,您应该为 FQDN 添加 SPN,FQDN 是 DNS 中的主机 (A) 条目,而不是 CNAME。

检查 NTAuthenticationProviders 的值
http://support.microsoft.com/kb/215383

尝试 DelegConfig,它会显示缺少的内容(如果是 SPN 或其他内容)。
http://www.iis.net/community/default.aspx?tabid=34&g=6&i=1887

关于sql-server - IIS 到 SQL Server kerberos 身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4618552/

相关文章:

iis - 如何让 IIS 阻止文件上传目录中的脚本执行?

c - 从源代码构建 R 包 krb5

npm - [错误 : Unspecified GSS failure. 次要代码可能提供更多信息:找不到匹配的 key 表条目

php - MS SQL CONCAT 与 "+"查询差异(使用 Doctrine 2)

sql-server - SQL Server Compact错误: Unable to load DLL 'sqlceme35.dll' .找不到指定的模块

asp.net - 确保 dot.net 站点始终运行

python - 'Select-Object' 不是内部或外部命令,也不是可运行的程序或批处理文件

hadoop - 如何找出CDH kerburised群集中特定kafka主题的最大偏移值

php - 在laravel中添加引用外键的表时出现错误如何解决?

sql - 如何从 T-SQL 脚本调用 FoxPro 存储过程