繁体   English   中英

使用带有模拟的Windows身份验证的Web应用程序的IIS

[英]IIS with a Web Application using Windows Authentication with Impersonation

我没有使用它,但这是一个有趣的问题。 如果我在IIS上设置Web应用程序以使用Windows身份验证并模拟经过身份验证的用户和我的ConnectionString到SQLServer数据库使用Integrated Security=true; ,我的应用程序在尝试连接数据库时将使用由应用程序验证的用户?

如果是的话,这是一件好事吗? (该数据库具有LDAP / AD“域用户”权限。考虑一个可审计的数据库,其中每个用户都将记录您的操作。)

我相信只有在使用kerberos身份验证的情况下,EK的答案才是真实的。 你所描述的被称为“双跳”。 实质上,如果用户对“Server-A”进行身份验证,则“Server-A”上运行的代码无法转向并使用这些凭据访问其他网络资源,例如“Server-B”上的SQL Server。 这是详细的,但这是一个直接链接: 博客文章

如果您在kerberos架构网络上运行,则可以将服务器标记为受信任的委派服务器。 但对大多数人来说,情况并非如此。 如果您想了解有关如何执行此操作的详细信息,请参阅此链接

是的,与SQL Server的连接将在这些用户之下。

一般来说,这并不好。 但这取决于具体情况。 以下是需要考虑的主要因素:

  1. 每个用户都需要自己的连接。 即使使用连接池,也无法重用来自不同用户的连接。 创建连接是相对昂贵的操作。 每个连接都需要一点内存
  2. 每个用户都需要登录(或者至少是用户所属的Windows组需要登录)。 这可以是创建登录等的额外维护。另一方面,可以以不同的方式保护每个这样的登录。 重要的是,如果使用单个帐户连接到SQL Server,也可以实现为不同用户保护对象

是的,它将使用经过身份验证的用户并模拟“经过身份验证的用户”访问数据库的权限。 有关更多信息,请查看此链接如何:在ASP.NET 2.0中使用模拟和委派

另一种方法是使用服务帐户,该帐户具有对数据库的完全访问权限的非交互式Windows域帐户。

这允许连接池消除复杂的权限模型,以允许所选用户对一组数据执行删除。

但这确实意味着必须将审计逻辑添加到应用程序的数据层以及访问数据库的存储过程,以确保将调用用户记录为数据库访问的一部分,否则服务帐户将是唯一的帐户。审计表。

暂无
暂无

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

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