Ausführen eines Diensts als gruppenverwaltetes DienstkontoRun a service as a group Managed Service Account

Auf einem eigenständigen Windows Server-Cluster können Sie einen Dienst unter Verwendung einer RunAs-Richtlinie als gruppenverwaltetes Dienstkonto (group Managed Service Account, gMSA) ausführen.On a Windows Server standalone cluster, you can run a service as a group managed service account (gMSA) using a RunAs policy. Standardmäßig werden Service Fabric-Anwendungen unter dem Konto ausgeführt, unter dem der Prozess Fabric.exe ausgeführt wird.By default, Service Fabric applications run under the account that the Fabric.exe process runs under. Die Ausführung von Anwendungen unter verschiedenen Konten sorgt dafür, dass die Anwendungen besser voreinander geschützt sind – sogar in einer gehosteten Umgebung mit gemeinsamer Nutzung.Running applications under different accounts, even in a shared hosted environment, makes them more secure from one another. Bei Verwendung eines gruppenverwalteten Dienstkontos wird im Anwendungsmanifest kein Kennwort oder verschlüsseltes Kennwort gespeichert.By using a gMSA, there is no password or encrypted password stored in the application manifest. Sie können einen Dienst auch als Active Directory-Benutzer oder -Gruppe ausführen.You can also run a service as an Active Directory user or group.

Im folgende Beispiel wird gezeigt, wie ein gruppenverwaltetes Dienstkonto namens svc-Test$ erstellt, dieses verwaltete Dienstkonto auf Clusterknoten bereitgestellt und der Benutzerprinzipal konfiguriert wird.The following example shows how to create a gMSA account called svc-Test$, how to deploy that managed service account to the cluster nodes, and how to configure the user principal.

Hinweis

Die Verwendung eines gMSA mit einem eigenständigen Service Fabric-Cluster erfordert Active Directory lokal innerhalb Ihrer Domäne (anstatt Azure Active Directory (Azure AD)).Using a gMSA with a standalone Service Fabric cluster requires Active Directory on-premises within your domain (rather than Azure Active Directory (Azure AD)).

Voraussetzungen:Pre-requisites:

  • Die Domäne benötigt einen KDS-Stammschlüssel.The domain needs a KDS root key.
  • Es muss mindestens ein Windows Server 2012-Domänencontroller (oder ein R2-DC) in der Domäne vorhanden sein.There must be at least one Windows Server 2012 (or R2) DC in the domain.
  1. Bitten Sie einen Active Directory-Domänenadministrator, mit dem Cmdlet New-ADServiceAccount ein gruppenverwaltetes Dienstkonto zu erstellen, und vergewissern Sie sich, dass PrincipalsAllowedToRetrieveManagedPassword alle Service Fabric-Clusterknoten enthält.Have an Active Directory domain administrator create a group-managed service account using the New-ADServiceAccount cmdlet and ensure that the PrincipalsAllowedToRetrieveManagedPassword includes all of the Service Fabric cluster nodes. AccountName, DnsHostName und ServicePrincipalName müssen eindeutig sein.AccountName, DnsHostName, and ServicePrincipalName must be unique.

    New-ADServiceAccount -name svc-Test$ -DnsHostName svc-test.contoso.com  -ServicePrincipalNames http/svc-test.contoso.com -PrincipalsAllowedToRetrieveManagedPassword SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$
    
  2. Installieren und testen Sie das gruppenverwaltete Dienstkonto auf den einzelnen Service Fabric-Clusterknoten (beispielsweise SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$).On each of the Service Fabric cluster nodes (for example, SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$), install and test the gMSA.

    Add-WindowsFeature RSAT-AD-PowerShell
    Install-AdServiceAccount svc-Test$
    Test-AdServiceAccount svc-Test$
    
  3. Konfigurieren Sie den Benutzerprinzipal, und konfigurieren Sie die RunAsPolicy, um auf den Benutzer zu verweisen.Configure the User principal, and configure the RunAsPolicy to reference the User.

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

Hinweis

Wenn Sie eine RunAs-Richtlinie auf einen Dienst anwenden und das Dienstmanifest Endpunktressourcen mit dem HTTP-Protokoll deklariert, müssen Sie eine Richtlinie vom Typ SecurityAccessPolicy angeben.If you apply a RunAs policy to a service and the service manifest declares endpoint resources with the HTTP protocol, you must specify a SecurityAccessPolicy. Weitere Informationen finden Sie unter Zuweisen einer Sicherheitszugriffsrichtlinie für HTTP- und HTTPS-Endpunkte.For more information, see Assign a security access policy for HTTP and HTTPS endpoints.

Die folgenden Artikel führen Sie durch die nächsten Schritte:The following articles will guide you through next steps: