以 Active Directory 用户或组身份运行服务

在 Windows Server 独立群集上,可以使用 RunAs 策略以 Active Directory 用户或组的身份来运行服务。 默认情况下,Service Fabric 应用程序在运行 Fabric.exe 进程的帐户之下运行。 即使在共享托管环境中以不同帐户身份运行应用程序,也可确保运行的应用程序彼此更安全。 请注意这会在域中使用本地 Active Directory,而不是 Microsoft Entra ID。 还可以采用组托管服务帐户 (gMSA) 的身份来运行服务。

通过使用域用户或组,可以访问域中已被授予权限的其他资源(例如文件共享)。

下面的示例演示名为 TestUser 的 Active Directory 用户,其域密码使用名为 MyCert 的证书进行了加密。 可以使用 Invoke-ServiceFabricEncryptText PowerShell 命令创建密码文本。 请参阅管理 Service Fabric 应用程序中的机密获取详细信息。

用于解密密码的证书私钥必须使用带外方法(在 Azure 中通过 Azure 资源管理器)部署到本地计算机。 这样,当 Service Fabric 将服务包部署到计算机时,便能够解密密码和用户名,向 Active Directory 进行身份验证以使用这些凭据运行。

<Principals>
  <Users>
    <User Name="TestUser" AccountType="DomainUser" AccountName="Domain\User" Password="[Put encrypted password here using MyCert certificate]" PasswordEncrypted="true" />
  </Users>
</Principals>
<Policies>
  <DefaultRunAsPolicy UserRef="TestUser" />
  <SecurityAccessPolicies>
    <SecurityAccessPolicy ResourceRef="MyCert" PrincipalRef="TestUser" GrantRights="Full" ResourceType="Certificate" />
  </SecurityAccessPolicies>
</Policies>
<Certificates>

注意

如果将 RunAs 策略应用到服务,且服务清单声明使用 HTTP 协议的终结点资源,则还必须指定 SecurityAccessPolicy。 有关详细信息,请参阅为 HTTP 和 HTTPS 终结点分配安全访问策略

有关后续步骤,请阅读以下文章: