分享
 
 
 

如何做:创建自定义帐户来运行 ASP.NET

王朝asp·作者佚名  2006-01-30
窄屏简体版  字體: |||超大  

身份验证、授权和安全通信

有关构建安全的 ASP.NET 应用程序 的起点和完整概述,请参见登陆页面

总结

通常,使用内置 ASPNET 帐户来运行 ASP.NET Web 应用程序。但是,偶尔也可以使用自定义帐户。本“如何做”介绍如何创建具有最小权限的本地帐户来运行 ASP.NET Web 应用程序。

如何做:创建自定义帐户来运行 ASP.NET

本“如何做”介绍如何创建具有最小权限的本地帐户来运行 ASP.NET 辅助进程 (aspnet_wp.exe) 或用于虚拟目录中的模拟标识。虽然本“如何做”中的过程用于创建本地帐户,但是,其中述及的概念同样适用于域帐户。

ASP.NET 辅助进程标识

安装时为运行 ASP.NET 而创建的默认帐户是具有最小权限的本地帐户,并且是在 machine.config 中指定的(如下所示):

<processModel enable="true" userName="machine" password="AutoGenerate" />

该帐户在“本地用户和组”中被标识为 ASPNET,并且在本地系统机构 (LSA) 中使用增强密码保护。

当需要使用 ASP.NET 进程标识来访问网络资源(如数据库)时,您可以执行下列操作之一:

● 使用域帐户。

● 使用“镜像的”本地帐户(即,在两台计算机上具有相同用户名和密码的帐户)。在以下情况下需要使用这种方法:计算机位于单独的域中,并且域之间没有建立信任关系;或者计算机被防火墙隔开,并且您无法打开进行 NTLM 或 Kerberos 身份验证所需的端口。

最简单的方法是在 Web 服务器上将 ASPNET 帐户的密码更改为已知值,然后在目标计算机上创建名为 ASPNET 且具有相同密码的帐户。在 Web 服务器上,必须先在“本地用户和组”中更改 ASPNET 帐户密码,然后在 machine.config 中将“AutoGenerate”替换为新密码。

<processModel enable="true" userName="machine"

password="YourStrongPassword" />

可以使用本“如何做”中介绍的步骤来创建具有最小权限的本地帐户。

模拟固定标识

可通过在 web.config 中使用以下设置给特定虚拟目录设置固定的标识。

<identity impersonate="true" userName="YourAccount"

password="YourStrongPassword" />

这种方法通常用于以下情况:同一个 Web 服务器上有多个 Web 站点并且需要以不同的标识来运行;例如,在应用程序托管方案中。

本“如何做”介绍如何创建具有最小权限的本地帐户。如果您主要关心管理问题,则可以使用具有最小权限的限制域帐户和增强密码。

备注

在考虑用于运行 ASP.NET 的帐户时,请记住以下事项:

● 默认情况下,ASP.NET 不进行模拟。因此,Web 应用程序进行的任何资源访问均使用 ASP.NET 进程标识。在这种情况下,Windows 资源必须拥有一个访问控制列表 (ACL),它可授予对 ASP.NET 进程帐户的访问权限。

● 如果启用模拟,则应用程序使用原始调用者的安全上下文来访问资源;如果已将 IIS 配置用于匿名身份验证,则应用程序也可以使用匿名 Internet 用户帐户(默认为 IUSR_MACHINE)来访问资源。在这种情况下,资源必须具有基于原始调用者标识(或 IUSR_MACHINE)的 ACL。

● 在创建自定义帐户时始终坚持分配最小权限的原则,即只分配一组最低限度的权限。

● 避免使用 SYSTEM 帐户运行 ASP.NET。

● 避免给帐户授予“作为操作系统的一部分”权限。

总结

“如何做”包括如下过程:

1. 创建一个新的本地帐户

2. 分配最少的权限

3. 分配 NTFS 权限

4. 将 ASP.NET 配置为使用新帐户运行

1. 创建一个新的本地帐户

此过程创建一个新的本地帐户。默认情况下,将它添加到本地 Users 组中。

u 创建一个新的本地帐户

1. 创建一个新的本地帐户(例如,“CustomASPNET”)。

确保将增强密码用于该帐户。增强密码应包含至少 7 个字符并混合使用大写字母、小写字母、数字和其他字符,如 *、? 或 $ 等。

2. 清除“用户下次登录时须更改密码”选项。

3. 选择“密码永不过期”选项。

2. 分配最少的权限

此过程分配运行 ASP.NET 所需的一组最低限度的权限。

u 分配最少的权限

1. 从“管理工具”程序组中,启动“本地安全策略”工具。

2. 展开“本地策略”,然后选择“用户权利指派”。

在右窗格中将显示一个权限列表。

3. 给新帐户分配以下权限:

● 从网络访问此计算机

● 拒绝本地登录

● 以批处理作业登录

● 以服务登录

注意:要给某个帐户分配权限,请双击该权限,然后单击“添加”以选择所需的帐户。

4. 关闭该工具。

3. 分配 NTFS 权限

此过程给自定义 ASP.NET 帐户授予在本地文件系统中所需的 NTFS 权限。

注意:本过程中的步骤适用于 Web 服务器上的文件系统,但不适用于远程计算机(可以在其中复制帐户以便用于网络身份验证)上的文件系统。

u 分配 NTFS 权限

1. 启动 Windows 资源管理器,然后给表 1 中指定的文件夹分配相应权限。

表 1 中列出的固定模拟帐户是指可以选择在 web.config 中使用 <identity> 元素配置的帐户(如下所示)。

<identity impersonate="true" userName="YourImpersonatedIdentity"

password="YourStrongPassword" />

表 1:所需的 NTFS 权限

文件夹

所需的权限

帐户

注释

C:\WINNT\Microsoft.NET Framework\<version> Temporary ASP.NET Files

完全控制

进程帐户和固定模拟帐户

这是 ASP.NET 动态编译位置。可在单独的目录中给此文件夹中的每个应用程序生成应用程序代码。

可以使用 <compilation> 元素的临时目录属性来更改此默认位置。

C:\WINNT\temp

读取/写入/删除

进程

Web 服务用于生成串行化代理的位置。

注意:“删除”权限是使用 Windows 资源管理器“文件夹属性”对话框的“安全性”页上的“高级”按钮设置的。

Application 文件夹

读取

进程

Web 应用程序文件的位置(即应用程序的虚拟根目录:例如,c:\inetpub\wwwroot\webapp1)。默认情况下,用户组拥有适当的访问权。

%installroot% 层次结构

(C:\WINNT\Microsoft.Net\Framework\v1.0.3705)

读取

进程帐户和固定模拟帐户

ASP.NET 必须能访问 .NET 框架程序集。

默认情况下,用户组拥有适当的访问权。

C:\WINNT\assembly

读取

进程帐户和固定模拟帐户

这是全局程序集缓存。不能直接使用 Windows 资源管理器来编辑此文件夹的 ACL。而应使用命令窗口并运行以下命令:

cacls %windir%\assembly /e /t /p domain\useraccount:R

或者,在使用 Windows 资源管理器之前,使用以下命令撤消注册 shfusion.dll:

regsvr32 –u shfusion.dll

在使用 Windows 资源管理器设置权限后,使用以下命令重新注册 shfusion.dll:

regsvr32 shfusion.dll

Web 站点根目录:

C:\inetpub wwwroot 或

默认 Web 站点指向的路径

读取

进程

ASP.NET 读取配置文件并监视此文件夹中的文件更改情况。

C:\WINNT\system32

读取

进程

用于框架加载的系统 DLL。

上下文的父目录

列出文件夹/读取

进程

用于文件更改通知和 C# 编译器。

4. 将 ASP.NET 配置为使用新帐户运行

此过程编辑 machine.config 以便将 ASP.NET 配置为使用新帐户运行。

u 将 ASP.NET 配置为使用新帐户运行

1. 使用 Visual Studio.NET 或记事本打开 machine.config。

Machine.config 位于以下文件夹中:

C:\WINNT\Microsoft.NET\Framework\v1.0.3705\CONFIG

2. 找到 <processModel> 元素,并将用户名和密码属性设置为与新自定义帐户匹配。

Default: <!-- userName="machine" password="AutoGenerate" -->

Becomes: <!-- userName="CustomASPNET" password="YourStrongPassword" -->

3. 保存对 machine.config 的更改。

注意:对于当前的 .NET 框架版本,无法避免以明文方式存储密码。虽然不建议存储明文凭据,但仍认为 machine.config 文件更安全一些,因为它位于 Web 空间之外。应该通过使用正确配置的 ACL 来防止对 machine.config 进行不必要的访问。

在 Windows .NET Server 中,将对凭据进行加密以提供更大的保护。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有