共用方式為

保护 Active Directory 中基于用户的服务帐户

本地用户帐户是帮助保护 Windows 上运行的服务的传统方法。 现在,如果服务不支持组托管服务帐户(gMSA)和独立托管服务帐户(sMSA),请使用这些帐户。 有关要使用的帐户类型的信息,请参阅 保护本地服务帐户

可以调查将服务移动到 Azure 服务帐户,例如托管标识或服务主体。

了解详细信息:

可以创建本地用户帐户,为用于访问本地和网络资源的帐户提供的服务和权限提供安全性。 本地用户帐户需要手动密码管理,例如其他 Active Directory (AD) 用户帐户。 服务管理员和域管理员需要维护强密码管理过程,以帮助保护帐户安全。

创建用户帐户作为服务帐户时,请将其用于一个服务。 使用一个命名约定来阐明它是一个服务帐户,以及它与之相关的服务。

优点和挑战

本地用户帐户是一种通用的帐户类型。 用作服务帐户的用户帐户由管理用户帐户的策略控制。 如果无法使用 MSA,请使用它们。 评估计算机帐户是否是更好的选项。

下表汇总了本地用户帐户的挑战:

挑战 缓解措施
密码管理是手动的,导致安全性和服务故障时间更弱 - 确保常规密码复杂性和更改受维护强密码
的过程控制 - 使用服务密码协调密码更改,这有助于减少服务停机时间
识别服务帐户的本地用户帐户可能很困难 - 记录环境中
部署的服务帐户 - 跟踪帐户名称和可以访问
的资源 - 考虑将前缀 svc 添加到用作服务帐户的用户帐户

查找用作服务帐户的本地用户帐户

本地用户帐户与其他 AD 用户帐户类似。 很难找到这些帐户,因为没有用户帐户属性将其标识为服务帐户。 建议为用作服务帐户的用户帐户创建命名约定。 例如,将前缀 svc 添加到服务名称:svc-HRDataConnector。

使用以下一些条件查找服务帐户。 但是,此方法可能找不到帐户:

  • 受信任的委派
  • 使用服务主体名称
  • 使用永不过期的密码

若要查找用于服务的本地用户帐户,请运行以下 PowerShell 命令:

若要查找受信任的委派帐户,请执行:


Get-ADObject -Filter {(msDS-AllowedToDelegateTo -like '*') -or (UserAccountControl -band 0x0080000) -or (UserAccountControl -band 0x1000000)} -prop samAccountName,msDS-AllowedToDelegateTo,servicePrincipalName,userAccountControl | select DistinguishedName,ObjectClass,samAccountName,servicePrincipalName, @{name='DelegationStatus';expression={if($_.UserAccountControl -band 0x80000){'AllServices'}else{'SpecificServices'}}}, @{name='AllowedProtocols';expression={if($_.UserAccountControl -band 0x1000000){'Any'}else{'Kerberos'}}}, @{name='DestinationServices';expression={$_.'msDS-AllowedToDelegateTo'}}

若要查找具有服务主体名称的帐户,请执行以下作:


Get-ADUser -Filter * -Properties servicePrincipalName | where {$_.servicePrincipalName -ne $null}

若要查找密码永不过期的帐户,


Get-ADUser -Filter * -Properties PasswordNeverExpires | where {$_.PasswordNeverExpires -eq $true}

可以审核对敏感资源的访问,并将审核日志存档到安全信息和事件管理(SIEM)系统。 通过使用 Azure Log Analytics 或 Microsoft Sentinel,可以搜索和分析服务帐户。

评估本地用户帐户安全性

使用以下条件来评估用作服务帐户的本地用户帐户的安全性:

  • 密码管理策略
  • 特权组中成员身份的帐户
  • 重要资源的读取/写入权限

缓解潜在安全问题

有关潜在的本地用户帐户安全问题及其缓解措施,请参阅下表:

安全问题 缓解措施
密码管理 - 确保密码复杂性和密码更改受常规更新和强密码要求
的约束 - 使用密码更新协调密码更改,以最大程度地减少服务停机时间
该帐户是特权组的成员 - 查看组成员身份
- 从特权组
中删除帐户 - 授予帐户运行其服务的权限(咨询服务供应商)
- 例如,在本地拒绝登录或交互式登录
该帐户对敏感资源具有读/写权限 - 审核对敏感资源的
访问 - 将审核日志存档到 SIEM:Azure Log Analytics 或 Microsoft Sentinel
- 如果检测到不需要的访问级别,请修正资源权限

保护帐户类型

Microsoft不建议使用本地用户帐户作为服务帐户。 对于使用此帐户类型的服务,请评估是否可以将其配置为使用 gMSA 或 sMSA。 此外,评估是否可以将服务移动到 Azure,以便使用更安全的帐户类型。

后续步骤

若要详细了解如何保护服务帐户,请执行以下作: