Konfigurera Durable Functions med Microsoft Entra-ID

Microsoft Entra ID (Microsoft Entra ID) är en molnbaserad identitets- och åtkomsthanteringstjänst. Med identitetsbaserade anslutningar kan Durable Functions göra auktoriserade begäranden mot Microsoft Entra-skyddade resurser, till exempel ett Azure Storage-konto, utan att behöva hantera hemligheter manuellt. Med azure storage-standardprovidern måste Durable Functions autentisera mot ett Azure-lagringskonto. I den här artikeln visar vi hur du konfigurerar en Durable Functions-app för att använda två typer av identitetsbaserade anslutningar: autentiseringsuppgifter för hanterad identitet och autentiseringsuppgifter för klienthemligheter.

Med en hanterad identitet kan din app enkelt komma åt andra Microsoft Entra-skyddade resurser, till exempel Azure Key Vault. Hanterad identitet stöds i Durable Functions-tilläggsversionerna2.7.0 och senare.

Kommentar

Strikt sett är en hanterad identitet endast tillgänglig för appar när den körs i Azure. När en app som körs lokalt har konfigurerats för att använda identitetsbaserade anslutningar använder den dina autentiseringsuppgifter för utvecklare för att autentisera med Azure-resurser. När den sedan distribueras i Azure kommer den att använda din hanterade identitetskonfiguration i stället.

Förutsättningar

Följande steg förutsätter att du börjar med en befintlig Durable Functions-app och är bekant med hur du använder den. I synnerhet förutsätter den här snabbstarten att du redan har:

  • Skapade ett Durable Functions-projekt i Azure-portalen eller distribuerade en lokal Durable Functions till Azure.

Om så inte är fallet föreslår vi att du börjar med någon av följande artiklar, som innehåller detaljerade instruktioner om hur du uppnår alla krav ovan:

Aktivera hanterad identitet

Endast en identitet krävs för din funktion, antingen en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet. Om du vill aktivera en hanterad identitet för din funktion och lära dig mer om skillnaderna mellan de två identiteterna läser du de detaljerade instruktionerna här.

Tilldela rollbaserade åtkomstkontroller (RBAC) till hanterad identitet

Gå till appens lagringsresurs på Azure-portalen. Följ de här anvisningarna för att tilldela följande roller till din hanterade identitetsresurs.

  • Lagringsködatadeltagare
  • Storage Blob Data-deltagare
  • Datadeltagare för lagringstabell

Lägga till konfiguration av hanterad identitet i Azure-portalen

Gå till azure-funktionsappens konfigurationssida och utför följande ändringar:

  1. Ta bort standardvärdet "AzureWebJobsStorage".

Screenshot of default storage setting.

  1. Länka ditt Azure Storage-konto genom att lägga till någon av följande värdeinställningar:

    • AzureWebJobsStorage__accountName: Till exempel:mystorageaccount123

    • AzureWebJobsStorage__blobServiceUri: Exempel:https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobsStorage__queueServiceUri: Exempel:https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobsStorage__tableServiceUri: Exempel:https://mystorageaccount123.table.core.windows.net/

      Kommentar

      Om du använder Azure Government eller något annat moln som är separat från globala Azure måste du använda det här andra alternativet för att tillhandahålla specifika tjänst-URL:er. Värdena för de här inställningarna finns i lagringskontot under fliken Slutpunkter . Mer information om hur du använder Azure Storage med Azure Government finns i dokumentationen Utveckla med lagrings-API i Azure Government .

    Screenshot of endpoint sample.

  2. Slutför konfigurationen av din hanterade identitet:

    • Om systemtilldelad identitet ska användas anger du inget annat.

    • Om användartilldelad identitet ska användas lägger du till följande appinställningar i appkonfigurationen:

      • AzureWebJobsStorage__credential: managedidentity

      • AzureWebJobsStorage__clientId: (Detta är ett GUID-värde som du får från administrationscentret för Microsoft Entra)

      Screenshot of user identity client id.

Konfigurera din app så att den använder autentiseringsuppgifter för klienthemligheter

Att registrera ett klientprogram i Microsoft Entra-ID är ett annat sätt att konfigurera åtkomst till en Azure-tjänst. I följande steg får du lära dig hur du använder autentiseringsuppgifter för klienthemligheter för autentisering till ditt Azure Storage-konto. Den här metoden kan användas av funktionsappar både lokalt och i Azure. Klienthemlighetsautentiseringsuppgifter rekommenderas dock mindre än hanterad identitet eftersom det är mer komplicerat att konfigurera och hantera och kräver att du delar en hemlig autentiseringsuppgift med Azure Functions-tjänsten.

Förutsättningar

Följande steg förutsätter att du börjar med en befintlig Durable Functions-app och är bekant med hur du använder den. I synnerhet förutsätter den här snabbstarten att du redan har:

  • Skapade ett Durable Functions-projekt på din lokala dator eller i Azure-portalen.

Registrera ett klientprogram på Microsoft Entra-ID

  1. Registrera ett klientprogram under Microsoft Entra-ID i Azure-portalen enligt dessa instruktioner.

  2. Skapa en klienthemlighet för klientprogrammet. I ditt registrerade program:

    1. Välj Certifikat och hemligheter och välj Ny klienthemlighet.

    2. Fyll i en Beskrivning och välj giltig hemlighetstid i fältet Upphör att gälla .

    3. Kopiera och spara det hemliga värdet noggrant eftersom det inte visas igen när du har lämnat sidan.

    Screenshot of client secret page.

Tilldela rollbaserade åtkomstkontroller (RBAC) till klientprogrammet

Tilldela dessa tre roller till klientprogrammet med följande steg.

  • Lagringsködatadeltagare
  • Storage Blob Data-deltagare
  • Datadeltagare för lagringstabell
  1. Gå till funktionens IAM-sida (Storage Account Access Control) och lägg till en ny rolltilldelning.

    Screenshot of access control page.

  2. Välj den roll som krävs, klicka på nästa och sök sedan efter ditt program, granska och lägg till.

    Screenshot of role assignment page.

Lägga till konfiguration av klienthemlighet

Om du vill köra och testa i Azure anger du följande på azure-funktionsappens konfigurationssida i Azure-portalen. Om du vill köra och testa lokalt anger du följande i funktionens local.settings.json-fil .

  1. Ta bort standardvärdet "AzureWebJobsStorage".

  2. Länka Azure Storage-kontot genom att lägga till någon av följande värdeinställningar:

    • AzureWebJobsStorage__accountName: Till exempel:mystorageaccount123

    • AzureWebJobsStorage__blobServiceUri: Exempel:https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobsStorage__queueServiceUri: Exempel:https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobsStorage__tableServiceUri: Exempel:https://mystorageaccount123.table.core.windows.net/

    Värdena för dessa URI-variabler finns i lagringskontot under fliken Slutpunkter .

    Screenshot of endpoint sample.

  3. Lägg till en klienthemlighetsautentiseringsuppgift genom att ange följande värden:

    • AzureWebJobsStorage__clientId: (detta är ett GUID-värde som finns på Microsoft Entra-programsidan)

    • AzureWebJobsStorage__ClientSecret: (det här är det hemliga värdet som genererades i administrationscentret för Microsoft Entra i ett tidigare steg)

    • AzureWebJobsStorage__tenantId: (det här är klient-ID:t som Microsoft Entra-programmet är registrerat i)

    Värdena för klient-ID och klient-ID finns på klientprogrammets översiktssida. Värdet för klienthemlighet är det som sparades noggrant i föregående steg. Den kommer inte att vara tillgänglig när sidan har uppdaterats.

    Screenshot of application's overview page.