Een toepassing migreren om wachtwoordloze verbindingen te gebruiken met Azure Event Hubs
Toepassingsaanvragen voor Azure-services moeten worden geverifieerd met behulp van configuraties zoals toegangssleutels voor accounts of verbindingen zonder wachtwoord. U moet echter waar mogelijk prioriteit geven aan verbindingen zonder wachtwoord in uw toepassingen. Traditionele verificatiemethoden die gebruikmaken van wachtwoorden of geheime sleutels maken beveiligingsrisico's en complicaties. Ga naar de verbindingen zonder wachtwoord voor Azure Services Hub voor meer informatie over de voordelen van het verplaatsen naar verbindingen zonder wachtwoord.
In de volgende zelfstudie wordt uitgelegd hoe u een bestaande toepassing migreert om verbinding te maken met behulp van verbindingen zonder wachtwoord. Dezelfde migratiestappen moeten van toepassing zijn, ongeacht of u toegangssleutels, verbindingsreeks s of een andere benadering op basis van geheimen gebruikt.
Uw lokale ontwikkelomgeving configureren
Verbindingen zonder wachtwoord kunnen worden geconfigureerd voor zowel lokale als door Azure gehoste omgevingen. In deze sectie past u configuraties toe zodat afzonderlijke gebruikers zich kunnen verifiëren bij Azure Event Hubs voor lokale ontwikkeling.
Gebruikersrollen toewijzen
Zorg er bij het lokaal ontwikkelen voor dat het gebruikersaccount dat toegang heeft tot Azure Event Hubs over de juiste machtigingen beschikt. U hebt de rollen Azure Event Hubs-gegevensontvanger en Azure Event Hubs-gegevenszender nodig om berichtgegevens te lezen en te schrijven. Als u uzelf deze rol wilt toewijzen, moet u de rol Beheerder voor gebruikerstoegang of een andere rol met de actie Microsoft.Authorization/roleAssignments/write krijgen toegewezen. U kunt Azure RBAC-rollen toewijzen aan een gebruiker met behulp van Azure Portal, Azure CLI of Azure PowerShell. Meer informatie over de beschikbare bereiken voor roltoewijzingen op de overzichtspagina van het bereik.
In het volgende voorbeeld worden de rollen Azure Event Hubs-gegevenszender en Azure Event Hubs-gegevensontvanger toegewezen aan uw gebruikersaccount. Deze rol verleent lees- en schrijftoegang tot Event Hub-berichten.
Zoek in Azure Portal uw Event Hub met behulp van de hoofdzoekbalk of linkernavigatiebalk.
Selecteer op de overzichtspagina van Event Hub toegangsbeheer (IAM) in het menu aan de linkerkant.
Selecteer op de pagina Toegangsbeheer (IAM) het tabblad Roltoewijzingen .
Selecteer + Toevoegen in het bovenste menu en voeg vervolgens roltoewijzing toe in de resulterende vervolgkeuzelijst.
Gebruik het zoekvak om de resultaten te filteren op de gewenste rol. Zoek voor dit voorbeeld naar Azure Event Hubs-gegevenszender en selecteer het overeenkomende resultaat en kies vervolgens Volgende.
Selecteer onder Toegang toewijzen de optie Gebruiker, groep of service-principal en kies vervolgens + Leden selecteren.
Zoek in het dialoogvenster naar uw Microsoft Entra-gebruikersnaam (meestal uw user@domain e-mailadres) en kies Vervolgens onderaan het dialoogvenster Selecteren .
Selecteer Beoordelen + toewijzen om naar de laatste pagina te gaan en vervolgens opnieuw beoordelen en toewijzen om het proces te voltooien.
Herhaal deze stappen voor de azure Event Hubs-gegevensontvangerrol om het account toe te staan berichten te verzenden en te ontvangen.
Belangrijk
In de meeste gevallen duurt het een of twee minuten voordat de roltoewijzing is doorgegeven in Azure, maar in zeldzame gevallen kan het maximaal acht minuten duren. Als u verificatiefouten ontvangt wanneer u de code voor het eerst uitvoert, wacht u even en probeert u het opnieuw.
Lokaal aanmelden bij Azure
Zorg ervoor dat u voor lokale ontwikkeling bent geverifieerd met hetzelfde Microsoft Entra-account waaraan u de rol hebt toegewezen. U kunt zich verifiëren via populaire ontwikkelhulpprogramma's, zoals de Azure CLI of Azure PowerShell. De ontwikkelhulpprogramma's waarmee u zich kunt verifiëren, variëren per taal.
Meld u aan bij Azure via de Azure CLI met behulp van de volgende opdracht:
az login
De toepassingscode bijwerken voor het gebruik van verbindingen zonder wachtwoord
De Azure Identity-clientbibliotheek biedt voor elk van de volgende ecosystemen een DefaultAzureCredential
klasse die verificatie zonder wachtwoord naar Azure afhandelt:
DefaultAzureCredential
ondersteunt meerdere verificatiemethoden. De te gebruiken methode wordt tijdens runtime bepaald. Met deze aanpak kan uw app verschillende verificatiemethoden gebruiken in verschillende omgevingen (lokaal versus productie) zonder omgevingsspecifieke code te implementeren. Zie de voorgaande koppelingen voor de volgorde en locaties waarin DefaultAzureCredential
wordt gezocht naar referenties.
Als u wilt gebruiken
DefaultAzureCredential
in een .NET-toepassing, installeert u hetAzure.Identity
pakket:dotnet add package Azure.Identity
Voeg boven aan het bestand de volgende code toe:
using Azure.Identity;
Identificeer de locaties in uw code die een
EventHubProducerClient
ofEventProcessorClient
object maken om verbinding te maken met Azure Event Hubs. Werk uw code bij zodat deze overeenkomt met het volgende voorbeeld:DefaultAzureCredential credential = new(); var eventHubNamespace = $"https://{namespace}.servicebus.windows.net"; // Event Hubs producer EventHubProducerClient producerClient = new( eventHubNamespace, eventHubName, credential); // Event Hubs processor EventProcessorClient processorClient = new( storageClient, EventHubConsumerClient.DefaultConsumerGroupName, eventHubNamespace, eventHubName, credential);
Zorg ervoor dat u de Event Hubs-naamruimte bijwerkt in de URI van uw
EventHubProducerClient
ofEventProcessorClient
objecten. U vindt de naamruimtenaam op de overzichtspagina van Azure Portal.
De app lokaal uitvoeren
Nadat u deze codewijzigingen hebt aangebracht, voert u uw toepassing lokaal uit. De nieuwe configuratie moet uw lokale referenties ophalen, zoals de Azure CLI, Visual Studio of IntelliJ. Met de rollen die u aan uw gebruiker in Azure hebt toegewezen, kan uw app lokaal verbinding maken met de Azure-service.
De Azure-hostingomgeving configureren
Zodra uw toepassing is geconfigureerd voor het gebruik van verbindingen zonder wachtwoord en lokaal wordt uitgevoerd, kan dezelfde code worden geverifieerd bij Azure-services nadat deze is geïmplementeerd in Azure. In de volgende secties wordt uitgelegd hoe u een geïmplementeerde toepassing configureert om verbinding te maken met Azure Event Hubs met behulp van een beheerde identiteit. Beheerde identiteiten bieden een automatisch beheerde identiteit in Microsoft Entra ID voor toepassingen die worden gebruikt om verbinding te maken met resources die Microsoft Entra-verificatie ondersteunen. Meer informatie over beheerde identiteiten:
De beheerde identiteit maken
U kunt een door de gebruiker toegewezen beheerde identiteit maken met behulp van Azure Portal of de Azure CLI. Uw toepassing gebruikt de identiteit om te verifiëren bij andere services.
- Zoek boven aan Azure Portal naar beheerde identiteiten. Selecteer het resultaat beheerde identiteiten .
- Selecteer + Maken boven aan de overzichtspagina beheerde identiteiten .
- Voer op het tabblad Basisinformatie de volgende waarden in:
- Abonnement: Selecteer uw gewenste abonnement.
- Resourcegroep: selecteer de gewenste resourcegroep.
- Regio: Selecteer een regio in de buurt van uw locatie.
- Naam: Voer een herkenbare naam in voor uw identiteit, zoals MigrationIdentity.
- Selecteer Controleren en maken onderaan de pagina.
- Wanneer de validatiecontroles zijn voltooid, selecteert u Maken. Azure maakt een nieuwe door de gebruiker toegewezen identiteit.
Nadat de resource is gemaakt, selecteert u Ga naar de resource om de details van de beheerde identiteit weer te geven.
De beheerde identiteit koppelen aan uw web-app
U moet uw web-app configureren voor het gebruik van de beheerde identiteit die u hebt gemaakt. Wijs de identiteit toe aan uw app met behulp van Azure Portal of de Azure CLI.
Voer de volgende stappen uit in Azure Portal om een identiteit aan uw app te koppelen. Dezelfde stappen zijn van toepassing op de volgende Azure-services:
- Azure Spring Apps
- Azure Container Apps
- Azure-VM's
- Azure Kubernetes Service
Navigeer naar de overzichtspagina van uw web-app.
Selecteer Identiteit in het linkernavigatievenster.
Schakel op de pagina Identiteit over naar het tabblad Door de gebruiker toegewezen .
Selecteer + Toevoegen om de flyout Door de gebruiker toegewezen beheerde identiteit toevoegen te openen.
Selecteer het abonnement dat u eerder hebt gebruikt om de identiteit te maken.
Zoek op naam naar MigrationIdentity en selecteer deze in de zoekresultaten.
Selecteer Toevoegen om de identiteit aan uw app te koppelen.
Rollen toewijzen aan de beheerde identiteit
Vervolgens moet u machtigingen verlenen aan de beheerde identiteit die u hebt gemaakt voor toegang tot uw Event Hub. Verken machtigingen door een rol toe te wijzen aan de beheerde identiteit, net als bij uw lokale ontwikkelgebruiker.
Navigeer naar de overzichtspagina van uw Event Hub en selecteer Toegangsbeheer (IAM) in het linkernavigatievenster.
Roltoewijzing toevoegen kiezen
Zoek in het zoekvak voor rollen naar Azure Event Hubs-gegevenszender. Dit is een algemene rol die wordt gebruikt voor het beheren van gegevensbewerkingen voor wachtrijen. U kunt elke rol toewijzen die geschikt is voor uw use-case. Selecteer de Azure Event Hubs-gegevenszender in de lijst en kies Volgende.
Selecteer beheerde identiteit in het scherm Roltoewijzing toevoegen voor de optie Toegang toewijzen aan. Kies vervolgens +Leden selecteren.
Zoek in de flyout naar de beheerde identiteit die u op naam hebt gemaakt en selecteer deze in de resultaten. Kies Selecteren om het flyoutmenu te sluiten.
Selecteer Volgende een paar keer totdat u Controleren en toewijzen kunt selecteren om de roltoewijzing te voltooien.
Herhaal deze stappen voor de azure Event Hub-gegevensontvangerrol .
De toepassingscode bijwerken
U moet uw toepassingscode configureren om te zoeken naar de specifieke beheerde identiteit die u hebt gemaakt tijdens de implementatie in Azure. In sommige scenario's voorkomt het expliciet instellen van de beheerde identiteit voor de app dat andere omgevingsidentiteiten per ongeluk worden gedetecteerd en automatisch worden gebruikt.
Kopieer op de overzichtspagina van de beheerde identiteit de waarde van de client-id naar het klembord.
Pas de volgende taalspecifieke wijzigingen toe:
Maak een
DefaultAzureCredentialOptions
object en geef het door aanDefaultAzureCredential
. Stel de eigenschap ManagedIdentityClientId in op de client-id.DefaultAzureCredential credential = new( new DefaultAzureCredentialOptions { ManagedIdentityClientId = managedIdentityClientId });
Implementeer uw code opnieuw in Azure nadat u deze wijziging hebt aangebracht om de configuratie-updates toe te passen.
De app testen
Nadat u de bijgewerkte code hebt geïmplementeerd, bladert u naar uw gehoste toepassing in de browser. Uw app moet verbinding kunnen maken met de Event Hub. Houd er rekening mee dat het enkele minuten kan duren voordat de roltoewijzingen zijn doorgegeven via uw Azure-omgeving. Uw toepassing is nu geconfigureerd om zowel lokaal als in een productieomgeving uit te voeren zonder dat de ontwikkelaars geheimen in de toepassing zelf hoeven te beheren.
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u een toepassing migreert naar verbindingen zonder wachtwoord.
U kunt de volgende bronnen lezen om de concepten die in dit artikel worden besproken, uitgebreider te verkennen:
- Verbindingen zonder wachtwoord voor Azure-services
- Zie Aan de slag met .NET in 10 minuten voor meer informatie over .NET.