安全主体

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016

此参考文章介绍 Windows 帐户和安全组的安全主体,以及与安全主体相关的安全技术。

什么是安全主体?

安全主体是可以由操作系统进行身份验证的任何实体,例如用户帐户、计算机帐户、在用户或计算机帐户的安全上下文中运行的线程或进程,或者这些帐户的安全组。 长期以来,安全主体一直是控制对 Windows 计算机上安全资源的访问的基础。 每个安全主体在操作系统中由唯一的安全标识符 (SID) 表示。

注意

此内容仅适用于本文开头的“适用于”列表中的 Windows 版本。

安全主体的工作原理

在 Active Directory 域中创建的安全主体是 Active Directory 对象,可用于管理对域资源的访问。 每个安全主体都被分配了一个唯一的标识符,该标识符在其整个生命周期内都会保留。 本地用户帐户和安全组是在本地计算机上创建的,可用于管理对该计算机上资源的访问。 本地用户帐户和安全组由本地计算机上的安全帐户管理器 (SAM) 管理。

授权和访问控制组件

下图演示了 Windows 授权和访问控制过程。 在图中,使用者(用户)尝试访问对象(如共享文件夹)启动的进程。 将用户访问令牌中的信息与对象安全描述符中的访问控制条目 (ACE) 进行比较,并做出访问决定。 安全主体的 SID 用于用户的访问令牌和对象安全描述符中的 ACE.

授权和访问控制过程

Diagram of the Windows authorization and access control process.

安全主体与以下组件和技术密切相关:

安全标识符

安全标识符 (SID) 提供 Windows 安全模型的基本构建基块。 SID 与 Windows Server 操作系统的安全基础结构中的授权和访问控制技术的特定组件配合使用。 这有助于保护对网络资源的访问,并提供更安全的计算环境。

SID 是可变长度的值,用于唯一标识安全主体,该安全主体表示可由系统进行身份验证的任何实体。 这些实体包括用户帐户、计算机帐户或在用户或计算机帐户的安全上下文中运行的线程或进程。 创建每个安全主体时,系统会自动为其分配一个 SID。 SID 存储在安全数据库中。 如果某个 SID 被用作用户或组的唯一标识符,则该 SID 绝不会再用于标识其他用户或组。

每次用户登录时,系统都会为该用户创建访问令牌。 访问令牌包含用户的 SID、用户权限以及用户所属的组的 SID。 此令牌为用户在该计算机上执行的任何操作提供安全上下文。

除了分配给特定用户和组的唯一创建的域专用 SID 外,还有用来标识通用群体和通用用户的公认 SID。 例如,“Everyone and World”SID 标识包含所有用户的组。 公认 SID 的值在所有操作系统中保持不变。

访问令牌

访问令牌是一个受保护的对象,其中包含有关与用户帐户关联的标识和用户权限的信息。

当用户以交互方式登录或尝试与运行 Windows 的计算机建立网络连接时,登录过程会对用户的凭据进行身份验证。 如果身份验证成功,则进程将返回用户的 SID 和用户安全组的 SID 列表。 计算机上的本地安全机构 (LSA) 使用此信息创建访问令牌(在本例中为主访问令牌)。 这包括由登录过程返回的 SID,以及由本地安全策略分配给用户和用户安全组的用户权限列表。

LSA 创建主访问令牌后,访问令牌的副本将附加到代表用户执行的每个线程和进程。 每当线程或进程与安全对象交互或尝试执行需要用户权限的系统任务时,操作系统都会检查与该线程关联的访问令牌,以确定授权级别。

有两种访问令牌,即主令牌和模拟令牌。 每个进程都有一个主令牌,用于描述与进程关联的用户帐户的安全上下文。 主访问令牌通常分配给进程,以表示该进程的默认安全信息。 另一方面,模拟令牌用于客户端和服务器方案。 模拟令牌使线程能够在与拥有线程的进程的安全上下文不同的安全上下文中运行。

安全描述符和访问控制列表

安全描述符是与每个安全对象关联的数据结构。 Active Directory 中的所有对象、本地计算机或网络中的所有安全对象都有用于控制对象访问的安全描述符。 安全描述符包括有关对象拥有者、对象访问者和访问方式以及审核的访问类型的信息。 安全描述符包含对象的访问控制列表 (ACL),该列表包括应用于该对象的所有安全权限。 对象的安全描述符可以包含两类 ACL:

  • 随机访问控制列表 (DACL),标识允许或拒绝访问的用户和组。

  • 系统访问控制列表 (SACL),用于控制如何审核访问。

你可以使用此访问控制模型来分别保护对象和属性,如文件和文件夹、Active Directory 对象、注册表项、打印机、设备、端口、服务、进程和线程。 由于这种单独控制,你可以调整对象的安全性以满足组织的需要,委派对对象或属性的权限,以及创建需要定义唯一安全保护的自定义对象或属性。

权限

权限使每个安全对象(如文件、Active Directory 对象或注册表项)的所有者能够控制谁可以对对象或对象属性执行一个或一组操作。 权限在安全体系结构中表示为 ACE。 由于对象的访问由对象的所有者决定,因此 Windows 中使用的访问控制类型称为随机访问控制。

权限与用户权限的不同之处在于,权限附加到对象,而用户权限应用于用户帐户。 管理员可以将用户权限分配给组或用户。 这些权利授权用户执行特定操作,如交互登录到系统或备份文件和目录。

在计算机上,用户权限使管理员能够控制谁有权执行影响整个计算机而不是特定对象的操作。 管理员将用户权限分配给单个用户或组,作为计算机安全设置的一部分。 尽管可以通过组策略集中管理用户权限,但这些权限是在本地应用的。 用户可以(通常也确实如此)在不同的计算机上拥有不同的用户权限。

有关哪些用户权限可用以及如何实现这些权限的信息,请参阅用户权限分配

身份验证中的安全上下文

用户帐户使用户能够使用可由计算机、网络或域进行身份验证的标识登录到计算机、网络和域。

在 Windows 中,任何可以启动操作的用户、服务、组或计算机都是安全主体。 安全主体具有帐户,这些帐户可以是计算机的本地帐户或基于域的帐户。 例如,已加入域的 Windows 客户端计算机可以通过与域控制器通信来参与网络域,即使没有用户登录也是如此。

若要启动通信,计算机必须在域中具有活动帐户。 在接受来自计算机的通信之前,域控制器上的本地安全机构对计算机的标识进行身份验证,然后定义计算机的安全上下文,就像对用户的安全主体一样。

此安全上下文定义特定计算机上的用户或服务,或者网络上的用户、服务、组或计算机的标识和功能。 例如,安全上下文定义了可以访问的资源(如文件共享或打印机),以及用户、服务或计算机可以对该资源执行的操作(如读取、写入或修改)。

用户或计算机的安全上下文可能因计算机而异,例如当用户向服务器或用户主工作站以外的工作站进行身份验证时。 安全上下文它也可能因会话而异,例如管理员修改用户的权限时。 此外,当用户或计算机以独立方式、在混合网络域中或作为 Active Directory 域的一部分运行时,安全上下文会有所不同。

帐户和安全组

在 Active Directory 域中创建的帐户和安全组存储在 Active Directory 数据库中,并使用 Active Directory 工具进行管理。 这些安全主体是目录对象,可用于管理对域资源的访问。

本地用户帐户和安全组是在本地计算机上创建的,可用于管理对该计算机上资源的访问。 本地用户帐户和安全组存储在本地计算机中,并由安全帐户管理器 (SAM) 管理。

用户帐户

用户帐户唯一标识使用计算机系统的人员。 该帐户向系统发出信号,以强制实施相应的授权,以允许或拒绝该用户访问资源。 可以在 Active Directory 和本地计算机上创建用户帐户,管理员可以使用用户帐户来执行以下操作:

  • 表示、识别和验证用户的身份。 用户帐户使用户能够使用可由计算机、网络或域进行身份验证的唯一标识符登录到计算机、网络和域。

  • 授权(授予或拒绝)对资源的访问权限。 用户通过身份验证后,将根据分配给该用户的资源访问权限来授权该用户访问资源。

  • 审核对用户帐户执行的操作。

Windows 和 Windows Server 操作系统具有内置用户帐户,你也可以创建用户帐户来满足组织的要求。

安全组

安全组是用户帐户、计算机帐户和其他帐户组的集合,可以从安全角度作为单个单元进行管理。 在 Windows 操作系统中,有多个内置安全组预先配置了用于执行特定任务的适当权限。 此外,对于应用于组织中多个用户的安全要求的每种唯一组合,你可以(并且通常也一定会)创建一个安全组。

组可以是基于 Active Directory 的组,也可以是特定计算机的本地组:

  • Active Directory 安全组用于管理对域资源的权限。

  • 本地组存在于本地计算机(所有基于 Windows 的计算机)(域控制器除外)上的 SAM 数据库中。 使用本地组仅管理本地计算机上资源的权限。

安全组管理访问控制可用于:

  • 简化管理。 你可以一次向多个帐户分配一组通用权限和/或一组通用权限,而不是单独将它们分配给每个帐户。 此外,当用户转移作业或离开组织时,权限不会绑定到其用户帐户,因此可以更轻松地重新分配或删除权限。

  • 实现基于角色的访问控制模型。 可以使用此模型通过具有不同范围的组来授予权限,以实现适当的目的。 Windows 中可用的范围包括本地、全局、域本地和通用。

  • 最大程度地减小 ACL 的大小并加快安全检查速度。 安全组有自己的 SID;因此,组 SID 可用于指定资源的权限。 在拥有数千名以上用户的环境中,如果使用各个用户帐户的 SID 来指定对资源的访问权限,则该资源的 ACL 可能会变得非常大,无法管理,并且系统检查资源权限所需的时间可能会变得无法接受。

有关 Active Directory 中定义的域安全组的说明和设置信息,请参阅 Active Directory 安全组

有关特殊标识的说明和设置信息,请参阅特殊标识组

另请参阅