摘要
本文讨论如何在交互式登录方案中使用身份验证机制保障 (AMA) 。
简介
在登录期间使用基于证书的登录方法对用户的凭据进行身份验证时,AMA 会将管理员指定的通用组成员身份添加到用户的访问令牌。 这使网络资源管理员能够控制对资源(如文件、文件夹和打印机)的访问。 此访问基于用户是否使用基于证书的登录方法登录,以及用于登录的证书类型。
本文内容
本文重点介绍两个问题方案:登录/注销和锁定/解锁。 在这些方案中,AMA 的行为是“设计使然”的,可以概括如下:
-
AMA 旨在保护网络资源。
-
AMA 无法识别或强制用户本地计算机的交互式登录类型 (智能卡或用户名/密码) 。 这是因为无法使用 AMA 可靠地保护在交互式用户登录后访问的资源。
症状
问题方案 1 (登录/注销)
请考虑以下情况:
-
管理员希望在用户访问某些安全敏感型资源时强制实施智能卡 (SC) 登录身份验证。 为此,管理员根据 Windows Server 2008 R2 中 AD DS 的身份验证机制保障分步指南部署 AMA,该指南适用于所有智能卡证书中使用的颁发策略对象标识符。 注意 在本文中,我们将此新的映射组称为“智能卡通用安全组”。
-
工作站上未启用“交互式登录:需要智能卡”策略。 因此,用户可以使用其他凭据(例如用户名和密码)登录。
-
本地和网络资源访问需要智能卡通用安全组。
在此方案中,预期只有使用智能卡登录的用户才能访问本地和网络资源。 但是,由于工作站允许优化/缓存登录,因此会在登录期间使用缓存验证程序为用户桌面创建 NT 访问令牌。 因此,使用以前登录的安全组和声明,而不是当前登录。
方案示例
注意 在本文中,使用“whoami/groups”检索交互式登录会话的组成员身份。 此命令从桌面的访问令牌中检索组和声明。
-
示例 1如果使用智能卡执行上一次登录,则桌面的访问令牌具有 AMA 提供的智能卡通用安全组。 出现以下结果之一:
-
用户使用智能卡登录:用户仍然可以访问本地安全敏感型资源。 用户尝试访问需要智能卡通用安全组的网络资源。 这些尝试成功。
-
用户使用用户名和密码登录:用户仍然可以访问本地安全敏感资源。 此结果不是预期结果。 用户尝试访问需要智能卡通用安全组的网络资源。 这些尝试按预期失败。
-
-
示例 2如果上一次登录是使用密码执行的,则桌面的访问令牌没有 AMA 提供的智能卡通用安全组。 出现以下结果之一:
-
用户使用用户名和密码登录:用户无法访问本地安全敏感资源。 用户尝试访问需要智能卡通用安全组的网络资源。 这些尝试失败。
-
用户使用智能卡登录:用户无法访问本地安全敏感资源。 用户尝试访问网络资源。 这些尝试成功。 客户不期望此结果。 因此,它会导致访问控制问题。
-
问题方案 2 (锁定/解锁)
请考虑以下方案:
-
管理员希望在用户访问某些安全敏感型资源时强制实施智能卡 (SC) 登录身份验证。 为此,管理员根据 Windows Server 2008 R2 中 AD DS 的身份验证机制保障部署 AMA,该指南适用于所有智能卡证书中使用的颁发策略对象标识符。
-
工作站上未启用“交互式登录:需要智能卡”策略。 因此,用户可以使用其他凭据(例如用户名和密码)登录。
-
本地和网络资源访问需要智能卡通用安全组。
在此方案中,预期只有使用智能卡登录的用户才能访问本地和网络资源。 但是,由于用户的桌面访问令牌是在登录期间创建的,因此不会更改。
方案示例
-
示例 1如果桌面访问令牌具有 AMA 提供的智能卡通用安全组,则会发生以下结果之一:
-
用户使用智能卡解锁:用户仍然可以访问本地安全敏感资源。 用户尝试访问需要智能卡通用安全组的网络资源。 这些尝试成功。
-
用户使用用户名和密码解锁:用户仍然可以访问本地安全敏感资源。 此结果不是预期结果。 用户尝试访问需要智能卡通用安全组的网络资源。 这些尝试失败。
-
-
示例 2如果桌面的访问令牌没有 AMA 提供的智能卡通用安全组,则会发生以下结果之一:
-
用户使用用户名和密码解锁:用户无法访问本地安全敏感资源。 用户尝试访问需要智能卡通用安全组的网络资源。 这些尝试失败。
-
用户使用智能卡解锁:用户无法访问本地安全敏感资源。 此结果不是预期结果。 用户尝试访问网络资源。 这些尝试按预期成功。
-
更多信息
由于“症状”部分中所述的 AMA 和安全子系统设计,因此用户会遇到以下情况:AMA 无法可靠地识别交互式登录的类型。
登录/注销
如果快速登录优化处于活动状态,则本地安全子系统 (lsass) 使用本地缓存在登录令牌中生成组成员身份。 通过执行此操作,无需与域控制器通信 (DC) 。 因此,登录时间缩短。 这是非常理想的功能。但是,这种情况会导致以下问题:SC 登录和 SC 注销后,本地缓存的 AMA 组在用户名/密码交互式登录后仍不正确地存在于用户令牌中。笔记
-
这种情况仅适用于交互式登录。
-
AMA 组以与其他组相同的方式和逻辑进行缓存。
在这种情况下,如果用户随后尝试访问网络资源,则不会使用资源端的缓存组成员身份,并且用户在资源端的登录会话将不包含 AMA 组。此问题可以通过关闭快速登录优化 (“计算机配置 > 管理模板 > 系统 > 登录 > 始终在计算机启动时等待网络”) 来解决此问题。 重要说明 此行为仅在交互式登录方案中相关。 对网络资源的访问将按预期工作,因为无需进行登录优化。 因此,不使用缓存的组成员身份。 使用最新的 AMA 组成员身份信息联系 DC 以创建新票证。
锁定/解锁
请考虑以下方案:
-
用户使用智能卡以交互方式登录,然后打开受 AMA 保护的网络资源。注意 只有访问令牌中具有 AMA 组的用户才能访问 AMA 保护的网络资源。
-
用户无需先关闭以前打开的受 AMA 保护的网络资源,即可锁定计算机。
-
用户使用以前使用智能卡) 登录的同一用户的用户名和密码解锁计算机。
在此方案中,用户仍然可以在计算机解锁后访问受 AMA 保护的资源。 此行为是设计使然。 解锁计算机时,Windows 不会重新创建具有网络资源的所有打开会话。 Windows 也不会重新检查组成员身份。 这是因为这些操作会导致不可接受的性能损失。没有适用于此方案的现用解决方案。 一种解决方案是创建凭据提供程序筛选器,在 SC 登录和锁定步骤发生后筛选掉用户名/密码提供程序。 若要详细了解凭据提供程序,请参阅以下资源:
ICredentialProviderFilter 接口 Windows Vista 凭据提供程序示例注意 无法确认是否已成功实现此方法。
有关 AMA 的详细信息
AMA 无法识别或强制实施交互式登录类型 (智能卡或用户名/密码) 。 此行为是设计使然。AMA 适用于网络资源需要智能卡的方案。 它不用于本地访问。任何通过引入新功能(例如使用动态组成员身份或将 AMA 组作为动态组处理的能力)来解决此问题的尝试都可能导致重大问题。 这就是 NT 令牌不支持动态组成员身份的原因。 如果系统允许实际剪裁组,则可能会阻止用户与其自己的桌面和应用程序交互。 因此,组成员身份在创建会话时被锁定,并在整个会话中维护。缓存登录也存在问题。 如果启用了优化登录,则 lsass 先尝试本地缓存,然后再调用网络往返。 如果用户名和密码与 lsass 在上一次登录中看到的相同, (这适用于大多数登录) ,则 lsass 会创建一个令牌,该令牌具有与用户以前相同的组成员身份。 如果关闭优化登录,则需要网络往返。 这将确保组成员身份在登录时按预期工作。在缓存登录中,lsass 为每个用户保留一个条目。 此条目包括用户以前的组成员身份。 这受 lsass 看到的最后一个密码或智能卡凭据的保护。 两者都解包相同的令牌和凭据密钥。 如果用户尝试使用过时的凭据密钥登录,他们将丢失 DPAPI 数据、受 EFS 保护的内容等。 因此,无论用于登录的机制如何,缓存登录始终都会生成最新的本地组成员身份。