微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kerberos双跳在ASP.NET 4.0和SQL2008R2中

我有一个ASP.NET 4.0应用程序,我需要将身份validation转发到数据库。 为了这个请求的帮助,让我们调用Web服务器“app1”和数据库服务器“sql1”。

sql2008R2数据库服务作为自定义域帐户“sqlServer”下的命名实例“sql2008R2”运行。 该服务器正在运行Windows Server 2008 R2企业版。 我为此创build了一个SPN …

setspn -a MSsqlSvc/sql1.mydomain.local:sql2008R2 sqlServer

ASP.NET应用程序在集成pipe道模式下使用自定义域帐户“WebApplicationUser”在应用程序池下运行。 它目前运行在运行Windows 7 Enterprise的笔记本电脑上,但最终将托pipe在Windows Server 2008 R2标准版上。 我已经为应用程序创build了2个SPN(在我正在运行的Windows 7机器上)…

setspn -a http/app1 WebApplicationUser setspn -a http/app1.mydomain.local WebApplicationUser

在Active Directory用户和计算机中,我select了“WebApplicationUser”帐户,并使用任何协议(我也尝试使用Kerbero)启用了“MSsqlSvc / sql1.mydomain.local:sql2008R2”的约束委派。

ASP.NET:针对VMWare上的域进行模拟

将按键从Web应用程序发送到Windows应用程序

使用Environment.Osversion确定操作系统

本地系统与系统与本地系统Windows系统帐户

ASP.NET本地开发安装程序

该应用程序在IIS 7.5中设置,并且设置为禁用匿名,基本,摘要和表单,同时启用“ASP.NET模拟”和“Windows”。 Windows身份validation已closures“扩展保护”并启用“内核模式身份validation”。 提供商是按照“协商”和“NTLM”的顺序。

ASP.NET应用程序使用EF,并将连接stringconfiguration为使用集成安全性。

<connectionStrings> <add name="MyContext" connectionString="Metadata=res://*/Data.MyModel.csdl|res://*/Data.MyModel.ssdl|res://*/Data.MyModel.msl;provider=System.Data.sqlClient;provider connection string=&quot;Data Source=sql1.mydomain.localsql2008r2;Initial Catalog=MyDatabase;Persist Security Info=false;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> </connectionStrings>

我的networkingconfiguration既指定Windows身份validation和模拟,因为我使用asynchronous页面,我也已启用inpersonation策略stream动…

<runtime> <alwaysFlowImpersonationPolicy enabled="true" /> </runtime> <system.web> <authentication mode="Windows" /> <identity impersonate="true" /> </system.web>

如果我本地login(在“web1”上)并浏览到应用程序(使用IE),这一切工作 – 但这不涉及我想解决的双跳。

如果我login到另一台机器,然后使用IE浏览到应用程序,或者我使用FireFox从本地机器浏览,这是行不通的 – 注意:FireFox会提示我inputlogin信息。 与数据库的连接失败,“用户login失败”NT AUTHORITY ANONYMOUS logoN“

不像大量的文章(这里可能是问题的一部分),我没有使用任何自定义代码来模拟用户。 我的理解是,模拟将通过上面的web.config设置全面应用于应用程序。 我所做的只是打开连接,然后在完成时closures它。

我显然错过了一两步,但是看了所有我能find的文档(还有很多),但我仍然无法find那一步。 我能find的99%的文档实际上与IIS6和Windows 2003相关,但是这些原则应该保持不变。

有没有人能够在Windows 7和/或Windows Server 2008上运行这样的configuration?

AspNetwindowsTokenRoleProvider在ASP.NET中的Windows身份validation不能正常工作

Windows服务与简单的程序

降级Web API以使用MONO在Linux上运行

服务用完了TCP连接

我是否需要下载Microsoft Internet信息服务?

双跳问题清单{IIS和sql server}

http://blogs.technet.com/b/taraj/archive/2009/01/29/checklist-for-double-hop-issues-iis-and-sql-server.aspx

http://www.phishthis.com/2009/10/24/how-to-configure-ad-sql-and-iis-for-two-hop-kerberos-authentication-2/

http://support.microsoft.com/kb/810572

IIS到sql server Kerberos身份验证问题

在为sql server配置SPN时,我们发现需要包含sql server侦听的端口(1433)。

您应该下载并使用Brian Booth的DelegConfig v2工具来帮助您设置正确的配置设置。 http://blogs.iis.net/brian-murphy-booth/archive/2009/04/22/delegconfig-v2-beta.aspx

在整个过程中,它将基本上保持你的手。 我们发现这个工具是无价的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐