Ejecución de un servicio como un grupo o usuario de Active Directory

En un clúster independiente de Windows Server, puede ejecutar un servicio como un usuario o grupo de Active Directory mediante una directiva de RunAs. De forma predeterminada, las aplicaciones de Service Fabric se ejecutan en la misma cuenta en que se ejecuta el proceso Fabric.exe. La ejecución de aplicaciones en cuentas diferentes, incluso en un entorno hospedado compartido, aumenta la seguridad entre aplicaciones. Tome en cuenta que, en este caso, se usa Active Directory local en el dominio y no Microsoft Entra ID. También puede ejecutar un servicio como una cuenta de servicio administrada de grupo (gMSA).

Mediante el uso de un grupo o usuario de dominio puede tener acceso a otros recursos del dominio (por ejemplo, recursos compartidos de archivos) para los que se han concedido permisos.

El ejemplo siguiente muestra un usuario de Active Directory denominado TestUser con la contraseña de dominio cifrada mediante un certificado llamado MyCert. Puede usar el comando de PowerShell Invoke-ServiceFabricEncryptText para crear el texto cifrado secreto. Vea Administración de secretos en aplicaciones de Service Fabric | Microsoft Azure.

La clave privada del certificado para descifrar la contraseña se debe implementar en la máquina local con un método fuera de banda (en Azure esto se realiza mediante Azure Resource Manager). Posteriormente, cuando Service Fabric implemente el paquete de servicio en la máquina, podrá descifrar el secreto y, junto con el nombre de usuario, autenticarse mediante Active Directory para ejecutarse con esas credenciales.

<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>

Nota

Si aplica una directiva de RunAs a un servicio y el manifiesto de servicio declara los recursos de punto de conexión con el protocolo HTTP, también debe especificar SecurityAccessPolicy. Para obtener más información, consulte Assign a security access policy for HTTP and HTTPS endpoints (Asignación de una directiva de acceso de seguridad a los puntos de conexión HTTP y HTTPS).

A continuación, lea los siguientes artículos: