IIS 提供了多种身份验证方式,最常用和最基本的是 “基本身份验证” 和 “Windows 身份验证”,我会重点讲解这两种,并提及其他方式。

(图片来源网络,侵删)
核心概念:身份验证 vs. 授权
在开始之前,请理解两个关键概念:
- 身份验证:回答 “你是谁?” 这个问题,这是用户向服务器证明自己身份的过程,用户输入用户名和密码。
- 授权:回答 “你被允许做什么?” 这个问题,在服务器确认用户身份后,会根据用户身份决定其是否有权访问某个资源(例如某个文件夹或页面)。
我们的操作流程是:先启用身份验证方式,然后配置用户账户,最后授权这些用户访问特定网站或目录。
基本身份验证
这是最常见的方法,适用于任何类型的用户账户(包括本地计算机账户和域账户)。
特点:

(图片来源网络,侵删)
- 兼容性好:几乎所有的浏览器都支持。
- 安全性较低:用户名和密码在传输时是经过 Base64 编码的,不是加密的,如果网络不安全(如 HTTP 协议),很容易被窃取。强烈建议在使用基本身份验证时,网站必须配置为使用 HTTPS (SSL/TLS 加密)。
操作步骤:
步骤 1:安装基本身份验证功能
如果你的 IIS 管理器中没有这个选项,需要先安装它。
- 打开 服务器管理器。
- 点击 “管理” -> “添加角色和功能”。
- 进入 “功能” 页面,向下滚动,找到并勾选 “IIS 管理器工具”。
- 在展开的列表中,确保勾选了 “基本身份验证”。
- 点击 “安装”。
步骤 2:为网站或虚拟目录启用基本身份验证
- 打开 IIS 管理器。
- 在左侧的“连接”窗格中,选择你想要保护的网站、应用程序或虚拟目录。
- 在中间的“功能视图”中,双击 “身份验证” 图标。
- 在右侧,你会看到多种身份验证方式。禁用你不需要的(如果只允许基本身份验证,请禁用匿名身份验证、Windows 身份验证等)。
- 启用 “基本身份验证”。
步骤 3:创建用户账户
你需要一个有效的用户账户来登录,你可以使用本地计算机的用户账户,也可以使用域账户。
使用本地计算机账户(推荐用于独立服务器):
- 打开 “服务器管理器” -> “工具” -> “计算机管理”。
- 在左侧,展开 “本地用户和组” -> “用户”。
- 在右侧窗格中,右键单击,选择 “新用户”。
- 填写用户名、密码等信息,取消勾选“用户下次登录时须更改密码”,勾选“密码永不过期”(为了方便管理),然后点击 “创建”。
- 记下这个用户名和密码。
步骤 4:授权用户访问
你需要告诉 IIS,哪些用户被允许访问这个网站/目录。
- 在 IIS 管理器中,再次选中你的网站、应用程序或虚拟目录。
- 在“功能视图”中,双击 “授权规则”。
- 在右侧,点击 “添加允许规则...”。
- 操作:选择 “特定用户”。
- 用户:点击右侧的“...”按钮,选择你刚刚创建的用户,或者直接输入
计算机名\用户名(WEB-SERVER01\myadmin)。 - 权限:勾选你希望授予的权限,通常是 “读取” 和 “执行”。
- 点击 “确定”。
完成! 当有人访问你的网站时,浏览器会弹出一个登录窗口,要求输入用户名和密码。
Windows 身份验证
这种方法使用 Windows 内置的用户账户进行验证,安全性更高,因为它与 Windows 的安全系统集成。
特点:
- 安全性高:在 Kerberos 或 NTLM 协议下工作,密码不会在网络中明文传输。
- 管理方便:可以直接使用域用户、本地用户或用户组。
- 兼容性:某些旧版浏览器或非 Windows 客户端可能支持不佳。
操作步骤:
步骤 1:安装 Windows 身份验证功能
与基本身份验证类似,IIS 管理器中没有,需要安装。
- 打开 服务器管理器。
- 点击 “管理” -> “添加角色和功能”。
- 进入 “功能” 页面,向下滚动,找到并勾选 “IIS 管理器工具”。
- 在展开的列表中,确保勾选了 “Windows 身份验证”。
- 点击 “安装”。
步骤 2:启用 Windows 身份验证并禁用其他方式
- 在 IIS 管理器中,选择你的网站、应用程序或虚拟目录。
- 双击 “身份验证”。
- 禁用 “匿名身份验证”(这是关键,否则用户可以直接访问,无需登录)。
- 启用 “Windows 身份验证”。
- (可选)你可以启用“摘要式身份验证”作为 NTLM 的后备方案,但通常不需要。
步骤 3:授权用户访问
这一步与基本身份验证完全相同。
- 在 IIS 管理器中,选中你的网站/目录。
- 双击 “授权规则”。
- 点击 “添加允许规则...”。
- 操作:选择 “特定用户” 或 “用户或组”。
- 用户:输入
计算机名\用户名或域名\用户名,或者点击“...”按钮进行选择,你也可以直接输入Administrators或Users等内置组名。 - 权限:勾选 “读取” 和 “执行”。
- 点击 “确定”。
完成! 访问网站时,如果你的电脑在同一个域或工作组中,浏览器可能会自动尝试使用你的 Windows 凭据登录,如果失败或不被允许,则会弹出一个登录窗口。
其他身份验证方式简介
- 匿名身份验证:这是默认开启的,它允许任何人访问网站,无需提供任何凭据,当你需要保护网站时,必须禁用它。
- 摘要式身份验证:比基本身份验证安全一些,因为它对密码进行了哈希处理,但要求用户账户必须在 Active Directory 中,并且客户端浏览器必须支持。
- .NET Passport 身份验证 (已弃用):旧的身份验证方式,现在已不再使用。
- OpenID Connect / OAuth 2.0:这是现代 Web 应用程序的标准,用于第三方登录(如使用 Microsoft Account, Google, Facebook 账号登录你的网站),这通常需要开发者在代码中实现,而不是在 IIS 管理器中简单配置。
总结与最佳实践
| 特性 | 基本身份验证 | Windows 身份验证 |
|---|---|---|
| 安全性 | 低 (密码明文传输) | 高 (使用 Kerberos/NTLM) |
| 用户账户 | 本地用户、域用户 | 本地用户、域用户、域组 |
| 兼容性 | 非常好 (所有浏览器) | 一般 (主要在 Windows 环境下) |
| 适用场景 | 公开的互联网网站,但必须配合 HTTPS | 企业内部网站、Intranet 应用 |
最佳实践建议:
- 始终使用 HTTPS:无论你选择哪种身份验证方式,只要涉及用户名和密码,就必须使用 SSL/TLS 证书来加密整个通信过程。
- 按需启用:只启用你需要的身份验证方式,并禁用其他所有方式,特别是,保护目录时,请禁用该目录下的“匿名身份验证”。
- 最小权限原则:只授予用户完成其任务所必需的最小权限,如果只是用来管理后台,就不要给“读取”整个网站的权限。
- 使用用户组:对于 Windows 身份验证,创建一个专门的用户组(如
WebAdmins),将需要访问的用户加入该组,然后在 IIS 授权规则中允许这个组,而不是单个用户,这样更易于管理。
