Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
- Lokale ontwikkelomgeving — Gebruik Azurite of uw ontwikkelaarsgegevens voor lokaal testen
- Identity-verbindingen voor apps die zijn geïmplementeerd in Azure — Een beheerde identiteit inschakelen en uw functie-app configureren
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:
- Uw eerste duurzame functie maken - C#
- Uw eerste duurzame functie maken - JavaScript
- Uw eerste duurzame functie maken - Python
- Uw eerste duurzame functie maken - PowerShell
- Uw eerste duurzame functie maken - Java
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:
- Een lokale cache die wordt gedeeld tussen Microsoft-toepassingen
- De huidige gebruikerscontext in Visual Studio
- De huidige gebruikerscontext in Visual Studio Code
- 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
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" } }Navigeer in de Azure-portal naar uw Azure-opslagaccountresource.
Selecteer het tabblad Access Control (IAM) en selecteer vervolgens Roltoewijzing toevoegen.
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.
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
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:
Selecteer in de Azure-portal in het resourcemenu van de functie-app onder SettingsOmgevingsvariabelen.
Zoek AzureWebJobsStorage in de lijst met instellingen en selecteer het pictogram Verwijderen .
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__accountNametoe waarmee de naam van een Azure opslagaccount wordt geïdentificeerd. Voorbeeldwaarde:mystorageaccount123On-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__blobServiceUriVoorbeeldwaarde:
https://mystorageaccount123.blob.core.windows.net/Naam van instelling:
AzureWebJobsStorage__queueServiceUriVoorbeeldwaarde:
https://mystorageaccount123.queue.core.windows.net/Naam van instelling:
AzureWebJobsStorage__tableServiceUriVoorbeeldwaarde:
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 .
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.
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
Opmerking
Durable Functions biedt geen ondersteuning voor
managedIdentityResourceIdbij het gebruik van een gebruikerstoegedeelde identiteit. Gebruik in plaats daarvanclientId.
Uw configuratie controleren
Ga als volgt te werk om te controleren of de configuratie van uw beheerde identiteit werkt:
- Navigeer in de Azure-portal naar uw functie-app en activeer uw Durable Functions indeling (bijvoorbeeld met behulp van een HTTP-triggerfunctie).
- Controleer of de orkestratie succesvol is voltooid door een statusquery uit te voeren bij het statuseindpunt of het tabblad Monitor te controleren.
- Als u authenticatiefouten ziet, controleert u of:
- Alle drie de rollen van Inzender voor opslaggegevens zijn toegewezen aan de juiste identiteit.
- De instelling
AzureWebJobsStorageverbindingsreeks wordt verwijderd. - De
AzureWebJobsStorage__accountName(of service-URI)-instellingen zijn juist.