Felügyelt identitás hitelesítése Microsoft Entra-azonosítóval az Event Hubs-erőforrások eléréséhez
Az Azure Event Hubs támogatja a Microsoft Entra-hitelesítést az Azure-erőforrások felügyelt identitásaival. Az Azure-erőforrások felügyelt identitásai a Microsoft Entra hitelesítő adataival engedélyezhetik az Event Hubs-erőforrásokhoz való hozzáférést az Azure Virtual Machinesben (virtuális gépeken), függvényalkalmazásokban, virtuálisgép-méretezési csoportokban és más szolgáltatásokban futó alkalmazásokból. Ha felügyelt identitásokat használ az Azure-erőforrásokhoz a Microsoft Entra-hitelesítéssel együtt, elkerülheti a hitelesítő adatok tárolását a felhőben futó alkalmazásokkal. Ez a cikk bemutatja, hogyan engedélyezheti az eseményközponthoz való hozzáférést felügyelt identitás használatával egy Azure-beli virtuális gépről.
Felügyelt identitások engedélyezése virtuális gépen
Mielőtt felügyelt identitásokat használ az Azure-erőforrásokhoz az Event Hubs-erőforrások virtuális gépről való eléréséhez, először engedélyeznie kell az Azure-erőforrások felügyelt identitásait a virtuális gépen. A felügyelt identitások Azure-erőforrásokhoz való engedélyezéséről az Azure-beli virtuális gépeken a felügyelt identitások konfigurálása című témakörben olvashat.
Engedélyek megadása felügyelt identitáshoz a Microsoft Entra-azonosítóban
Ha engedélyezni szeretné az Event Hubs szolgáltatásnak az alkalmazásban lévő felügyelt identitásból érkező kérést, először konfigurálja az Azure szerepköralapú hozzáférés-vezérlési (RBAC) beállításait a felügyelt identitáshoz. Az Azure Event Hubs olyan Azure-szerepköröket határoz meg, amelyek magukban foglalják az események Event Hubsba való küldéséhez és fogadásához szükséges engedélyeket. Ha egy Azure-szerepkör hozzárendelve van egy felügyelt identitáshoz, a felügyelt identitás hozzáférést kap az Event Hubs-adatokhoz a megfelelő hatókörben. Az Azure-szerepkörök hozzárendelésével kapcsolatos további információkért lásd : Hitelesítés a Microsoft Entra-azonosítóval az Event Hubs-erőforrásokhoz való hozzáféréshez.
Mintaalkalmazás
Az ebben a szakaszban ismertetett eljárás egy egyszerű alkalmazást használ, amely felügyelt identitás alatt fut, és hozzáfér az Event Hubs-erőforrásokhoz.
Az alábbiakban egy Azure-alkalmazás Service-ben üzemeltetett minta webalkalmazást használunk. A webalkalmazások létrehozásához szükséges részletes utasításokért lásd : ASP.NET Core-webalkalmazás létrehozása az Azure-ban
Az alkalmazás létrehozása után kövesse az alábbi lépéseket:
Nyissa meg a Beállítások lehetőséget , és válassza az Identitás lehetőséget.
Válassza ki a bekapcsolni kívánt állapotot.
A beállítás mentéséhez kattintson a Mentés gombra.
Válassza az Igen lehetőséget az információs üzenetben.
Miután engedélyezte ezt a beállítást, egy új szolgáltatásidentitás jön létre a Microsoft Entra-azonosítóban, és konfigurálva lesz az App Service-gazdagépre.
Most rendelje hozzá ezt a szolgáltatásidentitást egy szerepkörhöz az Event Hubs-erőforrások kötelező hatókörében.
Azure-szerepkörök hozzárendelése az Azure Portal használatával
Rendelje hozzá az egyik Event Hubs-szerepkört a kívánt hatókörben lévő felügyelt identitáshoz (Event Hubs-névtér, erőforráscsoport, előfizetés). A részletes lépésekért tekintse meg az Azure-szerepköröknek az Azure Portalon történő hozzárendelését ismertető cikket.
Feljegyzés
A felügyelt identitásokat támogató szolgáltatások listáját az Azure-erőforrások felügyelt identitásait támogató szolgáltatások című témakörben találja.
A webalkalmazás tesztelése
- Hozzon létre egy Event Hubs-névteret és egy eseményközpontot.
- A webalkalmazás üzembe helyezése az Azure-ban. A GitHubon található minta webalkalmazásra mutató hivatkozásokért tekintse meg a következő lapozott szakaszt.
- Győződjön meg arról, hogy a SendReceive.aspx a webalkalmazás alapértelmezett dokumentumaként van beállítva.
- Identitás engedélyezése a webalkalmazáshoz.
- Rendelje hozzá ezt az identitást az Event Hubs adattulajdonosi szerepköréhez a névtér vagy az eseményközpont szintjén.
- Futtassa a webalkalmazást, adja meg a névtér nevét és az eseményközpont nevét, egy üzenetet, és válassza a Küldés lehetőséget. Az esemény fogadásához válassza a Fogadás lehetőséget.
A GitHub-adattárban megtalálhatja azt a minta webalkalmazást, amely adatokat küld és fogad az Event Hubs-erőforrásoktól.
Telepítse a legújabb csomagot a NuGetből, és kezdjen el eseményeket küldeni az Event Hubsba az EventHubProducerClient használatával, és fogadjon eseményeket az EventHubConsumerClient használatával.
Feljegyzés
Ha egy Felügyelt identitást használó Java-minta eseményközpontban tesz közzé eseményeket, tekintse meg az Események közzététele Azure-identitásmintával a GitHubon című témakört.
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;
}
}
}
A Kafkához készült Event Hubs
Apache Kafka-alkalmazásokkal üzeneteket küldhet és fogadhat az Azure Event Hubsból a felügyelt identitású OAuth használatával. Tekintse meg a következő mintát a GitHubon: Event Hubs for Kafka – Üzenetek küldése és fogadása felügyelt identitású OAuth használatával.
Példák
- .HÁLÓ.
- A legújabb Azure.Messaging.EventHubs-csomagot használó minta esetén lásd : Események közzététele felügyelt identitással
- Az örökölt Microsoft.Azure.EventHubs-csomagot használó minta esetében tekintse meg ezt a .NET-mintát a GitHubon
- Java – lásd a következő mintákat.
- Események közzététele Azure-identitásmintával a GitHubon.
- Ha szeretné megtudni, hogyan küldhet eseményeket egy eseményközpontba, és hogyan fogadhat eseményeket felügyelt identitással az Apache Kafka protokoll használatával, tekintse meg az Event Hubs for Kafka-mintát, amely felügyelt identitással küld és fogad üzeneteket.
Kapcsolódó tartalom
- Az Azure-erőforrások felügyelt identitásairól a következő cikkből tájékozódhat: Mi az Azure-erőforrások felügyelt identitása?
- Lásd a következő kapcsolódó cikkeket:
- Az Azure Event Hubs felé irányuló kérelmek hitelesítése egy alkalmazásból a Microsoft Entra ID használatával
- Az Azure Event Hubs felé irányuló kérelmek hitelesítése közös hozzáférésű jogosultságkódokkal
- Event Hubs-erőforrásokhoz való hozzáférés engedélyezése a Microsoft Entra-azonosítóval
- Event Hubs-erőforrásokhoz való hozzáférés engedélyezése közös hozzáférésű jogosultságkódokkal