我们组织的 Web 应用程序主要由拥有 Active Directory 帐户的用户在内部使用。目前,我们的每个应用程序都在其自己的 AD 帐户下运行。我们授予对数据库端应用程序 AD 帐户的访问权限以进行数据访问。
出于审计原因,我们的 DBA 想要摆脱这种情况。他希望来自应用程序的每个数据请求都带有登录用户的 AD 凭据,而不是应用程序的 AD 凭据。我知道这是通过模仿来完成的。这是推荐的做法吗?有什么好处和坏处?有没有更好的方法来做到这一点?
谢谢。
我们组织的 Web 应用程序主要由拥有 Active Directory 帐户的用户在内部使用。目前,我们的每个应用程序都在其自己的 AD 帐户下运行。我们授予对数据库端应用程序 AD 帐户的访问权限以进行数据访问。
出于审计原因,我们的 DBA 想要摆脱这种情况。他希望来自应用程序的每个数据请求都带有登录用户的 AD 凭据,而不是应用程序的 AD 凭据。我知道这是通过模仿来完成的。这是推荐的做法吗?有什么好处和坏处?有没有更好的方法来做到这一点?
谢谢。
您将以下内容添加到您的 web.config 中:
<configuration>
<system.web>
<identity impersonate="true"/>
</system.web>
</configuration>
Web 服务器将“模拟经过身份验证的用户”,您的 DBA 将看到用户的网络 ID。您还可以使用配置文件来模拟特定用户:
<identity impersonate="true" userName="user" password="pwd" />
但这不是您的 DBA 在这种情况下要寻找的。
是的,“模拟”可能听起来很奇怪,但这是在您的内部网络上验证 Web 应用程序用户的完美标准方式。您必须确保您的每个用户都具有必要的文件夹权限等,才能完成他们需要做的所有事情,因为 Web 服务器现在以他们的名义而不是以一般应用程序用户的名义做这些事情。当用户尝试做他们过去可以做的事情时,您会很快听到这些权限问题,并被拒绝访问。但是,一旦他们每个人都获得了必要的权限,那就没问题了。