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
Ek erişim denetimi, güvenlik açığını gidermek için 30 Mart 2021'de olay aboneliği oluşturma veya güncelleştirme kapsamında kullanıma sunulmuştur. Abone istemcisinin hizmet sorumlusunun sahip olması veya hedef uygulama hizmet sorumlusuna atanmış bir rolü olması gerekir. Bu makaledeki 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.
Bu bölümde iki alt bölüm vardır. Hem senaryoları hem de ilgilendiğiniz senaryoyu okuyun.
- Microsoft Entra ID kullanıcısını kullanarak olay aboneliğini yapılandırma
- Microsoft Entra ID uygulaması kullanarak olay aboneliğini yapılandırma
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.
Microsoft Entra (tek kiracı) ile çalışmak üzere yapılandırılmış web kancası için bir Microsoft Entra uygulaması oluşturun.
Kiracıda Azure Shell'i açın ve PowerShell ortamını seçin.
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"
- Değişken:
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 Uygulama Yöneticisi 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 işlemi kapsamında ek erişim denetimi yapıldı. 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.
- Değişken:
Portalda olay aboneliği oluştururken şu adımları izleyin:
Uç nokta türünü Web Kancası olarak seçin.
Uç nokta URI'sini belirtin.
Olay Abonelikleri Oluştur sayfasının üst kısmındaki Ek özellikler sekmesini seçin.
Ek özellikler sekmesinde şu adımları uygulayın:
Microsoft Entra kimlik doğrulamasını kullan'ı seçin ve kiracı kimliğini ve uygulama kimliğini yapılandırın:
Betiğin çıktısından Microsoft Entra kiracı kimliğini kopyalayın ve Microsoft Entra kiracı kimliği alanına girin.
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.
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.
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.
Microsoft Entra uygulaması için bir gizli dizi oluşturun ve değeri kaydedin (daha sonra bu değere ihtiyacınız vardır).
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.
Microsoft Entra (Tek kiracı) ile çalışmak üzere yapılandırılmış web kancası için bir Microsoft Entra uygulaması oluşturun.
Kiracıda Azure Shell'i açın ve PowerShell ortamını seçin.
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"
- Değişken:
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
$eventGridAppId
değiştirmeniz gerekmez. Bu betikte, için$eventGridRoleName
ayarlanan AzureEventGridSecureWebhookSubscriber. Bu betiği yürütmek için Microsoft Entra Uygulama Yöneticisi 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.- Değişken:
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]
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.
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.
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:
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.
Microsoft Entra uygulaması için bir gizli dizi oluşturun ve değeri kaydedin (daha sonra bu değere ihtiyacınız vardır).
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:
Microsoft Entra (tek kiracı) ile çalışmak üzere yapılandırılmış web kancası için bir Microsoft Entra Uygulaması oluşturun.
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"
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
$eventGridAppId
değiştirmeniz gerekmez. Bu betikte AzureEventGridSecureWebhookSubscriber için$eventGridRoleName
ayarlanır. Bu betiği yürütmek için Microsoft Entra Uygulama Yöneticisi 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 işlemi kapsamında ek erişim denetimi yapıldı. 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.
- Değişken:
Kiracı A
Şimdi A Kiracısı'nda aşağıdaki adımları uygulayın:
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]
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.
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ızda Yetkilendirme belirtecini doğrulamanız gerekir.
İlgili içerik
- Kavramsal bilgi için bkz . Web Kancası olay teslimi.
- Kimlik doğrulama anahtarı hakkında daha fazla bilgi için bkz . Event Grid güvenliği ve kimlik doğrulaması.
- Azure Event Grid aboneliği oluşturma hakkında daha fazla bilgi için bkz . Event Grid abonelik şeması.