Durable Functions configureren met Microsoft Entra-id

Microsoft Entra ID (Microsoft Entra ID) is een cloudservice voor identiteits- en toegangsbeheer. Met op identiteit gebaseerde verbindingen kan Durable Functions geautoriseerde aanvragen indienen voor met Microsoft Entra beveiligde resources, zoals een Azure Storage-account, zonder dat u geheimen handmatig hoeft te beheren. Met behulp van de standaard azure-opslagprovider moet Durable Functions worden geverifieerd voor een Azure-opslagaccount. In dit artikel laten we zien hoe u een Durable Functions-app configureert voor het gebruik van twee soorten op identiteit gebaseerde verbindingen: referenties voor beheerde identiteiten en referenties voor clientgeheimen.

Met een beheerde identiteit kan uw app eenvoudig toegang krijgen tot andere met Microsoft Entra beveiligde resources, zoals Azure Key Vault. Beheerde identiteit wordt ondersteund in Durable Functions-extensieversie2.7.0 en hoger.

Notitie

Strikt genomen is een beheerde identiteit alleen beschikbaar voor apps wanneer deze worden uitgevoerd in Azure. Wanneer deze is geconfigureerd voor het gebruik van op identiteit gebaseerde verbindingen, gebruikt een lokaal uitgevoerde app uw ontwikkelaarsreferenties om te verifiëren met Azure-resources. Wanneer deze wordt geïmplementeerd in Azure, wordt in plaats daarvan gebruikgemaakt van de configuratie van uw beheerde identiteit.

Vereisten

In de volgende stappen wordt ervan uitgegaan dat u begint met een bestaande Durable Functions-app en bekend bent met hoe u deze kunt gebruiken. In deze quickstart wordt met name ervan uitgegaan dat u het volgende al hebt:

  • U hebt een Durable Functions-project gemaakt in Azure Portal of een lokale Durable Functions geïmplementeerd in Azure.

Als dit niet het geval is, raden we u aan om te beginnen met een van de volgende artikelen, die gedetailleerde instructies bevat voor het bereiken van alle bovenstaande vereisten:

Beheerde identiteit inschakelen

Er is slechts één identiteit nodig voor uw functie, ofwel een door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit. Als u een beheerde identiteit voor uw functie wilt inschakelen en meer wilt weten over de verschillen tussen de twee identiteiten, leest u de gedetailleerde instructies hier.

Op rollen gebaseerd toegangsbeheer (RBAC) toewijzen aan beheerde identiteit

Navigeer naar de opslagresource van uw app in Azure Portal. Volg deze instructies om de volgende rollen toe te wijzen aan uw beheerde identiteitsresource.

  • Inzender voor opslagwachtrijgegevens
  • Inzender voor Storage Blob-gegevens
  • Bijdrager voor opslagtabelgegevens

Configuratie van beheerde identiteit toevoegen in Azure Portal

Navigeer naar de configuratiepagina van uw Azure-functie-app en voer de volgende wijzigingen uit:

  1. Verwijder de standaardwaarde 'AzureWebJobsStorage'.

Screenshot of default storage setting.

  1. Koppel uw Azure-opslagaccount door een van de volgende waarde-instellingen toe te voegen:

    • AzureWebJobsStorage__accountName: bijvoorbeeld:mystorageaccount123

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

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

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

      Notitie

      Als u Azure Government of een andere cloud gebruikt die losstaat van globale Azure, moet u deze tweede optie gebruiken om specifieke service-URL's op te geven. De waarden voor deze instellingen vindt u in het opslagaccount op het tabblad Eindpunten . Zie de documentatie ontwikkelen met storage-API in Azure Government voor meer informatie over het gebruik van Azure Storage met Azure Government .

    Screenshot of endpoint sample.

  2. Voltooi de configuratie van uw beheerde identiteit:

    • Als door het systeem toegewezen identiteit moet worden gebruikt, geeft u niets anders op.

    • Als de door de gebruiker toegewezen identiteit moet worden gebruikt, voegt u de volgende waarden voor app-instellingen toe in uw app-configuratie:

      • AzureWebJobsStorage__credential: managedidentity

      • AzureWebJobsStorage__clientId: (Dit is een GUID-waarde die u verkrijgt uit het Microsoft Entra-beheercentrum)

      Screenshot of user identity client id.

Uw app configureren voor het gebruik van clientgeheimreferenties

Het registreren van een clienttoepassing in Microsoft Entra ID is een andere manier waarop u de toegang tot een Azure-service kunt configureren. In de volgende stappen leert u hoe u clientgeheimreferenties gebruikt voor verificatie bij uw Azure Storage-account. Deze methode kan zowel lokaal als in Azure worden gebruikt door functie-apps. Clientgeheimreferenties worden echter minder aanbevolen dan beheerde identiteiten, omdat het ingewikkelder is om te configureren en beheren. Hiervoor moet een geheime referentie worden gedeeld met de Azure Functions-service.

Vereisten

In de volgende stappen wordt ervan uitgegaan dat u begint met een bestaande Durable Functions-app en bekend bent met hoe u deze kunt gebruiken. In deze quickstart wordt met name ervan uitgegaan dat u het volgende al hebt:

  • Er is een Durable Functions-project gemaakt op uw lokale computer of in Azure Portal.

Een clienttoepassing registreren op Microsoft Entra-id

  1. Registreer een clienttoepassing onder Microsoft Entra-id in Azure Portal volgens deze instructies.

  2. Maak een clientgeheim voor uw clienttoepassing. In uw geregistreerde toepassing:

    1. Selecteer Certificaten en geheimen en selecteer Nieuw clientgeheim.

    2. Vul een beschrijving in en kies geheim geldige tijd in het veld Verloopt .

    3. Kopieer en sla de geheime waarde zorgvuldig op omdat deze niet opnieuw wordt weergegeven nadat u de pagina hebt verlaten.

    Screenshot of client secret page.

Op rollen gebaseerd toegangsbeheer (RBAC) toewijzen aan de clienttoepassing

Wijs deze drie rollen toe aan uw clienttoepassing met de volgende stappen.

  • Inzender voor opslagwachtrijgegevens
  • Inzender voor Storage Blob-gegevens
  • Bijdrager voor opslagtabelgegevens
  1. Navigeer naar de pagina Toegangsbeheer (IAM) van uw functie voor opslagaccounts en voeg een nieuwe roltoewijzing toe.

    Screenshot of access control page.

  2. Kies de vereiste rol, klik op volgende en zoek naar uw toepassing, controleer en voeg deze toe.

    Screenshot of role assignment page.

Configuratie van clientgeheim toevoegen

Als u wilt uitvoeren en testen in Azure, geeft u de volgende waarden op op de pagina Configuratie van uw Azure-functie-app in Azure Portal. Als u lokaal wilt uitvoeren en testen, geeft u het volgende op in het bestand local.settings.json van de functie.

  1. Verwijder de standaardwaarde 'AzureWebJobsStorage'.

  2. Koppel een Azure-opslagaccount door een van de volgende waarde-instellingen toe te voegen:

    • AzureWebJobsStorage__accountName: bijvoorbeeld:mystorageaccount123

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

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

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

    De waarden voor deze URI-variabelen vindt u in het opslagaccount op het tabblad Eindpunten .

    Screenshot of endpoint sample.

  3. Voeg een referenties voor het clientgeheim toe door de volgende waarden op te geven:

    • AzureWebJobsStorage__clientId: (dit is een GUID-waarde op de toepassingspagina van Microsoft Entra)

    • AzureWebJobsStorage__ClientSecret: (dit is de geheime waarde die is gegenereerd in het Microsoft Entra-beheercentrum in een vorige stap)

    • AzureWebJobsStorage__tenantId: (dit is de tenant-id waarin de Microsoft Entra-toepassing is geregistreerd)

    De client-id en tenant-id-waarden vindt u op de overzichtspagina van uw clienttoepassing. De waarde van het clientgeheim is de waarde die in de vorige stap zorgvuldig is opgeslagen. Deze is niet beschikbaar nadat de pagina is vernieuwd.

    Screenshot of application's overview page.