Een service uitvoeren als door een groep beheerd serviceaccount

Op een zelfstandig Windows Server-cluster kunt u een service uitvoeren als een door een groep beheerd serviceaccount (gMSA) met behulp van een RunAs-beleid . Service Fabric-toepassingen worden standaard uitgevoerd onder het account waaronder het Fabric.exe proces wordt uitgevoerd. Het uitvoeren van toepassingen onder verschillende accounts, zelfs in een gedeelde gehoste omgeving, maakt ze veiliger van elkaar. Met behulp van een gMSA is er geen wachtwoord of versleuteld wachtwoord opgeslagen in het toepassingsmanifest. U kunt ook een service uitvoeren als een Active Directory-gebruiker of - groep.

In het volgende voorbeeld ziet u hoe u een gMSA-account maakt met de naam svc-Test$, hoe u dat beheerde serviceaccount implementeert op de clusterknooppunten en hoe u de gebruikers-principal configureert.

Notitie

Voor het gebruik van een gMSA met een zelfstandig Service Fabric-cluster is Active Directory on-premises in uw domein vereist (in plaats van Microsoft Entra-id).

Voorwaarden:

  • Het domein heeft een KDS-hoofdsleutel nodig.
  • Er moet ten minste één Windows Server 2012-domeincontroller (of R2) aanwezig zijn in het domein.
  1. Laat een Active Directory-domeinbeheerder een door een groep beheerd serviceaccount maken met behulp van de New-ADServiceAccount cmdlet en zorg ervoor dat alle PrincipalsAllowedToRetrieveManagedPassword Service Fabric-clusterknooppunten zijn opgenomen. AccountName, DnsHostNameen ServicePrincipalName moet uniek zijn.

    New-ADServiceAccount -name svc-Test$ -DnsHostName svc-test.contoso.com  -ServicePrincipalNames http/svc-test.contoso.com -PrincipalsAllowedToRetrieveManagedPassword SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$
    
  2. Installeer en test de gMSA op elk van de Service Fabric-clusterknooppunten (bijvoorbeeld SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$).

    Add-WindowsFeature RSAT-AD-PowerShell
    Install-AdServiceAccount svc-Test$
    Test-AdServiceAccount svc-Test$
    
  3. Configureer de user-principal en configureer de RunAsPolicy om te verwijzen naar de gebruiker.

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

Notitie

Als u een RunAs-beleid toepast op een service en het servicemanifest eindpuntbronnen declareert met het HTTP-protocol, moet u een SecurityAccessPolicy opgeven. Zie Een beveiligingstoegangsbeleid toewijzen voor HTTP- en HTTPS-eindpunten voor meer informatie.

In de volgende artikelen wordt u begeleid bij de volgende stappen: