Schnellstart: Konfigurieren einer Durable Functions-App mit einer verwalteten Identität
Mit einer verwalteten Identität vom Zugriffsverwaltungsdienst Microsoft Entra ID kann Ihre App auf andere von Microsoft Entra geschützte Ressourcen, z. B. ein Azure Storage-Konto, zugreifen, ohne geheime Schlüssel manuell verarbeiten zu müssen. Die Identität wird von der Azure-Plattform verwaltet, sodass Sie keine Geheimnisse bereitstellen oder rotieren müssen. Die empfohlene Methode zum Authentifizieren des Zugriffs auf Azure-Ressourcen ist die Verwendung einer solchen Identität.
In dieser Schnellstartanleitung führen Sie die Schritte zum Konfigurieren einer Durable Functions-App mithilfe des standardmäßigen Azure Storage-Anbieters aus, um identitätsbasierte Verbindungen für den Zugriff auf Speicherkonten zu verwenden.
Hinweis
Verwaltete Identitäten werden in der Durable Functions Erweiterung ab Version 2.7.0 unterstützt.
Sollten Sie kein Azure-Konto haben, erstellen Sie zunächst ein kostenloses Konto.
Voraussetzungen
Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:
- Ein bestehendes Durable Functions-Projekt, das im Azure-Portal erstellt wurde, oder ein lokales Durable Functions-Projekt, das in Azure bereitgestellt wurde.
- Kenntnisse beim Ausführen einer Durable Functions-App in Azure.
Wenn Sie kein vorhandenes Durable Functions-Projekt in Azure bereitgestellt haben, empfehlen wir, mit einer der folgenden Schnellstarts zu beginnen:
- Erstellen Ihrer ersten dauerhaften Funktion in C#
- Erstellen Ihrer ersten dauerhaften Funktion in JavaScript
- Erstellen Ihrer ersten dauerhaften Funktion in Python
- Erstellen Ihrer ersten dauerhaften Funktion in PowerShell
- Erstellen Ihrer ersten dauerhaften Funktion in Java
Lokale Entwicklung
Verwenden des Azure Storage-Emulators
Bei der lokalen Entwicklung wird empfohlen, Azurite zu verwenden, was der lokale Emulator von Azure Storage ist. Konfigurieren Sie Ihre App für den Emulator, indem Sie "AzureWebJobsStorage": "UseDevelopmentStorage = true"
in der Datei „local.settings.json“ angeben.
Identitätsbasierte Verbindungen für die lokal Entwicklung
Genau genommen ist eine verwaltete Identität nur für Apps verfügbar, wenn diese in Azure ausgeführt werden. Sie können jedoch weiterhin eine lokal ausgeführte App für die Verwendung einer identitätsbasierten Verbindung konfigurieren, indem Sie Ihre Anmeldeinformationen für die Fachkraft in der Entwicklung verwenden, um sich bei Azure-Ressourcen zu authentifizieren. Nach der Bereitstellung in Azure verwendet die App stattdessen Ihre Konfiguration der verwalteten Identität.
Bei Verwendung der Anmeldeinformationen für die Fachkraft in der Entwicklung versucht die Verbindung, ein Token von den folgenden Speicherorten in der angegebenen Reihenfolge für den Zugriff auf Ihre Azure-Ressourcen abzurufen:
- Lokaler Cache, der von Microsoft-Anwendungen gemeinsam genutzt wird
- Aktueller Benutzerkontext in Visual Studio
- Aktueller Benutzerkontext in Visual Studio Code
- Aktueller Benutzerkontext in der Azure CLI
Wenn keine dieser Optionen erfolgreich ist, wird ein Fehler angezeigt, der besagt, dass die App kein Authentifizierungstoken für Ihre Azure-Ressourcen abrufen kann.
Konfigurieren der Laufzeit für die Verwendung der lokalen Identität der Fachkraft in der Entwicklung
Geben Sie den Namen Ihres Azure Storage-Kontos in der Datei „local.settings.json“ an, z. B.:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }
Wechseln Sie im Azure-Portal zur Azure Storage-Kontoressource, navigieren Sie zur Registerkarte Zugriffssteuerung (IAM), und klicken Sie auf Rollenzuweisung hinzufügen. Suchen Sie nach den folgenden Rollen:
- Mitwirkender an Storage-Warteschlangendaten
- Mitwirkender an Storage-Blobdaten
- Mitwirkender an Storage-Tabellendaten
Weisen Sie sich die Rollen selbst zu, indem Sie auf „+ Mitglieder auswählen“ klicken und Ihre E-Mail-Adresse im Popupfenster suchen. (Diese E-Mail-Adresse ist die E-Mail-Adresse, die Sie zum Anmelden bei Microsoft-Anwendungen, der Azure CLI oder Editoren in der Visual Studio-Familie verwenden.)
Identitätsbasierte Verbindungen für eine in Azure bereitgestellte App
Aktivieren der Ressource der verwalteten Identität
Aktivieren Sie zunächst eine verwaltete Identität für Ihre Anwendung. Ihre Funktions-App muss entweder über eine vom System zugewiesene verwaltete Identität oder eine von der benutzenden Person zugewiesene verwaltete Identität verfügen. Um eine verwaltete Identität für Ihre Funktions-App zu aktivieren und mehr über die Unterschiede zwischen den beiden Arten von Identitäten zu erfahren, lesen Sie die Übersicht über verwaltete Identitäten.
Zuweisen von Zugriffsrollen zur verwalteten Identität
Navigieren Sie im Azure-Portal zur Azure Storage-Ressource Ihrer App, und weisen Sie Ihrer Ressource der verwalteten Identität drei Rollen für die rollenbasierte Zugriffssteuerung (RBAC) zu:
- Mitwirkender an Storage-Warteschlangendaten
- Mitwirkender an Storage-Blobdaten
- Mitwirkender an Storage-Tabellendaten
Um Ihre Identitätsressource zu finden, wählen Sie zunächst für „Zuweisen des Zugriffs auf“ die Option Verwaltete Identität und dann + Mitglieder auswählen aus
Hinzufügen der Konfiguration einer verwalteten Identität zu Ihrer App
Bevor Sie die verwaltete Identität Ihrer App verwenden können, müssen Sie einige Änderungen an den App-Einstellungen vornehmen:
Wählen Sie im Azure-Portal im Menü Ihrer Funktions-App-Ressource unter Einstellungen die Option Umgebungsvariablen aus.
Suchen Sie in der Liste der Einstellungen nach AzureWebJobsStorage, und wählen Sie das Symbol Löschen aus.
Fügen Sie eine Einstellung hinzu, um Ihr Azure-Speicherkonto mit der Anwendung zu verknüpfen.
Verwenden Sie je nach der Cloud, in der Ihre Anwendung läuft, eine der folgenden Methoden:
Azure-Cloud: Wenn Ihre App in der globalen Azure-Umgebung ausgeführt wird, fügen Sie die Einstellung
AzureWebJobsStorage__accountName
hinzu, die einen Azure-Speicherkontonamen identifiziert. Beispielwert:mystorageaccount123
Nicht-Azure-Cloud: Wenn Ihre Anwendung in einer Cloud außerhalb von Azure ausgeführt wird, müssen Sie die folgenden drei Einstellungen hinzufügen, um bestimmte Dienst-URIs (oder Endpunkte) des Speicherkontos anstelle eines Kontonamens hinzufügen.
Einstellungsname:
AzureWebJobsStorage__blobServiceUri
Beispielwert:
https://mystorageaccount123.blob.core.windows.net/
Einstellungsname:
AzureWebJobsStorage__queueServiceUri
Beispielwert:
https://mystorageaccount123.queue.core.windows.net/
Einstellungsname:
AzureWebJobsStorage__tableServiceUri
Beispielwert:
https://mystorageaccount123.table.core.windows.net/
Sie können die Werte für diese URI-Variablen in den Speicherkontoinformationen auf der Registerkarte Endpunkte abrufen.
Hinweis
Wenn Sie Azure Government oder eine andere Cloud verwenden, die von der globalen Azure-Umgebung getrennt ist, müssen Sie die Option verwenden, die bestimmte Dienst-URIs anstelle des Speicherkontonamens bereitstellt. Weitere Informationen zur Verwendung von Azure Storage mit Azure Government finden Sie unter Entwickeln mithilfe der Speicher-API in Azure Government.
Beenden Sie die Konfiguration der verwalteten Identität (denken Sie daran, nach den getätigten Einstellungsänderungen auf „Übernehmen“ zu klicken):
Wenn Sie eine vom System zugewiesene Identität verwenden, nehmen Sie keine anderen Änderungen vor.
Wenn Sie eine benutzerseitig zugewiesene Identität verwenden, fügen Sie Ihrer App-Konfiguration die folgenden Einstellungen hinzu:
AzureWebJobsStorage__credential, geben Sie managedidentity ein
AzureWebJobsStorage__clientId, rufen Sie diesen GUID-Wert aus Ihrer Ressource der verwalteten Identität ab
Hinweis
Die Durable Functions-App unterstützt
managedIdentityResourceId
bei Verwendung einer benutzerseitig zugewiesenen Identität nicht. Verwenden Sie stattdessenclientId
.