Dela via


Köra tjänster som grupphanterade tjänstkonton

I ett fristående Windows Server-kluster kan du köra en tjänst som ett grupphanterat tjänstkonto (gMSA) med en RunAs-princip . Som standard körs Service Fabric-program under det konto som Fabric.exe processen körs under. Att köra program under olika konton, även i en delad värdbaserad miljö, gör dem säkrare från varandra. Med hjälp av en gMSA finns det inget lösenord eller krypterat lösenord som lagras i programmanifestet. Du kan också köra en tjänst som en Active Directory-användare eller -grupp.

I följande exempel visas hur du skapar ett gMSA-konto med namnet svc-Test$, hur du distribuerar det hanterade tjänstkontot till klusternoderna och hur du konfigurerar användarens huvudnamn.

Kommentar

Om du använder en gMSA med ett fristående Service Fabric-kluster krävs Active Directory lokalt i din domän (i stället för Microsoft Entra-ID).

Förutsättningar:

  • Domänen behöver en KDS-rotnyckel.
  • Det måste finnas minst en Windows Server 2012-domänkontrollant (eller R2) domänkontrollant i domänen.
  1. Låt en Active Directory-domänadministratör skapa ett grupphanterat tjänstkonto med hjälp av cmdleten New-ADServiceAccount PrincipalsAllowedToRetrieveManagedPassword och se till att alla Service Fabric-klusternoder ingår. AccountName, DnsHostName, och ServicePrincipalName måste vara unikt.

    New-ADServiceAccount -name svc-Test$ -DnsHostName svc-test.contoso.com  -ServicePrincipalNames http/svc-test.contoso.com -PrincipalsAllowedToRetrieveManagedPassword SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$
    
  2. Installera och testa gMSA på var och en av Service Fabric-klusternoderna (till exempel SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$).

    Add-WindowsFeature RSAT-AD-PowerShell
    Install-AdServiceAccount svc-Test$
    Test-AdServiceAccount svc-Test$
    
  3. Konfigurera användarens huvudnamn och konfigurera RunAsPolicy för att referera till användaren.

    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationManifest xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="MyApplicationType" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
        <ServiceManifestImport>
          <ServiceManifestRef ServiceManifestName="MyServiceTypePkg" ServiceManifestVersion="1.0.0" />
          <ConfigOverrides />
          <Policies>
              <RunAsPolicy CodePackageRef="Code" UserRef="DomaingMSA"/>
          </Policies>
        </ServiceManifestImport>
      <Principals>
        <Users>
          <User Name="DomaingMSA" AccountType="ManagedServiceAccount" AccountName="domain\svc-Test$"/>
        </Users>
      </Principals>
    </ApplicationManifest>
    

Kommentar

Om du tillämpar en RunAs-princip på en tjänst och tjänstmanifestet deklarerar slutpunktsresurser med HTTP-protokollet måste du ange en SecurityAccessPolicy. Mer information finns i Tilldela en säkerhetsåtkomstprincip för HTTP- och HTTPS-slutpunkter.

Följande artiklar vägleder dig genom nästa steg: