请,有人可以给出一个简单,直接的方式,以使ASP.NET>的Kerberos器> SQL Server?
我们有clientMachine> web服务器> DATABASESERVER。 客户端是坚持认为网站必须拉登陆窗口,而不是提示,因此需要Kerberos和集成身份验证。 它也必须模拟用户到数据库服务器,诱导双跳。
我们的域是Windows 2003域,其中据我可以在网上告诉,指启用Kerberos。 和加入域的计算机,登录时上的Kerbtray显示我,我有票的转换,所以这显然是工作。
网络和数据库服务器计算机帐户在AD都是“可以委派”。
必须访问系统的AD用户帐户都是“可以委派”。
当它是所有的工作,我会添加更多的用户,现在二是它。
SQL Server实例的本地系统下运行的数据库服务器,它尽可能接近我可以在网上告诉,意味着它并不需要在所有这些事情SPN搞乱上。
然而,当我试着使用任一用户登录,我得到
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
表示双跳失败。 这是一个事实,即在数据库服务器上的应用程序日志中有来自“MSSQL”说同样的事情项的转换进一步发展。
我真的不敢相信有多难,这是......我的意思是,IIS,SQL和Windows是微软所有,他们不能谈论更好???
因此,在总结,我有
- 一个Kerberos域,
- 数据库和Web服务器都可以委派
- 用户信任的委派
- 在AD组中的用户
- AD组在SQL中是登录(和用户在分贝)
- IIS匿名关闭,集成的,基本和摘要关闭
- IE浏览器启用集成上
下载故障排除Kerberos委派 。 它是一种生命的救星。
在第17页,你会发现在Active Directory清单 。 按照一步清单一步。
在30页,你会发现客户端应用程序清单 。 验证一步清单一步。
在35页的中间层清单 。 验证它一步一步来。
在48页的后端清单 。 验证它一步一步来。
如果你还有问题,文件中包含的故障排除工具(的Kerbtray,klist的,LDIFDE等),如何使所有的错误代码的记录和验证错误的审计系统事件日志,详细说明在详细解释的详细清单从认证审核等等等等事件日志条目。
一旦你弄清楚什么是错的,它会更容易解决。
答案在结节最终还是谎言。
该系统是建立在我们的测试网站,这是test.ourcompany.com,所以我需要添加一个新的SPN为参考。 因此,除了以下几点:
HTTP/server
HTTP/server.ourdomain.com
我还需要添加额外的一个:
HTTP/test.ourcompany.com
吉兹,什么是战斗! 至少它已经结束了! :)
感谢您的帮助家伙!
你所描述的问题不应该工作。
您的连接字符串应该是这样的:
<add name="IntegratedAuthConnectionString" connectionString=
"Data Source=DATABASEINSTANCE;Integrated Security=True"
providerName="System.Data.SqlClient"/>
你的web.config还应该指定Windows身份验证
<authentication mode="Windows"/>
创建的转储一切从Request.ServerVariables集合测试页,并确保您所看到的身份验证的用户名和域名。 沿着下面的代码的东西线
foreach (string s in Request.ServerVariables)
{
Response.Write(s + ": " + Request.ServerVariables[s] + "<br />");
}