Snabbstart: Konfigurera Durable Functions med hanterad identitet
Med en hanterad identitet från åtkomsthanteringstjänstens Microsoft Entra-ID kan din app komma åt andra Microsoft Entra-skyddade resurser, till exempel ett Azure Storage-konto, utan att hantera hemligheter manuellt. Identiteten hanteras av Azure-plattformen, så du behöver inte etablera eller rotera några hemligheter. Det rekommenderade sättet att autentisera åtkomst till Azure-resurser är att använda en sådan identitet.
I den här snabbstarten utför du steg för att konfigurera en Durable Functions-app med azure storage-standardprovidern för att använda identitetsbaserade anslutningar för åtkomst till lagringskontot.
Kommentar
Hanterad identitet stöds i Durable Functions-tilläggsversionerna 2.7.0 och senare.
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Förutsättningar
Följande krävs för att slutföra den här snabbstarten:
- Ett befintligt Durable Functions-projekt som skapats i Azure-portalen eller ett lokalt Durable Functions-projekt som distribuerats till Azure.
- Kunskaper om att köra en Durable Functions-app i Azure.
Om du inte har ett befintligt Durable Functions-projekt distribuerat i Azure rekommenderar vi att du börjar med någon av följande snabbstarter:
- Skapa din första hållbara funktion – C#
- Skapa din första varaktiga funktion – JavaScript
- Skapa din första hållbara funktion – Python
- Skapa din första hållbara funktion – PowerShell
- Skapa din första hållbara funktion – Java
Lokal utveckling
Använda Azure Storage-emulatorn
När du utvecklar lokalt rekommenderar vi att du använder Azurite, som är Azure Storages lokala emulator. Konfigurera din app till emulatorn genom att "AzureWebJobsStorage": "UseDevelopmentStorage = true"
ange i local.settings.json.
Identitetsbaserade anslutningar för lokal utveckling
Strikt sett är en hanterad identitet endast tillgänglig för appar när den körs i Azure. Du kan dock fortfarande konfigurera en lokalt körd app för att använda identitetsbaserad anslutning med hjälp av dina autentiseringsuppgifter för utvecklare för att autentisera mot Azure-resurser. När den sedan distribueras i Azure använder appen din hanterade identitetskonfiguration i stället.
När du använder autentiseringsuppgifter för utvecklare försöker anslutningen hämta en token från följande platser i den här ordningen för åtkomst till dina Azure-resurser:
- En lokal cache som delas mellan Microsoft-program
- Den aktuella användarkontexten i Visual Studio
- Den aktuella användarkontexten i Visual Studio Code
- Den aktuella användarkontexten i Azure CLI
Om inget av dessa alternativ lyckas visas ett fel som anger att appen inte kan hämta autentiseringstoken för dina Azure-resurser.
Konfigurera körning för att använda lokal utvecklaridentitet
Ange namnet på ditt Azure Storage-konto i local.settings.json, till exempel:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }
Gå till Azure Storage-kontoresursen på Azure-portalen, gå till fliken Åtkomstkontroll (IAM) och klicka på Lägg till rolltilldelning. Hitta följande roller:
- Lagringsködatadeltagare
- Storage blobb data-deltagare
- Datadeltagare för lagringstabell
Tilldela rollerna till dig själv genom att klicka på "+ Välj medlemmar" och hitta din e-post i popup-fönstret. (Det här e-postmeddelandet är det du använder för att logga in på Microsoft-program, Azure CLI eller redigerare i Visual Studio-familjen.)
Identitetsbaserade anslutningar för appar som distribuerats till Azure
Aktivera resurs för hanterad identitet
Börja med att aktivera en hanterad identitet för ditt program. Funktionsappen måste antingen ha en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet. Information om hur du aktiverar en hanterad identitet för funktionsappen och om du vill veta mer om skillnaderna mellan de två typerna av identiteter finns i översikten över hanterad identitet.
Tilldela åtkomstroller till den hanterade identiteten
Gå till appens Azure Storage-resurs på Azure-portalen och tilldela tre rollbaserade åtkomstkontrollroller (RBAC) till din hanterade identitetsresurs:
- Lagringsködatadeltagare
- Storage blobb data-deltagare
- Datadeltagare för lagringstabell
Om du vill hitta din identitetsresurs väljer du tilldela åtkomst till hanterad identitet och sedan + Välj medlemmar
Lägga till konfiguration av hanterad identitet i din app
Innan du kan använda appens hanterade identitet gör du några ändringar i appinställningarna:
I Azure-portalen går du till funktionsappens resursmeny under Inställningar och väljer Miljövariabler.
I listan med inställningar letar du upp AzureWebJobsStorage och väljer ikonen Ta bort .
Lägg till en inställning för att länka ditt Azure Storage-konto till programmet.
Använd någon av följande metoder beroende på molnet som appen körs i:
Azure-moln: Om din app körs i globala Azure lägger du till inställningen
AzureWebJobsStorage__accountName
som identifierar ett Azure Storage-kontonamn. Exempelvärde:mystorageaccount123
Icke-Azure-moln: Om ditt program körs i ett moln utanför Azure måste du lägga till följande tre inställningar för att tillhandahålla specifika tjänst-URI:er (eller slutpunkter) för lagringskontot i stället för ett kontonamn.
Inställningsnamn:
AzureWebJobsStorage__blobServiceUri
Exempelvärde:
https://mystorageaccount123.blob.core.windows.net/
Inställningsnamn:
AzureWebJobsStorage__queueServiceUri
Exempelvärde:
https://mystorageaccount123.queue.core.windows.net/
Inställningsnamn:
AzureWebJobsStorage__tableServiceUri
Exempelvärde:
https://mystorageaccount123.table.core.windows.net/
Du kan hämta värdena för dessa URI-variabler i lagringskontoinformationen från fliken Slutpunkter .
Kommentar
Om du använder Azure Government eller något annat moln som är separat från globala Azure måste du använda alternativet som tillhandahåller specifika tjänst-URI:er i stället för bara lagringskontonamnet. Mer information om hur du använder Azure Storage med Azure Government finns i Utveckla med hjälp av lagrings-API:et i Azure Government.
Slutför konfigurationen av den hanterade identiteten (kom ihåg att klicka på "Tillämpa" när du har gjort inställningsändringarna):
Om du använder en systemtilldelad identitet gör du inga andra ändringar.
Om du använder en användartilldelad identitet lägger du till följande inställningar i appkonfigurationen:
AzureWebJobsStorage__credential anger du managedidentity
AzureWebJobsStorage__clientId hämtar du det här GUID-värdet från din hanterade identitetsresurs
Kommentar
Durable Functions har inte stöd
managedIdentityResourceId
för användning av användartilldelad identitet. AnvändclientId
i stället.