Share via


Migrera ett program för att använda lösenordslösa anslutningar med Azure Queue Storage

Programbegäranden till Azure-tjänster måste autentiseras med hjälp av konfigurationer som kontoåtkomstnycklar eller lösenordslösa anslutningar. Du bör dock prioritera lösenordslösa anslutningar i dina program när det är möjligt. Traditionella autentiseringsmetoder som använder lösenord eller hemliga nycklar skapar säkerhetsrisker och komplikationer. Gå till hubben för lösenordslösa anslutningar för Azure-tjänster för att lära dig mer om fördelarna med att flytta till lösenordslösa anslutningar.

I följande självstudie beskrivs hur du migrerar ett befintligt program för att ansluta med lösenordslösa anslutningar. Samma migreringssteg bör gälla oavsett om du använder åtkomstnycklar, anslutningssträng eller någon annan hemlighetsbaserad metod.

Konfigurera din lokala utvecklingsmiljö

Lösenordslösa anslutningar kan konfigureras för att fungera för både lokala och Azure-värdbaserade miljöer. I det här avsnittet använder du konfigurationer för att tillåta enskilda användare att autentisera till Azure Queue Storage för lokal utveckling.

Tilldela användarroller

När du utvecklar lokalt kontrollerar du att användarkontot som har åtkomst till Queue Storage har rätt behörigheter. Du behöver rollen Lagringsködatadeltagare för att läsa och skriva ködata. Om du vill tilldela dig själv den här rollen måste du tilldelas rollen Administratör för användaråtkomst eller en annan roll som innehåller åtgärden Microsoft.Authorization/roleAssignments/write . Du kan tilldela Azure RBAC-roller till en användare med hjälp av Azure-portalen, Azure CLI eller Azure PowerShell. Läs mer om tillgängliga omfång för rolltilldelningar på översiktssidan för omfång .

I följande exempel tilldelas rollen Lagringsködatadeltagare till ditt användarkonto. Den här rollen ger läs- och skrivåtkomst till ködata i ditt lagringskonto.

  1. Leta upp ditt lagringskonto i Azure-portalen med hjälp av huvudsökfältet eller det vänstra navigeringsfältet.

  2. På översiktssidan för lagringskontot väljer du Åtkomstkontroll (IAM) på den vänstra menyn.

  3. På sidan Åtkomstkontroll (IAM) väljer du fliken Rolltilldelningar .

  4. Välj + Lägg till på den översta menyn och sedan Lägg till rolltilldelning från den resulterande nedrullningsbara menyn.

    A screenshot showing how to assign a role.

  5. Använd sökrutan för att filtrera resultatet till önskad roll. I det här exemplet söker du efter Storage Queue Data Contributor och väljer matchande resultat och väljer sedan Nästa.

  6. Under Tilldela åtkomst till väljer du Användare, grupp eller tjänstens huvudnamn och sedan + Välj medlemmar.

  7. I dialogrutan söker du efter ditt Microsoft Entra-användarnamn (vanligtvis din user@domain e-postadress) och väljer sedan Välj längst ned i dialogrutan.

  8. Välj Granska + tilldela för att gå till den sista sidan och sedan Granska + tilldela igen för att slutföra processen.

Viktigt!

I de flesta fall tar det en minut eller två för rolltilldelningen att spridas i Azure, men i sällsynta fall kan det ta upp till åtta minuter. Om du får autentiseringsfel när du först kör koden väntar du en stund och försöker igen.

Logga in på Azure lokalt

För lokal utveckling kontrollerar du att du är autentiserad med samma Microsoft Entra-konto som du tilldelade rollen till. Du kan autentisera via populära utvecklingsverktyg, till exempel Azure CLI eller Azure PowerShell. De utvecklingsverktyg som du kan autentisera med varierar mellan olika språk.

Logga in på Azure via Azure CLI med följande kommando:

az login

Uppdatera programkoden för att använda lösenordslösa anslutningar

Azure Identity-klientbiblioteket för vart och ett av följande ekosystem tillhandahåller en DefaultAzureCredential klass som hanterar lösenordslös autentisering till Azure:

DefaultAzureCredential stöder flera autentiseringsmetoder. Vilken metod som ska användas bestäms vid körning. Med den här metoden kan din app använda olika autentiseringsmetoder i olika miljöer (lokalt jämfört med produktion) utan att implementera miljöspecifik kod. Se föregående länkar för den ordning och de platser där DefaultAzureCredential autentiseringsuppgifterna söks.

  1. Om du vill använda DefaultAzureCredential i ett .NET-program installerar du Azure.Identity paketet:

    dotnet add package Azure.Identity
    
  2. Lägg till följande kod överst i filen:

    using Azure.Identity;
    
  3. Identifiera de platser i koden som skapar ett QueueClient objekt för att ansluta till Azure Queue Storage. Uppdatera koden så att den matchar följande exempel:

    DefaultAzureCredential credential = new();
    
    QueueClient queueClient = new(
         new Uri($"https://{storageAccountName}.queue.core.windows.net/{queueName}"),
         new DefaultAzureCredential());
    
  1. Se till att uppdatera lagringskontots namn i objektets QueueClient URI. Du hittar namnet på lagringskontot på översiktssidan i Azure-portalen.

    Screenshot showing how to find the storage account name.

Köra appen lokalt

När du har gjort dessa kodändringar kör du programmet lokalt. Den nya konfigurationen bör hämta dina lokala autentiseringsuppgifter, till exempel Azure CLI, Visual Studio eller IntelliJ. Med de roller som du har tilldelat till din användare i Azure kan din app ansluta till Azure-tjänsten lokalt.

Konfigurera Azure-värdmiljön

När programmet har konfigurerats för att använda lösenordslösa anslutningar och körs lokalt kan samma kod autentisera till Azure-tjänster när den har distribuerats till Azure. I avsnitten nedan beskrivs hur du konfigurerar ett distribuerat program för att ansluta till Azure Queue Storage med hjälp av en hanterad identitet. Hanterade identiteter tillhandahåller en automatiskt hanterad identitet i Microsoft Entra-ID för program som ska användas vid anslutning till resurser som stöder Microsoft Entra-autentisering. Läs mer om hanterade identiteter:

Skapa den hanterade identiteten

Du kan skapa en användartilldelad hanterad identitet med hjälp av Azure-portalen eller Azure CLI. Ditt program använder identiteten för att autentisera till andra tjänster.

  1. Överst i Azure-portalen söker du efter hanterade identiteter. Välj resultatet Hanterade identiteter .
  2. Välj + Skapa överst på översiktssidan för hanterade identiteter .
  3. På fliken Grundläggande anger du följande värden:
    • Prenumeration: Välj önskad prenumeration.
    • Resursgrupp: Välj önskad resursgrupp.
    • Region: Välj en region nära din plats.
    • Namn: Ange ett igenkännbart namn för din identitet, till exempel MigrationIdentity.
  4. Välj Granska + skapa längst ned på sidan.
  5. När verifieringen har slutförts väljer du Skapa. Azure skapar en ny användartilldelad identitet.

När resursen har skapats väljer du Gå till resurs för att visa information om den hanterade identiteten.

A screenshot showing how to create a user assigned managed identity.

Associera den hanterade identiteten med din webbapp

Du måste konfigurera webbappen så att den använder den hanterade identitet som du skapade. Tilldela identiteten till din app med hjälp av antingen Azure-portalen eller Azure CLI.

Slutför följande steg i Azure-portalen för att associera en identitet med din app. Samma steg gäller för följande Azure-tjänster:

  • Azure Spring Apps
  • Azure Container Apps
  • Virtuella Azure-datorer
  • Azure Kubernetes Service
  1. Gå till översiktssidan för webbappen.

  2. Välj Identitet i det vänstra navigeringsfältet.

  3. På sidan Identitet växlar du till fliken Användartilldelad .

  4. Välj + Lägg till för att öppna den utfällbara menyn Lägg till användartilldelad hanterad identitet .

  5. Välj den prenumeration som du använde tidigare för att skapa identiteten.

  6. Sök efter MigrationIdentity efter namn och välj den i sökresultaten.

  7. Välj Lägg till för att associera identiteten med din app.

    Screenshot showing how to create a user assigned identity.

Tilldela roller till den hanterade identiteten

Därefter måste du bevilja behörigheter till den hanterade identitet som du skapade för att få åtkomst till ditt lagringskonto. Bevilja behörigheter genom att tilldela en roll till den hanterade identiteten, precis som du gjorde med din lokala utvecklingsanvändare.

  1. Gå till översiktssidan för ditt lagringskonto och välj Åtkomstkontroll (IAM) i det vänstra navigeringsfältet.

  2. Välj Lägg till rolltilldelning

    Screenshot showing how to add a role to a managed identity.

  3. I sökrutan Roll söker du efter Storage Queue Data Contributor, som är en vanlig roll som används för att hantera dataåtgärder för köer. Du kan tilldela vilken roll som är lämplig för ditt användningsfall. Välj lagringsködatadeltagaren i listan och välj Nästa.

  4. På skärmen Lägg till rolltilldelning går du till alternativet Tilldela åtkomst till och väljer Hanterad identitet. Välj sedan +Välj medlemmar.

  5. I den utfällbara menyn söker du efter den hanterade identitet som du skapade med namn och väljer den i resultatet. Välj Välj för att stänga den utfällbara menyn.

    Screenshot showing how to select the assigned managed identity.

  6. Välj Nästa ett par gånger tills du kan välja Granska + tilldela för att slutföra rolltilldelningen.

Uppdatera programkoden

Du måste konfigurera programkoden för att söka efter den specifika hanterade identitet som du skapade när den distribuerades till Azure. I vissa scenarier förhindrar explicit inställning av den hanterade identiteten för appen även andra miljöidentiteter från att oavsiktligt identifieras och användas automatiskt.

  1. På översiktssidan för hanterad identitet kopierar du klient-ID-värdet till Urklipp.

  2. Tillämpa följande språkspecifika ändringar:

    Skapa ett DefaultAzureCredentialOptions objekt och skicka det till DefaultAzureCredential. Ange egenskapen ManagedIdentityClientId till klient-ID:t.

    DefaultAzureCredential credential = new(
        new DefaultAzureCredentialOptions
        {
            ManagedIdentityClientId = managedIdentityClientId
        });
    
  3. Distribuera om koden till Azure när du har gjort den här ändringen för att konfigurationsuppdateringarna ska tillämpas.

Testa appen

När du har distribuerat den uppdaterade koden bläddrar du till ditt värdbaserade program i webbläsaren. Appen bör kunna ansluta till lagringskontot. Tänk på att det kan ta flera minuter innan rolltilldelningarna sprids via din Azure-miljö. Ditt program är nu konfigurerat att köras både lokalt och i en produktionsmiljö utan att utvecklarna behöver hantera hemligheter i själva programmet.

Nästa steg

I den här självstudien har du lärt dig hur du migrerar ett program till lösenordslösa anslutningar.

Du kan läsa följande resurser för att utforska begreppen som beskrivs i den här artikeln mer ingående: