Запуск службы в качестве пользователя или группы Active Directory

В автономном кластере Windows Server можно запустить службу в контексте пользователя или группы Active Directory, используя политику RunAs. По умолчанию приложения Service Fabric выполняются под учетной записью, используемой процессом Fabric.exe. Выполнение приложений в разных учетных записях, даже в общей размещенной среде, делает их более безопасными друг от друга. Для этого используется локальная среда Active Directory в домене, а не идентификатор Microsoft Entra. Вы также можете запустить службу как групповую учетную запись управляемой службы (gMSA).

Используя пользователя или группу домена, вы можете получить доступ к другим ресурсам в домене (например, к общим папкам), которые были предоставлены разрешения.

В следующем примере показан пользователь Active Directory с именем TestUser с паролем домена, зашифрованным с помощью сертификата MyCert. Для создания текста секретного шифра можно использовать Invoke-ServiceFabricEncryptText команду PowerShell. Дополнительные сведения см. в статье "Управление секретами в приложениях Service Fabric ".

Чтобы расшифровать пароль на локальный компьютер, необходимо развернуть закрытый ключ сертификата с помощью метода внеполосного использования (в Azure это осуществляется с помощью Azure Resource Manager). Затем, когда 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".

На следующем шаге ознакомьтесь со следующими статьями: