Quickstart: Durable Functions configureren met beheerde identiteit

In deze quickstart ziet u hoe u een Durable Functions-app configureert met behulp van de standaardprovider Azure Storage voor het gebruik van op identiteit gebaseerde verbindingen, zodat uw app toegang heeft tot het opslagaccount zonder geheimen te beheren. Een beheerde identiteit van Microsoft Entra ID wordt beheerd door het Azure-platform. U hoeft geen geheimen in te richten of te roteren.

In dit artikel:

Opmerking

Beheerde identiteit wordt ondersteund in Durable Functions extension versies 2.7.0 en hoger.

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

Vereiste voorwaarden

U hebt het volgende nodig om deze quickstart te voltooien:

  • Een bestaand Durable Functions project dat is gemaakt in de Azure-portal of een lokaal Durable Functions project dat is geïmplementeerd in Azure.
  • Bekendheid met het uitvoeren van een Durable Functions-app in Azure.

Als u geen bestaand Durable Functions project hebt geïmplementeerd in Azure, raden we u aan om te beginnen met een van de volgende quickstarts:

Instelling van lokale ontwikkeling

U hebt twee opties voor lokale ontwikkeling. Gebruik Azurite voor snelle lokale tests zonder Azure referenties. Als u op identiteit gebaseerde verbindingen wilt testen op basis van een echt Azure Storage-account, gebruikt u in plaats daarvan uw referenties voor ontwikkelaars.

Optie 1: de Azure Storage emulator gebruiken

Wanneer u lokaal ontwikkelt, is het raadzaam om Azurite te gebruiken. Dit is Azure Storage lokale emulator. Configureer uw app voor de emulator door op te "AzureWebJobsStorage": "UseDevelopmentStorage=true" geven in de local.settings.json.

Optie 2: Op identiteit gebaseerde verbindingen voor lokale ontwikkeling

Strikt genomen is een beheerde identiteit alleen beschikbaar voor apps wanneer deze worden uitgevoerd op Azure. U kunt echter nog steeds een lokaal draaiende app configureren voor het gebruik van een op identiteit gebaseerde verbinding met behulp van uw ontwikkelaarsreferenties om te verifiëren bij Azure resources. Wanneer de app vervolgens wordt geïmplementeerd op Azure, wordt in plaats daarvan de configuratie van uw beheerde identiteit gebruikt.

Wanneer u referenties voor ontwikkelaars gebruikt, probeert de verbinding in deze volgorde een token op te halen van de volgende locaties:

  1. Een lokale cache die wordt gedeeld tussen Microsoft-toepassingen
  2. De huidige gebruikerscontext in Visual Studio
  3. De huidige gebruikerscontext in Visual Studio Code
  4. De huidige gebruikerscontext in de Azure CLI

Als geen van deze opties is geslaagd, krijgt u een foutmelding die aangeeft dat de app geen verificatietoken kan ophalen. Controleer of u bent aangemeld bij een van de vermelde hulpprogramma's met een account dat toegang heeft tot uw Azure Storage-account.

Runtime configureren voor het gebruik van een lokale ontwikkelaarsidentiteit

  1. Geef de naam van uw Azure Storage-account op in local.settings.json, bijvoorbeeld:

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>",
          "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
       }
    }
    
  2. Navigeer in de Azure-portal naar uw Azure-opslagaccountresource.

  3. Selecteer het tabblad Access Control (IAM) en selecteer vervolgens Roltoewijzing toevoegen.

  4. Wijs elk van de volgende rollen aan uzelf toe. Selecteer voor elke rol '+ Leden selecteren' en zoek naar de e-mail die u gebruikt om u aan te melden bij Visual Studio, Visual Studio Code of de Azure CLI.

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

    Opmerking

    Dit zijn dezelfde drie rollen die vereist zijn voor uw beheerde identiteit bij de implementatie in Azure. Zie Toegangsrollen toewijzen aan de beheerde identiteit.

    Scherm van het toewijzen van de rol Opslaggegevensbijdrager aan een gebruiker in de Azure-portal Access Control page.

Op identiteit gebaseerde verbindingen voor app die is geïmplementeerd in Azure

Een beheerde identiteitsresource inschakelen

Schakel eerst een beheerde identiteit in voor uw toepassing. Uw functie-app moet een door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit hebben. Als u een beheerde identiteit voor uw functie-app wilt inschakelen en meer wilt weten over de verschillen tussen de twee typen identiteiten, raadpleegt u het overzicht van de beheerde identiteit.

Toegangsrollen toewijzen aan de beheerde identiteit

Navigeer naar de Azure Storage-resource van uw app in de Azure-portal en wijs drie RBAC-rollen (op rollen gebaseerd toegangsbeheer) toe aan de resource voor uw beheerde identiteit:

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

Als u uw identiteitsresource wilt vinden, selecteert u Toegang tot beheerde identiteit toewijzen en selecteert u vervolgens + Leden selecteren

Scherm van het toewijzen van opslagtoegangsrollen aan een beheerde identiteit in de Azure portal.

De configuratie van de beheerde identiteit toevoegen aan uw app

Voordat u de beheerde identiteit van uw app kunt gebruiken, moet u enkele wijzigingen aanbrengen in de app-instellingen:

  1. Selecteer in de Azure-portal in het resourcemenu van de functie-app onder SettingsOmgevingsvariabelen.

  2. Zoek AzureWebJobsStorage in de lijst met instellingen en selecteer het pictogram Verwijderen . Schermopname van de omgevingsvariabele AzureWebJobsStorage in de functie-app-instellingen van de Azure-portal.

  3. Voeg een instelling toe om uw Azure opslagaccount aan de toepassing te koppelen.

    Gebruik een van de volgende methoden , afhankelijk van de cloud waarin uw app wordt uitgevoerd:

    • Azure cloud: Als uw app wordt uitgevoerd in globale Azure, voegt u de instelling AzureWebJobsStorage__accountName toe waarmee de naam van een Azure opslagaccount wordt geïdentificeerd. Voorbeeldwaarde: mystorageaccount123

    • On-Azure cloud: Als uw toepassing wordt uitgevoerd in een cloud buiten Azure, moet u de volgende drie instellingen toevoegen om specifieke service-URI's (of endpoints) van het opslagaccount op te geven in plaats van een accountnaam.

      • Naam van instelling: AzureWebJobsStorage__blobServiceUri

        Voorbeeldwaarde: https://mystorageaccount123.blob.core.windows.net/

      • Naam van instelling: AzureWebJobsStorage__queueServiceUri

        Voorbeeldwaarde: https://mystorageaccount123.queue.core.windows.net/

      • Naam van instelling: AzureWebJobsStorage__tableServiceUri

        Voorbeeldwaarde: https://mystorageaccount123.table.core.windows.net/

    U kunt de waarden voor deze URI-variabelen ophalen in de gegevens van het opslagaccount op het tabblad Eindpunten .

    Schermopname van het tabblad Eindpunten van het opslagaccount met blob-, wachtrij- en tabelservice-URI's.

    Opmerking

    Als u Azure Government of een andere cloud gebruikt die losstaat van globale Azure, moet u de optie gebruiken die specifieke service-URI's biedt in plaats van alleen de naam van het opslagaccount. Zie de Ontwikkeling met behulp van de Storage-API in Azure Government voor meer informatie over het gebruik van Azure Storage met Azure Government.

  4. Voltooi de configuratie van uw beheerde identiteit (vergeet niet op Toepassen te klikken nadat u de instellingswijzigingen hebt aangebracht):

    • Als u een door het systeem toegewezen identiteit gebruikt, moet u geen andere wijzigingen aanbrengen.

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

      • AzureWebJobsStorage__credential, voert u managedidentity in

      • AzureWebJobsStorage__clientId haalt u deze GUID-waarde op uit uw beheerde identiteitsresource

    Schermopname van de door de gebruiker toegewezen beheerde identiteitsresource met de waarde van de client-id.

    Opmerking

    Durable Functions biedt geen ondersteuning voor managedIdentityResourceId bij het gebruik van een gebruikerstoegedeelde identiteit. Gebruik in plaats daarvan clientId.

Uw configuratie controleren

Ga als volgt te werk om te controleren of de configuratie van uw beheerde identiteit werkt:

  1. Navigeer in de Azure-portal naar uw functie-app en activeer uw Durable Functions indeling (bijvoorbeeld met behulp van een HTTP-triggerfunctie).
  2. Controleer of de orkestratie succesvol is voltooid door een statusquery uit te voeren bij het statuseindpunt of het tabblad Monitor te controleren.
  3. Als u authenticatiefouten ziet, controleert u of:
    • Alle drie de rollen van Inzender voor opslaggegevens zijn toegewezen aan de juiste identiteit.
    • De instelling AzureWebJobsStorage verbindingsreeks wordt verwijderd.
    • De AzureWebJobsStorage__accountName (of service-URI)-instellingen zijn juist.

Volgende stappen