Azure Event Hubs için yönetilen kimlik kimlik doğrulaması

Yönetilen kimlik, Azure'un sizin için yönettiği Microsoft Entra ID'deki bir kimliktir; böylece bir uygulama, Microsoft Entra kimlik doğrulamasını destekleyen servislere kimlik doğrulaması yapabilir ve hiçbir kimlik kaydı kaydetmiyor. Azure Event Hubs, Azure kaynakları için yönetilen kimliklerle Microsoft Entra doğrulamasını destekler; bu da Azure'da çalışan uygulamaların kod veya yapılandırmaya bağlantı dizileri veya erişim anahtarları gömmeden Event Hubs'a bağlanmasını sağlar.

Yönetilen bir kimlik ve Microsoft Entra doğrulama kullandığınızda, Azure Sanal Makineler, Azure İşlevleri, Azure App Service ve Sanal Makine Ölçek Kümeleri gibi hizmetlerde çalışan uygulamalar Azure tarafından otomatik olarak sağlanan ve döndürülen kimlik bilgileriyle Event Hubs verilerine erişebilir. Bu yaklaşım, anahtarların sızdırma riskini ortadan kaldırır ve kimlik doğrulama yönetiminin operasyonel ek yükünü azaltır.

Adım adım örnek için yönetilen kimlik kullanarak VM'den Access Azure Event Hubs'a bakınız.

Yönetilen kimlik doğrulaması nasıl çalışır?

Yönetilen bir kimlik aracılığıyla bir Event Hubs kaynağına erişim iki aşamalı bir süreçtir:

  • Kimlik doğrulama: Yönetilen kimlik, Microsoft Entra ID'den bir OAuth 2.0 tokenı ister. Azure, kodun çalıştığı hesaplama ortamına göre kimliği otomatik olarak sağlar, böylece uygulamada hiçbir sır saklanmaz veya aktarılmaz.
  • Yetkilendirme: Token, Event Hubs hizmetine sunulur ve bu hizmet, kimliğe atanan Azure rol tabanlı erişim kontrol (RBAC) rollerine göre erişim sağlar.

Kimlik doğrulama ve yetkilendirme akışının tam açıklaması için bkz. Authorize access to Azure Event Hubs resources using Microsoft Entra ID.

Yönetilen kimlik türleri

Event Hubs, her iki yönetilen kimlik türüyle de çalışır:

  • Sistem tarafından atanan yönetilen kimlik: Sanal makine veya App Service uygulaması gibi bir Azure kaynağında doğrudan etkinleştirilir. Yaşam döngüsü o kaynağa bağlıdır ve sadece o kaynak token talep etmek için kullanabilir.
  • Kullanıcı tarafından atanan yönetilen kimlik: Bağımsız bir Azure kaynağı olarak oluşturulmuş ve bir veya daha fazla Azure kaynağına atanan, böylece birden fazla iş yükü aynı kimliği paylaşabilir.

İki tür hakkında daha fazla bilgi edinmek ve her birinin ne zaman seçileceği hakkında Yönetilen kimlik tipleri bölümüne bakınız. Yönetilen kimlikleri destekleyen hizmetler listesi için, Azure kaynakları için yönetilen kimlikleri destekleyen hizmetler bölümüne bakınız.

Event Hubs için Azure yerleşik rolleri

Yönetilen bir kimliği etkinleştirdikten sonra, ona Event Hubs verilerinde izinlerini tanımlayan Azure yerleşik bir rol ata. Azure, Microsoft Entra ID ile Event Hubs verilerine erişimi yetkilendirmek için aşağıdaki yerleşik rolleri sağlar:

Rol Description
Azure Event Hubs Veri Yöneticisi Event Hubs kaynaklarına tam erişim sağlar.
Azure Event Hubs Veri Göndereni Etkinlik Merkezi kaynaklarına etkinlik gönderme izni verir.
Azure Event Hubs Veri Alıcısı Etkinlik Merkezi kaynaklarından etkinlik alma izni verir.

Bir rol olarak tüketici grubu, etkinlik merkezi, isim alanı, kaynak grubu veya abonelik düzeyinde atalayabilirsiniz. Başvurunun ihtiyaçlarını karşılayan en dar kapsamı tanıyın. Kapsamların ve rol ayrıntılarının tam listesi için Azure Event Hubs için Azure yerleşik roller sayfasına bakın. Azure portalında bir rol atamak için bkz. Azure portalı kullanarak Azure rollerini atama.

Token süresinin dolma davranışı

Bir Event Hubs RBAC rolünden yönetilen bir kimliği kaldırdığınızda, bu değişiklik çalışan bir uygulama için hemen geçerli olmaz. Kaynak servis veya uygulama yeniden başlamazsa, token süresi dolana kadar etkinlik merkezine etkinlikler göndermeye veya oradan etkinlik almaya devam edebilir. Varsayılan token geçerliliği 24 saattir. Bu davranış, tasarım gereğidir.

Kimliği rolden kaldırdıktan hemen sonra erişimi iptal etmek için, kaynak uygulamayı veya hizmeti yeniden başlatın ki mevcut tokenın süresi dolsun.

İstemci SDK desteği

Azure SDK istemci kütüphaneleri, yönetilen kimlik token'ını sizin için , DefaultAzureCredentialüzerinden edinir; bu token, barındırma ortamında mevcut olan yönetilen kimliği otomatik olarak algılar. Bağlantı dizesi veya anahtar sağlamadan, olay göndermek için kimlik bilgisini EventHubProducerClient’a ve olay almak için EventHubConsumerClient’e iletirsiniz.

var credential = new DefaultAzureCredential();

// Send events with a managed identity.
var producerClient = new EventHubProducerClient(
    "<namespace>.servicebus.windows.net",
    "<event-hub-name>",
    credential);

// Receive events with a managed identity.
var consumerClient = new EventHubConsumerClient(
    EventHubConsumerClient.DefaultConsumerGroupName,
    "<namespace>.servicebus.windows.net",
    "<event-hub-name>",
    credential);

Bu istemcileri kullanmak için NuGet'ten en son Azure.Messaging.EventHubs paketini yükleyin. Çalıştırılabilir örnekler için bkz:

Apache Kafka için Etkinlik Merkezleri

Apache Kafka uygulamaları, OAuth ile yönetilen kimlik kullanarak Azure Event Hubs'a etkinlikler gönderebilir ve olayları alabilir. Java örneği için, Kafka için Event Hubs: yönetilen kimlik OAuth'u kullanarak ileti gönderme ve alma konusuna bakın.