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.
Konfigurera din app så att den använder hanterad identitet (rekommenderas)
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:
- 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
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:
- Ta bort standardvärdet "AzureWebJobsStorage".
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 .
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)
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
Registrera ett klientprogram under Microsoft Entra-ID i Azure-portalen enligt dessa instruktioner.
Skapa en klienthemlighet för klientprogrammet. I ditt registrerade program:
Välj Certifikat och hemligheter och välj Ny klienthemlighet.
Fyll i en Beskrivning och välj giltig hemlighetstid i fältet Upphör att gälla .
Kopiera och spara det hemliga värdet noggrant eftersom det inte visas igen när du har lämnat sidan.
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
Gå till funktionens IAM-sida (Storage Account Access Control) och lägg till en ny rolltilldelning.
Välj den roll som krävs, klicka på nästa och sök sedan efter ditt program, granska och lägg till.
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 .
Ta bort standardvärdet "AzureWebJobsStorage".
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 .
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.