Distribuera Service Fabric-program med systemtilldelad hanterad identitet
Kommentar
Det går inte att aktivera identiteter för en befintlig app som ursprungligen distribuerades med Hjälp av Azure-cmdletar.
För att få åtkomst till funktionen för hanterad identitet för Azure Service Fabric-program måste du först aktivera tjänsten för hanterad identitetstoken i klustret. Den här tjänsten ansvarar för autentisering av Service Fabric-program med hjälp av deras hanterade identiteter och för att få åtkomsttoken för deras räkning. När tjänsten är aktiverad kan du se den i Service Fabric Explorer under avsnittet System i den vänstra rutan, som körs under namnet fabric:/System/ManagedIdentityTokenService bredvid andra systemtjänster.
Kommentar
Distribution av Service Fabric-program med hanterade identiteter stöds från och med API-version "2019-06-01-preview"
. Du kan också använda samma API-version för programtyp, programtypsversion och tjänstresurser. Den lägsta Service Fabric-körningen som stöds är 6,5 CU2. Dessutom bör bygg-/paketmiljön också ha Service Fabric .NET SDK vid CU2 eller högre
Systemtilldelad hanterad identitet
Programmall
Om du vill aktivera ett program med en systemtilldelad hanterad identitet lägger du till identitetsegenskapen i programresursen, med typen systemTilldelad enligt exemplet nedan:
{
"apiVersion": "2019-06-01-preview",
"type": "Microsoft.ServiceFabric/clusters/applications",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/clusters/', parameters('clusterName'), '/applicationTypes/', parameters('applicationTypeName'), '/versions/', parameters('applicationTypeVersion'))]"
],
"identity": {
"type" : "systemAssigned"
},
"properties": {
"typeName": "[parameters('applicationTypeName')]",
"typeVersion": "[parameters('applicationTypeVersion')]",
"parameters": {
}
}
}
Den här egenskapen deklarerar (till Azure Resource Manager och resursprovidrar för hanterad identitet respektive Service Fabric-resursproviders att den här resursen ska ha en implicit (system assigned
) hanterad identitet.
Program- och tjänstpaket
Uppdatera programmanifestet för att lägga till ett ManagedIdentity-element i avsnittet Principals som innehåller en enda post enligt nedan:
ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="SystemAssigned" /> </ManagedIdentities> </Principals>
Detta mappar den identitet som tilldelats programmet som en resurs till ett eget namn, för ytterligare tilldelning till de tjänster som ingår i programmet.
I avsnittet ServiceManifestImport som motsvarar tjänsten som tilldelas den hanterade identiteten lägger du till ett IdentityBindingPolicy-element enligt nedan:
ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" /> </Policies> </ServiceManifestImport>
Det här elementet tilldelar programmets identitet till tjänsten. utan den här tilldelningen kommer tjänsten inte att kunna komma åt programmets identitet. I kodfragmentet ovan mappas identiteten
SystemAssigned
(som är ett reserverat nyckelord) till tjänstens definition under det egna namnetWebAdmin
.Uppdatera tjänstmanifestet för att lägga till ett ManagedIdentity-element i avsnittet Resurser med namnet som matchar värdet
ServiceIdentityRef
för inställningen frånIdentityBindingPolicy
definitionen i programmanifestet:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>
Det här är motsvarande mappning av en identitet till en tjänst enligt beskrivningen ovan, men ur tjänstdefinitionens perspektiv. Identiteten refereras här med sitt eget namn (
WebAdmin
), enligt beskrivningen i programmanifestet.
Nästa steg
- Granska stöd för hanterad identitet i Azure Service Fabric
- Distribuera ett nytt Azure Service Fabric-kluster med stöd för hanterad identitet
- Aktivera hanterad identitet i ett befintligt Azure Service Fabric-kluster
- Utnyttja ett Service Fabric-programs hanterade identitet från källkoden
- Distribuera ett Azure Service Fabric-program med en användartilldelad hanterad identitet
- Bevilja ett Azure Service Fabric-program åtkomst till andra Azure-resurser