Ověření spravované identity pomocí ID Microsoft Entra pro přístup k prostředkům služby Event Hubs
Azure Event Hubs podporuje ověřování Microsoft Entra se spravovanými identitami pro prostředky Azure. Spravované identity pro prostředky Azure můžou autorizovat přístup k prostředkům služby Event Hubs pomocí přihlašovacích údajů Microsoft Entra z aplikací spuštěných ve službě Azure Virtual Machines (virtuální počítače), aplikací funkcí, služby Virtual Machine Scale Sets a dalších služeb. Pomocí spravovaných identit pro prostředky Azure společně s ověřováním Microsoft Entra se můžete vyhnout ukládání přihlašovacích údajů s aplikacemi, které běží v cloudu. Tento článek ukazuje, jak autorizovat přístup k centru událostí pomocí spravované identity z virtuálního počítače Azure.
Povolení spravovaných identit na virtuálním počítači
Před použitím spravovaných identit pro prostředky Azure pro přístup k prostředkům služby Event Hubs z virtuálního počítače musíte nejprve povolit spravované identity pro prostředky Azure na virtuálním počítači. Informace o povolení spravovaných identit pro prostředky Azure najdete v tématu Konfigurace spravovaných identit na virtuálních počítačích Azure.
Udělení oprávnění spravované identitě v Microsoft Entra ID
Pokud chcete autorizovat požadavek na službu Event Hubs ze spravované identity ve vaší aplikaci, nejprve nakonfigurujte nastavení řízení přístupu na základě role v Azure (RBAC) pro tuto spravovanou identitu. Azure Event Hubs definuje role Azure, které zahrnují oprávnění k odesílání událostí a přijímání událostí ze služby Event Hubs. Když je role Azure přiřazená ke spravované identitě, udělí se spravovaná identita přístupu k datům služby Event Hubs v příslušném oboru. Další informace o přiřazování rolí Azure najdete v tématu Ověřování pomocí ID Microsoft Entra pro přístup k prostředkům služby Event Hubs.
Ukázková aplikace
Postup v této části používá jednoduchou aplikaci, která běží pod spravovanou identitou a přistupuje k prostředkům služby Event Hubs.
Tady používáme ukázkovou webovou aplikaci hostované ve službě Aplikace Azure Service. Podrobné pokyny k vytvoření webové aplikace najdete v tématu Vytvoření webové aplikace ASP.NET Core v Azure.
Po vytvoření aplikace postupujte takto:
Přejděte do Nastavení a vyberte Identita.
Vyberte stav, který má být zapnutý.
Vyberte Uložit a nastavení se uloží.
V informační zprávě vyberte Ano .
Po povolení tohoto nastavení se ve vašem ID Microsoft Entra vytvoří nová identita služby a nakonfiguruje se do hostitele služby App Service.
Teď tuto identitu služby přiřaďte k roli v požadovaném oboru v prostředcích služby Event Hubs.
Přiřazení rolí Azure pomocí webu Azure Portal
Přiřaďte spravované identitě jednu z rolí služby Event Hubs v požadovaném oboru (obor názvů služby Event Hubs, skupina prostředků, předplatné). Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.
Poznámka:
Seznam služeb, které podporují spravované identity, najdete v tématu Služby, které podporují spravované identity pro prostředky Azure.
Test webové aplikace
- Vytvořte obor názvů služby Event Hubs a centrum událostí.
- Nasaďte webovou aplikaci do Azure. Odkazy na ukázkovou webovou aplikaci na GitHubu najdete v následující části s kartami.
- Ujistěte se, že je SendReceive.aspx nastavený jako výchozí dokument webové aplikace.
- Povolte identitu pro webovou aplikaci.
- Tuto identitu přiřaďte k roli Vlastník dat služby Event Hubs na úrovni oboru názvů nebo centra událostí.
- Spusťte webovou aplikaci, zadejte název oboru názvů a název centra událostí, zprávu a vyberte Odeslat. Pokud chcete událost přijmout, vyberte Přijmout.
Ukázkovou webovou aplikaci, která odesílá a přijímá data z prostředků služby Event Hubs, najdete v úložišti GitHub.
Nainstalujte nejnovější balíček z NuGetu a začněte odesílat události do služby Event Hubs pomocí EventHubProducerClient a příjem událostí pomocí EventHubConsumerClient.
Poznámka:
Ukázku Javy, která používá spravovanou identitu k publikování událostí do centra událostí, najdete v tématu Publikování událostí s ukázkou identity Azure na GitHubu.
protected async void btnSend_Click(object sender, EventArgs e)
{
await using (EventHubProducerClient producerClient = new EventHubProducerClient(txtNamespace.Text, txtEventHub.Text, new DefaultAzureCredential()))
{
// create a batch
using (EventDataBatch eventBatch = await producerClient.CreateBatchAsync())
{
// add events to the batch. only one in this case.
eventBatch.TryAdd(new EventData(Encoding.UTF8.GetBytes(txtData.Text)));
// send the batch to the event hub
await producerClient.SendAsync(eventBatch);
}
txtOutput.Text = $"{DateTime.Now} - SENT{Environment.NewLine}{txtOutput.Text}";
}
}
protected async void btnReceive_Click(object sender, EventArgs e)
{
await using (var consumerClient = new EventHubConsumerClient(EventHubConsumerClient.DefaultConsumerGroupName, $"{txtNamespace.Text}.servicebus.windows.net", txtEventHub.Text, new DefaultAzureCredential()))
{
int eventsRead = 0;
try
{
using CancellationTokenSource cancellationSource = new CancellationTokenSource();
cancellationSource.CancelAfter(TimeSpan.FromSeconds(5));
await foreach (PartitionEvent partitionEvent in consumerClient.ReadEventsAsync(cancellationSource.Token))
{
txtOutput.Text = $"Event Read: { Encoding.UTF8.GetString(partitionEvent.Data.Body.ToArray()) }{ Environment.NewLine}" + txtOutput.Text;
eventsRead++;
}
}
catch (TaskCanceledException ex)
{
txtOutput.Text = $"Number of events read: {eventsRead}{ Environment.NewLine}" + txtOutput.Text;
}
}
}
Event Hubs pro Kafka
Aplikace Apache Kafka můžete použít k odesílání a přijímání zpráv ze služby Azure Event Hubs pomocí OAuth spravované identity. Projděte si následující ukázku na GitHubu: Event Hubs pro Kafka – odesílání a příjem zpráv pomocí OAuth spravované identity.
Ukázky
- .SÍŤ.
- Ukázku, která používá nejnovější balíček Azure.Messaging.EventHubs , najdete v tématu Publikování událostí se spravovanou identitou.
- Ukázku, která používá starší balíček Microsoft.Azure.EventHubs , najdete v této ukázce .NET na GitHubu.
- Java – podívejte se na následující ukázky.
- Publikování událostí pomocí ukázky identity Azure na GitHubu
- Informace o tom, jak pomocí protokolu Apache Kafka odesílat události do centra událostí a přijímat je z centra událostí pomocí spravované identity, najdete v ukázce event Hubs pro Kafka k odesílání a přijímání zpráv pomocí spravované identity.
Související obsah
- Informace o spravovaných identitách pro prostředky Azure najdete v následujícím článku: Co jsou spravované identity pro prostředky Azure?
- Projděte si následující související články:
- Ověřování požadavků ve službě Azure Event Hubs z aplikace pomocí ID Microsoft Entra
- Ověřování požadavků ve službě Azure Event Hubs pomocí sdílených přístupových podpisů
- Autorizace přístupu k prostředkům služby Event Hubs pomocí Microsoft Entra ID
- Autorizace přístupu k prostředkům služby Event Hubs pomocí sdílených přístupových podpisů