Aracılığıyla paylaş


Olayları Microsoft Entra korumalı uç noktalarına teslim etme

Bu makalede, olay aboneliğinizleweb kancası uç noktanız arasındaki bağlantının güvenliğini sağlamak için Microsoft Entra Id'nin nasıl kullanılacağı açıklanmaktadır. Tanıtım için Azure portalını kullanır, ancak bu özellik CLI, PowerShell veya SDK'lar kullanılarak da etkinleştirilebilir.

Önemli

Güvenlik açığını gidermek için 30 Mart 2021'de olay aboneliği oluşturma veya güncelleştirme işlemi kapsamında ek erişim denetimi kullanıma sunulmuştur. Abone istemcisinin hizmet sorumlusunun sahip olması veya hedef uygulama hizmet sorumlusuna atanmış bir rolü olması gerekir. Aşağıdaki yeni yönergeleri izleyerek Microsoft Entra Uygulamanızı yeniden yapılandırın. Microsoft Entra uygulamalarına ve hizmet sorumlularına genel bakış için bkz. Microsoft kimlik platformu (v2.0) genel bakış.

Senaryolar

Bu makalede, aşağıdaki iki senaryonun nasıl uygulanacakları ayrıntılı olarak açıklanmaktadır:

  • Olay aboneliğiyle aynı Microsoft Entra kiracısında bulunan bir web kancasına olay teslim etme. Bu senaryoda bir Microsoft Entra kullanıcısını veya Microsoft Entra uygulamasını olay aboneliği yazıcısı olarak kullanabilirsiniz.

  • Olay aboneliğinden farklı bir Microsoft Entra kiracısında bulunan bir web kancasına olay teslimi. Bu senaryoda bir Microsoft Entra uygulamasını yalnızca olay aboneliği yazıcısı olarak kullanabilirsiniz.

    İlk senaryoda, tüm adımları veya betikleri hem olay aboneliği hem de web kancası olan tek bir kiracıda çalıştırırsınız. İkinci senaryoda, olay aboneliği olan kiracıda bazı adımları ve web kancası olan kiracıda bazı adımları çalıştırırsınız.

Olayları aynı Microsoft Entra kiracısında bir Web kancasına teslim etme

Aşağıdaki diyagramda Event Grid olaylarının olay aboneliğiyle aynı kiracıdaki bir web kancasına nasıl teslim edildiği gösterilmektedir.

Image that depicts secure delivery of events to a webhook that's in the same tenant.

Bu bölümde iki alt bölüm vardır. Hem senaryoları hem de ilgilendiğiniz senaryoyu okuyun.

Microsoft Entra kullanıcısını kullanarak olay aboneliğini yapılandırma

Bu bölümde, bir Microsoft Entra kullanıcısı kullanarak olay aboneliğini yapılandırma gösterilmektedir.

  1. Microsoft Entra (tek kiracı) ile çalışmak üzere yapılandırılmış web kancası için bir Microsoft Entra uygulaması oluşturun.

  2. Kiracıda Azure Shell'i açın ve PowerShell ortamını seçin.

  3. Kiracıya bağlanmak için $webhookAadTenantId değerini değiştirin.

    • Değişken:
      • $webhookAadTenantId: Azure kiracı kimliği
    $webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]"
    Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
    
  4. Aşağıdaki betiği açın ve $webhookAppObjectId ve $eventSubscriptionWriterUserPrincipalName değerlerini tanımlayıcılarınızla güncelleştirin, ardından betiği çalıştırmaya devam edin.

    • Değişken:
      • $webhookAppObjectId: Web kancası için oluşturulan Microsoft Entra uygulama kimliği
      • $eventSubscriptionWriterUserPrincipalName: Olay aboneliği oluşturan kullanıcının Azure kullanıcı asıl adı

    Not

    $eventGridAppId değerini değiştirmeniz gerekmez. Bu betikte AzureEventGridSecureWebhookSubscriber $eventGridRoleName için ayarlanmıştır. Bu betiği yürütmek için Microsoft Entra Uygulaması Yönetici istrator rolünün üyesi olmanız veya Microsoft Entra Id'de web kancası uygulamasının hizmet sorumlusunun sahibi olmanız gerektiğini unutmayın.

    Aşağıdaki hata iletisini görürseniz hizmet sorumlusuna yükseltmeniz gerekir. Güvenlik açığını gidermek için 30 Mart 2021'de olay aboneliği oluşturma veya güncelleştirme kapsamında ek erişim denetimi yapılmıştır. Abone istemcisinin hizmet sorumlusunun sahip olması veya hedef uygulama hizmet sorumlusuna atanmış bir rolü olması gerekir.

    New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment
    Code: Authorization_RequestDenied
    Message: Insufficient privileges to complete the operation.
    
  5. Portalda olay aboneliği oluştururken şu adımları izleyin:

    1. Uç nokta türünü Web Kancası olarak seçin.

    2. Uç nokta URI'sini belirtin.

      Select endpoint type webhook

    3. Olay Abonelikleri Oluştur sayfasının üst kısmındaki Ek özellikler sekmesini seçin.

    4. Ek özellikler sekmesinde şu adımları uygulayın:

      1. Microsoft Entra kimlik doğrulamasını kullan'ı seçin ve kiracı kimliğini ve uygulama kimliğini yapılandırın:

      2. Betiğin çıktısından Microsoft Entra kiracı kimliğini kopyalayın ve Microsoft Entra kiracı kimliği alanına girin.

      3. Betiğin çıktısından Microsoft Entra uygulama kimliğini kopyalayın ve Microsoft Entra Uygulama Kimliği alanına girin. Uygulama kimliğini kullanmak yerine Microsoft Entra Uygulama Kimliği URI'sini kullanabilirsiniz. Uygulama kimliği URI'si hakkında daha fazla bilgi için bu makaleye bakın.

        Secure Webhook action

Microsoft Entra uygulaması kullanarak olay aboneliğini yapılandırma

Bu bölümde, bir Microsoft Entra uygulaması kullanarak olay aboneliğini yapılandırma gösterilmektedir.

  1. Microsoft Entra (Tek kiracı) ile çalışmak üzere yapılandırılmış Event Grid abonelik yazıcısı için bir Microsoft Entra uygulaması oluşturun.

  2. Microsoft Entra uygulaması için bir gizli dizi oluşturun ve değeri kaydedin (daha sonra bu değere ihtiyacınız vardır).

  3. Event Grid konusunun Erişim denetimi (IAM) sayfasına gidin ve Event Grid aboneliği yazıcı uygulamasına Event Grid Katılımcısı rolü atayın. Bu adım, Azure CLI kullanarak Microsoft Entra uygulamasıyla Azure'da oturum açtığınızda Event Grid kaynağına erişmenizi sağlar.

  4. Microsoft Entra (Tek kiracı) ile çalışmak üzere yapılandırılmış web kancası için bir Microsoft Entra uygulaması oluşturun.

  5. Kiracıda Azure Shell'i açın ve PowerShell ortamını seçin.

  6. Kiracıya bağlanmak için $webhookAadTenantId değerini değiştirin.

    • Değişken:
      • $webhookAadTenantId: Azure kiracı kimliği
    $webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]"
    Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
    
  7. Aşağıdaki betiği açın ve $webhookAppObjectId ve $eventSubscriptionWriterAppId değerlerini tanımlayıcılarınızla güncelleştirin, ardından betiği çalıştırmaya devam edin.

    • Değişken:
      • $webhookAppObjectId: Web kancası için oluşturulan Microsoft Entra uygulama kimliği
      • $eventSubscriptionWriterAppId: Event Grid abonelik yazıcı uygulaması için Microsoft Entra uygulama kimliği.

    Not

    değerini $eventGridAppIddeğiştirmeniz gerekmez. Bu betikte, için $eventGridRoleNameayarlanan AzureEventGridSecureWebhookSubscriber. Bu betiği yürütmek için Microsoft Entra Uygulaması Yönetici istrator rolünün üyesi olmanız veya Microsoft Entra Id'de web kancası uygulamasının hizmet sorumlusunun sahibi olmanız gerektiğini unutmayın.

  8. Komutunu çalıştırarak Event Grid abonelik yazıcısı Microsoft Entra Application olarak oturum açın.

    az login --service-principal -u [REPLACE_WITH_EVENT_GRID_SUBSCRIPTION_WRITER_APP_ID] -p [REPLACE_WITH_EVENT_GRID_SUBSCRIPTION_WRITER_APP_SECRET_VALUE] --tenant [REPLACE_WITH_TENANT_ID]
    
  9. komutunu çalıştırarak aboneliğinizi oluşturun.

    az eventgrid system-topic event-subscription create --name [REPLACE_WITH_SUBSCRIPTION_NAME] -g [REPLACE_WITH_RESOURCE_GROUP] --system-topic-name [REPLACE_WITH_SYSTEM_TOPIC] --endpoint [REPLACE_WITH_WEBHOOK_ENDPOINT] --event-delivery-schema [REPLACE_WITH_WEBHOOK_EVENT_SCHEMA] --azure-active-directory-tenant-id [REPLACE_WITH_TENANT_ID] --azure-active-directory-application-id-or-uri [REPLACE_WITH_APPLICATION_ID_FROM_SCRIPT] --endpoint-type webhook
    

    Not

    Bu senaryoda bir sistem konusu kullanılır. Azure CLI kullanarak özel konular veya etki alanları için abonelik oluşturmak istiyorsanız bkz . CLI başvurusu.

  10. Her şey doğru yapılandırıldıysa, Event Grid konu başlığınızda web kancası aboneliğini başarıyla oluşturabilirsiniz.

    Not

    Bu noktada Event Grid artık her iletide Microsoft Entra taşıyıcı belirtecini web kancası istemcisine geçiriyor. Web kancanızdaki yetkilendirme belirtecini doğrulamanız gerekir.

Olayları farklı bir Microsoft Entra kiracısında bir Web kancasına teslim etme

Olay aboneliğinizle farklı Microsoft Entra kiracılarındaki web kancası uç noktanız arasındaki bağlantının güvenliğini sağlamak için, bu bölümde gösterildiği gibi bir Microsoft Entra ID uygulaması kullanmanız gerekir. Şu anda Azure portalında bir Microsoft Entra ID kullanıcısı kullanarak bu bağlantının güvenliğini sağlamak mümkün değildir.

Multitenant events with Microsoft Entra ID and Webhooks

Diyagrama bağlı olarak, her iki kiracıyı da yapılandırmak için sonraki adımları izleyin.

Kiracı A

Kiracı A'da aşağıdaki adımları uygulayın:

  1. Herhangi bir Microsoft Entra (çok kiracılı) ile çalışmak üzere yapılandırılmış Event Grid abonelik yazıcısı için bir Microsoft Entra uygulaması oluşturun.

  2. Microsoft Entra uygulaması için bir gizli dizi oluşturun ve değeri kaydedin (daha sonra bu değere ihtiyacınız vardır).

  3. Event Grid konusunun Erişim denetimi (IAM) sayfasına gidin. Event Grid abonelik yazıcısının Microsoft Entra uygulamasına Event Grid Katkıda Bulunanı rolünü atayın. Bu adım, Azure CLI kullanarak Microsoft Entra uygulamasıyla Azure'da oturum açtığınızda uygulamanın Event Grid kaynağına erişmesini sağlar.

Kiracı B

B Kiracısı'nda aşağıdaki adımları uygulayın:

  1. Microsoft Entra (tek kiracı) ile çalışmak üzere yapılandırılmış web kancası için bir Microsoft Entra Uygulaması oluşturun.

  2. Azure Shell'i açın ve PowerShell ortamını seçin.

  3. B Kiracısına bağlanmak için $webhookAadTenantId değerini değiştirin.

    • Değişkenler:

      • $webhookAadTenantId: B Kiracısı için Azure Kiracı Kimliği
      $webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]"
      Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
      
  4. Aşağıdaki betiği açın, $webhookAppObjectId ve $eventSubscriptionWriterAppId değerlerini tanımlayıcılarınızla güncelleştirin, ardından betiği çalıştırmaya devam edin.

    • Değişken:
      • $webhookAppObjectId: Web kancası için oluşturulan Microsoft Entra uygulama kimliği

      • $eventSubscriptionWriterAppId: Event Grid abonelik yazıcısı için Microsoft Entra uygulama kimliği

        Not

        değerini $eventGridAppIddeğiştirmeniz gerekmez. Bu betikte AzureEventGridSecureWebhookSubscriber için $eventGridRoleNameayarlanır. Bu betiği yürütmek için Microsoft Entra Uygulaması Yönetici istrator rolünün üyesi olmanız veya Microsoft Entra Id'de web kancası uygulamasının hizmet sorumlusunun sahibi olmanız gerektiğini unutmayın.

    Aşağıdaki hata iletisini görürseniz hizmet sorumlusuna yükseltmeniz gerekir. Güvenlik açığını gidermek için 30 Mart 2021'de olay aboneliği oluşturma veya güncelleştirme kapsamında ek erişim denetimi yapılmıştır. Abone istemcisinin hizmet sorumlusunun sahip olması veya hedef uygulama hizmet sorumlusuna atanmış bir rolü olması gerekir.

    New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment
    Code: Authorization_RequestDenied
    Message: Insufficient privileges to complete the operation.
    

Kiracı A

A Kiracısı'na geri dönerek aşağıdaki adımları uygulayın:

  1. Azure Shell'i açın ve komutunu çalıştırarak Event Grid abonelik yazıcısı Microsoft Entra Application olarak oturum açın.

    az login --service-principal -u [REPLACE_WITH_APP_ID] -p [REPLACE_WITH_SECRET_VALUE] --tenant [REPLACE_WITH_TENANT_ID]
    
  2. komutunu çalıştırarak aboneliğinizi oluşturun.

    az eventgrid system-topic event-subscription create --name [REPLACE_WITH_SUBSCRIPTION_NAME] -g [REPLACE_WITH_RESOURCE_GROUP] --system-topic-name [REPLACE_WITH_SYSTEM_TOPIC] --endpoint [REPLACE_WITH_WEBHOOK_ENDPOINT] --event-delivery-schema [REPLACE_WITH_WEBHOOK_EVENT_SCHEMA] --azure-active-directory-tenant-id [REPLACE_WITH_TENANT_B_ID] --azure-active-directory-application-id-or-uri [REPLACE_WITH_APPLICATION_ID_FROM_SCRIPT] --endpoint-type webhook
    

    Not

    Bu senaryoda bir Event Grid Sistem Konusu kullanıyoruz. Azure CLI kullanarak özel konular veya Event Grid etki alanları için abonelik oluşturmak istiyorsanız buraya bakın.

  3. Her şey doğru yapılandırıldıysa, Event Grid konu başlığınızda web kancası aboneliğini başarıyla oluşturabilirsiniz.

    Not

    Bu noktada Event Grid artık her iletide Microsoft Entra Taşıyıcı belirtecini web kancası istemcisine geçiriyor. Web kancanızdaki Yetkilendirme belirtecini doğrulamanız gerekir.

Sonraki adımlar