Se connecter à d’autres Azure ou services partenaires à l’aide de composants Dapr

Établissez en toute sécurité des connexions aux services Azure et non-Microsoft pour les composants Dapr en utilisant une identité managée ou les stockages de secrets Azure Key Vault.

Avant de commencer, apprenez-en davantage sur la prise en charge proposée pour les composants Dapr.

Recommandations

Pour la connexion la plus sécurisée, nous vous recommandons d’utiliser Azure composants qui fournissent une prise en charge des identités managées dans la mesure du possible. Utilisez les magasins de secrets Azure Key Vault uniquement lorsque l'authentification d'identité managée n'est pas prise en charge.

Type de service Recommandation
composant Azure avec prise en charge des identités managées Utiliser le flux d’identité managée (recommandé)
composant Azure sans prise en charge des identités managées Utilisez un magasin de secrets Azure Key Vault
Composants non Azure Utilisez un magasin de secrets Azure Key Vault

Pour les services hébergés par Azure, Dapr peut utiliser l’identité managed des applications conteneur délimitées pour s’authentifier auprès du fournisseur de services back-end. Lorsque vous utilisez une identité managée, vous n’avez pas besoin d’inclure d’informations secrètes dans un manifeste de composant. L’utilisation d’une identité managée est recommandée, car elle élimine le stockage des entrées sensibles dans les composants et ne nécessite pas de gestion d’un magasin de secrets.

Remarque

Le azureClientId champ de métadonnées (l’ID client de l’identité managée) est requis pour tout composant s’authentifiant avec une identité managée affectée par l’utilisateur.

Utiliser une référence de composant du magasin de secrets Dapr

Lorsque vous créez des composants Dapr pour des services ou composants non Entra ID activés qui ne prennent pas en charge l'authentification d'identité managée, certains champs de métadonnées nécessitent des valeurs d'entrée sensibles. Pour cette approche, récupérez ces secrets en faisant référence à un composant de stockage de secrets Dapr existant qui accède en toute sécurité aux informations secrètes.

Pour configurer une référence :

  1. Créez un composant de magasin de secrets Dapr en utilisant le schéma Azure Container Apps. Le type de composant pour tous les stockages de secrets Dapr pris en charge commence par secretstores.
  2. Créez des composants supplémentaires (si nécessaire) qui référencent le composant de stockage de secrets Dapr que vous avez créé afin de récupérer les métadonnées sensibles.

Créer un composant du magasin de secrets Dapr

Lors de la création d’un composant de magasin de secrets dans Azure Container Apps, vous pouvez fournir des informations sensibles dans la section métadonnées de l’une des manières suivantes :

magasins de secrets Azure Key Vault

Le schéma de composant suivant présente la configuration de magasin de secrets la plus simple possible à l’aide d’un magasin de secrets Azure Key Vault. publisher-app et subscriber-app sont configurés pour disposer d'une identité managée attribuée par le système ou l'utilisateur, avec les autorisations appropriées sur l'instance d'Azure Key Vault.

componentType: secretstores.azure.keyvault
version: v1
metadata:
  - name: vaultName
    value: [your_keyvault_name]
  - name: azureEnvironment
    value: "AZUREPUBLICCLOUD"
  - name: azureClientId # Only required for authenticating user-assigned managed identity
    value: [your_managed_identity_client_id]
scopes:
  - publisher-app
  - subscriber-app

Secrets Kubernetes gérés par la plateforme

En guise d’alternative aux secrets Kubernetes, aux variables d’environnement local et aux magasins de secrets Dapr de fichiers locaux, Azure Container Apps fournit une approche gérée par la plateforme pour la création et l’utilisation de secrets Kubernetes. Cette approche peut être utilisée pour se connecter à des services non Azure. Ou, dans les scénarios de développement/test, il peut être utilisé pour déployer rapidement des composants via l’interface CLI sans configurer de magasin de secrets ou d’identité managée.

Cette configuration de composant définit la valeur sensible en tant que paramètre secret qui peut être référencé à partir de la section métadonnées.

componentType: secretstores.azure.keyvault
version: v1
metadata:
  - name: vaultName
    value: [your_keyvault_name]
  - name: azureEnvironment
    value: "AZUREPUBLICCLOUD"
  - name: azureTenantId
    value: "[your_tenant_id]"
  - name: azureClientId 
    value: "[your_client_id]"
  - name: azureClientSecret
    secretRef: azClientSecret
secrets:
  - name: azClientSecret
    value: "[your_client_secret]"
scopes:
  - publisher-app
  - subscriber-app

Références des composants du magasin de secrets Dapr

Une fois que vous avez créé un magasin de secrets Dapr à l’aide de l’une des approches précédentes, vous pouvez référencer ce magasin de secrets à partir d’autres composants Dapr dans le même environnement. L’exemple suivant illustre l’utilisation de l’authentification Microsoft Entra ID.

componentType: pubsub.azure.servicebus.queue
version: v1
secretStoreComponent: "[your_secret_store_name]"
metadata:
  - name: namespaceName
    # Required when using Azure Authentication.
    # Must be a fully-qualified domain name
    value: "[your_servicebus_namespace.servicebus.windows.net]"
  - name: azureTenantId
    value: "[your_tenant_id]"
  - name: azureClientId 
    value: "[your_client_id]"
  - name: azureClientSecret
    secretRef: azClientSecret
scopes:
  - publisher-app
  - subscriber-app