Herstellen einer Verbindung mit anderen Azure- Diensten oder Drittanbieterdiensten über Dapr-Komponenten
Stellen Sie sichere Verbindungen mit Azure- und Drittanbieterdiensten für Dapr-Komponenten her, indem Sie eine verwaltete Identität oder Azure Key Vault-Geheimnisspeicher verwenden.
Bevor Sie beginnen, informieren Sie sich ausführlicher über die angebotene Unterstützung für Dapr-Komponenten.
Empfehlungen
Es empfiehlt sich, nach Möglichkeit Azure-Komponenten zu verwenden, die Unterstützung für verwaltete Identitäten bieten, um eine möglichst sichere Verbindung herzustellen. Verwenden Sie Azure Key Vault-Geheimnisspeicher nur, wenn die Authentifizierung mithilfe verwalteter Identitäten nicht unterstützt wird.
Diensttyp | Empfehlung |
---|---|
Azure-Komponente mit Unterstützung verwalteter Identitäten | Verwenden des Flows mit verwalteten Identitäten (empfohlen) |
Azure-Komponente ohne Unterstützung verwalteter Identitäten | Verwenden eines Azure Key Vault-Geheimnisspeichers |
Nicht-Azure-Komponenten | Verwenden eines Azure Key Vault-Geheimnisspeichers |
Verwenden einer verwalteten Identität (empfohlen)
Für in Azure gehostete Dienste kann Dapr die verwaltete Identität der Container-Apps mit Gültigkeitsbereich verwenden, um sich beim Back-End-Dienstanbieter zu authentifizieren. Wenn Sie eine verwaltete Identität verwenden, müssen Sie keine Geheimnisinformationen in ein Komponentenmanifest einschließen. Die Verwendung verwalteter Identitäten wird empfohlen, da die Speicherung vertraulicher Eingaben in Komponenten dadurch vermieden wird und keine Verwaltung eines Geheimnisspeichers erforderlich ist.
Hinweis
Das Metadatenfeld azureClientId
(die Client-ID der verwalteten Identität) ist für jede Komponente erforderlich, die sich mit einer benutzerseitig zugewiesenen verwalteten Identität authentifiziert.
Verwenden eines Dapr-Geheimnisspeicher-Komponentenverweises
Wenn Sie Dapr-Komponenten für Dienste ohne Entra ID-Aktivierung oder Komponenten erstellen, die die Authentifizierung mithilfe verwalteter Identitäten nicht unterstützen, erfordern bestimmte Metadatenfelder vertrauliche Eingabewerte. Rufen Sie bei diesem Ansatz diese Geheimnisse ab, indem Sie auf eine vorhandene Dapr-Geheimnisspeicherkomponente verweisen, die sicher auf Geheimnisinformationen zugreift.
So richten Sie einen Verweis ein:
- Erstellen Sie eine Dapr-Geheimnisspeicherkomponente mithilfe des Azure-Container-Apps-Schemas. Der Komponententyp für alle unterstützten Dapr-Geheimspeicher beginnt mit
secretstores.
. - Erstellen Sie (nach Bedarf) zusätzliche Komponenten, die auf die Dapr-Geheimnisspeicherkomponente, die Sie erstellt haben, verweisen, um die Eingabe vertraulicher Metadaten abzurufen.
Erstellen einer Dapr-Komponente für den geheimen Speicher
Beim Erstellen einer Geheimnisspeicherkomponente in Azure-Container-Apps können Sie vertrauliche Informationen im Abschnitt der Metadaten auf eine der folgenden Weisen bereitstellen:
- Verwenden Sie für einen Azure Key Vault-Geheimnisspeicher ,eine verwaltete Identität, um die Verbindung herzustellen.
- Verwenden Sie für einen Nicht-Azure-Geheimnisspeicher ,plattformseitig verwaltete Kubernetes-Geheimnisse, die direkt als Teil des Komponentenmanifests definiert werden.
Azure Key Vault-Geheimnisspeicher
Das folgende Komponentenschema zeigt die einfachste mögliche Geheimnisspeicherkonfiguration mit einem Azure Key Vault-Geheimnisspeicher. publisher-app
und subscriber-app
werden so konfiguriert, dass sie sowohl eine systemseitig als auch eine benutzerseitig zugewiesene verwaltete Identität mit entsprechenden Berechtigungen für die Azure Key Vault-Instanz haben.
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
Plattformseitig verwaltete Kubernetes-Geheimnisse
Als Alternative zu Kubernetes-Geheimnissen, lokalen Umgebungsvariablen und lokalen Dapr-Dateigeheimnisspeichern bietet Azure Container Apps einen plattformseitig verwalteten Ansatz zum Erstellen und Nutzen von Kubernetes-Geheimnissen. Dieser Ansatz kann verwendet werden, um eine Verbindung mit Nicht-Azure-Diensten herzustellen, oder um in Entwicklungs-/Testszenarien Komponenten schnell über die CLI bereitzustellen, ohne einen Geheimnisspeicher oder eine verwaltete Identität einrichten zu müssen.
Diese Komponentenkonfiguration definiert den vertraulichen Wert als Geheimnisparameter, auf den im Metadatenabschnitt verwiesen werden kann.
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
Verweisen auf Dapr-Geheimnisspeicherkomponenten
Nachdem Sie einen Dapr-Geheimnisspeicher mit einem der oben genannten Ansätze erstellt haben, können Sie aus anderen Dapr-Komponenten in derselben Umgebung auf diesen Geheimnisspeicher verweisen. Das folgende Beispiel veranschaulicht die Verwendung der Entra ID-Authentifizierung.
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
Nächste Schritte
Erfahren Sie, wie Sie die Resilienz der Dapr-Komponenten festlegen.