Quickstart: Durable Functions configureren met beheerde identiteit
Met een beheerde identiteit vanuit de Microsoft Entra-id van de toegangsbeheerservice heeft uw app toegang tot andere met Microsoft Entra beveiligde resources, zoals een Azure Storage-account, zonder dat u handmatig geheimen hoeft te verwerken. De identiteit wordt beheerd door het Azure-platform, dus u hoeft geen geheimen in te richten of te roteren. De aanbevolen manier om toegang tot Azure-resources te verifiëren, is door een dergelijke identiteit te gebruiken.
In deze quickstart voert u de stappen uit om een Durable Functions-app te configureren met behulp van de standaard Azure Storage-provider voor het gebruik van op identiteit gebaseerde verbindingen voor toegang tot het opslagaccount.
Notitie
Beheerde identiteit wordt ondersteund in Durable Functions-extensieversie 2.7.0 en hoger.
Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.
Vereisten
U hebt het volgende nodig om deze snelstartgids te voltooien:
- Een bestaand Durable Functions-project dat is gemaakt in Azure Portal of een lokaal Durable Functions-project dat is geïmplementeerd in Azure.
- Bekendheid met het uitvoeren van een Durable Functions-app in Azure.
Als u geen bestaand Durable Functions-project hebt geïmplementeerd in Azure, wordt u aangeraden te beginnen met een van de volgende quickstarts:
- Uw eerste duurzame functie maken - C#
- Uw eerste duurzame functie maken - JavaScript
- Uw eerste duurzame functie maken - Python
- Uw eerste duurzame functie maken - PowerShell
- Uw eerste duurzame functie maken - Java
Lokale ontwikkeling
Azure Storage-emulator gebruiken
Wanneer u lokaal ontwikkelt, is het raadzaam om Azurite te gebruiken. Dit is de lokale emulator van Azure Storage. Configureer uw app voor de emulator door op te "AzureWebJobsStorage": "UseDevelopmentStorage = true"
geven in de local.settings.json.
Op identiteit gebaseerde verbindingen voor lokale ontwikkeling
Strikt genomen is een beheerde identiteit alleen beschikbaar voor apps wanneer deze worden uitgevoerd in Azure. U kunt echter nog steeds een lokaal actieve app configureren om een op identiteit gebaseerde verbinding te gebruiken met behulp van uw referenties voor ontwikkelaars om te verifiëren bij Azure-resources. Wanneer de app vervolgens wordt geïmplementeerd in Azure, wordt in plaats daarvan de configuratie van uw beheerde identiteit gebruikt.
Wanneer u referenties voor ontwikkelaars gebruikt, probeert de verbinding een token op te halen van de volgende locaties, in de genoemde volgorde, voor toegang tot uw Azure-resources:
- Een lokale cache die wordt gedeeld tussen Microsoft-toepassingen
- De huidige gebruikerscontext in Visual Studio
- De huidige gebruikerscontext in Visual Studio Code
- De huidige gebruikerscontext in de Azure CLI
Als geen van deze opties is geslaagd, wordt er een fout weergegeven dat de app geen verificatietoken voor uw Azure-resources kan ophalen.
Runtime configureren voor het gebruik van een lokale ontwikkelaarsidentiteit
Geef de naam van uw Azure Storage-account op in local.settings.json, bijvoorbeeld:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }
Ga naar de Resource van het Azure Storage-account in Azure Portal, ga naar het tabblad Toegangsbeheer (IAM) en klik op Roltoewijzing toevoegen. Zoek de volgende rollen:
- Inzender voor opslagwachtrijgegevens
- Inzender voor Storage Blob-gegevens
- Bijdrager voor opslagtabelgegevens
Wijs de rollen aan uzelf toe door op +Leden selecteren te klikken en uw e-mail te zoeken in het pop-upvenster. (Deze e-mail is degene die u gebruikt om u aan te melden bij Microsoft-toepassingen, Azure CLI of editors in de Visual Studio-serie.)
Op identiteit gebaseerde verbindingen voor app die is geïmplementeerd in Azure
Beheerde identiteitsresource inschakelen
Schakel eerst een beheerde identiteit in voor uw toepassing. Uw functie-app moet een door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit hebben. Als u een beheerde identiteit voor uw functie-app wilt inschakelen en meer wilt weten over de verschillen tussen de twee typen identiteiten, raadpleegt u het overzicht van de beheerde identiteit.
Toegangsrollen toewijzen aan de beheerde identiteit
Navigeer naar de Azure Storage-resource van uw app in Azure Portal en wijs drie RBAC-rollen (op rollen gebaseerd toegangsbeheer) toe aan uw beheerde identiteitsresource:
- Inzender voor opslagwachtrijgegevens
- Inzender voor Storage Blob-gegevens
- Bijdrager voor opslagtabelgegevens
Als u uw identiteitsresource wilt vinden, selecteert u Toegang tot beheerde identiteit toewijzen en selecteert u vervolgens + Leden selecteren
Configuratie van beheerde identiteit toevoegen aan uw app
Voordat u de beheerde identiteit van uw app kunt gebruiken, moet u enkele wijzigingen aanbrengen in de app-instellingen:
Selecteer in Azure Portal in het resourcemenu van uw functie-app onder Instellingen de optie Omgevingsvariabelen.
Zoek AzureWebJobsStorage in de lijst met instellingen en selecteer het pictogram Verwijderen .
Voeg een instelling toe om uw Azure-opslagaccount aan de toepassing te koppelen.
Gebruik een van de volgende methoden , afhankelijk van de cloud waarin uw app wordt uitgevoerd:
Azure-cloud: als uw app wordt uitgevoerd in globale Azure, voegt u de instelling
AzureWebJobsStorage__accountName
toe waarmee de naam van een Azure-opslagaccount wordt geïdentificeerd. Voorbeeldwaarde:mystorageaccount123
Niet-Azure-cloud: als uw toepassing wordt uitgevoerd in een cloud buiten Azure, moet u de volgende drie instellingen toevoegen om specifieke service-URI's (of eindpunten) van het opslagaccount in plaats van een accountnaam op te geven.
Naam van instelling:
AzureWebJobsStorage__blobServiceUri
Voorbeeldwaarde:
https://mystorageaccount123.blob.core.windows.net/
Naam van instelling:
AzureWebJobsStorage__queueServiceUri
Voorbeeldwaarde:
https://mystorageaccount123.queue.core.windows.net/
Naam van instelling:
AzureWebJobsStorage__tableServiceUri
Voorbeeldwaarde:
https://mystorageaccount123.table.core.windows.net/
U kunt de waarden voor deze URI-variabelen ophalen in de gegevens van het opslagaccount op het tabblad Eindpunten .
Notitie
Als u Azure Government of een andere cloud gebruikt die gescheiden is van globale Azure, moet u de optie gebruiken die specifieke service-URI's biedt in plaats van alleen de naam van het opslagaccount. Zie ontwikkelen met behulp van de Storage-API in Azure Government voor meer informatie over het gebruik van Azure Storage met Azure Government.
Voltooi de configuratie van uw beheerde identiteit (vergeet niet op Toepassen te klikken nadat u de instellingswijzigingen hebt aangebracht):
Als u een door het systeem toegewezen identiteit gebruikt, moet u geen andere wijzigingen aanbrengen.
Als u een door de gebruiker toegewezen identiteit gebruikt, voegt u de volgende instellingen toe in uw app-configuratie:
AzureWebJobsStorage__credential voert u managedidentity in
AzureWebJobsStorage__clientId haalt u deze GUID-waarde op uit uw beheerde identiteitsresource
Notitie
Durable Functions biedt geen ondersteuning
managedIdentityResourceId
voor het gebruik van door de gebruiker toegewezen identiteit. Gebruik in plaats daarvanclientId
.