Déployer une application Azure Service Fabric avec une identité managée attribuée par le système
Notes
L’activation de l’identité pour une application existante qui a été initialement déployée à l’aide d’applets de commande Azure n’est pas prise en charge.
Pour accéder à la fonctionnalité d’identité managée pour les applications Azure Service Fabric, vous devez d’abord activer le service de jeton d’identité managée sur le cluster. Ce service est responsable de l’authentification des applications Service Fabric à l’aide de leurs identités managées et de l’obtention de jetons d’accès en leur nom. Une fois le service activé, vous pouvez le voir dans Service Fabric Explorer sous la section Système dans le volet gauche, exécuté sous le nom fabric:/System/ManagedIdentityTokenService à côté d’autre services système.
Notes
Le déploiement d’applications Service Fabric avec des identités managées est pris en charge à partir de la version d’API "2019-06-01-preview"
. Vous pouvez également utiliser la même version d’API pour le type d’application, la version de type d’application et les ressources de service. La version minimale du runtime Service Fabric pris en charge est 6.5 CU2. De plus, l’environnement de build/package doit aussi disposer du Kit de développement logiciel (SDK) .NET Service Fabric (CU2 ou version ultérieure)
Identité managée affectée par le système
Modèle d’application
Pour activer l’application avec une identité managée attribuée par le système, ajoutez la propriété identity à la ressource d’application, avec le type systemAssigned comme indiqué dans l’exemple ci-dessous :
{
"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": {
}
}
}
Cette propriété déclare, pour Azure Resource Manager, et l’identité managée et les fournisseurs de ressources Service Fabric, respectivement, que cette ressource doit avoir une identité managée (system assigned
) implicite.
Package d’application et de service
Mettez à jour le manifeste de l’application pour ajouter un élément ManagedIdentity dans la section Principaux, contenant une seule entrée comme indiqué ci-dessous :
ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="SystemAssigned" /> </ManagedIdentities> </Principals>
Cela mappe l’identité assignée à l’application en tant que ressource avec un nom convivial, pour une attribution ultérieure aux services qui composent l’application.
Dans la section ServiceManifestImport correspondant au service auquel est affectée l’identité managée, ajoutez un élément IdentityBindingPolicy, comme indiqué ci-dessous :
ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" /> </Policies> </ServiceManifestImport>
Cet élément assigne l’identité de l’application au service; sans cette attribution, le service ne sera pas en mesure d’accéder à l’identité de l’application. Dans l’extrait de code ci-dessus, l’identité
SystemAssigned
(qui est un mot clé réservé) est mappée à la définition du service sous le nom convivialWebAdmin
.Mettez à jour le manifeste de service pour ajouter un élément ManagedIdentity à l’intérieur de la section Ressources avec le nom correspondant à la valeur du paramètre
ServiceIdentityRef
de la définitionIdentityBindingPolicy
dans le manifeste de l’application :ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>
Il s’agit du mappage équivalent d’une identité à un service, comme décrit ci-dessus, mais du point de vue de la définition de service. L’identité est référencée ici par son nom convivial (
WebAdmin
), comme déclaré dans le manifeste de l’application.
Étapes suivantes
- Vérifier la prise en charge des identités managées dans Azure Service Fabric
- Déployer un nouveau cluster Azure Service Fabric avec une prise en charge d’identité managée
- Activer une identité managée dans un cluster Azure Service Fabric existant
- Tirer parti de l’identité managée d’une application Service fabric à partir du code source
- Déployer une application Azure Service Fabric avec une identité managée attribuée par l’utilisateur
- Accorder à une application Azure Service Fabric l’accès à d’autres ressources Azure