Azure Event Hubs'a VM'den yönetilen kimlik kullanarak erişin

Bu makale, Azure sanal makinesinde (VM) çalışan bir uygulamadan yönetilen bir kimlik kullanarak Azure Event Hubs'a nasıl bağlanacağınızı gösteriyor. Yönetilen bir kimlik kullandığınızda, uygulamanız bağlantı dizileri veya erişim anahtarlarını kod veya yapılandırmada saklamadan Event Hubs'a kimlik doğrulaması sağlar. Azure, kimlik bilgilerini otomatik olarak düzenler ve döndürür.

Bu makalede aşağıdaki görevleri tamamlaacaksınız:

  • Bir VM'de sistem tarafından atanan yönetilen bir kimlik etkinleştirin.
  • Yönetilen kimliğe olayları bir etkinlik merkezine gönderme izni verin.
  • Yönetilen kimliği kullanan bir örnek uygulama oluştur ve VM'de çalıştır.

Yönetilen kimlik doğrulamasının Event Hubs ile nasıl çalıştığını öğrenmek için Managed identity authentication for Azure Event Hubs sayfasına bakınız.

Prerequisites

VM'de yönetilen bir kimlik etkinleştirin

VM'de sistem tarafından atanan yönetilen bir kimlik etkinleştirin. Azure, Microsoft Entra ID'de VM'nin yaşam döngüsüne bağlı bir kimlik oluşturur.

  1. Azure portalınaoturum açın.

  2. Sanal makinenize gidin.

  3. VM sayfasında, sol menüden Security>Identity seçeneğini seçin.

  4. Kimlik sayfasında, Sistem ataması sekmesinde olduğunu doğrulayın.

  5. Durum alanı için Açık seçeneğini seçin.

  6. Komut çubuğunda Kaydet'i seçin ve ardından onaylamak için Evet'i seçin.

    Azure kimliği oluşturduktan sonra, Nesne (baş) kimliği sayfada görünür. Bu kimliği bir sonraki bölümde kullanıyorsunuz.

Kullanıcı tarafından atanan yönetilen bir kimliği etkinleştirmek için bkz. VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma. Kullanıcı tarafından atanan kimlik, birden fazla VM'ye atayabildiğiniz bağımsız bir kaynaktır.

Yönetilen kimlik için Event Hubs'a erişim ver

Yönetilen kimliğinize bir Azure yerleşik rol atayın, böylece olayları etkinlik merkezinize gönderebilir. Bu örnek, Azure Event Hubs Veri Gönderici rolünü tek bir olay merkezinin kapsamında atar. Başvurunuzun ihtiyaçlarına uygun en dar kapsamı tanıyın.

  1. Azure portalında olay hub'ınıza gidin.
  2. Etkinlik merkezi sayfasında, sol menüden Erişim kontrolü (IAM) seçeneğini seçin.
  3. Ekle>Rol ataması ekle’yi seçin.
  4. Role sekmesinde Azure Event Hubs Data Sender'ı seçin ve ardından Next'i seçin.
  5. Üyeler sekmesinde, Erişim ata için Yönetilen kimlik'i seçin.
  6. Seç + Üyeleri Seç, önceki bölümde etkinleştirdiğiniz Sanal makine yönetilen kimliğini seçin ve ardından Seç'i seçin.
  7. Rol atamasını tamamlamak için Gözden geçir ve ata seçeneğini seçin.

Roller ve kapsamların tam listesi için bkz. Azure Event Hubs için Azure yerleşik rolleri. Azure portalında roller atamak için bkz. Azure portalı kullanarak Azure rollerini atama.

Uyarı

Rol atamalarının yayılması birkaç dakika sürebilir. Başvurunuz hemen kimlik doğrulaması yapamazsa, bekleyip tekrar deneyin.

VM'de örnek uygulamayı oluştur ve çalıştır

Olayları etkinlik merkezinize gönderen bir .NET konsol uygulaması oluşturun. Uygulama VM'de çalıştığında, DefaultAzureCredential yönetilen kimliği otomatik olarak algılar, böylece bir bağlantı dizesi veya anahtar sağlamıyorsunuz.

  1. VM’ye bağlanın. Bir Windows VM için Uzak Masaüstü kullanın. Linux VM için SSH kullanın.

  2. VM'de bir terminalde bir proje oluşturun ve gerekli paketleri ekleyin:

    dotnet new console --name EventHubsManagedIdentitySample
    cd EventHubsManagedIdentitySample
    dotnet add package Azure.Messaging.EventHubs
    dotnet add package Azure.Identity
    
  3. öğesinin içeriğini Program.cs aşağıdaki kodla değiştirin. <event-hub-name> yerine Event Hubs ad alanı adınızı ve <namespace> yerine etkinlik hub'ı adınızı yazın.

    using Azure.Identity;
    using Azure.Messaging.EventHubs;
    using Azure.Messaging.EventHubs.Producer;
    
    // DefaultAzureCredential detects the managed identity available on the VM.
    var credential = new DefaultAzureCredential();
    
    var producerClient = new EventHubProducerClient(
        "<namespace>.servicebus.windows.net",
        "<event-hub-name>",
        credential);
    
    using EventDataBatch eventBatch = await producerClient.CreateBatchAsync();
    eventBatch.TryAdd(new EventData("First event from a managed identity"));
    eventBatch.TryAdd(new EventData("Second event from a managed identity"));
    
    await producerClient.SendAsync(eventBatch);
    await producerClient.DisposeAsync();
    
    Console.WriteLine("Events sent to the event hub.");
    
  4. Uygulamayı VM'de oluşturup çalıştırın:

    dotnet run
    

    Uygulama, VM'nin yönetilen kimliğini kullanarak kimlik doğrulama yapar ve olayları gönderir. Etkinlikler gönderildiğinde, konsolda Events sent to the event hub. görüntülenir

  5. Olayların geldiğini doğrulamak için, etkinlik merkeziniz için Azure portalındaki Veri Gezgini'ı veya isim alanı Genel Bakış sayfasındaki metrikleri kullanın.

Tip

Kullanıcı tarafından atanan yönetilen bir kimlik kullandığınızda veya VM'de birden fazla kimlik mevcutsa, istemci kimliğini doğru DefaultAzureCredential kimliği seçecek şekilde ayarlayın. Daha fazla bilgi için DefaultAzureCredentialOptions.ManagedIdentityClientId sayfasına bakınız.