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).
Vereisten:
- Het domein heeft een KDS-hoofdsleutel nodig.
- Er moet ten minste één Windows Server 2012-domeincontroller (of R2) aanwezig zijn in het domein.
Laat een Active Directory-domeinbeheerder een door een groep beheerd serviceaccount maken met behulp van de
New-ADServiceAccount
cmdlet en zorg ervoor dat allePrincipalsAllowedToRetrieveManagedPassword
Service Fabric-clusterknooppunten zijn opgenomen.AccountName
,DnsHostName
enServicePrincipalName
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$
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$
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: