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. Ha szeretné megtudni, hogyan engedélyezheti a felügyelt identitásokat az Azure-erőforrásokhoz, tekintse meg az alábbi cikkek egyikét:

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 (Azure 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 Event Hubsból való küldésre és olvasásra vonatkozó engedélyeket. Ha az 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.

Az Event Hubs használata felügyelt identitásokkal

Az Event Hubs felügyelt identitásokkal való használatához rendeljen hozzá egy Event Hubs RBAC-szerepkört a megfelelő hatókörben az identitáshoz. 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:

  1. Lépjen a Gépház, és válassza az Identitás lehetőséget.

  2. Válassza ki a bekapcsolni kívánt állapotot.

  3. A beállítás mentéséhez kattintson a Mentés gombra.

    Screenshot of the Identity page showing the status of system-assigned identity set to ON.

  4. 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.

Megjegyzé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

  1. Hozzon létre egy Event Hubs-névteret és egy eseményközpontot.
  2. 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.
  3. Győződjön meg arról, hogy a SendReceive.aspx van beállítva a webalkalmazás alapértelmezett dokumentumaként.
  4. Identitás engedélyezése a webalkalmazáshoz.
  5. Rendelje hozzá ezt az identitást az Event Hubs adattulajdonosi szerepköréhez a névtér vagy az eseményközpont szintjén.
  6. 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.

Most már elindíthatja a webalkalmazást, és a böngészőt a minta aspx lapra irányíthatja. 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.

Megjegyzé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.

Samples

.

Következő lépések