Ansluta till andra Azure- eller partnertjänster med hjälp av Dapr-komponenter

Upprätta säkra anslutningar till Azure och andra tjänster för Dapr-komponenter med hjälp av hanterade identiteter eller Azure Key Vault hemlighetsarkiv.

Innan du börjar kan du läsa mer om det stöd som erbjuds för Dapr-komponenter.

Rekommendationer

För den säkraste anslutningen rekommenderar vi att du använder Azure komponenter som tillhandahåller stöd för hanterad identitet när det är möjligt. Använd Azure Key Vault hemliga arkiv only när hanterad identitetsautentisering inte stöds.

Typ av tjänst Rekommendation
Azure komponent med stöd för hanterad identitet Använda det hanterade identitetsflödet (rekommenderas)
Azure komponent utan stöd för hanterad identitet Använda ett Azure Key Vault hemligt arkiv
Komponenter som inte är Azure Använda ett Azure Key Vault hemligt arkiv

För Azure värdbaserade tjänster kan Dapr använda den hanterade identiteten för de begränsade containerapparna för att autentisera till serverdelstjänstleverantören. När du använder hanterad identitet behöver du inte inkludera hemlig information i ett komponentmanifest. Användning av hanterad identitet rekommenderas eftersom det eliminerar lagring av känsliga indata i komponenter och kräver inte hantering av ett hemligt arkiv.

Anteckning

Metadatafältet azureClientId (klient-ID för den hanterade identiteten) krävs för alla komponenter som autentiserar med användartilldelad hanterad identitet.

Använda en referens för komponenten Dapr secret store

När du skapar Dapr-komponenter för icke-Entra ID aktiverade tjänster eller komponenter som inte stöder hanterad identitetsautentisering, kräver vissa metadatafält känsliga indatavärden. För den här metoden hämtar du dessa hemligheter genom att referera till en befintlig Dapr-komponent för hemligt arkiv som på ett säkert sätt kommer åt hemlig information.

Så här konfigurerar du en referens:

  1. Skapa en Dapr secret store-komponent med hjälp av Azure Container Apps-schemat. Komponenttypen för alla Dapr-hemlighetslager som stöds börjar med secretstores.
  2. Skapa extra komponenter (efter behov) som refererar till dapr-hemlighetsarkivkomponenten som du skapade för att hämta indata för känsliga metadata.

Skapa en Dapr-komponent för hemligt arkiv

När du skapar en komponent för hemligt arkiv i Azure Container Apps kan du ange känslig information i metadataavsnittet på något av följande sätt:

Azure Key Vault hemliga butiker

Följande komponentschema visar den enklaste möjliga hemlighetsarkivkonfigurationen med hjälp av ett Azure Key Vault hemligt arkiv. publisher-app och subscriber-app har konfigurerats för att både ha en system- eller användartilldelad hanterad identitet med lämplig behörighet för Azure Key Vault-instansen.

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

Plattformshanterade Kubernetes-hemligheter

Som ett alternativ till Kubernetes-hemligheter, lokala miljövariabler och lokala Dapr-filhemlighetslager tillhandahåller Azure Container Apps en plattformshanterad metod för att skapa och använda Kubernetes-hemligheter. Den här metoden kan användas för att ansluta till tjänster som inte är Azure. Eller i utvecklings-/testscenarier kan det användas för att snabbt distribuera komponenter via CLI utan att konfigurera ett hemligt arkiv eller hanterad identitet.

Den här komponentkonfigurationen definierar det känsliga värdet som en hemlig parameter som kan refereras från metadataavsnittet.

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

Referenskomponenter för Hemligt arkiv i Dapr

När du har skapat ett Hemligt Dapr-arkiv med någon av de tidigare metoderna kan du referera till det hemliga arkivet från andra Dapr-komponenter i samma miljö. I följande exempel visas hur du använder Microsoft Entra ID autentisering.

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