Konfigurieren von Durable Functions mit Microsoft Entra ID
Microsoft Entra ID ist ein cloudbasierter Identitäts- und Zugriffsverwaltungsdienst. Durch identitätsbasierte Verbindungen kann Durable Functions autorisierte Anforderungen an mit Microsoft Entra geschützte Ressourcen wie ein Azure Storage-Konto stellen, ohne Geheimnisse manuell verwalten zu müssen. Durable Functions muss sich mithilfe des Azure-Standardspeicheranbieters bei einem Azure Storage-Konto authentifizieren. In diesem Artikel erfahren Sie, wie Sie eine Durable Functions-App konfigurieren, um zwei Arten von identitätsbasierten Verbindungen zu nutzen: Anmeldeinformationen für verwaltete Identitäten und Anmeldeinformationen mit geheimem Clientschlüssel.
Konfigurieren Ihrer App für die Verwendung von verwalteten Identitäten (empfohlen)
Eine verwaltete Identität ermöglicht Ihrer App, einfach auf andere durch Microsoft Entra geschützte Ressourcen wie Azure Key Vault zuzugreifen. Verwaltete Identitäten werden in der Durable Functions Erweiterung ab Version 2.7.0 unterstützt.
Hinweis
Genau genommen ist eine verwaltete Identität nur für Apps verfügbar, wenn diese in Azure ausgeführt werden. Bei der Konfiguration für die Verwendung identitätsbasierter Verbindungen authentifiziert sich eine lokal ausgeführte App über Ihre Entwickleranmeldeinformationen bei Azure-Ressourcen. Nach der Bereitstellung in Azure verwendet sie dafür stattdessen Ihre Konfiguration für verwaltete Identitäten.
Voraussetzungen
Bei den folgenden Schritten wird davon ausgegangen, dass Sie mit einer vorhandenen Durable Functions-App beginnen und mit deren Bedienung vertraut sind. In dieser Schnellstartanleitung wird insbesondere davon ausgegangen, dass Sie bereits folgende Schritte ausgeführt haben:
- Sie haben ein Durable Functions-Projekt im Azure-Portal erstellt oder Durable Functions lokal in Azure bereitgestellt.
Wenn dies nicht der Fall ist, empfehlen wir Ihnen, mit einem der folgenden Artikel zu beginnen. Sie enthalten detaillierte Anweisungen zur Erfüllung aller oben genannten Anforderungen:
- 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
Aktivieren einer verwalteten Identität
Für Ihre Funktion wird nur eine Identität benötigt, eine systemseitig zugewiesene verwaltete Identität oder eine benutzerseitig zugewiesene verwaltete Identität. Lesen Sie diese ausführliche Anleitung, um eine verwaltete Identität für Ihre Funktion zu aktivieren und mehr über die Unterschiede zwischen den beiden Identitäten zu erfahren.
Zuweisen von rollenbasierter Zugriffssteuerung (Role-Based Access Control, RBAC) zu einer verwalteten Identität
Navigieren Sie im Azure-Portal zur Speicherressource Ihrer App. Befolgen Sie diese Anweisungen, um Ihrer Ressource für verwaltete Identitäten die folgenden Rollen zuzuweisen.
- Mitwirkender an Storage-Warteschlangendaten
- Mitwirkender an Storage-Blobdaten
- Mitwirkender an Storage-Tabellendaten
Hinzufügen der Konfiguration einer verwalteten Identität über das Azure-Portal
Navigieren Sie zur Seite Konfiguration Ihrer Azure-Funktions-App, und nehmen Sie die folgenden Änderungen vor:
- Entfernen Sie den Standardwert „AzureWebJobsStorage“.
Verknüpfen Sie Ihr Azure Storage-Konto, indem Sie eine der folgenden Werteinstellungen hinzufügen:
AzureWebJobsStorage__accountName: Beispiel:
mystorageaccount123
AzureWebJobsStorage__blobServiceUri: Beispiel:
https://mystorageaccount123.blob.core.windows.net/
AzureWebJobsStorage__queueServiceUri: Beispiel:
https://mystorageaccount123.queue.core.windows.net/
AzureWebJobsStorage__tableServiceUri: Beispiel:
https://mystorageaccount123.table.core.windows.net/
Hinweis
Wenn Sie Azure Government oder eine andere Cloud verwenden, die von der globalen Azure-Umgebung getrennt ist, müssen Sie zum Bereitstellen bestimmter Dienst-URLs diese zweite Option verwenden. Die Werte für diese Einstellungen finden Sie im Speicherkonto auf der Registerkarte Endpunkte. Weitere Informationen zur Verwendung von Azure Storage mit Azure Government finden Sie in der Dokumentation Entwickeln mit Speicher-API bei Azure Government.
Schließen Sie die Konfiguration Ihrer verwalteten Identität ab:
Wenn eine systemseitig zugewiesene Identität verwendet werden soll, geben Sie nichts mehr an.
Wenn eine benutzerseitig zugewiesene Identität verwendet werden soll, fügen Sie der App-Konfiguration die folgenden Einstellungswerte hinzu:
AzureWebJobsStorage__credential: managedidentity
AzureWebJobsStorage__clientId: (GUID-Wert, den Sie im Microsoft Entra Admin Center abrufen können)
Konfigurieren Ihrer App für die Verwendung geheimer Clientanmeldeinformationen
Das Registrieren einer Clientanwendung in Microsoft Entra ID stellt eine weitere Möglichkeit dar, den Zugriff auf einen Azure-Dienst zu konfigurieren. In den folgenden Schritten erfahren Sie, wie Sie für die Authentifizierung bei Ihrem Azure Storage-Konto geheime Clientanmeldeinformationen verwenden. Diese Methode kann von Funktions-Apps sowohl lokal als auch in Azure verwendet werden. Anmeldeinformationen für geheime Clientschlüssel werden jedoch nicht so sehr empfohlen wie verwaltete Identitäten, da die Konfiguration und Verwaltung komplizierter sind. Außerdem ist die Freigabe geheimer Anmeldeinformationen mit dem Azure Functions-Dienst erforderlich.
Voraussetzungen
Bei den folgenden Schritten wird davon ausgegangen, dass Sie mit einer vorhandenen Durable Functions-App beginnen und mit deren Bedienung vertraut sind. In dieser Schnellstartanleitung wird insbesondere davon ausgegangen, dass Sie bereits folgende Schritte ausgeführt haben:
- Erstellen Sie ein Durable Functions-Projekt auf Ihrem lokalen Computer oder im Azure-Portal.
Registrieren einer Clientanwendung in Microsoft Entra ID
Nutzen Sie für die Registrierung von Clientanwendungen bei Microsoft Entra ID über das Azure-Portal diese Anweisungen.
Erstellen Sie einen geheimen Clientschlüssel für Ihre Clientanwendung. Gehen Sie in Ihrer registrierten Anwendung folgendermaßen vor:
Wählen Sie Zertifikate und Geheime Schlüssel und dann "Neuer geheimer Clientschlüssel" aus.
Geben Sie eine Beschreibung ein, und wählen Sie im Feld Ablauf am den Gültigkeitszeitraum für das Geheimnis aus.
Kopieren Sie den geheimen Wert, und speichern Sie ihn sorgfältig, da er nach dem Verlassen der Seite nicht mehr angezeigt wird.
Zuweisen der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) zur Clientanwendung
Weisen Sie Ihrer Clientanwendung über die folgenden Schritte diese drei Rollen zu.
- Mitwirkender an Storage-Warteschlangendaten
- Mitwirkender an Storage-Blobdaten
- Mitwirkender an Storage-Tabellendaten
Navigieren Sie zur Seite Zugriffssteuerung (IAM) des Speicherkontos für Ihre Funktion, und fügen Sie eine neue Rollenzuweisung hinzu.
Wählen Sie die erforderliche Rolle aus, klicken Sie auf „Weiter“, suchen Sie dann Ihrer Anwendung, überprüfen Sie diese, und fügen Sie sie hinzu.
Hinzufügen einer Konfiguration für einen geheimen Clientschlüssel
Zum Ausführen und Testen in Azure geben Sie auf der Seite Konfiguration Ihrer Azure-Funktions-App im Azure-Portal Folgendes an. Zum lokalen Ausführen und Testen geben Sie in der Datei local.settings.json für die Funktion Folgendes an.
Entfernen Sie den Standardwert „AzureWebJobsStorage“.
Verknüpfen Sie das Azure Storage-Konto, indem Sie eine der folgenden Werteinstellungen hinzufügen:
AzureWebJobsStorage__accountName: Beispiel:
mystorageaccount123
AzureWebJobsStorage__blobServiceUri: Beispiel:
https://mystorageaccount123.blob.core.windows.net/
AzureWebJobsStorage__queueServiceUri: Beispiel:
https://mystorageaccount123.queue.core.windows.net/
AzureWebJobsStorage__tableServiceUri: Beispiel:
https://mystorageaccount123.table.core.windows.net/
Die Werte für diese URI-Variablen finden Sie im Speicherkonto auf der Registerkarte Endpunkte.
Fügen Sie einen geheimen Clientschlüssel hinzu, indem Sie die folgenden Werte angeben:
AzureWebJobsStorage__clientId: (GUID-Wert von der Microsoft Entra-Anwendungsseite)
AzureWebJobsStorage__ClientSecret: (Geheimniswert, der im Microsoft Entra Admin Center in einem vorherigen Schritt generiert wurde)
AzureWebJobsStorage__tenantId: (ID des Mandanten, in dem die Microsoft Entra-Anwendung registriert ist)
Die Werte für die Client-ID und die Mandanten-ID finden Sie auf der Übersichtsseite Ihrer Clientanwendung. Der geheime Clientschlüssel ist der im vorherigen Schritt sorgfältig gespeicherte. Er ist nicht mehr verfügbar, nachdem die Seite aktualisiert wurde.