Dela via


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:

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

  1. 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"
       }
    }
    
  2. 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.)

    Skärmbild som visar åtkomsttilldelning till användaren.

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

Skärmbild som visar åtkomsttilldelning till hanterad identitet.

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:

  1. I Azure-portalen går du till funktionsappens resursmeny under Inställningar och väljer Miljövariabler.

  2. I listan med inställningar letar du upp AzureWebJobsStorage och väljer ikonen Ta bort . Skärmbild av standardinställningen för lagring.

  3. 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 .

    Skärmbild av slutpunktsexempel.

    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.

  4. 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

      Skärmbild av klient-ID för användaridentitet.

    Kommentar

    Durable Functions har inte stöd managedIdentityResourceId för användning av användartilldelad identitet. Använd clientId i stället.