Partager via


Identités managées dans Azure Container Apps

Une identité managée depuis Microsoft Entra ID permet à votre application conteneur d’accéder à d’autres ressources protégées par Microsoft Entra. Pour plus d’informations sur les identités managées dans Microsoft Entra ID, consultez Identités managées pour les ressources Azure.

Deux types d’identité peuvent être accordés à votre application de conteneur :

  • Une identité attribuée par le système est liée à votre application de conteneur et est supprimée si votre application de conteneur est supprimée. Une application ne peut avoir qu’une seule identité attribuée par le système.
  • Une identité attribuée par l’utilisateur est une ressource Azure autonome que vous pouvez affecter à votre application conteneur et à d’autres ressources. Une application de conteneur peut avoir plusieurs identités attribuées par l’utilisateur. Les identités affectées par l’utilisateur existent jusqu’à ce que vous les supprimiez.

Pourquoi utiliser une identité managée ?

Vous pouvez utiliser une identité managée dans une application de conteneur en cours d’exécution pour vous authentifier sur n’importe quel service prenant en charge l’authentification Microsoft Entra.

Avec des identités managées :

  • Votre application se connecte aux ressources avec l’identité managée. Vous n’avez pas besoin de gérer les informations d’identification dans votre application de conteneur.
  • Vous pouvez utiliser le contrôle d’accès en fonction du rôle pour accorder des autorisations spécifiques à une identité managée.
  • Les identités attribuées par le système sont automatiquement créées et gérées. Elles sont supprimées lorsque votre application de conteneur est supprimée.
  • Vous pouvez ajouter et supprimer des identités attribuées par l’utilisateur et les affecter à plusieurs ressources. Elles sont indépendantes du cycle de vie de votre application de conteneur.
  • Vous pouvez utiliser l’identité managée pour vous authentifier auprès d’un Azure Container Registry privé sans nom d’utilisateur et mot de passe pour extraire des conteneurs pour votre application conteneur.
  • Vous pouvez utiliser une identité managée pour créer des connexions pour les applications prenant en charge Dapr via des composants Dapr

Cas d’utilisation courants

Les identités attribuées par le système conviennent parfaitement aux charges de travail qui :

  • sont contenues dans une ressource unique
  • nécessitent des identités indépendantes

Les identités attribuées par l’utilisateur sont idéales pour les charges de travail qui :

  • s’exécutent sur plusieurs ressources et peuvent partager une même identité
  • nécessitent une pré-autorisation pour accéder à une ressource sécurisée

Limites

  • Les identités managées dans les règles de mise à l’échelle ne sont pas prises en charge. Vous devez inclure des chaînes de connexion ou des clés dans la secretRef de la règle de mise à l’échelle.
  • Les conteneurs d’initialisation ne peuvent pas accéder aux identités managées.

Configurer des identités managées

Vous pouvez configurer vos identités managées via :

  • le portail Azure
  • Interface de ligne de commande Azure
  • votre modèle Azure Resource Manager (ARM)

Lorsqu’une identité managée est ajoutée, supprimée ou modifiée sur une application de conteneur en cours d’exécution, l’application ne redémarre pas automatiquement et une nouvelle révision n’est pas créée.

Remarque

Vous devez créer une nouvelle révision lors de l’ajout d’une identité managée à une application de conteneur déployée avant le 11 avril 2022.

Ajouter une identité affectée par le système

  1. Accédez à votre application conteneur dans le portail Azure.

  2. Dans le groupe Paramètres, sélectionnez Identité.

  3. Dans l’onglet Attribuée par le système, définissez État sur Activé.

  4. Cliquez sur Enregistrer.

Capture d’écran des identités attribuées par le système.

Ajouter une identité attribuée par l’utilisateur

La configuration d’une application de conteneur avec une identité attribuée par l’utilisateur nécessite d’abord de créer l’identité, puis d’ajouter son identificateur de ressource à la configuration de votre application de conteneur. Vous pouvez créer des identités attribuées par l’utilisateur via le Portail Azure ou l’interface Azure CLI. Pour plus d’informations sur la création et la gestion des identités attribuées par l’utilisateur, consultez Gérer les identités managées attribuées par l’utilisateur.

Tout d’abord, vous devrez créer une ressource d’identité attribuée par l’utilisateur.

  1. Créez une ressource d’identité managée affectée par l’utilisateur en fonction des étapes décrites dans Gérer les identités managées affectées par l’utilisateur.

  2. Accédez à votre application conteneur dans le portail Azure.

  3. Dans le groupe Paramètres, sélectionnez Identité.

  4. Dans l’onglet Affecté(e) par l’utilisateur, sélectionnez Ajouter.

  5. Recherchez et sélectionnez l’identité que vous avez créée précédemment.

  6. Sélectionnez Ajouter.

Capture d’écran des identités affectées par l’utilisateur.

Configurer une ressource cible

Pour certaines ressources, vous devez configurer les attributions de rôles pour l’identité managée de votre application afin d’en accorder l’accès. Dans le cas contraire, les appels de votre application vers des services, tels qu’Azure Key Vault et Azure SQL Database, sont rejetés même lorsque vous utilisez un jeton valide pour cette identité. Pour plus d’informations sur le contrôle d’accès en fonction du rôle Azure (Azure RBAC), consultez Qu’est-ce que le contrôle d’accès en fonction du rôle Azure (Azure RBAC) ?. Pour en savoir plus sur les ressources qui prennent en charge les jetons Microsoft Entra, consultez Services Azure prenant en charge l’authentification Microsoft Entra.

Important

Les services principaux pour les identités gérées conservent un cache par URI de ressource pendant environ 24 heures. Si vous mettez à jour la stratégie d’accès d’une ressource cible particulière et que vous récupérez immédiatement un jeton pour cette ressource, vous pouvez continuer à obtenir un jeton mis en cache avec des autorisations obsolètes jusqu’à ce que ce jeton expire. L’actualisation d’un jeton de manière forcée n’est pas prise en charge.

Connexion aux services Azure dans le code de l’application

Grâce aux identités managées, une application peut obtenir des jetons pour accéder aux ressources Azure qui utilisent Microsoft Entra ID, telles qu’Azure SQL Database, Azure Key Vault et Stockage Azure. Ces jetons représentent l’application qui accède à la ressource, pas un utilisateur spécifique de l’application.

Container Apps fournit un point de terminaison REST accessible en interne pour récupérer des jetons. Le point de terminaison REST est disponible à partir de l’application avec une requête HTTP standard GET, que vous pouvez envoyer avec un client HTTP générique dans votre langue préférée. Pour les langages .NET, JavaScript, Java et Python, la bibliothèque de client Azure Identity fournit une abstraction sur ce point de terminaison REST. Vous pouvez vous connecter à d’autres services Azure en ajoutant un objet d’informations d’identification au client spécifique au service.

Remarque

Lorsque vous utilisez la bibliothèque de client Azure Identity, vous devez spécifier explicitement l’ID de client de l’identité managée affectée par l’utilisateur.

Remarque

Lorsque vous vous connectez à des sources de données Azure SQL avec Entity Framework Core, pensez à utiliser Microsoft.Data.SqlClient, qui fournit des chaînes de connexion spéciales pour la connectivité de l’identité managée.

Pour les applications .NET, la façon la plus simple d’utiliser une identité managée consiste à recourir à la bibliothèque de client Azure Identity pour .NET. Pour plus d'informations, consultez les ressources suivantes :

Les exemples liés utilisent DefaultAzureCredential. Cet objet est efficace dans la plupart des scénarios, car le même modèle fonctionne dans Azure (avec des identités managées) et sur votre ordinateur local (sans identités managées).

Afficher les identités managées

Vous pouvez afficher les identités managées attribuées par le système et attribuées par l’utilisateur à l’aide de la commande Azure CLI suivante. La sortie affiche le type d’identité managée, les ID de locataire et les ID principaux de toutes les identités managées affectées à votre application de conteneur.

az containerapp identity show --name <APP_NAME> --resource-group <GROUP_NAME>

Supprimer une identité managée

Lorsque vous supprimez une identité affectée par le système, elle est supprimée de Microsoft Entra ID. Les identités affectées par le système sont également automatiquement supprimées de Microsoft Entra ID lorsque vous supprimez la ressource d’application de conteneur elle-même. La suppression des identités managées attribuées par l’utilisateur de votre application de conteneur ne les supprime pas de Microsoft Entra ID.

  1. Dans le volet de navigation gauche de la page de votre application, faites défiler la page vers le bas jusqu’au groupe Paramètres.

  2. Sélectionnez Identité. Suivez ensuite les étapes en fonction du type d’identité :

    • Identité affectée par le système : Dans l’onglet Affectée par le système, basculez État sur Désactivé. Cliquez sur Enregistrer.
    • Identité affectée par l’utilisateur : Sélectionnez l’onglet Affectée par l’utilisateur, cochez la case de l’identité, puis sélectionnez Supprimer. Sélectionnez Oui pour confirmer.

Étapes suivantes